Джереми Блум - Изучаем Arduino: инструметы и методы технического волшебства
- Название:Изучаем Arduino: инструметы и методы технического волшебства
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2015
- Город:Санкт-Петербург
- ISBN:978-5-9775-3585-4
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Джереми Блум - Изучаем Arduino: инструметы и методы технического волшебства краткое содержание
Для радиолюбителей
Изучаем Arduino: инструметы и методы технического волшебства - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
boolean one time = false; // Флаг звука динамика
- 219 -
void setup()
{
pinMode(FAN, OUTPUT);
// Создание объекта Wire (I 2С-датчик температуры)
Wire.begin();
// Настройки дисплея (число столбцов и строк)
lcd.begin(16, 2);
// Определить пользовательские символы
lcd.createChar(0, degree);
lcd.createChar(1, fan_off);
lcd.createChar(2, fan_on);
// Вывод закрепленных сообщений на дисплее
lcd.setCursor(0,0);
lcd.print("Current:");
lcd.setCursor(10,0);
lcd. write ( (byte) 0);
lcd.setCursor(11,0);
lcd.print("C");
lcd.setCursor(0,1);
lcd.print("Set:");
lcd.setCursor(10,1);
lcd.write ( (byte) 0);
lcd.setCursor(11,1);
lcd.print("C");
lcd.setCursor(15,1);
lcd.write(1);
}
// Функция проверки на дребезг для нескольких кнопок
boolean debounce(boolean last, int pin)
{
boolean current = digitalRead(pin);
if (last != current)
{
delay(5);
current = digitalRead(pin);
}
return current;
}
void loop()
{
// Получить значение от датчика температуры
Wire.beginTransmission(TEMP_ADDR);
Wire.write (0);
Wire.endTransmission();
Wire.requestFrom(TEMP_ADDR, 1);
- 220 -
// Ожидаем передачу
// Получить 1 байт
while(Wire.available()==0);
int с = Wire.read();
// Установить курсор
// и вывести текущее значение
lcd.setCursor(8,0);
lcd.print(c);
// Проверка на дребезг для двух кнопок
currentDownTempButton = debounce(lastDownTempButton, DOWN_BUTTON);
currentUpTempButton = debounce(lastUpTempButton, UP_BUTTON);
// Уменьшить пороговое значение температуры
if (lastDownTempButton== LOW && currentDownTempButton == HIGH)
{
set_temp--;
}
// Увеличить пороговое значение температуры
else if (lastUpTempButton == LOW && currentUpTempButton
{
set_temp++;
}
// Вывод порогового значения на экран
lcd.setCursor(8,1);
lcd.print(set_temp);
currentDownTempButton;
lastDownTempButton
lastUpTempButton = currentUpTempButton;
// Очень жарко!
if (с >= set_temp)
{
// Однократный звуковой сигнал на динамик
if ( ! one_time)
{
tone(SPEAKER, 400);
delay ( 500);
one time = true;
}
// Отключить вывод звука
else
{
noTone (SPEAKER);
}
// Включить вентилятор и вывести значок на дисплей
digitalWrite(FAN, HIGH);
lcd.setCursor(15,1);
lcd.write(2);
}
- 221 -
//Не жарко!
else
{
// Выключить динамик
// Сбросить состояние one time в false
// Выключить вентилятор и значок на ЖК-дисплее
noTone(SPEAKER);
one time = false;
digitalWrite(FAN, LOW);
lcd.setCursor(15,1);
lcd.write(1);
}
}
Теперь, чтобы посмотреть температуру, необязательно подключать плату Arduino к компьютеру. Можно питать плату от батарейки или автономного источника питания и поместить ее в любом месте вашей комнаты.
ПРИМЕЧАНИЕ
Посмотреть видеоклип, демонстрирующий действие автономного терморегулятора, можно на странице http://www.exploringarduino.com/content/ch10. Этот видеофайл доступен также на сайте издательства Wiley.
10.6. Как усовершенствовать проект
Функциональные возможности описанной программы можно расширить. Вот несколько советов по улучшению проекта:
• Для увеличения мощности подключить вентилятор через транзистор.
• В зависимости от текущей температуры регулировать скорость вращения вентилятора с помощью широтно-импульсной модуляции.
• Добавить светодиоды для визуальной индикации предупреждений.
• Сделать звуковое оповещение в виде мелодии.
• Добавить фотодатчик и автоматически регулировать яркость подсветки дисплея в зависимости от освещенности в комнате, используя потенциометр SPI из главы 9.
Резюме
• Как подключить ЖК-дисплей к плате Arduino по стандартной схеме.
• Как создавать собственные символы для ЖК-дисплея с помощью генерации произвольных растровых изображений.
• Как изменить функцию устранения дребезга кнопки для нескольких кнопок.
• Как объединить датчики, двигатели, кнопки и ЖК-дисплей в едином автономном устройстве.
Глава 11. Беспроводная связь с помощью радиомодулей ХВее
Для повторения примеров главы вам понадобятся следующие детали:
• 2 платы Arduino (рекомендуется Uno или Leonardo);
• USB-кабели для программирования плат Arduino;
• источники питания для каждой платы Arduino;
• адаптер SparkFun USB ХВее Explorer;
• 2 радиомодуля ХВее Series 1;
• 2 платы расширения ХВее shield;
• кнопка;
• пьезозуммер;
• RGB-светодиод с общим катодом;
• 1 резистор номиналом 10 кОм;
• потенциометр 10 кОм;
• 1 резистор номиналом 150 Ом;
• 3 резистора номиналом 220 Ом;
• набор перемычек;
• 2 макетные платы.
На странице http://www.exploringarduino.com/content/ch11 можно загрузить программный код, видеоуроки и другие материалы для данной главы. Кроме того, листинги примеров можно скачать со страницы www.wiley.com/go/exploringarduino в разделе Downloads.
Настала пора отказаться от соединительных кабелей! При создании устройств на базе микроконтроллеров несложно реализовать беспроводную связь. Есть много
- 223 -
способов для организации беспроводной связи, для плат Arduino проще всего применить радиомодули ХВее, которые производит компания Digi. Модули ХВее работают как беспроводной последовательный порт, что позволяет для связи с ними использовать чтение и отправку последовательных данных, а это мы уже изучили.
В этой главе описана беспроводная связь только модулей ХВее, но мы рассмотрим некоторые важные сведения, которые касаются беспроводной связи в целом.
Радиомодули ХВее позволяют осуществить связь между Arduino и компьютером или между несколькими платами Arduino. Далее мы расскажем об этом подробно.
ПРИМЕЧАНИЕ
Видеоурок по работе с радиомодулями ХВее находится по адресу http://www.jeremyblum.com/2011/02/27/arduino-tutorial-9-wireless-communication/ [13] На русском: http://wiki.amperka.ru/видеоуроки:9-беспроводная-связь.
. Этот видеофайл доступен также на сайте издательства Wiley.
11.1. Общие сведения о беспроводной связи ХВее
Название говорит само за себя. Беспроводная связь позволяет связывать и общаться двум и более устройствам без проводов. Беспроводные передатчики передают данные через свободное пространство, излучая электромагнитные волны на определенной частоте. Существуют различные технологии передачи для разных диапазонов, чтобы предотвратить взаимные помехи. Правительственные учреждения, например Федеральная комиссия по связи (FCC) в США, регулируют эти вопросы, публикуя правила распределения частот. Модуль ХВее передает данные на частоте 2,4 ГГц, на которой работают и многие другие устройства, например WiFi-маршрутизаторы. Это диапазон частот ISM (выделенный промышленным, научным и медицинским учреждениям), отведенный для нелицензионного использования беспроводной связи. Модули ХВее соответствуют стандарту IEEE 802.15.4, который содержит перечень правил эксплуатации беспроводных персональных сетей (PAN).
Модули ХВее, как правило, соединяют согласно конфигурации Р AN "точка-точка" или "точка-многоточка" (рис. 11.1). Схема "точка-точка" удобна, когда необходимо заменить проводную последовательную связь между двумя удаленными устройствами беспроводной. Конфигурация "точка-многоточка" часто используется для создания распределенных сетей датчиков.
Читать дальшеИнтервал:
Закладка: