Programa mbed

Dependencies:   mbed TextLCD MMA8451Q

Files at this revision

API Documentation at this revision

Comitter:
poresc
Date:
Mon Nov 23 23:48:59 2020 +0000
Commit message:
m

Changed in this revision

MMA8451Q.lib Show annotated file Show diff for this revision Revisions of this file
TextLCD.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MMA8451Q.lib	Mon Nov 23 23:48:59 2020 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/emilmont/code/MMA8451Q/#c4d879a39775
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TextLCD.lib	Mon Nov 23 23:48:59 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/simon/code/TextLCD/#308d188a2d3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Nov 23 23:48:59 2020 +0000
@@ -0,0 +1,263 @@
+#include "mbed.h"
+#include "string"
+#include "TextLCD.h"
+Serial pc(USBTX,USBRX);
+
+TextLCD lcd(PTE20,PTE21,PTE22,PTE23,PTE29,PTE30, TextLCD::LCD16x2);
+DigitalOut negro(PTB0);
+DigitalOut naranja(PTB1);
+DigitalOut cafe(PTB2);
+DigitalOut amarillo(PTB3);
+DigitalIn pulso(PTC1);
+void velocidad(int a,float ad);
+double temp=0;
+int numero_pasos=0;
+int k=0;
+string cadena;
+int selec;
+char sentido;
+int recorrido=0;
+char tiempo;
+bool antirebote=false;
+Timer Timer1;
+float rpm=0,auxrpm=0;
+int r=0;
+int dist(char datos[5]);
+
+
+int main(){
+  char buffer[5];
+  int red=0;
+     while(1){
+  if((pulso==0)&&(antirebote==false)){
+           // contador++;
+            //disa++;
+            antirebote=true;
+            auxrpm=Timer1.read_ms();
+            Timer1.stop();
+            Timer1.reset();
+          //  rpm=10000/auxrpm;
+           
+            if(recorrido>0){
+            Timer1.start();}
+            }
+        if((pulso==1)&&(antirebote==true)){
+            antirebote=false;
+            }
+           
+        
+         if(pc.readable()){// captura string
+         
+          pc.gets(buffer,8);
+          buffer[0]=' ';
+          //pc.printf("%s",buffer);
+          sentido=buffer[1];
+        
+          //  lcd.printf("%d",temp);
+         } 
+          red=dist(buffer);
+          if(red!=0){
+              
+          red=dist(buffer);
+          temp=red*0.01;
+       /*   lcd.cls();
+          lcd.locate(0,0);   
+          lcd.printf("%d",red);
+          lcd.locate(0,1);     
+          lcd.printf("%.3f",temp);*/
+         
+    }
+        
+
+/*if(tiempo=='1'){
+ temp=0.001;}*/
+ if(sentido=='d'){
+        
+        //lcd.printf("esta en los extremos");
+        selec=1;
+        //pc.printf("   derecha");
+for(int i=0; i<=600;i++){
+    if(k>4){
+        r=r+1;
+        k=0;
+        }
+         if(r==11){
+            rpm=(r*(1/temp)*60)/1000;
+            lcd.cls();
+            lcd.locate(0,0); 
+            lcd.printf("%.3f",rpm);
+            r=0;}
+    k=k+1;
+    switch(k){
+        case 1:
+        amarillo=1;
+        negro=0;
+        //wait(0.2);
+        break;
+        case 2:
+        cafe=1;
+        amarillo=0;
+        //wait(0.2);
+        break;
+        case 3:
+        naranja=1;
+        cafe=0;
+       // wait(0.2);
+        break;
+        case 4:
+        negro=1;
+        naranja=0;
+       // wait(0.2);
+        break;
+        }
+       wait(temp);
+        
+        
+    
+   } 
+   
+   //rpm=0;
+ //  red=0; 
+   }
+    lcd.cls();
+    lcd.locate(0,0); 
+    lcd.printf("esperando");
+     pc.printf("esperando ");
+            
+ if(sentido=='i'){
+        selec=2;
+        //pc.printf("   izquierda");
+for(int i=0; i<=600;i++){
+    if(k>4){
+        k=0;
+        r=r+1;
+        }
+        if(r==11){
+            rpm=(r*(1/temp)*60)/1000;
+            lcd.cls();
+            lcd.locate(0,0); 
+            lcd.printf("%.3f",rpm);
+            pc.printf("%.1f",rpm);
+            r=0;}
+    k=k+1;
+    switch(k){
+        case 1:
+        negro=1;
+        amarillo=0;
+        //wait(0.2);
+        break;
+        case 2:
+        naranja=1;
+        negro=0;
+        //wait(0.2);
+        break;
+        case 3:
+        cafe=1;
+        naranja=0;
+       // wait(0.2);
+        break;
+        case 4:
+        amarillo=1;
+        cafe=0;
+       // wait(0.2);
+        break;
+        }
+       wait(temp);
+        
+        
+    
+   } 
+    
+  // rpm=0;
+  // red=0; 
+   }
+   lcd.cls();
+    lcd.locate(0,0); 
+    lcd.printf("esperando");
+     pc.printf(" esperando");
+    
+        
+        if(sentido=='n'){
+       /* cafe=0;
+        amarillo=0;
+        negro=0;
+        naranja=0;
+        selec=0;*/
+       // pc.printf("  sin sentido");
+      }
+       // wait(0.5);
+
+
+            
+}
+}  
+
+int dist(char datos[8]){
+   int numero=0,contador=0;
+   char c=' ';
+    for(int i = 8;i >= 0;i --){
+       c=datos[i];
+       //pc.putc(c);
+       if(c=='0'){contador=contador+1;  }
+       if(c=='1'){
+          //  pc.printf("uno");
+            contador=contador+1;
+            if(contador==1){numero=numero+1;}}
+          /*  if(contador==2){numero=numero+10;}
+            if(contador==3){numero=numero+100;} }*/
+        if(c=='2'){
+            contador=contador+1;
+            if(contador==1){numero=numero+2;}}
+           /* if(contador==2){numero=numero+20;}
+            if(contador==3){numero=numero+200;} }*/
+        if(c=='3'){
+            contador=contador+1;
+            if(contador==1){numero=numero+3;}}
+            /*if(contador==2){numero=numero+30;}
+            if(contador==3){numero=numero+300;} }*/
+        if(c=='4'){
+            contador=contador+1;
+            if(contador==1){numero=numero+4;}}
+         /*   if(contador==2){numero=numero+40;}
+            if(contador==3){numero=numero+400;} }*/
+        if(c=='5'){
+            contador=contador+1;
+            if(contador==1){numero=numero+5;}}
+           /* if(contador==2){numero=numero+50;}
+            if(contador==3){numero=numero+500;} }*/
+        if(c=='6'){
+            contador=contador+1;
+            if(contador==1){numero=numero+6;}}
+          /*  if(contador==2){numero=numero+60;}
+            if(contador==3){numero=numero+600;} }*/
+        if(c=='7'){
+            contador=contador+1;
+            if(contador==1){numero=numero+7;}}
+            /*if(contador==2){numero=numero+70;}
+            if(contador==3){numero=numero+700;} }*/
+        if(c=='8'){
+            contador=contador+1;
+            if(contador==1){numero=numero+8;}}
+        /*    if(contador==2){numero=numero+80;}
+            if(contador==3){numero=numero+800;} }*/
+        if(c=='9'){
+            contador=contador+1;
+            if(contador==1){numero=numero+9;}}
+           /* if(contador==2){numero=numero+90;}
+            if(contador==3){numero=numero+900;} }*/
+       
+        }
+        
+   
+    
+      
+   // lcd.printf("%d",numero);
+     
+   return numero;
+               
+               
+            
+    
+            
+    
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Mon Nov 23 23:48:59 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file