//librerias servo
#include<Servo.h>
Servo miServo;
//seven segmet
int g=13;
int f=12;
int a=8;
int b=7;
int e=4;
int d=2;
int c=3;
//variable de lectura
int lec;
void setup() {
//configuracion seven segmen display
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
//configuracion de la señal de activavion o lectura
pinMode(A0, INPUT);
//configuraciones de led semafor
pinMode(6, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
//configuracion servo
miServo.attach(5);
//activacion de monitor serial
Serial.begin(9600);
}
void loop() {
//lectura pin digital
lec=digitalRead(A0);
//imprime el valor de la lectura
Serial.println(lec);
//condicional de cumplimiento
if (lec==1){
//funcion de conteo y servo
secuencia();
}else{
//pocicion de servo
miServo.write(90);
//funcion semaforo
semaforo();
}
}
//funcion secuencia
void secuencia(){
//activacion de led rojo
analogWrite(6,255);
//poccion servo
miServo.write(0);
//cuenta regresiva
nueve();
delay(1000);
ocho();
delay(1000);
siete();
delay(1000);
seis();
delay(1000);
cinco();
delay(1000);
cuatro();
delay(1000);
tres();
delay(1000);
dos();
delay(1000);
uno();
delay(1000);
cero();
delay(1000);
off();
}
//funciones individuales
void nueve(){
digitalWrite(a,1);
digitalWrite(b,1);
analogWrite(c,255);
digitalWrite(f,1);
digitalWrite(g,1);
digitalWrite(d,0);
digitalWrite(e,0);
}
void ocho(){
digitalWrite(a,1);
digitalWrite(b,1);
analogWrite(c,255);
digitalWrite(f,1);
digitalWrite(g,1);
digitalWrite(d,1);
digitalWrite(e,1);
}
void siete(){
digitalWrite(a,1);
digitalWrite(b,1);
analogWrite(c,255);
digitalWrite(f,0);
digitalWrite(g,0);
digitalWrite(d,0);
digitalWrite(e,0);
}
void seis(){
digitalWrite(a,1);
digitalWrite(b,0);
analogWrite(c,255);
digitalWrite(f,1);
digitalWrite(g,1);
digitalWrite(d,1);
digitalWrite(e,1);
}
void cinco(){
digitalWrite(a,1);
digitalWrite(b,0);
analogWrite(c,255);
digitalWrite(f,1);
digitalWrite(g,1);
digitalWrite(d,1);
digitalWrite(e,0);
}
void cuatro(){
digitalWrite(a,0);
digitalWrite(b,1);
analogWrite(c,255);
digitalWrite(f,1);
digitalWrite(g,1);
digitalWrite(d,0);
digitalWrite(e,0);
}
void tres(){
digitalWrite(a,1);
digitalWrite(b,1);
analogWrite(c,255);
digitalWrite(f,0);
digitalWrite(g,1);
digitalWrite(d,1);
digitalWrite(e,0);
}
void dos(){
digitalWrite(a,1);
digitalWrite(b,1);
analogWrite(c,0);
digitalWrite(f,0);
digitalWrite(g,1);
digitalWrite(d,1);
digitalWrite(e,1);
}
void uno(){
digitalWrite(a,0);
digitalWrite(b,1);
analogWrite(c,1);
digitalWrite(f,0);
digitalWrite(g,0);
digitalWrite(d,0);
digitalWrite(e,0);
}
void cero(){
digitalWrite(a,1);
digitalWrite(b,1);
analogWrite(c,255);
digitalWrite(f,1);
digitalWrite(g,0);
digitalWrite(d,1);
digitalWrite(e,1);
}
void off(){
digitalWrite(a,0);
digitalWrite(b,0);
analogWrite(c,0);
digitalWrite(f,0);
digitalWrite(g,0);
digitalWrite(d,0);
digitalWrite(e,0);
}
void semaforo(){
analogWrite(6,255);
delay(2000);
analogWrite(6,255);
analogWrite(9,255);
delay(2000);
analogWrite(6,0);
analogWrite(9,0);
analogWrite(10,255);
delay(2000);
analogWrite(9,255);
analogWrite(10,0);
delay(2000);
analogWrite(6,255);
analogWrite(9,0);
delay(2000);
}