Контроль температуры с помощью LM35, семисегментного индикатора и пищалки (обучение работе с Proteus)
Данная статья написана специально для обучения работе с симулятором Proteus и показывает, как использовать готовый Arduino-скетч для моделирования системы контроля температуры без подключения реального оборудования.
В проекте используется датчик температуры LM35, двухразрядный семисегментный индикатор, реле и пищалка (buzzer), что позволяет отработать сразу несколько ключевых навыков: работу с аналоговыми датчиками, индикацией, цифровыми выходами и звуковой сигнализацией.
Назначение проекта
В рамках данного проекта Arduino:
- считывает температуру с датчика LM35;
- отображает текущее значение температуры на двухразрядном 7-сегментном индикаторе;
- контролирует превышение температурного порога 20 °C;
- включает реле при превышении порога;
- подаёт звуковой сигнал (пищалка) при превышении 20 °C;
- полностью работает в среде Proteus.
Необходимые компоненты
- Arduino UNO;
- Датчик температуры LM35;
- Двухразрядный семисегментный индикатор (общий анод);
- Пищалка (Buzzer);
- Реле или модуль реле;
- Proteus 8 или 9 с поддержкой Arduino.
Подключение датчика LM35
LM35 подключается по стандартной схеме:
- VCC → 5V Arduino;
- OUT → аналоговый вход A0;
- GND → GND Arduino.
Датчик формирует напряжение 10 мВ на каждый градус Цельсия, что удобно для эмуляции в Proteus и дальнейшего масштабирования показаний.
Подключение семисегментного индикатора
Индикатор управляется напрямую через порт PORTD:
- сегменты подключены к пинам D0–D7;
- пины 8 и 9 используются для переключения разрядов;
- применяется динамическая индикация.
Подключение реле и пищалки
Реле и пищалка работают как исполнительные устройства и активируются при превышении температуры 20 °C.
- Реле → пин A1 (используется как цифровой выход);
- Пищалка → тот же управляющий сигнал (или параллельно реле);
- Питание → 5V;
- Общий провод → GND.
В Proteus пищалка позволяет наглядно услышать момент срабатывания системы, что особенно полезно при обучении.
Принцип работы программы
После запуска скетча:
- устанавливается внешняя опора АЦП (analogReference(EXTERNAL));
- инициализируются порты для индикатора;
- подготавливаются выходы для реле и пищалки.
В основном цикле Arduino:
- считывает аналоговое значение с LM35;
- преобразует его в числовое значение температуры;
- выводит температуру на семисегментный индикатор;
- если температура превышает 20 °C, включает реле и подаёт звуковой сигнал;
- если температура ниже порога — реле и пищалка отключены.
Arduino-скетч
#define sensor A0
#define relay A1
#define E1 8
#define E2 9
void setup(){
analogReference(EXTERNAL);
pinMode(sensor, INPUT);
for(int i=0;i<10;i++){
pinMode(i,OUTPUT);
}
pinMode(relay,OUTPUT);
}
char num[]={
0xC0,0xF9,0xA4,0xB0,0x99,
0x92,0x82,0xF8,0x80,0x90
};
void loop(){
int out = analogRead(sensor)/4;
display2segment(out);
if(out > 20){
digitalWrite(relay, HIGH); // включение реле и пищалки
} else {
digitalWrite(relay, LOW); // отключение
}
}
void display2segment(int temp){
digitalWrite(E2,LOW);
digitalWrite(E1,HIGH);
PORTD = num[temp/10];
delay(1);
digitalWrite(E1,LOW);
digitalWrite(E2,HIGH);
PORTD = num[temp%10];
delay(1);
}
Запуск проекта в Proteus
Для запуска симуляции:
- распакуйте архив с файлами проекта;
- откройте файл .pdsprj;
- проверьте путь к .hex файлу в свойствах Arduino;
- запустите симуляцию;
- изменяйте температуру LM35 и наблюдайте индикацию, срабатывание реле и звуковой сигнал.
Важно: в Proteus температура LM35 не меняется автоматически — её необходимо изменять вручную в свойствах модели датчика.
Если что-то не работает
Если у вас возникают сложности с запуском проекта или вы не уверены в базовых шагах, рекомендуется сначала пройти вводный урок.
Подробно разобран первый проект в Proteus:
Первый проект в Proteus — мигание светодиода