13 d’oct. 2014

BARRA DE LEDS AMB ARDUINO

Aquest és el primer projecte amb Senyals Digitals dels alumnes de Tecnologia 4ESO, en el marc del projecte Creative Technologies Barcelona: tres LEDs que s'encenen primer de dreta a esquerra i després d'esquerra a dreta.

Aquest és el muntatge del DavidCh i el Pablo C:


El vídeo de funcionament:

  

El codi del programa: 

/* Barra de LEDs */
int pins[]={7,11,12}; // Aquí tenim els pins escollits dins la placa Arduino.
int i=0;
int leds= 3; // El nombre de leds que tenim connectats.

void setup()
{
  for(i=0; i < leds; i=i + 1)
  {pinMode(pins[i],OUTPUT);}
}

void loop()
{
  scroll_e(300); // Ens permet que els leds s'apaguin i s'encenguin cap a l'esquerra. 
  // El parametre de la funció ens indica el que triguen els LEDs en romandre en una posició especifica, en aquest cas, 300ms.
  scroll_d(300); // Ens permet que els leds s'apaguin i s'encenguin cap a la dreta. 
  // El parametre de la funció ens indica el que triguen els LEDs en romandre en una posició especifica, en aquest cas, 300ms.
}

//.................... (Seperaració PROGRAMA/Sub-PROGRAMES)................................

void la_llum(int temps) // Funció que ens ajuda a que el programa sigui més comprensible.
{
  for (i=0; i <leds;i=i+1)
  {digitalWrite(pins[i],HIGH);} // amb això encenem tots els leds.
  delay(temps);
}

void apaga_tot(int temps) // Funció que ens ajuda a que el programa sigui més comprensible.
{
  for (i=0; i <leds;i=i+1)  
  {digitalWrite(pins[i],LOW);} // amb això apaguem tots els leds.
  delay(temps);
}

void scroll_e(int temps) // Funció que ens ajuda a que el programa sigui més comprensible.
{
   for(i=0;i < leds; i=i+1) // Amb aquest bucle, fem que els LEDs s'apaguin i s'encenguin de dreta a esquerra.
  {
    digitalWrite(pins[i],HIGH); 
    delay(temps); 
    digitalWrite(pins[i],LOW);
  }
}

void scroll_d(int temps) // Funció que ens ajuda a que el programa sigui més comprensible.
{
 for(i=leds -1;i > -1; i=i-1) // Amb aquest bucle, fem que els LEDs s'apaguin i s'encenguin d'esquerra a dreta.
 {
   digitalWrite(pins[i],HIGH); 
   delay(temps);
   digitalWrite(pins[i],LOW);
 }
}

Cap comentari:

Publica un comentari a l'entrada