Подключим к ардуино один из доступных датчиков — датчик температуры или термистор.
Термистор — полупроводниковый резистор, электрическое сопротивление которого существенно зависит от температуры. При повышении температуры сопротивление снижается.
Что хотим
Строим схему с термистором и меняем количество горящих диодов в зависимости от температуры.
Что понадобится
Кроме всего обычного — термистор. Мы используем B57164-K0103.
Этапы работы
- Собираем схему №1
- Определяем диапазон изменения температуры
- Совершенствуем схему и программу
- Радуемся результату
- Генерируем идеи.
Собираем схему №1
Используем резистор на 10KOm
Схема очень напоминает схему с кнопкой, но теперь вместо кнопки ставим термистор и соединяем его с аналоговым входом А2.
Аналоговый вход может различать силу сходящего сигнала. 0 — минимальный уровень, 1023 — максимальный. Говорят, 10-битная градация (210=1024).
Если убрать термистор вообще, то уровень сигнала будет равен нулю, но если термистор поставить, то через него начнёт течь ток и попадать на A2 вход. Наша задача определить условное напряжение на входе, установить его минимальную и максимальную границу в зависимости от температуры термистора.
Программа:
void setup () {
pinMode(A2,INPUT); //A2 пин — на вход сигнала
Serial.begin(9600); //связь с компьютером 9600 бит/с
}
void loop () {
int t = analogRead(A2); //читаем значение с A2
Serial.println(t); //пишем это значение в //последовательный порт (для нас это USB)
delay(10); // немного ждём
}
Прошиваем программу. На экране находим кнопку «Serial Monitor», жмём.
В открывшемся окне бегут числа — это условное значение, зависящее от температуры. Запишите минимальное число, которое вы успели заметить. Теперь аккуратно возьмитесь за резистор — от тепла Ваших рук его температура повысится и числа на экране увеличатся. Пусть это будет максимальная температура.
Совершенствуем схему.
Подсоединим к схеме 3 диода, «повесив» их на 10-12 порт платы.
Пусть при минимальной температуре горит один диод, при увеличении температуры — 2, а при максимальной температуре — все 3.
Для этого в программе проведем калибровку входящих показаний. Пусть минимальная значение равно 540, максимальное (когда мы хотим зажечь все три диода) — 600.
Определим значение переменной led следующим образом:
int led = map (t,540,600,0,3);
Таким образом при изменении показаний переменной t от 540 до 600 единиц значение переменной led будет меняться от 0 до 3.
Пишем программу
pinMode(A2,INPUT); //A2 пин — на вход сигнала
Serial.begin(9600); //связь с компьютером 9600 бит/с
for (int i=10; i<=12; i++) {
pinMode (i,OUTPUT);
}
}
void loop () {
int t = analogRead(A2); //читаем значение с A2
int led = map (t,540,600,0,3);
if (led>=1) {digitalWrite(10,HIGH);}
else {digitalWrite(10,LOW);}
if (led>=2) {digitalWrite(11,HIGH);}
else {digitalWrite(11,LOW);}
if (led>=3) {digitalWrite(12,HIGH);}
else {digitalWrite(12,LOW);}
Serial.println(t); //пишем это значение в //последовательный порт (для нас это USB)
delay(10); // немного ждём
}
Ну, вроде, всё работает.
Подумайте, где можно применять собранную схему.
А если диоды заменить чем-то еще?
Попробуйте подсоединить еще несколько диодов для более точного отображения температуры.
На этом пока всё.
КОНЕЦ ЗАНЯТИЯ.
Удачных экспериментов!
На нашем сайте доступна подборка инструкций и учебных пособий по ардуино. Ознакомиться и скачать можно в этом разделе: Скачать инструкции - книги по ардуино.