Está en la página 1de 10

Código para semáforo(Plutarco y Henry Dunant) en Arduino.

// C++ code

//

int ledDerechaVerde = 2;

int ledDerechaAmarillo = 3;

int ledDerechaRojo = 4;

int ledFlechaVerde = 5;

int ledFlechaAmarillo = 6;

int ledFlechaRojo = 7;

int ledNorteVerde = 8;

int ledNorteAmarillo = 9;

int ledNorteRojo = 10;

int ledIzquierdaVerde = 11;

int ledIzquierdaAmarillo = 12;

int ledIzquierdaRojo = 13;

int poten = A0;

float tiempoMax = 60;

float tiempoMin = 12;

int step = 1;

float tiempoPas = 0;

float tiempoLuz = 0;

float antSegundos = 0;

void setup()

pinMode(ledDerechaVerde, OUTPUT);
pinMode(ledDerechaAmarillo, OUTPUT);

pinMode(ledDerechaRojo, OUTPUT);

pinMode(ledFlechaVerde, OUTPUT);

pinMode(ledFlechaAmarillo, OUTPUT);

pinMode(ledFlechaRojo, OUTPUT);

pinMode(ledNorteVerde, OUTPUT);

pinMode(ledNorteAmarillo, OUTPUT);

pinMode(ledNorteRojo, OUTPUT);

pinMode(ledIzquierdaVerde, OUTPUT);

pinMode(ledIzquierdaAmarillo, OUTPUT);

pinMode(ledIzquierdaRojo, OUTPUT);

Serial.begin(9600);

void loop()

float valAnag = analogRead(poten);

float segundos = ((valAnag*(tiempoMax-tiempoMin))/1023)+tiempoMin;

if(segundos!=antSegundos){

Serial.println("Reinicio!!");

tiempoPas = 0;

tiempoPas = tiempoPas + 1;

digitalWrite(ledDerechaVerde, LOW);

digitalWrite(ledDerechaAmarillo, LOW);

digitalWrite(ledDerechaRojo, LOW);
digitalWrite(ledFlechaVerde, LOW);

digitalWrite(ledFlechaAmarillo, LOW);

digitalWrite(ledFlechaRojo, LOW);

digitalWrite(ledNorteVerde, LOW);

digitalWrite(ledNorteAmarillo, LOW);

digitalWrite(ledNorteRojo, LOW);

digitalWrite(ledIzquierdaVerde, LOW);

digitalWrite(ledIzquierdaAmarillo, LOW);

digitalWrite(ledIzquierdaRojo, LOW);

switch(step){

case 1:

//Verde

if(tiempoPas==1){

tiempoLuz = segundos*10;

digitalWrite(ledDerechaVerde, HIGH);

digitalWrite(ledFlechaVerde, HIGH);

digitalWrite(ledNorteRojo, HIGH);

digitalWrite(ledIzquierdaRojo, HIGH);

Serial.println("Paso 1");

break;

case 2:

//Amarillo

tiempoLuz = segundos;

digitalWrite(ledDerechaVerde, HIGH);

digitalWrite(ledFlechaAmarillo, HIGH);

digitalWrite(ledNorteRojo, HIGH);
digitalWrite(ledIzquierdaRojo, HIGH);

Serial.println("Paso 2");

break;

case 3:

//verde

if(tiempoPas==1){

tiempoLuz = segundos*10;

digitalWrite(ledDerechaVerde, HIGH);

digitalWrite(ledFlechaRojo, HIGH);

digitalWrite(ledNorteRojo, HIGH);

digitalWrite(ledIzquierdaVerde, HIGH);

Serial.println("Paso 3");

break;

case 4:

//Amarillo

tiempoLuz = segundos;

digitalWrite(ledDerechaAmarillo, HIGH);

digitalWrite(ledFlechaRojo, HIGH);

digitalWrite(ledNorteRojo, HIGH);

digitalWrite(ledIzquierdaAmarillo, HIGH);

Serial.println("Paso 4");

break;

case 5:

//Verde

if(tiempoPas==1){
tiempoLuz = segundos*10;

digitalWrite(ledDerechaRojo, HIGH);

digitalWrite(ledFlechaRojo, HIGH);

digitalWrite(ledNorteVerde, HIGH);

digitalWrite(ledIzquierdaRojo, HIGH);

Serial.println("Paso 5");

break;

case 6:

//Amarillo

tiempoLuz = segundos;

digitalWrite(ledDerechaRojo, HIGH);

digitalWrite(ledFlechaRojo, HIGH);

digitalWrite(ledNorteAmarillo, HIGH);

digitalWrite(ledIzquierdaRojo, HIGH);

Serial.println("Paso 6");

break;

delay(1000);

if(tiempoPas >= tiempoLuz){

tiempoPas = 0;

Serial.print("Hola!!");

step++;

if(step>6){

step=1;

antSegundos = segundos;
}

Otro código

int LED_POVerde = 2;

int LED_POAmarillo = 3;

int LED_PORojo = 4;

int LED_FVerde = 5;

int LED_FAmarillo = 6;

int LED_FRojo = 7;

int LED_PECVerde = 8;

int LED_PECAmarillo = 9;

int LED_PECRojo = 10;

int LED_OPVerde = 11;

int LED_OPAmarillo = 12;

int LED_OPRojo = 13;

int poten = A0;

int PMax = 7;

int PMin = 1;

int rango = PMax-PMin;

// the setup function runs once when you press reset or power the board

void setup() {

// initialize digital pin LED_BUILTIN as an output.

//pinMode(LED_BUILTIN, OUTPUT);

pinMode(LED_POVerde, OUTPUT);

pinMode(LED_POAmarillo, OUTPUT);

pinMode(LED_PORojo, OUTPUT);

pinMode(LED_FVerde, OUTPUT);

pinMode(LED_FAmarillo, OUTPUT);
pinMode(LED_FRojo, OUTPUT);

pinMode(LED_PECVerde, OUTPUT);

pinMode(LED_PECAmarillo, OUTPUT);

pinMode(LED_PECRojo, OUTPUT);

pinMode(LED_OPVerde, OUTPUT);

pinMode(LED_OPAmarillo, OUTPUT);

pinMode(LED_OPRojo, OUTPUT);

Serial.begin(9600);

// the loop function runs over and over again forever

void loop() {

float valAnag = analogRead(poten);

float P = ((valAnag*(rango))/1023)+PMin;

digitalWrite(LED_PECRojo, HIGH);

digitalWrite(LED_PORojo, HIGH);

digitalWrite(LED_OPRojo, HIGH);

digitalWrite(LED_FRojo, HIGH);

delay(3000/P);

digitalWrite(LED_FRojo, LOW);

digitalWrite(LED_PORojo, LOW);

digitalWrite(LED_FVerde, HIGH);

digitalWrite(LED_POVerde, HIGH);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(31500/P);

digitalWrite(LED_FVerde, LOW);

P = (((analogRead(poten))*(rango))/1023)+PMin;
delay(500/P);

digitalWrite(LED_FVerde, HIGH);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(500/P);

digitalWrite(LED_FVerde, LOW);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(500/P);

digitalWrite(LED_FVerde, HIGH);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(500/P);

digitalWrite(LED_FVerde, LOW);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(500/P);

digitalWrite(LED_FAmarillo, HIGH);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(3000/P);

digitalWrite(LED_FAmarillo, LOW);

digitalWrite(LED_FRojo, HIGH);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(3000/P);

digitalWrite(LED_OPRojo, LOW);

digitalWrite(LED_OPVerde, HIGH);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(51500/P);

digitalWrite(LED_OPVerde, LOW);

digitalWrite(LED_POVerde, LOW);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(500/P);

digitalWrite(LED_OPVerde, HIGH);
digitalWrite(LED_POVerde, HIGH);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(500/P);

digitalWrite(LED_OPVerde, LOW);

digitalWrite(LED_POVerde, LOW);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(500/P);

digitalWrite(LED_OPVerde, HIGH);

digitalWrite(LED_POVerde, HIGH);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(500/P);

digitalWrite(LED_OPVerde, LOW);

digitalWrite(LED_POVerde, LOW);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(500/P);

digitalWrite(LED_OPAmarillo, HIGH);

digitalWrite(LED_POAmarillo, HIGH);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(3000/P);

digitalWrite(LED_OPAmarillo, LOW);

digitalWrite(LED_POAmarillo, LOW);

digitalWrite(LED_OPRojo, HIGH);

digitalWrite(LED_PORojo, HIGH);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(3000/P);

digitalWrite(LED_PECRojo, LOW);

digitalWrite(LED_PECVerde, HIGH);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(91500/P);
digitalWrite(LED_PECVerde, LOW);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(500/P);

digitalWrite(LED_PECVerde, HIGH);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(500/P);

digitalWrite(LED_PECVerde, LOW);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(500/P);

digitalWrite(LED_PECVerde, HIGH);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(500/P);

digitalWrite(LED_PECVerde, LOW);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(500/P);

digitalWrite(LED_PECAmarillo, HIGH);

P = (((analogRead(poten))*(rango))/1023)+PMin;

delay(3000/P);

digitalWrite(LED_PECAmarillo, LOW);

digitalWrite(LED_PECRojo, HIGH);

También podría gustarte