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.
Diff: main.cpp
- Revision:
- 0:29bf6bfc3778
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Tue Dec 03 03:38:44 2013 +0000
@@ -0,0 +1,239 @@
+#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;
+}
\ No newline at end of file