venres, 18 de outubro de 2013

Detectando entradas en Arduino

Na reunión de hoxe tratamos como detectar entradas nun microcontrolador Arduino

O problema que resolvemos é unha modificación do pasado venres 18/10/13. Neste caso temos un pulsador conectado a masa cunha resistencia de 10 K (pull-up). Cando se prema o pulsador o led palpebrará rápido e cando non se prema palpebrará lento.




O código que resolve o exercicio é o que segue:


//Definimos as variables
// O pin 2 de entradas/saídas dixitais ten un pulsador conectado. Dámoslle un nome:

   int pulsador = 2;
   int led = 13;




   // definicion de variable para o retardo do chisca-chisca
   int retardo; 

// A función setup se executa só unha vez, cando inicias a execución do programa:

void setup() {

        // inicializa a comunicación serie a 9600 bits por segundo:     
       Serial.begin(9600);

       // configuramos o pin do pulsador como entrada:
       pinMode(pulsador, INPUT);
       pinMode(led, OUTPUT);

}

// A función loop executase unha e outra outra vez, repetidamente:

void loop() {

       // leemos o pin de entrada:
       int estadoPulsador = digitalRead(pulsador);

      // imprimimos o estado do botón:
       Serial.println(estadoPulsador);

       if (estadoPulsador==HIGH) {
            retardo=500;
            // si esta a "1" a variable de retardo ten un valor de 500mSeg
       } else
            retardo=125;
            // si esta a "0" a variable de retardo ten un valor de 125mSeg
       }
   
      digitalWrite(led, HIGH);   // acende o LED (HIGH é o nivel de voltaxel)
      delay(retardo);               // esperamos co valor retardo
      digitalWrite(led, LOW);    // apaga o LED pasando a voltaxe a LOW
      delay(retardo);

}

Pódese baixar o código do exemplo neste enlace.

Na reunión participaron Nelson, Jairo, Marcos, Gonzalo C e Gonzalo A.

Ningún comentario:

Publicar un comentario