Go Down

Topic: proyecto alarma (Read 357 times) previous topic - next topic

Jorgexy79L

Sep 23, 2017, 04:50 am Last Edit: Sep 23, 2017, 04:58 am by Jorgexy79L
Hola, no se si la programacion este mal, ya que he revisado mi circuito varias veces y si tengo todo bien conectado, lo cual me lleva a pensar que la programacion este mal y no encuentro cual es el problema, el programa dice que al precionar los botones 1 y 3 se debe de apagar los leds, pero al precionarlos los leds siguen igual y ya revise que los botones estuvieran bien colocados

Gracias por ayudar

Code: [Select]

const int buttonpin1=2;                  //boton combinacion
const int buttonpin2=4;                  //boton combinacion
const int buttonpin3=7;                  //boton combinacion
const int led_pin9=9;
const int led_pin10=10;
const int led_pin11=11;
int leds[]={9,10,11};                    //arreglo para que los leds se enciendan
int tiempo=1000;
const int buttonpin8=8;   //pin que activara la alarma,,,leds


void setup()
{
 pinMode(buttonpin1,INPUT);
 pinMode(buttonpin2,INPUT);
 pinMode(buttonpin3,INPUT);
 pinMode(buttonpin8,INPUT);
 pinMode(led_pin9,OUTPUT);
 pinMode(led_pin10,OUTPUT);
 pinMode(led_pin11,OUTPUT);
}

void loop()
{

     int  buttonstate=digitalRead(buttonpin8);
      if(buttonstate==HIGH){
      for(int contadorleds=0;contadorleds<3;contadorleds++)
  {
  for (int contadorcolor=0;contadorcolor<=255;contadorcolor++) //ciclo que nos permite encender tres leds +++++
   {   
   analogWrite(leds[contadorleds],contadorcolor);
   }
  delay(tiempo);
  //desactivar();
  }
  desactivar();
      }
}
 void desactivar()
      {
  if((digitalRead(buttonpin1)==1)&&(digitalRead(buttonpin2)==0)&&(digitalRead(buttonpin3)==1))    //si esta la combinacion bien se va a prender el foco
  {
   digitalWrite(leds[9,10,11],LOW);           //se apaga la alarma
 
   
  }
  else
  {
      Serial.println("codigo incorrecto");    //se imprime el valor de la variable en la consola de arduino con codigo erroneo
     
  }
 
 
 
   }




surbyte

#1
Sep 23, 2017, 05:38 am Last Edit: Sep 23, 2017, 05:43 am by surbyte
Corrige esto aunque no se si funcionará, al menos parcialmente si
Esta linea no exite

Code: [Select]
digitalWrite(leds[9,10,11],LOW);           //se apaga la alarma
no pudes poner los 3 pines y esperar que apague los 3. de hecho seguramente no apaga ninguno.

Asi es lo correcto

Code: [Select]
void desactivar(){
 if ((digitalRead(buttonpin1) ==1) && (digitalRead(buttonpin2)==0) && (digitalRead(buttonpin3)==1))  {  //si esta la combinacion bien se va a prender el foco
 digitalWrite(leds[ 9],LOW);           //se apaga la alarma
 digitalWrite(leds[10],LOW);           //se apaga la alarma
 digitalWrite(leds[11],LOW);           //se apaga la alarma
 }
 else {
 Serial.println("codigo incorrecto");    //se imprime el valor de la variable en la consola de arduino con codigo erroneo
 }
}



ATENCION
Imaginaba que encontraría otro error y claro.. el inefaltable delay(1000);

tienes un for de 3 leds y otro de 256 pasos o sea 3 x 256 = 768
y por cada uno un delay de 1000 mseg = 1 seg o sea tienes 768 segundos.768/60 = 12,8 min

Pero para peor.. no solo debes esperar casi 13 minutos sino que debe permanecer presionado el pin 8

Completa locura!!!

Comprendes?

Jorgexy79L

muchas gracias, lo intentare

Go Up