David Eduardo Hernández
Andrés Camilo Ropero
Actividad 7
Diagrama de estados y de flujo
Programa comentado.
#define LED0 0
#define LED1 1
#define LED2 2
#define LED3 3
#define LED4 4
#define LED5 5
#define LED6 6
#define LED7 7
#define LED8 8
David Eduardo Hernández
Andrés Camilo Ropero
#define LED9 9
#define LED10 10
//Inicialización de puertos
int ledPin = 10; // LED conectado al pin 10
int inPin = 9; // Boton conectado al pin 7
int var = 0; // Variable
void setup() {
// put your setup code here, to run once:
pinMode(LED0,OUTPUT); // Pone el pin led ocmo salida
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
David Eduardo Hernández
Andrés Camilo Ropero
pinMode(LED5,OUTPUT);
pinMode(LED6,OUTPUT);
pinMode(LED7,OUTPUT);
pinMode(LED8,OUTPUT);
pinMode(LED9,OUTPUT);
pinMode(LED10,OUTPUT);
pinMode(ledPin, OUTPUT); // Pone el pin led ocmo salida
pinMode(inPin, OUTPUT); // Lee el pín inPin como salida
}
void loop() {
// Secuancia donde se prenden y apagan todos los leds
digitalWrite(LED0,HIGH); //Pone el pin seleccionado encendido
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
David Eduardo Hernández
Andrés Camilo Ropero
digitalWrite(LED3,HIGH);
digitalWrite(LED4,HIGH);
digitalWrite(LED5,HIGH);
digitalWrite(LED6,HIGH);
digitalWrite(LED7,HIGH);
digitalWrite(LED8,HIGH);
digitalWrite(LED9,HIGH);
digitalWrite(LED10,HIGH);
delay(250);
digitalWrite(LED0,LOW);
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
digitalWrite(LED9,LOW);
digitalWrite(LED10,LOW);
delay(500);
//Fin Rutina 1
//Secuencia donde se activan todos los led, menos el 10, luego se activa el 10 y se apagan
todos los leds.
digitalWrite(LED0,HIGH);
digitalWrite(LED1,HIGH);
David Eduardo Hernández
Andrés Camilo Ropero
digitalWrite(LED2,HIGH);
digitalWrite(LED3,HIGH);
digitalWrite(LED4,HIGH);
digitalWrite(LED5,HIGH);
digitalWrite(LED6,HIGH);
digitalWrite(LED7,HIGH);
digitalWrite(LED8,HIGH);
digitalWrite(LED9,HIGH);
delay(500);
var = digitalRead(inPin); // Lee el pin de entrada
digitalWrite(ledPin, var); // pone var al valor del Inpin
delay(500);
digitalWrite(LED0,LOW);
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
digitalWrite(LED9,LOW);
digitalWrite(LED10,LOW);
delay(500);
//Fin Rutina 2
David Eduardo Hernández
Andrés Camilo Ropero
//Comienzo Rutina 3
//Se prenden los LEDs en serie y se apagan en orden inverso.
digitalWrite(LED6,HIGH);
digitalWrite(LED5,HIGH);
digitalWrite(LED4,HIGH);
digitalWrite(LED3,HIGH);
delay(250);
digitalWrite(LED7,HIGH);
digitalWrite(LED2,HIGH);
delay(250);
digitalWrite(LED8,HIGH);
digitalWrite(LED1,HIGH);
delay(250);
digitalWrite(LED9,HIGH);
digitalWrite(LED0,HIGH);
delay(250);
digitalWrite(LED10,HIGH);
delay(250);
//Fin de encendido
digitalWrite(LED10,LOW);
delay(250);
digitalWrite(LED9,LOW);
digitalWrite(LED0,LOW);
delay(250);
David Eduardo Hernández
Andrés Camilo Ropero
digitalWrite(LED8,LOW);
digitalWrite(LED1,LOW);
delay(250);
digitalWrite(LED7,LOW);
digitalWrite(LED2,LOW);
delay(250);
digitalWrite(LED6,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED3,LOW);
delay(500);
delayMicroseconds(200);
// Fin de apagado
//Fin rutina 3
}
Figura diseñada con los leds e implementación en proteus.