Практичне програмування Arduino
Сьогодні ми познайомимося з цікавим протоколом 1-Wire і навіть одразу спробуємо попрацювати з пристроєм, який використовує цей протокол. "Як?" — запитаєте Ви: «Мені не потрібно буде купувати деталі у радіомагазині?» "Ні" - відповім я :) З великою часткою ймовірності, Ви користуєтеся пристроєм 1-Wire і, можливо, навіть не здогадуєтеся про це :) Це всього лише - ключ-пігулка від домофону (iButton)!


iButton.com 00000F67CE411-Wire0744 UB1DS1990A#F5
Ага! 1-Wire! То що це за інтерфейс? Це однопровідний інтерфейс розроблений фірмою Dallas Semiconductor (нині MAXIM) наприкінці 90-х років.
Цей інтерфейс цікавий тим, що для двостороннього обміну потрібно всьогоодна лінія! (звідси і назва:)
Повертаємося до нашого ключа :) На самій таблетці вказано тип пристрою та, схоже, унікальний номер мікросхеми ;)
DS1990A- Це і є назва нашого пристрою.
Дивимося варіанти iButton-ів на сайті виробника Наш ключ - це найперша модель у списку :)DS1990A - 64 Bit ID- Унікальний серійний номер-ключ Сторінка цього ключика тут, а тут можна завантажити датащит;)

Отже, наш ключ зберігає64 біта унікальної інформаціїЖивиться від 2.8V до 6.0V До центрального контактного майданчика підключається лінія даних, а до бічної облямівки – землю. Ключ може працювати в діапазонітемператур від -40 ° C до +85 ° C - втім, це нам не потрібно :)
Читаємо датащит далі :)
Величина підтягуючого резистора рекомендується в2.2kТак ... запам'ятаємо :)
Кожен DS1990A прошивається унікальним 64-бітовим номером перші 8 біт - номер серії пристрою (01h) наступні 48 біт – унікальний серійний номер останні 8 біт - CRC-код попередніх 56 біт інформації :)
(Cyclic redundancy code, CRC - циклічний надлишковий код) - спосіб цифрової ідентифікації деякої послідовності даних, який полягає у обчисленні контрольного значення циклічного надлишкового коду.
Далі в датащиті перераховані команди, які розуміє ключ:33h- рахувати ROM - команда дозволяє вважати заповітні 64-біта даних ключаF0h- Пошук ROM - т.к. до мережі 1-wire може бути підключено кілька пристроїв Ця команда використовується для ідентифікації підключених пристроїв.55h- відповідність ROM / CCh - пропуск ROM — дані команди входять до мінімального набору необхідних команд 1-wire-пристроїв. Т.к. у ключі DS1990A ці команди не потрібні – він на них не відповідає.
Arduino/CraftDuino/Freeduino може працювати з 1-Wire, використовуючи бібліотеку Jim Studt-а – OneWire.
Настав час поспілкуватись з нашим ключиком! :)
Схема підключення - вкрай проста (адже це 1-Wire! :)

Тепер можна самостійно зробити замок для кімнати або розблокувати свій комп'ютер за ключом:) Фантазуємо:)