Hola a todos, he hecho un programa que mide resistencia y lo compara dependiendo del valor de la resistencia he usado los pines 13,12,8 como salidas, mi programa corre bien mide y hace las comparaciones he intentado ponerle 2 botones uno de set y otro de reset pero no se me da solo funciona el set aqui mi codigo a ver si ven algun error que yo no veo.
int Pin_de_medicion = 0; // Pin analogico 0
int R1 = 330; // Cambiar por el valor de la resistencia conocida
long lectura; // Lectura en el pin analogico 5
float Tension_de_trabajo = 5.0; // VCC
float Voltaje_R2; // Valor que calculamos
float Resistencia; // Valor que calculamos
int pulsador_s=2;
int estado_pulsador_s;
int pulsador_r=3;
int estado_pulsador_r;
void setup()
{
Serial.begin(9600);
Serial.println("Medición de resistencia:");
Serial.println();
pinMode (13,OUTPUT);// Falla por alta impedancia
pinMode (12,OUTPUT); // Falla por baja impedancia
pinMode (8,OUTPUT); // PRUEBA APROBADA
pinMode (pulsador_s,INPUT);
pinMode (pulsador_r,INPUT);
}
void loop()
{
estado_pulsador_s= digitalRead (pulsador_s);
estado_pulsador_r= digitalRead (pulsador_r);
if(estado_pulsador_s==1)
{
// Leemos el valor en el pin A5
lectura=0;
for(int i=0;i<5;i++){
lectura+=analogRead(Pin_de_medicion);
}
lectura=trunc(lectura/5);
// Colculamos el voltaje en la resistencia desconocida
Voltaje_R2=(Tension_de_trabajo/1023.0)*lectura;
// Lo imprimimos en el Monitor Serie
Serial.print("Voltaje en R2: ");
Serial.print(Voltaje_R2,2);
Serial.println(" Voltios");
//Calculamos la resistencia desconocida con las fórmulas
// (V1/R1=V2/R2) y (V1=+5V-V2)
Resistencia=R1*Voltaje_R2/(Tension_de_trabajo-Voltaje_R2);
Serial.print("La resistencia tiene ");
Serial.print(Resistencia,2);
Serial.println(" Ohm.");
Serial.println();
delay(5000);
// Hacemos la comparacion de los valores
if(Resistencia > 2.9){
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
digitalWrite(8,LOW); }
else {
if(Resistencia<2.0){
digitalWrite(12,HIGH);
digitalWrite(13,LOW);
digitalWrite(8,LOW); }
}
if((Resistencia>=2.0)&& (Resistencia<2.8)){
digitalWrite(8,HIGH);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
}
if (estado_pulsador_r==1)
digitalWrite(8,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
}
}