Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
- Committer:
- euduardo_guz
- Date:
- 2013-12-03
- Revision:
- 0:29bf6bfc3778
File content as of revision 0:29bf6bfc3778:
#include "mbed.h"
DigitalOut myled(LED1);
int verde_estatico();
int verde_intermitente();
int amarillo();
int rojo_estatico();
int rojo_intermitente();
int rojo_amarillo();
int var_rojo=0;
int var_interm=1;
DigitalIn senal(PTE29); //NOT_RBPU_bit
DigitalOut grabador1(PTE2); //portd.f0
DigitalOut grabador2(PTE20); //portd.f1
int main() {
int r;
int x=1;
//PORTC=0;
//PORTD=0;
//TRISD=0;
//TRISC=0;
//NOT_RBPU_bit=0;
//portc.f5=1;
DigitalOut led0(PTE21); //portc.f0
DigitalOut led1(PTE22); //portc.f1
DigitalOut led2(PTE23); //portc.f2
DigitalOut led5(PTE5); //portc.f5
DigitalOut led3(PTE3); //portc.f3
DigitalOut led4(PTE4); //portc.f4
//DigitalOut grabador1(PTE2); //portd.f0
//DigitalOut grabador2(PTE20); //portd.f1
//DigitalIn senal(PTE29); //NOT_RBPU_bit
//senal=1;
while(1)
{
//semaforo principal
led0=1;
verde_estatico();
led0=0;
verde_intermitente();
led0=1;
verde_intermitente();
led0=0;
verde_intermitente();
led0=1;
verde_intermitente();
led0=0;
verde_intermitente();
led0=1;
verde_intermitente();
var_interm=1;
led0=0;
led1=1;
amarillo();
led1=0;
led2=1;
//semaforo secundario
led5=0;
led3=1;
rojo_estatico();
led3=0;
rojo_intermitente();
led3=1;
rojo_intermitente();
led3=0;
rojo_intermitente();
led3=1;
rojo_intermitente();
led3=0;
rojo_intermitente();
led3=1;
rojo_intermitente();
var_interm=1;
led3=0;
led4=1;
rojo_amarillo();
led4=0;
led5=1;
led2=0;
}
}
int verde_estatico()
{
int r;
int x=1;
for(r=0; r<=50; r++)
{
if(var_rojo==1) // señal de activacion "desde rojo"
{
grabador1=1; // pulso a sonido ~verde~
wait(0.4); //-----cambiar a 200 o 250
grabador1=0;
var_rojo=0;
}
if(senal==0 && x==1) // activacion por baston en verde estatico, o señal de activacion "desde rojo"
{
grabador1=1; //pulso a sonido ~verde~
wait(0.4); //-----cambiar a 200 o 250
grabador1=0;
x=0; // evitar repeticiones de pulso si el baston se deja colocado en el sensor
}
if(senal==1) // si no hay baston
{
}
wait(0.1);
}
x=1;
}
int verde_intermitente()
{
int r;
int x=1;
for(r=0; r<=4; r++)
{
if(senal==0 && var_interm==1) // activacion por baston en verde intermitente
{
grabador2=1; //pulso a sonido ~rojo~
wait(0.4); //------cambiar a 200 o 250
grabador2=0;
x=0;
var_rojo=1; //variable para enviar señal de activacion "desde rojo"
var_interm=0; //no repetir pulso en las demas funciones "intermitente"
}
if(senal==1) // si no hay baston
{
}
wait(0.4);
}
x=1;
}
int amarillo()
{
int r;
int x=1;
for(r=0; r<=15; r++)
{
if(senal==0 && x==1) // activacion por baston en amarillo
{
grabador2=1; // pulso a sonido ~rojo~
wait(0.4); //------cambiar a 200 o 250
grabador2=0;
x=0;
var_rojo=1; //variable para enviar señal de activacion "desde rojo"
}
if(senal==1) // si no hay baston
{
}
wait(0.1);
}
x=1;
}
int rojo_estatico()
{
int r;
int x=1;
for(r=0; r<=50; r++)
{
if(senal==0 && x==1) // activacion por baston en rojo (verde estatico en semaforo secundario)
{
grabador2=1; // pulso a sonido ~rojo~
wait(0.4); //-------cambiar a 200 o 250
grabador2=0;
x=0;
var_rojo=1; //variable para enviar señal de activacion "desde rojo"
}
if(senal==1) // si no hay baston
{
}
wait(0.1);
}
x=1;
}
int rojo_intermitente()
{
int r;
int x=1;
for(r=0; r<=4; r++)
{
if(senal==0 && var_interm==1) // activacion por baston en rojo (verde intermitente en semaforo secundario)
{
grabador2=1; // pulso a sonido ~rojo~
wait(0.4); //-------cambiar a 200 o 250
grabador2=0;
x=0;
var_rojo=1; //variable para enviar señal de activacion "desde rojo"
var_interm=0; //no repetir pulso en las demas funciones "intermitente"
}
if(senal==1) // si no hay baston
{
}
wait(0.1);
}
x=1;
}
int rojo_amarillo()
{
int r;
int x=1;
for(r=0; r<=15; r++)
{
if(senal==0 && x==1) // activacion por baston en rojo (amarillo en semaforo secundario)
{
grabador2=1; // pulso a sonido ~rojo~
wait(0.4); //-------cambiar a 200 o 250
grabador2=0;
// delay_ms(1200); //---------------------------------------------------------------/
//portd.f1=1; // /
//delay_ms(400); // pulso de apagado, para evitar problema de doble sonido /
//portd.f1=0; // ---------------------------------------------------------------/
x=0;
var_rojo=1; //variable para enviar señal de activacion "desde rojo"
}
if(senal==1) // si no hay baston
{
}
wait(0.1);
}
x=1;
}