Proyectos 1-8 Primeros Pasos

Jugando con Leds


Proyecto 1a


En este ejemplo conectaremos un led en el pin 7 y lo haremos parpadear a intervalos regulares de un segundo.
Siempre que conectemos un led hay que intercalar una resistencia para limitar la corriente de salida. Cuanto menor sea la resistencia con más intensidad brilla el led, pero si se pone demasiado pequeña podríamos dañar el Arduino. Cualquier valor entre 560 Ohm y 1K Ohm es perfectamente válido.


Esquema

Sketch

 

int led = 7; 

void setup() 

{ 

  pinMode(led, OUTPUT);

}

void loop() {

  digitalWrite(led, HIGH);

  delay(1000);

  digitalWrite(led, LOW);

  delay(1000);

}


Proyecto 1b


En este ejemplo conectamos un led rojo en D7 y otro verde en D8.

En lugar de poner el tiempo de encendido/apagado en números, utilizamos una variable llamada tiempo, de esa forma cada vez que queramos modificar el retardo es suficiente con poner el valor deseado al principio del código.


Esquema


Sketch


int ledR = 7;

int ledV = 8;

int tiempo = 500; 

void setup() { 

 pinMode(ledR, OUTPUT);

 pinMode(ledV, OUTPUT);

} 

void loop() {

 digitalWrite(ledR, HIGH);

 digitalWrite(ledV, LOW);

 delay(tiempo);

 digitalWrite(ledR, LOW);

 digitalWrite(ledV, HIGH);

 delay(tiempo);

}


Proyecto 1c


En este ejemplo conectamos 5 leds en los pines D4, D5, D8, D11 y D13.

Se trata de encender consecutivamente un led durante medio segundo.


Esquema


Sketch

int led1 = 4;
int led2 = 5;
int led3 = 8;
int led4 = 11;
int led5 = 13;
int t = 500;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
}
void loop() {
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
delay(t);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
delay(t);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
delay(t);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, HIGH);
digitalWrite(led5, LOW);
delay(t);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, HIGH);
delay(t);
}


Proyecto 1d

5 Leds se encienden en línea de menos a más intensidad y viceversa.

Hay que modificar el circuito anterior porque ahora necesitamos que todas las salidas tengan capacidad PWM.

Ponemos resistencias de menor valor para que los leds se iluminen con más intensidad.


Esquema


Sketch

int t = 10;

void setup()

{

  pinMode(3, OUTPUT);

  pinMode(5, OUTPUT);

  pinMode(9, OUTPUT);

  pinMode(10, OUTPUT);

  pinMode(11, OUTPUT);

} 

void loop()

{

for ( int a = 0 ; a < 51 ; a++ )

{

analogWrite(3, a);

delay(t);

}

for ( int b = 51 ; b < 102; b++ )

{

analogWrite(5, b);

delay(t);

}

for ( int c = 102 ; c < 153 ; c++ )

{

analogWrite(9, c);

delay(t);

}

for ( int d = 153 ; d < 204; d++ )

{

analogWrite(10, d);

delay(t);

}

for ( int e = 204; e < 256; e++ )

{

analogWrite(11, e);

delay(t);

}

delay(200);

 

for ( int e = 255 ; e >= 204 ; e-- )

{

analogWrite(11, 3);

delay(t);

}

for ( int d = 204 ; d >= 153 ; d-- )

{

analogWrite(10, d);

delay(t);

}

for ( int c = 153 ; c >= 102 ; c-- )

{

analogWrite(9, c);

delay(t);

}

for ( int b = 102 ; b >= 51 ; b-- )

{

analogWrite(5, b);

delay(t);

}

for ( int a = 51 ; a >= 0 ; a-- )

{

analogWrite(3, a);

delay(t);

}

 

delay(200);

}

 

Proyecto 1e

Con el mismo circuito anterior, ahora los cinco leds se encienden a la vez.


Sketch

int t = 5; 

void setup()

{

  pinMode(3, OUTPUT);

  pinMode(5, OUTPUT);

  pinMode(9, OUTPUT);

  pinMode(10, OUTPUT);

  pinMode(11, OUTPUT);

} 

void loop()

{

  for (int a=0; a<256; a++)

  {

    analogWrite(3, a);

    analogWrite(5, a);

    analogWrite(9, a);

    analogWrite(10, a);

    analogWrite(11, a);

    delay(t);

  }

  for (int a=255; a>=0; a--)

  {

    analogWrite(3, a);

    analogWrite(5, a);

    analogWrite(9, a);

    analogWrite(10, a);

    analogWrite(11, a);

    delay(t);

  }

}


Proyecto 1f

Con el mismo circuito anterior, ahora los cinco leds se encienden uno tras otro.


Sketch

int t = 10;

void setup()

{

  pinMode(3, OUTPUT);

  pinMode(5, OUTPUT);

  pinMode(6, OUTPUT);

  pinMode(9, OUTPUT);

  pinMode(10, OUTPUT);

}

void loop()

{

  for ( int a = 0 ; a < 256 ; a++ )

  {

    analogWrite(3, a);

    delay(t);

  }

  for ( int a = 255 ; a >= 0 ; a-- )

  {

    analogWrite(3, a);

    delay(t);

  }

  delay(200);

  for ( int a = 0 ; a < 256 ; a++ )

  {

    analogWrite(5, a);

    delay(t);

  }

  for ( int a = 255 ; a >= 0 ; a-- )

  {

    analogWrite(5, a);

    delay(t);

  }

  delay(200);

 

for ( int a = 0 ; a < 256 ; a++ )

  {

    analogWrite(6, a);

    delay(t);

  }

  for ( int a = 255 ; a >= 0 ; a-- )

  {

    analogWrite(6, a);

    delay(t);

  }

  delay(200);

 


 

for ( int a = 0 ; a < 256 ; a++ )

  {

    analogWrite(9, a);

    delay(t);

  }

  for ( int a = 255 ; a >= 0 ; a-- )

  {

    analogWrite(9, a);

    delay(t);

  }

  delay(200);

    for ( int a = 0 ; a < 256 ; a++ )

  {

    analogWrite(10, a);

    delay(t);

  }

  for ( int a = 255 ; a >= 0 ; a-- )

  {

    analogWrite(10, a);

    delay(t);

  }

  delay(200);

}


Proyecto 1g

Otro ejemplo del concepto PWM, dos leds se iluminan desde 0 hasta 5V alternativamente.

Esquema

Sketch

int t = 10;

int b = 255;

int a = 0;

void setup()

{

pinMode(3, OUTPUT);

pinMode(5, OUTPUT);

}

void loop()

{

analogWrite(3, a);

analogWrite(5, b);

a++

b--

delay(t);

}

for ( int a = 255 ; a >= 0 ; a--) && ( int b = 0 ; b < 256 ; b++ )

{

analogWrite(3, a);

analogWrite(5, b);

delay(t);

}

}