Только начал делать свои первые шаги в цифровой электронике, но уже появился большой интерес к довольно сложным устройствам с применением arduino, который выиграл в конкурсе.  В тот же день изучил (перегрыз) все книги, которые удалось найти в интернете, изучал не полностью, только самые важные моменты, разумеется еще многое предстоит изучить. 

Поделюсь сборкой цифрового термометра на основе ардуино.

Снимок12

Для проекта требуется сам модуль ардуино, программа прошивки (обо всем этом я говорил в первой статье), дисплей LCD 16×2  (шел в комплекте), датчик температуры LM35  (тоже шел в комплекте), переменный резистор на 10кОм, макетная плата и контакты — никакого паяльника. 

Снимок14 Снимок13 Снимок11

Заливаем скетч (прошивка) через программу в наш мегачип (в моем случае ATmega328) и собираем схему 


#include <LiquidCrystal.h> // IПодключение библиотеки для работы с LCD display

#define sensor 0 // Присваиваем имя “sensor” выврлу Arduino A0

int Vin; // в этой переменной сохраняется значение входного напряжения на входе Arduino

float Temperature; // В этой переменной хранится рассчитанное значение текущей температуры

float TF; // Значение температуры, преобразованное из Цельсия ?C в Фаренгейт ?F (в нашей программе не используется, но может быть полезно для дальнейшей модификации)

LiquidCrystal lcd (12, 11, 5, 4, 3, 2); 

/* Данная функция лроежеляет номера портов Arduino, которые будут управлять работой LCDдисплея */

void setup()

{

lcd.begin(16, 2); // Arduino настраивается на конфигурацию дисплея 16×2 символов

lcd.print(«Temperature: «); // Вывод строки заголовка на экран дисплея

}

void loop()

{

Vin = analogRead (sensor); /* Arduino измеряет напряжение на входе порта датчика и сохраняет его в переменной “Vin” */

Temperature=(500*Vin)/1023; /* Преобразование значения напряжения в температуру и сохранение в переменной 
“Temperature” в градусах Цельсия ?C */

// TF = ((9*Temperature)/5)+32; // Преобразование градусов Цельсия ?C в Фаренгейт ?F — закомментировано, в программе не используется

lcd.setCursor(0, 1); // Перевести курсор дисплея в начало второй строки

lcd.print(Temperature); // Выврд на экран значения температуры

lcd.print(» C»); // Вывод символа “C” для обозначения шкалы Цельсия

delay(1000); // Ждать 1 секунду, после чего произвести следующее измерение температуры
}
 

Снимок9

Подключение очень простое, справиться любой.
Ну вот и все, можно такой «градусник» использовать везде — прилепите датчик температуры к радиатору автомобиля, и всегда сможете узнать до какого уровня нагрелась вода в нем, область применения довольно широка, сам термометр высокоточный и реагирует на малейшие перепады, максимальный верхний диапазон измерений 150гр по шкале Цельсия. 

Снимок8


Автор;  АКА КАСЬЯН

Опубликовать в twitter.com