Подключение релейного модуля к ардуино через LCD keypad shield 1602a.

bars1
Offline
Зарегистрирован: 18.07.2021

Возникла проблема.

При подключении релейного модуля помимо необходимого in3 включается in4(при этом реле издает шипящий звук)
in1 подключен на d2
in2 подключен на d0
in3 подключен на d3
in4 подключен на d1
Код:

#include <LiquidCrystal.h>
int timer;
int vlaj;
int voda=1;
int vlaga=700;
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup() {
Serial.begin(9600);
lcd.begin (16,2);
pinMode(3, OUTPUT);
digitalWrite(3,1);
}
void loop() {
vlaj=analogRead(A5);
Serial.println (analogRead(A5));
int newvlaga = map(vlaj,820,535,2,0);
Serial.println ( newvlaga );
if (newvlaga == 0) {
lcd.setCursor (1, 1);
lcd.print (" vlag: max ");
}
if (newvlaga == 1) {
lcd.setCursor (1, 1);
lcd.print (" vlag: sr ");
}
if (newvlaga == 2) {
lcd.setCursor (1, 1);
lcd.print (" vlag: min ");
}
if (analogRead(A1) > voda) {
Serial.println (" voda est ");
lcd.setCursor (1, 0);
lcd.print (" voda est ");
 if (analogRead(A5) > vlaga) {
lcd.setCursor (1, 1);
lcd.print (" vlag: min ");
 if ((millis() - timer) > 5000) {
Serial.println (" idet poliv ");
lcd.setCursor (1, 1);
lcd.print (" idet poliv ");
digitalWrite (3,0);
delay (3000);
digitalWrite (3,1);
timer = millis();
}
} else {
lcd.setCursor (1, 1);
lcd.print (" vlag: max ");
}
} else {
lcd.setCursor (1, 0);
lcd.print (" vodi net ");
Serial.println (" vodi net ");
}
}

Видео работы кода:
https://cloud.mail.ru/public/91jY/43UNpXyFw
 

Pyotr
Offline
Зарегистрирован: 12.03.2014

Может реле пытается  прошипеть то что в сериал выводится?

b707
Offline
Зарегистрирован: 26.05.2017

bars1, вставьте код по правилам форума

И уточните, что за ардуина у вас

bars1
Offline
Зарегистрирован: 18.07.2021

Arduino Uno.

#include <LiquidCrystal.h>
int timer;
int vlaj;
int voda=1;
int vlaga=700;
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup() {
Serial.begin(9600);
lcd.begin (16,2);
pinMode(3, OUTPUT);
digitalWrite(3,1);
}
void loop() {
vlaj=analogRead(A5);
Serial.println (analogRead(A5));
int newvlaga = map(vlaj,820,535,2,0);
Serial.println ( newvlaga );
if (newvlaga == 0) {
lcd.setCursor (1, 1);
lcd.print (" vlag: max ");
}
if (newvlaga == 1) {
lcd.setCursor (1, 1);
lcd.print (" vlag: sr ");
}
if (newvlaga == 2) {
lcd.setCursor (1, 1);
lcd.print (" vlag: min ");
}
if (analogRead(A1) > voda) {
Serial.println (" voda est ");
lcd.setCursor (1, 0);
lcd.print (" voda est ");
 if (analogRead(A5) > vlaga) {
lcd.setCursor (1, 1);
lcd.print (" vlag: min ");
 if ((millis() - timer) > 5000) {
Serial.println (" idet poliv ");
lcd.setCursor (1, 1);
lcd.print (" idet poliv ");
digitalWrite (3,0);
delay (3000);
digitalWrite (3,1);
timer = millis();
}
} else {
lcd.setCursor (1, 1);
lcd.print (" vlag: max ");
}
} else {
lcd.setCursor (1, 0);
lcd.print (" vodi net ");
Serial.println (" vodi net ");
}
}

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Запомните навсегда: пины D0 и D1 на Uno/Nano и т.п. никогда не трогайте!!! Забудьте о них и считайте, что их нет! Ну, по крайней мере, пока не поймёте, почему я так говорю и не начнёте понимать что можно трогать, а что нельзя.

Перейдите на другие пины.

bars1
Offline
Зарегистрирован: 18.07.2021

Cпасибо. Использовал другие пины и все пошло.

b707
Offline
Зарегистрирован: 26.05.2017

дел