123

Dependencies:   TM1638 mbed HCSR04

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "hcsr04.h"
00003 #include "TM1638.h"  
00004 
00005 Serial pc(SERIAL_TX, SERIAL_RX);  
00006 DigitalOut led1(PC_10);           
00007 Ticker distancee;
00008 AnalogOut Da(PA_5);
00009 /*********************************************************************************************************************/
00010 //Display
00011 TM1638::KeyData_t keydata; 
00012 TM1638_LEDKEY8 LEDKEY8(PB_5,PB_4,PB_3,PA_10);
00013 /*********************************************************************************************************************/
00014 //PULT
00015 /*InterruptIn D(PA_14); //D //D1
00016 InterruptIn A(PA_13); //A //D2
00017 InterruptIn B(PA_15); //B //D0
00018 InterruptIn C(PC_12); //C //D3*/
00019 /********************************************************************************************************************/
00020 //DigitalOut myled(LED2);
00021 
00022 //DigitalOut trig(PA_3);
00023 //DigitalIn echo(PD_7);
00024 HCSR04  usensor(PB_13,PB_14);
00025 unsigned int dist=0;
00026 int flag1, flag2, flag3 = 0;
00027 int i,j,k,m,size=0;
00028 int a,b,c,d,e,f,g,h = 0;
00029 
00030 /*void BB() {
00031     led1 = !led1;
00032 }
00033 void DD() {
00034     led1= !led1;
00035 }
00036 void AA() {
00037     led1 = !led1;
00038 }
00039 void CC() {
00040     led1 = !led1;
00041 }*/
00042 
00043 void ddistance ()
00044 {
00045     usensor.start();
00046     dist=usensor.get_dist_cm();
00047     }  
00048 
00049 void sbros ()
00050 {
00051     a=0;
00052     b=0;
00053     c=0;
00054     d=0;
00055     e=0;
00056     f=0;
00057     g=0;
00058     h=0;
00059     }
00060 void perebros ()
00061 {
00062     if(h>9)
00063             {
00064                 g++;
00065                 h=0;
00066                 if(g>9)
00067                 {
00068                     f++;
00069                     g=0;
00070                     h=0;
00071                     if(f>9)
00072                     {
00073                         sbros();
00074                         }
00075                     }
00076                 
00077                 }
00078     }
00079     
00080 int main()
00081 {
00082    /* B.rise(&BB);
00083     D.rise(&DD);
00084     A.rise(&AA);
00085     C.rise(&CC);*/
00086     int verh;
00087     int nij;
00088     while(1) {  
00089     ddistance();
00090     LEDKEY8.printf ("%d%d%d%d%d%d%d%d", a, b, c, d, e, f, g, h);
00091         verh = 80;
00092         nij = 10; 
00093         if(dist >verh)
00094             {
00095             flag1=1;
00096             }
00097         if(flag1==1 && dist < nij)
00098             {
00099             flag2=1;
00100             }
00101         if (flag1==1 && flag2==1 && dist>verh)
00102         {
00103             flag3=1;
00104             }   
00105         if( flag1==1 && flag2==1 && flag3==1)
00106             {
00107             flag1=0;
00108             flag2=0;
00109             flag3=0;
00110             h++;
00111             perebros();
00112             }
00113         if (LEDKEY8.getKeys(&keydata)) {
00114      // pc.printf("Keydata 0..3 = 0x%02x 0x%02x 0x%02x 0x%02x\r\n", keydata[0], keydata[1], keydata[2], keydata[3]);
00115        if (keydata[0] == 0x01) { //sw1  
00116        int k;
00117        k=h; 
00118         h++;
00119         if(h-k==1)
00120         {
00121            wait(0.3);
00122            perebros();
00123             }
00124             }  
00125         if (keydata[1] == 0x01) { //sw1  
00126             sbros();
00127             }  
00128         if (keydata[2] == 0x01) { //sw1 
00129             if (e<9)
00130             {
00131             e++; 
00132             wait(0.3);
00133             }
00134             else e=0;
00135             }
00136         if (keydata[3] == 0x01) { 
00137           /*if(h+g+f<e)
00138         {
00139            h=0;
00140            g=0;
00141            f=0;
00142            e=0;
00143             }  */
00144       if(h>=e)
00145       {
00146           h=h-e;
00147           }
00148       else if(h<e)
00149       {
00150            if(g==0)
00151            {
00152                f=f-1;
00153                g=g+10-(e-h);
00154                h=h+10;
00155                h=h-g;
00156                }
00157             else if(g!=0)
00158             {
00159                 h=h+10;
00160                 h=h-e;
00161                 g=g-1;
00162                 }
00163                 }
00164                 wait(0.3);
00165             } 
00166         }
00167     }
00168 }