В Arduino есть программная реализация подтягивания цифрового пина к +5V. Таким образом, кнопку кидаю на землю.
http://www.freeduino.ru/arduino/sample_Buttons.html
pinMode(12, INPUT); //2й – вход. Здесь кнопка, замыкающая на землю
digitalWrite(12, HIGH); //включаем подтягивающий резистор
Прерывания висят на 2 и 3 пинах.
http://robocraft.ru/blog/arduino/45.html
Инициализация иначе:
pinMode(btnPin, INPUT_PULLUP);
http://arduinorus.blogspot.com/2013/03/blog-post.html
Bounce
http://greenoakst.blogspot.com/2012/06/arduino-bounce.html
вторник, 30 сентября 2014 г.
пятница, 26 сентября 2014 г.
Программирование Arduino
Начало работы (Windows)
Среда разаработки 1.05
Программирование (справочник)
Scratch for Arduino (наглядная среда)
Ardublock - графический Язык
Для RTC качаю библиотеку RTClib и помещаю в /libraries/
А для датчика DHT
Скетч будет лежать тут
Драйвера
Среда разаработки 1.05
Программирование (справочник)
Scratch for Arduino (наглядная среда)
Ardublock - графический Язык
Для RTC качаю библиотеку RTClib и помещаю в /libraries/
А для датчика DHT
Скетч будет лежать тут
Драйвера
AM2302 (DHT22)
Arduino и датчик температуры и влажности DHT22
Диапазон измерения влажности: 0 ~ 100% RH ± 2%
Диапазон измерения температуры: -40 ~ 125'C ± 0,5 'C
Напряжение питания: 3,3 - 6 В.
void readDHT(DHT* sensor, char* out)
{
sensor->update(); //обновляем показания датчика
while (sensor->getLastError() != DHT_ERROR_OK) {
delay(1000); // задержка необходима, иначе шлет постоянно ошибки
// 100 миллисекунд мало - проверял
sensor->update(); //обновляем показания датчика
}
sprintf(out, "Temp.Out = %dC,Hum.Out = %d%%; ",
sensor->getTemperatureInt(), sensor->getHumidityInt());
}
Диапазон измерения влажности: 0 ~ 100% RH ± 2%
Диапазон измерения температуры: -40 ~ 125'C ± 0,5 'C
Напряжение питания: 3,3 - 6 В.
- Вывод 1 - +5V
- Вывод 2 - данные (pin4)
- Вывод 3 - не используется
- Вывод 4 - GND
void readDHT(DHT* sensor, char* out)
{
sensor->update(); //обновляем показания датчика
while (sensor->getLastError() != DHT_ERROR_OK) {
delay(1000); // задержка необходима, иначе шлет постоянно ошибки
// 100 миллисекунд мало - проверял
sensor->update(); //обновляем показания датчика
}
sprintf(out, "Temp.Out = %dC,Hum.Out = %d%%; ",
sensor->getTemperatureInt(), sensor->getHumidityInt());
}
Постановка задачи
Собрать на девайсик для автоматической регулировки температуры для управления газовым котлом.
Железки:
Железки:
- Котроллер Arduino Nano
- Модуль реального времени Tiny RTC
- Термодатчик AM2302
- Блок реле #4
- Блок питания USB
- Ночной 22С
- Дневной 20С
Подписаться на:
Сообщения (Atom)