programma commando motori
Dependencies: mbed HCSR04 mbed-rtos
main.cpp@1:009a67d6875f, 2017-05-23 (annotated)
- Committer:
- Wonderjack996
- Date:
- Tue May 23 10:46:00 2017 +0000
- Revision:
- 1:009a67d6875f
- Parent:
- 0:637e2ec8d164
- Child:
- 2:7df0fc7d8d3c
programma per il comando bluethoot di steve
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Wonderjack996 | 0:637e2ec8d164 | 1 | #include "mbed.h" |
Wonderjack996 | 0:637e2ec8d164 | 2 | |
Wonderjack996 | 1:009a67d6875f | 3 | /*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 )*/ |
Wonderjack996 | 1:009a67d6875f | 4 | #define TX PA_11 |
Wonderjack996 | 1:009a67d6875f | 5 | #define RX PA_12 |
Wonderjack996 | 1:009a67d6875f | 6 | |
Wonderjack996 | 0:637e2ec8d164 | 7 | #define PWMB PC_7 //D9 |
Wonderjack996 | 0:637e2ec8d164 | 8 | #define DIRB D8 //D8 |
Wonderjack996 | 0:637e2ec8d164 | 9 | |
Wonderjack996 | 0:637e2ec8d164 | 10 | #define PWMA PB_4 //D5 |
Wonderjack996 | 0:637e2ec8d164 | 11 | #define DIRA D4 //D4 |
Wonderjack996 | 0:637e2ec8d164 | 12 | |
Wonderjack996 | 0:637e2ec8d164 | 13 | PwmOut motorBpower(PWMB); |
Wonderjack996 | 0:637e2ec8d164 | 14 | DigitalOut motorBdirection(DIRB); |
Wonderjack996 | 0:637e2ec8d164 | 15 | |
Wonderjack996 | 0:637e2ec8d164 | 16 | PwmOut motorApower(PWMA); |
Wonderjack996 | 0:637e2ec8d164 | 17 | DigitalOut motorAdirection(DIRA); |
Wonderjack996 | 0:637e2ec8d164 | 18 | |
Wonderjack996 | 1:009a67d6875f | 19 | Serial pc(USBTX, USBRX); //istanzio oggetto per utilizzo monitor seriale |
Wonderjack996 | 1:009a67d6875f | 20 | |
Wonderjack996 | 1:009a67d6875f | 21 | Serial device(TX, RX); //oggetto per gestione seriale bluethoot |
Wonderjack996 | 1:009a67d6875f | 22 | |
Wonderjack996 | 0:637e2ec8d164 | 23 | void avanti(); |
Wonderjack996 | 0:637e2ec8d164 | 24 | void indietro(); |
Wonderjack996 | 0:637e2ec8d164 | 25 | void destra(); |
Wonderjack996 | 0:637e2ec8d164 | 26 | void sinistra(); |
Wonderjack996 | 0:637e2ec8d164 | 27 | void fermo(); |
Wonderjack996 | 0:637e2ec8d164 | 28 | |
Wonderjack996 | 0:637e2ec8d164 | 29 | int main() { |
Wonderjack996 | 0:637e2ec8d164 | 30 | |
Wonderjack996 | 1:009a67d6875f | 31 | unsigned char rx; |
Wonderjack996 | 1:009a67d6875f | 32 | |
Wonderjack996 | 0:637e2ec8d164 | 33 | motorBpower.period_ms(10); |
Wonderjack996 | 0:637e2ec8d164 | 34 | motorApower.period_ms(10); |
Wonderjack996 | 0:637e2ec8d164 | 35 | |
Wonderjack996 | 1:009a67d6875f | 36 | while(true){ |
Wonderjack996 | 1:009a67d6875f | 37 | if( device.readable() ) { //funzione simile alla Serial.available() di arduino, solo se il monitor e` attivo permette di utilizzarlo |
Wonderjack996 | 1:009a67d6875f | 38 | rx = device.getc(); //funzione simile alla Serial.read() di arduino, legge il carattere dal seriale del bluethoot |
Wonderjack996 | 1:009a67d6875f | 39 | pc.printf("recived: %c \r\n",rx); //stampa a video |
Wonderjack996 | 1:009a67d6875f | 40 | switch(rx){ //in base alla lettera che riceve sa cosa deve fare |
Wonderjack996 | 1:009a67d6875f | 41 | case 'a': |
Wonderjack996 | 1:009a67d6875f | 42 | avanti(); |
Wonderjack996 | 1:009a67d6875f | 43 | break; |
Wonderjack996 | 1:009a67d6875f | 44 | case 'b': |
Wonderjack996 | 1:009a67d6875f | 45 | indietro(); |
Wonderjack996 | 1:009a67d6875f | 46 | break; |
Wonderjack996 | 1:009a67d6875f | 47 | case 'c': |
Wonderjack996 | 1:009a67d6875f | 48 | destra(); |
Wonderjack996 | 1:009a67d6875f | 49 | break; |
Wonderjack996 | 1:009a67d6875f | 50 | case 'd': |
Wonderjack996 | 1:009a67d6875f | 51 | sinistra(); |
Wonderjack996 | 1:009a67d6875f | 52 | break; |
Wonderjack996 | 1:009a67d6875f | 53 | case 'e': |
Wonderjack996 | 1:009a67d6875f | 54 | fermo(); |
Wonderjack996 | 1:009a67d6875f | 55 | break; |
Wonderjack996 | 1:009a67d6875f | 56 | } |
Wonderjack996 | 1:009a67d6875f | 57 | } |
Wonderjack996 | 1:009a67d6875f | 58 | } |
Wonderjack996 | 0:637e2ec8d164 | 59 | |
Wonderjack996 | 0:637e2ec8d164 | 60 | } |
Wonderjack996 | 0:637e2ec8d164 | 61 | |
Wonderjack996 | 0:637e2ec8d164 | 62 | void avanti() |
Wonderjack996 | 0:637e2ec8d164 | 63 | { |
Wonderjack996 | 0:637e2ec8d164 | 64 | motorBdirection = 1; |
Wonderjack996 | 0:637e2ec8d164 | 65 | motorAdirection = 0; |
Wonderjack996 | 0:637e2ec8d164 | 66 | motorBpower.pulsewidth(0.01); // 100% |
Wonderjack996 | 0:637e2ec8d164 | 67 | motorApower.pulsewidth(0.01); // 100% |
Wonderjack996 | 0:637e2ec8d164 | 68 | } |
Wonderjack996 | 0:637e2ec8d164 | 69 | |
Wonderjack996 | 0:637e2ec8d164 | 70 | void indietro() |
Wonderjack996 | 0:637e2ec8d164 | 71 | { |
Wonderjack996 | 0:637e2ec8d164 | 72 | motorBdirection = 0; |
Wonderjack996 | 0:637e2ec8d164 | 73 | motorAdirection = 1; |
Wonderjack996 | 0:637e2ec8d164 | 74 | motorBpower.pulsewidth(0.01); // 100% |
Wonderjack996 | 0:637e2ec8d164 | 75 | motorApower.pulsewidth(0.01); // 100% |
Wonderjack996 | 0:637e2ec8d164 | 76 | } |
Wonderjack996 | 0:637e2ec8d164 | 77 | |
Wonderjack996 | 0:637e2ec8d164 | 78 | void destra() |
Wonderjack996 | 0:637e2ec8d164 | 79 | { |
Wonderjack996 | 0:637e2ec8d164 | 80 | motorBdirection = 0; |
Wonderjack996 | 0:637e2ec8d164 | 81 | motorAdirection = 0; |
Wonderjack996 | 0:637e2ec8d164 | 82 | motorBpower.pulsewidth(0.01); // 100% |
Wonderjack996 | 0:637e2ec8d164 | 83 | motorApower.pulsewidth(0.007); // 70% |
Wonderjack996 | 0:637e2ec8d164 | 84 | } |
Wonderjack996 | 0:637e2ec8d164 | 85 | |
Wonderjack996 | 0:637e2ec8d164 | 86 | void sinistra() |
Wonderjack996 | 0:637e2ec8d164 | 87 | { |
Wonderjack996 | 0:637e2ec8d164 | 88 | motorBdirection = 1; |
Wonderjack996 | 0:637e2ec8d164 | 89 | motorAdirection = 1; |
Wonderjack996 | 0:637e2ec8d164 | 90 | motorBpower.pulsewidth(0.007); // 100% |
Wonderjack996 | 0:637e2ec8d164 | 91 | motorApower.pulsewidth(0.01); // 100% |
Wonderjack996 | 0:637e2ec8d164 | 92 | } |
Wonderjack996 | 0:637e2ec8d164 | 93 | |
Wonderjack996 | 0:637e2ec8d164 | 94 | void fermo() |
Wonderjack996 | 0:637e2ec8d164 | 95 | { |
Wonderjack996 | 0:637e2ec8d164 | 96 | motorBpower.pulsewidth(0); // fermo |
Wonderjack996 | 0:637e2ec8d164 | 97 | motorApower.pulsewidth(0); // fermo |
Wonderjack996 | 0:637e2ec8d164 | 98 | } |