Только начал делать свои первые шаги в цифровой электронике, но уже появился большой интерес к довольно сложным устройствам с применением arduino, который выиграл в конкурсе. В тот же день изучил (перегрыз) все книги, которые удалось найти в интернете, изучал не полностью, только самые важные моменты, разумеется еще многое предстоит изучить.
Поделюсь сборкой цифрового термометра на основе ардуино.
Для проекта требуется сам модуль ардуино, программа прошивки (обо всем этом я говорил в первой статье), дисплей LCD 16×2 (шел в комплекте), датчик температуры LM35 (тоже шел в комплекте), переменный резистор на 10кОм, макетная плата и контакты – никакого паяльника.
Заливаем скетч (прошивка) через программу в наш мегачип (в моем случае 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 секунду, после чего произвести следующее измерение температуры
}
Подключение очень простое, справиться любой.
Ну вот и все, можно такой “градусник” использовать везде – прилепите датчик температуры к радиатору автомобиля, и всегда сможете узнать до какого уровня нагрелась вода в нем, область применения довольно широка, сам термометр высокоточный и реагирует на малейшие перепады, максимальный верхний диапазон измерений 150гр по шкале Цельсия.