programma commando motori
Dependencies: mbed HCSR04 mbed-rtos
Diff: main.cpp
- Revision:
- 1:009a67d6875f
- Parent:
- 0:637e2ec8d164
- Child:
- 2:7df0fc7d8d3c
--- a/main.cpp Mon May 22 08:42:32 2017 +0000 +++ b/main.cpp Tue May 23 10:46:00 2017 +0000 @@ -1,5 +1,9 @@ #include "mbed.h" +/*I pin utilizzati per TX e RX sono pin morfo, a livello hardware collegare il pin TX dell HC05 al PA_12 e quello RX a PA_11 ( a livello harware vanno invertiti )*/ +#define TX PA_11 +#define RX PA_12 + #define PWMB PC_7 //D9 #define DIRB D8 //D8 @@ -12,6 +16,10 @@ PwmOut motorApower(PWMA); DigitalOut motorAdirection(DIRA); +Serial pc(USBTX, USBRX); //istanzio oggetto per utilizzo monitor seriale + +Serial device(TX, RX); //oggetto per gestione seriale bluethoot + void avanti(); void indietro(); void destra(); @@ -20,16 +28,35 @@ int main() { + unsigned char rx; + motorBpower.period_ms(10); motorApower.period_ms(10); - wait(2); + while(true){ + if( device.readable() ) { //funzione simile alla Serial.available() di arduino, solo se il monitor e` attivo permette di utilizzarlo + rx = device.getc(); //funzione simile alla Serial.read() di arduino, legge il carattere dal seriale del bluethoot + pc.printf("recived: %c \r\n",rx); //stampa a video + switch(rx){ //in base alla lettera che riceve sa cosa deve fare + case 'a': + avanti(); + break; + case 'b': + indietro(); + break; + case 'c': + destra(); + break; + case 'd': + sinistra(); + break; + case 'e': + fermo(); + break; + } + } + } - avanti(); - wait(2); - fermo(); - - while(true); } void avanti()