требования к дизайну
1. Спроектировать автоматическую систему полива и орошения цветов и сельскохозяйственных угодий на базе 51 микроконтроллера;
2. Возможность определения влажности почвы, когда она ниже установленного нижнего предела, запустите водяной насос для полива и подайте соответствующие звуковые и визуальные сигналы тревоги;
3. Возможность установки верхнего и нижнего пределов влажности с помощью кнопок;
4. Данные о влажности почвы, а также верхний и нижний пределы влажности отображаются на дисплее LCD1602;
5. Полный выбор компонентов системы, чертеж схемы и программирование на языке C;
Обзор системы
В конструкции автоматической системы полива используется микроконтроллер AT89C51 в качестве ядра управления и применяется модульный метод проектирования.
Компоненты: модуль питания 5 В, модуль датчика влажности почвы, модуль аналого-цифрового преобразования ADC0832, модуль управления водяным насосом, модуль ключевого ввода, модуль ЖК-дисплея и модуль звуковой и световой сигнализации. Структура следующая.
Принцип работы таков: датчик влажности почвы измеряет аналоговый сигнал влажности почвы, а AD-преобразователь преобразует аналоговый сигнал в цифровой сигнал и затем передает его на микроконтроллер 51. Микроконтроллер сравнивает данные о влажности почвы с заданными верхними и нижними значениями. пределы.
Когда влажность почвы ниже нижнего предела, водяной насос приводится в действие для орошения и полива, а также подается звуковой и визуальный сигнал тревоги. Когда влажность почвы превышает нижний предел, звуковой и визуальный сигнализатор отключается, но водяной насос продолжает работать до тех пор, пока влажность почвы не продолжит увеличиваться и не превысит установленный верхний предел.
Пользователи могут устанавливать верхний и нижний пределы влажности с помощью кнопок, а данные о влажности почвы, а также данные о верхнем и нижнем пределе отображаются в режиме реального времени на ЖК-дисплее.
датчик влажности почвы
Схема моделирования Proteus
Принципиальная схема
Анализ результатов моделирования
Откройте файл моделирования Proteus с суффиксом .DSN. Дважды щелкните микроконтроллер, загрузите файл AutoWater.hex (находится в папке программы Keil C) и запустите моделирование. Результаты следующие.
Как видно из рисунка, на ЖК-дисплее отображается, что измеренная в данный момент влажность почвы (Humidity) составляет 53 %, заданный системой верхний предел влажности (H: сокращение для High) составляет 60 %, а нижний предел (L: сокращение Низкая) составляет 30%. Влажность почвы нормальная, в пределах верхнего и нижнего пределов.
В это время световой индикатор и звуковой сигнал низкой влажности выключены, переключатель реле RL1 выключен, а водяной насос находится в выключенном состоянии.
Отрегулировав скользящий реостат RV2 (нажмите две красные стрелки вверх и вниз с помощью мыши), измените входное напряжение на канал выборки 0 ADC0832, чтобы имитировать изменения влажности почвы.
Щелкните красную стрелку, указывающую вниз для RV2, чтобы имитировать уменьшение влажности почвы. Например, при снижении влажности почвы с 53% до 23%, что на 30% ниже нижнего предела, загорается красный светодиод сигнализации, звучит зуммер, переключатель реле RL1 поворачивается в верх, включается водяной насос. включается, и начинается автоматический полив. Также загорается индикатор работы водяного насоса.
Щелкните красную стрелку, указывающую вверх на RV2, чтобы смоделировать увеличение влажности почвы.
Когда влажность почвы увеличивается с 23% до 37% и превышает нижний предел, звуковая и световая сигнализация перестает работать, но водяной насос будет продолжать работать до тех пор, пока влажность почвы не продолжит увеличиваться выше верхнего предела. Процесс происходит следующим образом. .
Следует отметить, что после того, как водяной насос перестанет работать (т. е. влажность почвы превысит верхний предел), отрегулируйте RV2 для имитации снижения влажности почвы. Когда она упадет до верхнего и нижнего пределов, водяной насос не запустится. . Только когда влажность почвы продолжит опускаться ниже нижнего предела.
Верхний и нижний пределы влажности можно установить нажатием кнопок.
Нажмите кнопку «Настройка», чтобы войти в режим настройки верхнего и нижнего предела. Сначала мигает курсор значения верхнего предела H. В это время вы можете нажать кнопку «плюс/минус», чтобы изменить значение верхнего предела.
После установки значения верхнего предела нажмите кнопку «Установить», и курсор значения нижнего предела L начнет мигать. Таким же образом нажмите кнопку «плюс/минус», чтобы изменить значение нижнего предела.
После установки значений верхнего и нижнего пределов снова нажмите кнопку «Установить», чтобы выйти из режима установки верхнего и нижнего пределов. Например, мы установили верхний предел влажности H на 75%, а нижний предел L на 25%. Результаты показаны на рисунке ниже.
Подводя итог, можно сказать, что эффект моделирования удовлетворяет требованиям. к дизайну。
Часть кода 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, чтобы получить среднюю температуру
sum=0; //После завершения расчета среднего значения обнуляем сумму
temp = temp*0.390625; //ADC0832 хранит данные в 1 байте, а диапазон отображения влажности составляет 0–100, поэтому 1 единица влажности = 100/256 = 0,390625.
// if(temp<=full_range)
// temp=(temp*100)/full_range;
// else
// temp=100;
if(set==0) //установлено значение 0, что указывает на то, что сейчас он не находится в состоянии настройки
Display_1602(temp,MH,ML);//Отображение значения AD и значения тревоги
if(temp<ML&&set==0) //Значение влажности меньше значения тревоги
{
flag=1; //включаем будильник
Relay=0; //Контакты реле замкнуты и водяной насос работает
LED_R=0; //Горит красный свет
}
else if(temp>MH&&set==0) //Значение влажности больше значения тревоги
{
flag=0; //Закрыть тревогу
Relay=1; //Контакт реле размыкается и водяной насос останавливается
LED_R=1; //Красный свет гаснет
}
Содержание ресурса
(1) Дипломная работа по проектированию систем автоматического полива и орошения цветов и сельскохозяйственных угодий на базе 51 микроконтроллера;
(2) файл моделирования Proteus;
(3) файлы программ C;
(4)Принципиальная схемадокумент;
(5) файл блок-схемы Visio;
(6) Справочные материалы;
(7) Список компонентов;
Скриншот ресурса