Практичне програмування Arduino

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

програмування
Невже? Дістанемо ключі з кишені і візьмемося їх уважно розглядати :) У мене контактний майданчик сильно затертий, але якісь написи проглядають.
програмування
Потер майданчик фломастером і стає видно заповітний напис:

iButton.com 00000F67CE411-Wire0744 UB1DS1990A#F5

Ага! 1-Wire! То що це за інтерфейс? Це однопровідний інтерфейс розроблений фірмою Dallas Semiconductor (нині MAXIM) наприкінці 90-х років.

Цей інтерфейс цікавий тим, що для двостороннього обміну потрібно всьогоодна лінія! (звідси і назва:)

Повертаємося до нашого ключа :) На самій таблетці вказано тип пристрою та, схоже, унікальний номер мікросхеми ;)

DS1990A- Це і є назва нашого пристрою.

Дивимося варіанти iButton-ів на сайті виробника Наш ключ - це найперша модель у списку :)DS1990A - 64 Bit ID- Унікальний серійний номер-ключ Сторінка цього ключика тут, а тут можна завантажити датащит;)

1-Wire
Число після # визначає форм-фактор ключа - у мене F5.

Отже, наш ключ зберігає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! :)

практичне
Далі потрібно завантажити бібліотеку OneWire та помістити її у свою директорію libraries.

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