123

Dependencies:   TM1638 mbed HCSR04

main.cpp

Committer:
lucem1n
Date:
2019-04-08
Revision:
1:63541cb7c9d0
Parent:
0:6f4090a07409

File content as of revision 1:63541cb7c9d0:

#include "mbed.h"
#include "hcsr04.h"
#include "TM1638.h"  

Serial pc(SERIAL_TX, SERIAL_RX);  
DigitalOut led1(PC_10);           
Ticker distancee;
AnalogOut Da(PA_5);
/*********************************************************************************************************************/
//Display
TM1638::KeyData_t keydata; 
TM1638_LEDKEY8 LEDKEY8(PB_5,PB_4,PB_3,PA_10);
/*********************************************************************************************************************/
//PULT
/*InterruptIn D(PA_14); //D //D1
InterruptIn A(PA_13); //A //D2
InterruptIn B(PA_15); //B //D0
InterruptIn C(PC_12); //C //D3*/
/********************************************************************************************************************/
//DigitalOut myled(LED2);

//DigitalOut trig(PA_3);
//DigitalIn echo(PD_7);
HCSR04  usensor(PB_13,PB_14);
unsigned int dist=0;
int flag1, flag2, flag3 = 0;
int i,j,k,m,size=0;
int a,b,c,d,e,f,g,h = 0;

/*void BB() {
    led1 = !led1;
}
void DD() {
    led1= !led1;
}
void AA() {
    led1 = !led1;
}
void CC() {
    led1 = !led1;
}*/

void ddistance ()
{
    usensor.start();
    dist=usensor.get_dist_cm();
    }  

void sbros ()
{
    a=0;
    b=0;
    c=0;
    d=0;
    e=0;
    f=0;
    g=0;
    h=0;
    }
void perebros ()
{
    if(h>9)
            {
                g++;
                h=0;
                if(g>9)
                {
                    f++;
                    g=0;
                    h=0;
                    if(f>9)
                    {
                        sbros();
                        }
                    }
                
                }
    }
    
int main()
{
   /* B.rise(&BB);
    D.rise(&DD);
    A.rise(&AA);
    C.rise(&CC);*/
    int verh;
    int nij;
    while(1) {  
    ddistance();
    LEDKEY8.printf ("%d%d%d%d%d%d%d%d", a, b, c, d, e, f, g, h);
        verh = 80;
        nij = 10; 
        if(dist >verh)
            {
            flag1=1;
            }
        if(flag1==1 && dist < nij)
            {
            flag2=1;
            }
        if (flag1==1 && flag2==1 && dist>verh)
        {
            flag3=1;
            }   
        if( flag1==1 && flag2==1 && flag3==1)
            {
            flag1=0;
            flag2=0;
            flag3=0;
            h++;
            perebros();
            }
        if (LEDKEY8.getKeys(&keydata)) {
     // pc.printf("Keydata 0..3 = 0x%02x 0x%02x 0x%02x 0x%02x\r\n", keydata[0], keydata[1], keydata[2], keydata[3]);
       if (keydata[0] == 0x01) { //sw1  
       int k;
       k=h; 
        h++;
        if(h-k==1)
        {
           wait(0.3);
           perebros();
            }
            }  
        if (keydata[1] == 0x01) { //sw1  
            sbros();
            }  
        if (keydata[2] == 0x01) { //sw1 
            if (e<9)
            {
            e++; 
            wait(0.3);
            }
            else e=0;
            }
        if (keydata[3] == 0x01) { 
          /*if(h+g+f<e)
        {
           h=0;
           g=0;
           f=0;
           e=0;
            }  */
      if(h>=e)
      {
          h=h-e;
          }
      else if(h<e)
      {
           if(g==0)
           {
               f=f-1;
               g=g+10-(e-h);
               h=h+10;
               h=h-g;
               }
            else if(g!=0)
            {
                h=h+10;
                h=h-e;
                g=g-1;
                }
                }
                wait(0.3);
            } 
        }
    }
}