señal rs232 no se recibe en arduino mega
Publicado por richard (1 intervención) el 03/12/2020 16:31:50
al tratar de recibir el mensaje " encender" este no se envia hasta que el estado del sensor sea 1, la cosa es que quiero que se pueda recibir tanto "encender" y "apagar" sin la necesidad de que el estado del sensor sea 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <LiquidCrystal.h>
LiquidCrystal lcd(10,12,50,51,52,53); //rs,e,d4,d5,d6,d7
int entrada =44 ,cont=45,estado=46;
int rele =8;
int buzzer = 7;
String estade;
int entrada2= 19;
void setup() {
lcd.begin(16,2); //inicializar LCD
pinMode(entrada,INPUT);
lcd.print("contando ");
pinMode(rele,OUTPUT);
pinMode(buzzer,OUTPUT);
Serial.begin(9600);
}
void loop()
{
if(Serial.available()> 0){
estade=Serial.readString();
if(estade=="encender")
{
digitalWrite(rele,HIGH);
tone(buzzer,800,500);
delay(500);
digitalWrite(rele,LOW);
lcd.begin(16,2); //inicializar LCD
lcd.print("contando");
cont=0;
Serial.println();
Serial.print("valor tecleado: ");
Serial.println(estade);
Serial.print("led prendido");
Serial.println();
}
if(estade=="apagar")
{
digitalWrite(rele,LOW);
noTone(buzzer);
lcd. noDisplay();
Serial.println();
Serial.print("valor tecleado: ");
Serial.println(estade);
Serial.print("led apagado");
Serial.println();
delay(1000);
}
}
estado = digitalRead(entrada);
if(estado == LOW){
cont++;
}
while(estado == LOW){ //antirebote(?)
estado = digitalRead(entrada);
}
lcd.setCursor(7,1); //coordenadas LCD (x,y)
lcd.print(cont);
if(cont>5){
lcd.clear();
lcd.print("contando");
cont=1;
}
if(cont == 5){
// digitalWrite(rele,HIGH);
Serial.println("contenedor lleno");
delay(1000);
}
if(cont==5){
tone(buzzer,800,1000);
}
if(cont>5){
noTone(buzzer);
}
}
Valora esta pregunta


0