Нужна помощь!
- Войдите на сайт для отправки комментариев
Сб, 24/03/2018 - 20:27
#include <LCD5110_Basic.h> #include "DHT.h" //библиотека для работы с DHT #define DHTPIN 2 //Обозначаем номер пина, к которому подключен датчик DHT11 #define Relay 12 //Обозначаем номер пина, к которому подключен реле LCD5110 myGLCD(7,6,5,4,3); DHT dht(DHTPIN, DHT11); //инициируем датчик DHT extern uint8_t SmallFont[]; // малый шрифт (из библиотеки) extern uint8_t MediumNumbers[]; void setup(){ pinMode (Relay, OUTPUT); //Инициализируем режим работы порта в режиме выхода dht. begin(); myGLCD.InitLCD(); } void loop() { delay (1000); float h = dht.readHumidity(); //Считываем влажность в переменную "h" float t = dht.readTemperature(); //Считываем температуру в переменную "t" if (isnan(t) || isnan(h)) { //если неправильно считалась информация { myGLCD.print ("errorDHT",CENTER, 0); //выводим надпись в программе } else { delay (1000); float h = dht.readHumidity(); float t = dht.readTemperature(); myGLCD.clrScr(); // очистка экрана myGLCD.setFont(SmallFont); // задаём размер шрифта myGLCD.printNumI( t, LEFT, 0);// выводим на строке 0, равнение по левому краю myGLCD.print("c", CENTER, 0);// знак цельсии myGLCD.printNumI( h, LEFT, 16); // выводим в строке 16 myGLCD.print("%", CENTER, 16); //знак % delay (1000); // задержка 1 сек } if (h > 60) //Указываем условие, если переменная "h" (влажность) больше 40% { digitalWrite (Relay, LOW); //то включаем наше реле, которое приводит в действие вентилятор } else //иначе { digitalWrite (Relay, HIGH); //Реле будет выключено, вентилятор не работает } /*Вы можете изменить переменную на переменную . Мы привели вам самый простой пример, его идею можно использовать для создания качественного проекта! */ }
реле работать не хочет( где ошибка парни! Уно, LCD5110, DHT11,реле!
А поподробнее нельзя? Что этот код должен делать? Что делает? Чем первое отличается от второго?
Евгений, спасибо за ваше внимание! Это грубо)))регулятор влажности должен быть,! на данный момент на дисплее отображаются показания! пытался соединить два рабочих када ! Первый вариант выводит показания с датчика на экран, а второй кодвключал и выключал реле при разных переменных( t, h ) вот попробывал совместить, но что то не так
Ну, давайте подробнее. Вы должны написать что-то вроде вот такого: "я хотел, чтобы при температуре Х влючилось реле, это делается в строке ххх, а при температуре Y - выключилось, это делается в строке zzz. Но оно сцуко включается сразу, при темепратуре Y как и положено выключается, а потом уже не включается никогда". Вот примерно так. Ну, что Вы предлагает нам догадываться что Вы хотели и что у Вас получается?
Удалить строки 27,28. В строке 37 вместо 60 написать 40.0
Реле подключить к блоку питания 12V/6A.
expected unqualified-id befor "if"
ошибка компиляции
как при приеме на работу офф!! Нет опыта, иди на...!
Вам нужно немного прочитать про объявление переменных, вам будет понятнее где их лучше объявлять и где они будут работать.
И еще, переменные типа float очень не любят математические операции с другим типом переменных. У вас идет сравнение float с целым числом 60, это неправильно. Не уверен что реле не работает именно из за этого, но это вполне возможно.
И еще, почитайте про работу с Serial, вам будет легче на ходу отслеживать изменения и сразу появится понимание где искать ошибку.
ВСЕМ СПАСИБО за наводки!!! Все заработало как надо!)) Вот скетч, вдруг кому пригодится!
единственно пишет вот такое предупреждение,
warning: deprecated conversion from string constant to 'char*' но в ообщем работает)