Не могу понять почему не переключается реле, программа выполняется подаётся " HIGH" на контакты реле, загорается светодиод на релюшке, а переключение не происходит. Пробовал несколько однотипных реле все то же. На сигнальной линии по отношению к земле, в момент включения появляется напряжение 2.3в, но контакты не замыкаются. Пробовал на оригинальной ардуине, та же картина. В чем причина, кто знает?
Потому что скорее всего у вас реле, которое включается по низкому уровню, а не по высокому. Для этого достаточно попробовать написать Код (C++): digitalWrite(relayPin, LOW); И посмотреть, включится ли реле.
Может оно срабатывает при 5в на сигнальной линии? #include <OneWire.h> #include <DallasTemperature.h> #define ONE_WIRE_BUS_1 2 #define ONE_WIRE_BUS_2 4 #define Rel_truba 5 #define Rel_filtr 6 OneWire oneWire_1(ONE_WIRE_BUS_1); OneWire oneWire_2(ONE_WIRE_BUS_2); DallasTemperature sensor_truba(&oneWire_1); DallasTemperature sensor_filtr(&oneWire_2); void setup(void) { Serial.begin(9600); sensor_truba.begin(); sensor_filtr.begin(); // sensor_truba.setResolution(Thermometer1, 1); // sensors_filtr.setResolution(Thermometer2, 1); } void loop(void) { sensor_truba.requestTemperatures(); sensor_filtr.requestTemperatures(); float temperature1 = (sensor_truba.getTempCByIndex(0)); float temperature2 = (sensor_filtr.getTempCByIndex(0)); boolean tooCold_t=(temperature1>30.0); boolean tooCold_f=(temperature2<25.0); Serial.print("temp truba: "); Serial.print( temperature1);//Выводим температуру Serial.print(" C"); Serial.println(); Serial.print("temp filtr: "); Serial.print( temperature2);//Выводим температуру Serial.print(" C "); Serial.println(); if(tooCold_t){ digitalWrite(Rel_truba,HIGH); }else { digitalWrite(Rel_truba,LOW); } if(tooCold_f){ digitalWrite(Rel_filtr,HIGH); }else { digitalWrite(Rel_filtr,LOW); } }
Сделайте проще: подключите модуль реле к VCC и GND, а сигнальный шнурок попробуйте ткнуть или в +5В, или в землю и посмотрите, тыканием в какой из уровней у вас срабатывает реле. Код вставьте как положено, плз - есть кнопка "code" на тулбаре редактора. И да - в коде не вижу инициализации пинов реле на выход.
Всё верно, ошибка в коде. Не написал OUTPUT для пинов. Заработало. Большое спасибо !!!!!!!!!!!!!!!!!!!!!!!!!