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); } } } }