Arduino - Problema con pulsadores

 
Vista:
sin imagen de perfil

Problema con pulsadores

Publicado por Ana (1 intervención) el 06/12/2020 18:41:26
Hola buenas tardes, y gracias de antemano. Soy nueva en esto estoy empezando con Arduino y me han pedido en clase que haga un circuito con el sensor de temperatura y humedad DHT11, los datos se mostrarán en una LCD, hasta aquí todo bien, pero los distintos datos debe de mostrarlos en pantalla, es decir al pulsa P1 debe aparecer la temperatura, al pulsar P2 la humedad y al pulsar P3 debe aparecer primero la temperatura durante un segundo y después la humedad, y así sucesivamente. El programa me funciona pero no los pulsadores, tengo que pulsarlos un tiempo para que me cambien y debería de ser al pulsar y soltar, no encuentro como hacerlo bien, hay algo que me falta y no lo encuentro, he probado a darle mas tiempo a los pulsadores pero así hay que pulsarlos mas tiempo
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <DHT.h>
#include <DHT_U.h>
 
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
 
#define PULS1 9
#define PULS2 10
#define PULS3 11
 
DHT sensor(8,DHT11);
LiquidCrystal_I2C lcd(0x27,16,2);
 
int humedad, temperatura;
byte i;
 
 
void setup() {
  pinMode(PULS1,INPUT_PULLUP);
  pinMode(PULS2,INPUT_PULLUP);
  pinMode(PULS3,INPUT_PULLUP);
  Serial.begin(9600);
  lcd.init();
  lcd.backlight();
  sensor.begin();
  lcd.print("P1->TEMP P2->HUM");
  lcd.setCursor(0,1);
  lcd.print("P3->TEMP y HUM");
 
}
 
void loop() {
 
if(digitalRead(PULS1)==0){
      lcd.clear();
     for(i=0;i<255;i++){
      temperatura=sensor.readTemperature();
      lcd.setCursor(2,0);
      lcd.print("TEMPERATURA:");
      lcd.setCursor(6,1);
      lcd.print(temperatura);
      lcd.setCursor(9,1);
      lcd.print("C");
      Serial.print("Temperatura ");
      Serial.print(temperatura);
      Serial.println("ºC");
      delay(1000);
  if(digitalRead(PULS1)==1 &&  digitalRead(PULS2)==0 || digitalRead(PULS3)==0){
      break;
      }
      }
  }
 
if(digitalRead(PULS2)==0){
      lcd.clear();
     for(i=0;i<255;i++){
      humedad=sensor.readHumidity();
      lcd.setCursor(4,0);
      lcd.print("HUMEDAD:");
      lcd.setCursor(6,1);
      lcd.print(humedad);
      lcd.setCursor(9,1);
      lcd.print("%");
      Serial.print("Humedad ");
      Serial.print(humedad);
      Serial.println("%");
      delay(1000);
  if(digitalRead(PULS2)==1 &&  digitalRead(PULS1)==0 || digitalRead(PULS3)==0){
      break;
      }
      }
   }
 
if(digitalRead(PULS3)==0){
      lcd.clear();
     for(i=0;i<255;i++){
      temperatura=sensor.readTemperature();
      lcd.setCursor(2,0);
      lcd.print("TEMPERATURA:");
      lcd.setCursor(6,1);
      lcd.print(temperatura);
      lcd.setCursor(9,1);
      lcd.print("C");
      Serial.print("Temperatura ");
      Serial.print(temperatura);
      Serial.println("ºC");
      delay(1000);
      lcd.clear();
      humedad=sensor.readHumidity();
      lcd.setCursor(4,0);
      lcd.print("HUMEDAD:");
      lcd.setCursor(6,1);
      lcd.print(humedad);
      lcd.setCursor(9,1);
      lcd.print("%");
      Serial.print("Humedad ");
      Serial.print(humedad);
      Serial.println("%");
      delay(1000);
   if(digitalRead(PULS3)==1 &&  digitalRead(PULS2)==0 || digitalRead(PULS1)==0){
    break;
    }
    }
    }
}
. Muchas gracias por la ayuda.
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