Hola a todos! Quiero armar con arduino uno, 2 sondas DS18B20 y una lcd keypad shield, un sensor de temperaturas con un menu simple en pantalla para que ademas de las temperaturas mostradas pueda visualiarse la temperatura minima y la maxima, poder fijar hora y fecha y que los datos de las temperaturas se vallan grabando en la memoria del arduino, mas adelante agregare un dattalogger y tarjeta SD al proyecto. Tb necesito se apague la pantalla al no usarse y se prenda al oprimir cualquier boton del keypad shield, es para ahorrar energia ya que la idea es conectar las sondas y dejarlas durante 2 o tres dias, las lecturas de temperaturas se pueden hacer cada 1 o 5 minutos.
Estuve programando y viendo tutoriales pero no logro hacer el menu de minimo y maximo, ni hablar de todo lo otro jaja
Este es el codigo que hice hasta ahora:
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
OneWire ourWire1(2); //Se establece el pin 2 como bus OneWire
OneWire ourWire2(3); //Se establece el pin 3 como bus OneWire
DallasTemperature sensors1(&ourWire1); //Se declara una variable u objeto para nuestro sensor1
DallasTemperature sensors2(&ourWire2); //Se declara una variable u objeto para nuestro sensor2
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup() {
delay(500);
lcd.begin(16, 2);
Serial.begin(9600);
sensors1.begin(); //Se inicia el sensor 1
sensors2.begin(); //Se inicia el sensor 2
}
void loop() {
sensors1.requestTemperatures(); //Se envía el comando para leer la temperatura
float temp1= sensors1.getTempCByIndex(0); //Se obtiene la temperatura en ºC del sensor 1
sensors2.requestTemperatures(); //Se envía el comando para leer la temperatura
float temp2= sensors2.getTempCByIndex(0); //Se obtiene la temperatura en ºC del sensor 2
Serial.print("Temperatura 1 = ");
Serial.print(temp1);
Serial.print(" C");
Serial.print(" Temperatura 2 = ");
Serial.print(temp2);
Serial.println(" C");
lcd.setCursor(0, 0);
lcd.print("Temp1 = ");
lcd.print(temp1);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Temp2 = ");
lcd.print(temp2);
lcd.println(" C");
delay(500);
}