требования к дизайну
(1) Спроектировать детектор алкоголя на базе 51 микроконтроллера;
(2) Датчик MQ-3 определяет содержание алкоголя в измеряемом газе, а микроконтроллер выполняет анализ и обработку данных;
(3) LCD1602 отображает измеренное значение концентрации алкоголя и порог срабатывания сигнализации;
(4) Когда измеренное значение превышает установленный порог, может быть выдан звуковой и визуальный сигнал тревоги;
(5) Пользователи могут настроить размер порога тревоги с помощью кнопок;
(6) Завершите настройку моделирования, схематический рисунок и написание программы на языке C.
Обзор системы
Аппаратная часть детектора алкоголя в основном состоит из микроконтроллерной системы управления, датчика алкоголя MQ-3, аналого-цифрового преобразователя ADC0832, жидкокристаллического дисплея LCD1602, схемы звуковой и световой сигнализации, схемы кнопок и схемы питания 5 В. структура показана на рисунке ниже.
Программная часть реализована программированием на языке C.
Принцип работы таков: датчик MQ-3 определяет концентрацию алкоголя в измеряемом газе в режиме реального времени и выдает аналоговые сигналы на аналого-цифровой преобразователь ADC0832. После преобразования данных с помощью аналого-цифрового преобразователя они передаются. в микроконтроллер для завершения анализа и обработки и, наконец, отображается на жидкокристаллическом дисплее LCD1602.
Когда измеренная концентрация алкоголя превышает пороговое значение, раздается звуковой сигнал и светодиодный индикатор, а также световая сигнализация. Пороги можно установить с помощью клавиш.
Схема моделирования Proteus
Принципиальная схема
Анализ результатов моделирования
Датчик MQ-3 преобразует концентрацию алкоголя в измеряемом газе в выходной аналоговый сигнал напряжения 0–5 В, и чем выше концентрация, тем больше значение выходного напряжения.
Поскольку в ПО «Протеус» отсутствует модель датчика MQ-3, вместо него используется скользящий реостат RV3. Путем изменения сопротивления скользящего реостата изменяется значение выходного напряжения, имитируя тем самым изменение концентрации спирта.
В принципиальной схеме чертежа и физического изготовления используется настоящая проводка датчика алкоголя MQ-3.
Процесс проверки моделирования выглядит следующим образом: откройте файл моделирования «alcohol детектор.DSN», дважды щелкните микроконтроллер, щелкните маленький желтый значок папки во всплывающем диалоговом окне «Редактировать компонент», загрузите файл Alcohol.hex, а затем запустить симуляцию.
Эффект моделирования показан на рисунке ниже. Первая строка дисплея LCD1602 показывает, что концентрация алкоголя в измеряемом газе составляет 18 мг/100 мл, а ALC — это сокращение от Alcohol;
Вторая строка дисплея показывает, что установленный порог срабатывания сигнализации составляет 25 мг/100 мл. Если измеренное значение ниже порогового значения, мигает нормальный зеленый светодиод.
Отрегулируйте две маленькие красные стрелки вверх и вниз по скользящему реостату RV3, чтобы имитировать изменения концентрации спирта в измеряемом газе.
Например, при настройке RV3 имитируемое значение измерения составляет 34 мг/100 мл, что превышает установленный порог 25 мг/100 мл. В это время звучит зуммер и мигает красный светодиодный индикатор вождения в нетрезвом виде в качестве напоминания.
Пользователи могут настроить размер порога тревоги, нажимая кнопки. Этапы работы:
Нажмите кнопку «Установить», курсор порога на ЖК-дисплее начнет мигать, войдите в режим настройки порога, затем нажмите кнопку «Плюс»/«Минус», чтобы изменить размер порога. После завершения настройки снова нажмите кнопку «Установить», чтобы выйти. Режим установки порога.
Например, если порог тревоги установлен на 56 мг/100 мл, результаты будут следующими.
Таким образом, эффект моделирования работы детектора алкоголя соответствует требованиям к дизайну.
Часть кода C
void main() //Основная функция
{
Init1602(); //Инициализируем функцию ЖК-дисплея
init(); //Инициализируем таймер
init_eeprom(); //Начинаем инициализировать сохраненные данные
while(1) //Входим в цикл
{
for(m=0;m<50;m++) //Читаем значение AD 50 раз
sum = adc0832(0)+sum; //Чтение значения AD, накопление прочитанных данных для суммирования
temp=sum/50; //После выхода из цикла for, описанного выше, разделите накопленную сумму на 50, чтобы получить среднюю температуру
if (temp > K_ZERO)
temp = temp - K_ZERO; //Сначала вычитаем дрейф нуля, обычно 130 м В
else
temp= 0;
sum=0; //После завершения расчета среднего значения обнуляем сумму
if(set==0) //установлено значение 0, что указывает на то, что сейчас он не находится в состоянии настройки
Display_1602(temp,WARNING); //Отображение значения AD и значения тревоги
if(temp<WARNING&&set==0) //Значение AD меньше значения тревоги
{
flag=0; //Закрыть тревогу
}
else if(temp>WARNING&&set==0)//ADЗначение превышает значение сигнала тревоги
{
flag=1; //включаем будильник
}
Key(); //Вызов ключевой функции
}
}
void Key() //Функция кнопки
{
if(Key1==0) //Устанавливаем нажатие клавиши
Содержание ресурса
(1) Дипломная работа по детектору алкоголя на базе микроконтроллера 51 и датчика MQ-3;
(2) файл моделирования Proteus;
(3) программа Keil C;
(4)Принципиальная схемадокумент;
(5) Блок-схема Visio;
(6) Информация об оборудовании;
(7) Список компонентов;
Скриншот ресурса