Студопедия


Авиадвигателестроения Административное право Административное право Беларусии Алгебра Архитектура Безопасность жизнедеятельности Введение в профессию «психолог» Введение в экономику культуры Высшая математика Геология Геоморфология Гидрология и гидрометрии Гидросистемы и гидромашины История Украины Культурология Культурология Логика Маркетинг Машиностроение Медицинская психология Менеджмент Металлы и сварка Методы и средства измерений электрических величин Мировая экономика Начертательная геометрия Основы экономической теории Охрана труда Пожарная тактика Процессы и структуры мышления Профессиональная психология Психология Психология менеджмента Современные фундаментальные и прикладные исследования в приборостроении Социальная психология Социально-философская проблематика Социология Статистика Теоретические основы информатики Теория автоматического регулирования Теория вероятности Транспортное право Туроператор Уголовное право Уголовный процесс Управление современным производством Физика Физические явления Философия Холодильные установки Экология Экономика История экономики Основы экономики Экономика предприятия Экономическая история Экономическая теория Экономический анализ Развитие экономики ЕС Чрезвычайные ситуации ВКонтакте Одноклассники Мой Мир Фейсбук LiveJournal Instagram

Блок-схема алгоритма работы




Введение

Целью курсовой работы является закрепление теоретических знаний и формированиепрактических навыков по разработке микроконтроллерной системы управления мехатронным устройством.

По варианту задания спроектировать микроконтроллерную систему управления. Приэтом можно использовать любые микроконтроллеры AVR, их отладочные платы, а также дополнительное оборудование (в соответствии с заданием).

 

 


1.

1. Исходное задание
Регулятор работы вентилятора

Устройство состоит из микроконтроллера, датчика температуры, датчика освещенности (фоторезистор), вентилятора на двигателе постоянного тока (микромоторчик) с необходимой электрической частью и батареи питания электродвигателя. Устройство должно определять температуру, и если температура выше заданной (указана внутри программы) более чем на 2 градуса, - подавать сигнал на управление вентилятором по П-закону управления. Кроме того, если появляется освещенность заданного уровня, независимо от температуры вентилятор должен включаться на постоянную работу с половинной мощностью и выключаться через 30с после наступления темноты. Текущее значение температуры передавать по линии связи на ПК и наблюдать на его мониторе.


 

Выбор микроконтроллера

В качестве отладочной платы выбираем ARDUINO с микроконтроллером ATmega-328P, которая содержит:

ОЗУ 2Кб,

EEPROM 1Кб

тактовую частоту 20МГц

рабочее напряжение 5в

входное напряжение (рекомендуемое) 7-12в

входное напряжение (предельное) 6-20в

цифровые Входы/Выходы 14 (6 из которых могут использоваться как выходы ШИМ)

 


 

Принципиальная электрическая схема

 

Рисунок 1 – Принципиальная схема

 

 

Блок-схема алгоритма работы

Рисунок 2 – блок- схема алгоритма главной программы

Рисунок 3 – блок- схема алгоритма управления красным сигналом

Рисунок 4 – блок- схема алгоритма управления желтым сигналом

Рисунок 5 – блок- схема алгоритма управления зеленым сигналом

Листинг программы

#include<DHT.h>//библеотека датчика температуры

DHTdht(4, DHT11);

uint8_tzadana_t=26; // заданая температура

uint16_tzadana_r=450; // заданая световая

uint8_ttime_zad=1; //время работы после темноты ( задаётся в сикундах)

uint8_tPWM; // шим сигнал

uint32_ttiem; // заместоdelay

//uint8_t хранит в себе от 0 до 255

//uint16_t хранит в себе от 0 до 65535

 

uint8_tizmer; // измеряемая температура изменяюшаяся только при смени градуса

int16_ttem; // ответ п ригулятора

uint16_trezist; // фоторезистор




uint8_tkp=9; // кофицыент для п ригулятора

booloo; // значения для работы от датчика температуры

//int16_t хранит в себе от -32767 до 32767

//bool хранит 0 и 1

 

voidsetup() {

dht.begin(); //включения датчика

Serial.begin(9600); // работа с Serial на скорости 9600

 

}

 

voidloop() {

 

if (izmer != dht.readTemperature()) {izmer = dht.readTemperature(); Serial.print("Temperature "); Serial.print (izmer); Serial.print(" C"); Serial.println (PWM); }// вывод данных только когда изменения даные датчика и вывод данных в Serial

tem=(izmer-zadana_t)*kp;// крутые расшеты п ригулятора( надо zadana_t-izmer, но для работы не с отрицытельнымичисламы мы поменяли)

 

rezist=analogRead(A0);//запись данных с фоторезистора

if (rezist>zadana_r){oo=0; tiem=(millis()+time_zad*1000);} //когда значения с датчика(rezist) больше значения задонова(zadana_r) вклучаем {выклучениярабоут от температуры(oo=0) и запуск таймера (используется замена delay)}

else {oo=1;} // если нет, то вклучаем работу от температуры

 

if (tiem>millis()) { oo=0; PWM=126;}// если время вклучения таймера больше то {выклучаем работу от температуры и вклучаем вентилятор в пол силы }

else {oo=1;}// если нет, то вклучаем работу от температуры

 

if(oo==1)//если равно 1, то вклучаем работу от датчика температуры

{ PWM=0; // сбрасываем скорость вентилятора на 0

if (tem>=0){PWM=map(tem,0,50,0,255);}}; // командой tem>=0 убираем отрицательные значения П ригулятора, командой map преобразуем значения П ригулятора в подходяшие значения мотора

analogWrite(11,PWM); // вывод шим на 11 пор

}


6.





Дата добавления: 2018-01-21; просмотров: 317; Опубликованный материал нарушает авторские права? | Защита персональных данных | ЗАКАЗАТЬ РАБОТУ


Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Как то на паре, один преподаватель сказал, когда лекция заканчивалась - это был конец пары: "Что-то тут концом пахнет". 7572 - | 7219 - или читать все...

 

54.196.208.187 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.


Генерация страницы за: 0.002 сек.