Arduino - señal rs232 no se recibe en arduino mega

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 18 puestos en Arduino (en relación al último mes)
Gráfica de Arduino

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

proteus

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder