Anda di halaman 1dari 3

PRÁCTICA Nº 4: CONTROL DE UN LED CON UN PULSADOR

Materiales:
Placa protoboard
Microcontroladora Arduino
Cable de conexión
6 Diodos LED
6 Resistencias de 220 Ω
Cablecillos para realizar puentes

Objetivo
Realizar una secuencia de acciones repetidas
Iterar con un bucle por distintos periféricos

En la programación secuencial se ejecutan ordenes o comandos uno después de


otros, estos comandos pueden leer información externa (como la de un pulsador o
de otros dispositivos como sensores), ejecutar acciones (encender un led, activar
un motor), o realizar una operación interna (operaciones aritmética, lógicas, etc.).

El bucle for es una estructura utilizada para realizar acciones repetitivas en un


número determinado, para ello se necesita de una variable índice, una condición y
un incrementador.

Sintaxis:
for (Variable índice; Condición de control; Incrementador)
• Variable Índice: Es la variable sobre la que se itera, y valor inicial, por ejemplo: int
i=0. Iteramos con una variable llamada i que es un entero y cuyo valor inicial será
0.
• Condición de control: Es la condición de cuantas veces se repetirá el bucle,
mientras esta condición siga siendo verdadera, así por ejemplo: i < 10 . Esta com-
probación se realizará al principio de cada iteración, es decir, cuando la condición
es falsa la primera vez, la iteración se detendrá.
• Incrementador: Se ejecuta al final de la iteración, por ejemplo: i=i+1. Es decir,
después de cada iteración i se incrementa una unidad (podría ser cualquier otra
operación). Es importante notar que esto se realiza al finalizar la iteración, por lo
que en la primera iteración, i vale 0.
Según el ejemplo tenemos:
for (int i=0; i<10; i=i+1)

Los 6 LEDs conectados a terminales configuradas como salida en la placa Arduino


parpadean usando un bucle for (), realizando un ciclo de ida y vuelta a través de
los pines digitales 2-7. Los LEDs se encienden y se apagan, en secuencia, utili-
zando las funciones digitalWrite () y delay().
Montaje

Programa

/* Bucle de iteracion for */

int timer = 100; // Cuanto mayor el numero, mas lento el paradeo

void setup() {
// Utilizamos un bucle for para inicializar cada pin como salida:
for (int thisPin = 2; thisPin < 8; thisPin++) {
pinMode(thisPin, OUTPUT);
}
}

void loop() {
// bucle desde la terminal 2 hasta la terminal 7:
for (int thisPin = 2; thisPin < 8; thisPin++) {
// Pone la terminal en alto:
digitalWrite(thisPin, HIGH);
delay(timer);
// Pone la terminal en bajo:
digitalWrite(thisPin, LOW);
}

// bucle desde la terminal 7 hasta la terminal 2:


for (int thisPin = 7; thisPin >= 2; thisPin--) {
// Pone la terminal en alto:
digitalWrite(thisPin, HIGH);
delay(timer);
// Pone la terminal en bajo:
digitalWrite(thisPin, LOW);
}
}

Actividades
1. Modificar el programa para que el parpadeo de los leds sean dos veces
más rápido.
2. Cambiar la dirección del parpadeo.
3. Encender los leds desde los extremos hacia el centro y viceversa.
4. Realizar al parpadeo de leds de un extremo al otro durante 15 ciclos y
esperar 1 segundo para luego continuar el ciclo.
5. Conforme se desarrolla el parpadeo de un extremo al otro (actividad 4),
disminuir el tiempo de encendido y apagado.