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:22b33429aff5
diff -r 000000000000 -r 22b33429aff5 main.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Thu Nov 22 01:19:55 2018 +0000
@@ -0,0 +1,152 @@
+r#include "mbed.h"
+#include "main.h"
+Timer tiempo;
+Serial command(USBTX, USBRX);
+
+DigitalIn entrada (PC_9);
+DigitalOut S0 (PA_9);
+DigitalOut S1 (PA_8);
+DigitalOut S3 (PC_7);
+DigitalOut S2 (PA_10);
+
+int valor;
+int color=0;
+int rojo=0;
+int azul=0;
+int verde=0;
+int Detectar();
+int tme=0;
+
+int main() {
+
+ init_serial();
+
+
+ debug_m("inicio \n");
+ uint32_t read_cc;
+ while(1)
+ {
+ read_cc=read_command();
+ switch (read_cc) {
+ case 0x01: moving(); break ;
+ case 0x02: moving2();break ;
+ case 0x03: sensor();break ;
+ case 0x04:moving3();break;
+ }
+ }
+}
+
+uint32_t read_command()
+{
+ // retorna los byte recibidos concatenados en un entero,
+
+ char intc=command.getc();
+ while(intc != 0xFF)
+ intc=command.getc();
+ return command.getc();
+}
+void init_serial()
+{
+ command.baud(9600);
+}
+void moving(){
+ debug_m("se inicia el comado mover..\n");
+ char nmotor=command.getc();
+ char pos=command.getc();
+ char endc=command.getc();
+ mover_ser(nmotor,pos);
+ debug_m("fin del comado guardar..\n");
+}
+void moving2(){
+ debug_m("se inicia el comado mover arana..\n");
+ char nmotor=command.getc();
+ char pos=command.getc();
+ char endc=command.getc();
+ mover_ser2(nmotor,pos);
+ debug_m("fin del comado guardar..\n");
+}
+
+void moving3(){
+
+ debug_m("se inicia el comado caminar adelante..\n");
+ mover_ser3();
+ debug_m("fin del comado guardar..\n");
+}
+
+
+void sensor()
+{
+ while(1){
+ color=command.getc();
+ S0=1;
+ S1=1;
+ S2=0;
+ S3=0;
+ rojo=Detectar();
+ command.printf("ROJO ");
+ command.printf("%d ",rojo);
+ S0=1;
+ S1=1;
+ S2=0;
+ S3=1;
+ azul=Detectar();
+ command.printf("AZUL ");
+ command.printf("%d ",azul);
+ S0=1;
+ S1=1;
+ S2=1;
+ S3=1;
+ verde=Detectar();
+ command.printf("VERDE");
+ command.printf("%d\n ",verde);
+
+
+ if ((rojo>600)&(rojo<800) & (azul>600)&(azul<800) & (verde>100)){
+
+ command.printf("AZUL \n");}
+
+ else{
+ if ((rojo<200) & (azul<200) & (verde<200)){
+
+ command.printf("ROJO\n");}
+
+ else{
+
+ if ((rojo>500)&(rojo<800) & (azul>500)&(azul<800) & (verde<100)){
+
+ command.printf("VERDE\n");}
+
+ else{
+ command.printf("COLOR NO VALIDO\n");
+ }
+ }
+ }
+ }
+ }
+
+ int Detectar(){
+ tme=0;
+ while (!entrada){}
+ while (entrada) {}
+ while (!entrada){}
+ tiempo.start();
+ while (entrada) {}
+ while (!entrada){}
+ while (entrada) {}
+ while (!entrada){}
+ while (entrada) {}
+ tiempo.stop();
+ tme=tiempo.read_us();
+ tiempo.reset();
+ return(tme);
+
+
+ }
+
+
+
+void debug_m(char *s , ... ){
+ #if DEBUG
+ command.printf(s);
+ #endif
+}
\ No newline at end of file