×
Traktatov.net » Занимательная электроника » Читать онлайн
Страница 360 из 376 Настройки
установить значение 0 (CTS flow control disabled). После этого устройство конфигурируется именно как END DEVICE, и нам станет доступен Sleep-режим, который активируется установкой логической 1 на выводе 9 модуля.

Обязательно сохраните обе конфигурации (Profile | Save). При повторном подключении модулей можно прочесть зашитую в них конфигурацию, нажав кнопку Read, и в случае необходимости что-то подправить.

* * *

Подробности

Xbee-модули фирмы Digi имеют весьма капризный характер. Если у вас в процессе настройки модуль перестал откликаться на запросы программы X–CTU, то не кидайтесь сразу выбрасывать довольно дорогой девайс, полагая его испорченным. Помогает следующая последовательность действий, проверенная мной на практике:

1. Извлеките из платы Wireless Shield (или из XBee-USB адаптера, если вы используете его) «неисправный» Xbee-модуль и подключите ее к компьютеру.

2. Запустите X–CTU, сразу перейдите на вкладку Modem Configuration, загрузите любую из сохраненных конфигураций (Profile | Load) и попробуйте загрузить ее в устройство через кнопку Write. Естественно, вы получите сообщение о том, что никакого модема не обнаружено.

3. Закройте это окошко и вставьте Xbee-модуль в плату. Затем снова нажмите кнопку Write. Скорее всего, модем «пропишется» как надо. После этого его можно будет прочесть кнопкой Read, как обычно, и внести необходимые исправления. Если с первого раза не получится, повторите эти операции.

* * *

После прошивки пометим модули на всякий случай, наклеив на них «лейблы» с буквами С (для «координатора») и R (для «роутера») и значением ID — вдруг мы захотим подключить еще один модуль? «Координатор» мы присоединим к основному модулю станции, а «роутер» — к выносному датчику (только END DEVICE можно вводить в режим энергосбережения).

Теперь мы отложим настроенные Xbee-модули и займемся настройкой Arduino Mini, который у нас ляжет в основу выносного датчика станции.


Выносной датчик на основе Arduino Mini

Кстати, у Arduino Mini, несмотря на его миниатюрные размеры, портов даже больше, чем у Arduino Uno, — обратите на его схеме внимание на выводы AD6 и AD7 (см. http://arduino.ru/Hardware/ArduinoBoardMini). Правда, они могут использоваться только по прямому назначению — как аналоговые входы. По аналогии с выводами AD0-AD5 (цифровые порты 14–19) может показаться, что им должны соответствовать цифровые порты с номерами 20 и 21, но это не так: AD6 и AD7 представляют собой отдельные входы АЦП контроллера ATmega328 (ADC6 и ADC7), которые, в отличие от остальных, никак не связаны с цифровыми выводами портов.

Отсутствие входов AD6 и AD7 в большинстве остальных модификаций Arduino объясняется просто: выводы ADC6 и ADC7 имеются лишь у ATmega328 в плоских корпусах TQFP и MLF, где число выводов увеличено до 32, а в PDIP-корпусе с 28 выводами, на которых построено большинство обычных модификаций Arduino, они отсутствуют.

Для программирования Arduino Mini нам придется создать отдельную конструкцию, включающую внешний USB-Serial адаптер, который придется приобрести отдельно. В датчике такой адаптер нам не нужен, и он все равно будет конфликтовать с Xbee-модулем. Потому мы создадим отдельную схему для программирования платы, а отладку функций энергосбережения, чтения показаний датчика SHT1x и работы с Xbee-модулем вынесем на отдельный макет.