buenas compañeros...
poco a poco eh creado este ciodigo en arduino
no esta muy bien desarrollado pues soy nuevo en esto...
el error que tengo y quiero solucionar es en la parte de el tiempo de lectura de temperatura
mi programa en fisico funciona bien pero no eh dado con como
pones los botones subir y bajar en tiempo normal, es que tengo que dejarlos oprimido medio segundo
para que me los tome en cuenta el arduino... como podria corregir este error y poner muy aparte
el tiempo de lectura del sensor a el de los pulsadores? saludos
#include <LiquidCrystal.h>//libreria para el display lcd
float tempC=0;//datos de la temperatura
int tempPin=0;//sensor
int suma=7;//boton subir
int resta=8;//boton bajar
int contador=20;//ajuste de temperatur
int buttonPin = 9;
int ledPin = 10;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//salidas tx rx para el display lcd
void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(resta,INPUT);//valor configurado como entrada
pinMode(suma,INPUT);//valor configurado como entrada
pinMode(13,OUTPUT);//pin 13 de arduino configurado como salida
lcd.begin(16, 2);//ajuste del lcd a las columnas y sus filas de inicio
lcd.setCursor(0, 0);
lcd.print("Set Point: ");
lcd.print(contador);//mostrar en lcd "..."
}
void loop()
{
if (digitalRead(buttonPin) == HIGH) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
}
{
if (digitalRead(suma)==HIGH)//comparativa de lecturas en el pin de entrada suma
{
while (digitalRead(suma)==HIGH )//mientras...
{
delay(10);
}
//Si lo soltó, Apagar Led y Contar
if (digitalRead(suma)==LOW)//comparativa de la lectura digital en el pin de entrada suma
{ contador++;
lcd.setCursor(0,0);
lcd.clear();
lcd.print("Set Point: ");
lcd.print(contador);
}
}
if (digitalRead(resta)==HIGH)//comparativa de lecturas en el pin de entrada resta
{
while (digitalRead(resta)==HIGH )//mientras...
{
delay(10);
}
if (digitalRead(resta)==LOW)//comparativa de lecturas en el pin de entrada resta
{ contador--;
lcd.setCursor(0,0);
lcd.print("Set Point: ");
lcd.print(contador);
}
}
}
tempC=(5*analogRead(tempPin)*100.0)/1024.0;// calculo de lectura analogica en el pin de entrada 0A
lcd.setCursor(0, 1);
lcd.print("Temp Act: ");
lcd.print(tempC);//mostrar en lcd "temperatura"
delay(1000);//retraso antes de repetir el ciclo
if(tempC < contador)//condicional si... diferencia para activar el relevador
{
digitalWrite(13, HIGH);
}
else//si no...
{
digitalWrite(13, LOW);//escritura digital de ajuste del pin de salida
}
}