Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed QEI MPU6050 TextLCD
main.cpp@1:59c416ccba42, 2017-03-14 (annotated)
- Committer:
- belsarekaiwalya
- Date:
- Tue Mar 14 15:31:21 2017 +0000
- Revision:
- 1:59c416ccba42
- Parent:
- 0:c9c8c027609e
- Child:
- 2:156f4732fbf1
Tested with L298N motor driver, set according to code conventions of Sumedh
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
belsarekaiwalya | 1:59c416ccba42 | 1 | #include "mbed.h" |
belsarekaiwalya | 1:59c416ccba42 | 2 | /*DigitalOut myled(LED1); |
belsarekaiwalya | 1:59c416ccba42 | 3 | DigitalOut m2dir1(PB_4); |
belsarekaiwalya | 1:59c416ccba42 | 4 | DigitalOut m2dir2(PB_10); |
belsarekaiwalya | 1:59c416ccba42 | 5 | DigitalOut m1dir1(PB_3); |
belsarekaiwalya | 1:59c416ccba42 | 6 | DigitalOut m1dir2(PB_5); |
belsarekaiwalya | 1:59c416ccba42 | 7 | PwmOut pwm1(PA_8); |
belsarekaiwalya | 1:59c416ccba42 | 8 | PwmOut pwm2(PA_9); |
belsarekaiwalya | 0:c9c8c027609e | 9 | |
belsarekaiwalya | 0:c9c8c027609e | 10 | int main() { |
belsarekaiwalya | 1:59c416ccba42 | 11 | |
belsarekaiwalya | 1:59c416ccba42 | 12 | pwm1.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 13 | pwm1 = 1; |
belsarekaiwalya | 1:59c416ccba42 | 14 | |
belsarekaiwalya | 1:59c416ccba42 | 15 | pwm2.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 16 | pwm2 = 1; |
belsarekaiwalya | 1:59c416ccba42 | 17 | |
belsarekaiwalya | 0:c9c8c027609e | 18 | while(1) |
belsarekaiwalya | 0:c9c8c027609e | 19 | { |
belsarekaiwalya | 1:59c416ccba42 | 20 | m2dir1 = 1; |
belsarekaiwalya | 1:59c416ccba42 | 21 | m2dir2 = 0; |
belsarekaiwalya | 1:59c416ccba42 | 22 | m1dir1 = 1; |
belsarekaiwalya | 1:59c416ccba42 | 23 | m1dir2 = 0; |
belsarekaiwalya | 1:59c416ccba42 | 24 | |
belsarekaiwalya | 1:59c416ccba42 | 25 | |
belsarekaiwalya | 1:59c416ccba42 | 26 | //lcd.locate(1,0); |
belsarekaiwalya | 1:59c416ccba42 | 27 | //lcd.printf("Hello\n"); |
belsarekaiwalya | 0:c9c8c027609e | 28 | //myled = 1; // LED is ON |
belsarekaiwalya | 0:c9c8c027609e | 29 | //wait(0.2); // 200 ms |
belsarekaiwalya | 0:c9c8c027609e | 30 | //myled = 0; // LED is OFF |
belsarekaiwalya | 0:c9c8c027609e | 31 | //wait(1.0); // 1 sec |
belsarekaiwalya | 0:c9c8c027609e | 32 | |
belsarekaiwalya | 0:c9c8c027609e | 33 | } |
belsarekaiwalya | 0:c9c8c027609e | 34 | } |
belsarekaiwalya | 0:c9c8c027609e | 35 | */ |
belsarekaiwalya | 0:c9c8c027609e | 36 | #include "mbed.h" |
belsarekaiwalya | 0:c9c8c027609e | 37 | #include "TextLCD.h" |
belsarekaiwalya | 0:c9c8c027609e | 38 | TextLCD lcd(PA_0,PA_1,PA_4,PB_0,PC_1,PC_0); // rs, e, d4-d7 |
belsarekaiwalya | 1:59c416ccba42 | 39 | DigitalOut dirRa(PB_3); |
belsarekaiwalya | 1:59c416ccba42 | 40 | DigitalOut dirRb(PB_5); |
belsarekaiwalya | 1:59c416ccba42 | 41 | DigitalOut dirLa(PB_4); |
belsarekaiwalya | 1:59c416ccba42 | 42 | DigitalOut dirLb(PB_10); |
belsarekaiwalya | 1:59c416ccba42 | 43 | PwmOut pwmL(PA_8);//left |
belsarekaiwalya | 1:59c416ccba42 | 44 | PwmOut pwmR(PA_9);//right |
belsarekaiwalya | 0:c9c8c027609e | 45 | |
belsarekaiwalya | 0:c9c8c027609e | 46 | Serial bt(PC_6,PC_7);//tx,rx |
belsarekaiwalya | 0:c9c8c027609e | 47 | PwmOut mypwm(LED1); |
belsarekaiwalya | 0:c9c8c027609e | 48 | DigitalOut myled(LED1); |
belsarekaiwalya | 0:c9c8c027609e | 49 | Serial serial(USBTX, USBRX); |
belsarekaiwalya | 0:c9c8c027609e | 50 | |
belsarekaiwalya | 0:c9c8c027609e | 51 | int ch ; |
belsarekaiwalya | 0:c9c8c027609e | 52 | int main() |
belsarekaiwalya | 0:c9c8c027609e | 53 | { |
belsarekaiwalya | 0:c9c8c027609e | 54 | bt.baud(9600); |
belsarekaiwalya | 0:c9c8c027609e | 55 | serial.baud(9600); |
belsarekaiwalya | 1:59c416ccba42 | 56 | void brake(); |
belsarekaiwalya | 0:c9c8c027609e | 57 | while(1) |
belsarekaiwalya | 0:c9c8c027609e | 58 | { |
belsarekaiwalya | 0:c9c8c027609e | 59 | if(bt.readable()) |
belsarekaiwalya | 0:c9c8c027609e | 60 | { |
belsarekaiwalya | 0:c9c8c027609e | 61 | ch = bt.getc(); |
belsarekaiwalya | 0:c9c8c027609e | 62 | lcd.cls(); |
belsarekaiwalya | 0:c9c8c027609e | 63 | switch(ch) |
belsarekaiwalya | 0:c9c8c027609e | 64 | { |
belsarekaiwalya | 1:59c416ccba42 | 65 | case 'w'://Front |
belsarekaiwalya | 1:59c416ccba42 | 66 | void front(); |
belsarekaiwalya | 1:59c416ccba42 | 67 | dirRa = 1; |
belsarekaiwalya | 1:59c416ccba42 | 68 | dirRb = 0; |
belsarekaiwalya | 1:59c416ccba42 | 69 | dirLa = 1; |
belsarekaiwalya | 1:59c416ccba42 | 70 | dirLb = 0; |
belsarekaiwalya | 1:59c416ccba42 | 71 | pwmL.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 72 | pwmL=0.5; |
belsarekaiwalya | 1:59c416ccba42 | 73 | pwmR.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 74 | pwmR=0.5; |
belsarekaiwalya | 1:59c416ccba42 | 75 | |
belsarekaiwalya | 0:c9c8c027609e | 76 | lcd.cls(); |
belsarekaiwalya | 0:c9c8c027609e | 77 | serial.printf("Forward\n"); |
belsarekaiwalya | 0:c9c8c027609e | 78 | lcd.locate(1,0); |
belsarekaiwalya | 0:c9c8c027609e | 79 | lcd.printf("Forward\n"); |
belsarekaiwalya | 0:c9c8c027609e | 80 | break; |
belsarekaiwalya | 0:c9c8c027609e | 81 | |
belsarekaiwalya | 1:59c416ccba42 | 82 | case 'a'://Left |
belsarekaiwalya | 1:59c416ccba42 | 83 | dirRa = 1; |
belsarekaiwalya | 1:59c416ccba42 | 84 | dirRb = 0; |
belsarekaiwalya | 1:59c416ccba42 | 85 | dirLa = 0; |
belsarekaiwalya | 1:59c416ccba42 | 86 | dirLb = 0; |
belsarekaiwalya | 1:59c416ccba42 | 87 | pwmL.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 88 | pwmL=0; |
belsarekaiwalya | 1:59c416ccba42 | 89 | pwmR.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 90 | pwmR=0.5; |
belsarekaiwalya | 1:59c416ccba42 | 91 | |
belsarekaiwalya | 1:59c416ccba42 | 92 | lcd.cls(); |
belsarekaiwalya | 1:59c416ccba42 | 93 | serial.printf("Left\n"); |
belsarekaiwalya | 1:59c416ccba42 | 94 | lcd.locate(1,0); |
belsarekaiwalya | 1:59c416ccba42 | 95 | lcd.printf("Left\n"); |
belsarekaiwalya | 1:59c416ccba42 | 96 | //void left(); |
belsarekaiwalya | 0:c9c8c027609e | 97 | break; |
belsarekaiwalya | 0:c9c8c027609e | 98 | |
belsarekaiwalya | 1:59c416ccba42 | 99 | case 's'://Back |
belsarekaiwalya | 1:59c416ccba42 | 100 | dirRa = 0; |
belsarekaiwalya | 1:59c416ccba42 | 101 | dirRb = 1; |
belsarekaiwalya | 1:59c416ccba42 | 102 | dirLa = 0; |
belsarekaiwalya | 1:59c416ccba42 | 103 | dirLb = 1; |
belsarekaiwalya | 1:59c416ccba42 | 104 | pwmL.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 105 | pwmL=0.5; |
belsarekaiwalya | 1:59c416ccba42 | 106 | pwmR.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 107 | pwmR=0.5; |
belsarekaiwalya | 1:59c416ccba42 | 108 | |
belsarekaiwalya | 0:c9c8c027609e | 109 | lcd.cls(); |
belsarekaiwalya | 0:c9c8c027609e | 110 | serial.printf("Back\n"); |
belsarekaiwalya | 0:c9c8c027609e | 111 | lcd.locate(1,0); |
belsarekaiwalya | 0:c9c8c027609e | 112 | lcd.printf("Back\n"); |
belsarekaiwalya | 0:c9c8c027609e | 113 | void back(); |
belsarekaiwalya | 0:c9c8c027609e | 114 | break; |
belsarekaiwalya | 0:c9c8c027609e | 115 | |
belsarekaiwalya | 1:59c416ccba42 | 116 | case 'd'://Right |
belsarekaiwalya | 1:59c416ccba42 | 117 | dirRa = 0; |
belsarekaiwalya | 1:59c416ccba42 | 118 | dirRb = 0; |
belsarekaiwalya | 1:59c416ccba42 | 119 | dirLa = 1; |
belsarekaiwalya | 1:59c416ccba42 | 120 | dirLb = 0; |
belsarekaiwalya | 1:59c416ccba42 | 121 | pwmL.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 122 | pwmL=0.5f; |
belsarekaiwalya | 1:59c416ccba42 | 123 | pwmR.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 124 | pwmR=0; |
belsarekaiwalya | 1:59c416ccba42 | 125 | |
belsarekaiwalya | 0:c9c8c027609e | 126 | lcd.cls(); |
belsarekaiwalya | 0:c9c8c027609e | 127 | serial.printf("Right\n"); |
belsarekaiwalya | 0:c9c8c027609e | 128 | lcd.locate(1,0); |
belsarekaiwalya | 0:c9c8c027609e | 129 | lcd.printf("Right\n"); |
belsarekaiwalya | 0:c9c8c027609e | 130 | void right(); |
belsarekaiwalya | 0:c9c8c027609e | 131 | break; |
belsarekaiwalya | 0:c9c8c027609e | 132 | |
belsarekaiwalya | 1:59c416ccba42 | 133 | case 'O'://Stop |
belsarekaiwalya | 1:59c416ccba42 | 134 | dirRa = 1; |
belsarekaiwalya | 1:59c416ccba42 | 135 | dirRb = 0; |
belsarekaiwalya | 1:59c416ccba42 | 136 | dirLa = 1; |
belsarekaiwalya | 1:59c416ccba42 | 137 | dirLb = 0; |
belsarekaiwalya | 1:59c416ccba42 | 138 | pwmL.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 139 | pwmL=0; |
belsarekaiwalya | 1:59c416ccba42 | 140 | pwmR.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 141 | pwmR=0; |
belsarekaiwalya | 1:59c416ccba42 | 142 | |
belsarekaiwalya | 1:59c416ccba42 | 143 | lcd.cls(); |
belsarekaiwalya | 1:59c416ccba42 | 144 | serial.printf("STOP\n"); |
belsarekaiwalya | 1:59c416ccba42 | 145 | lcd.locate(1,0); |
belsarekaiwalya | 1:59c416ccba42 | 146 | lcd.printf("STOP\n"); |
belsarekaiwalya | 1:59c416ccba42 | 147 | void Brake(); |
belsarekaiwalya | 1:59c416ccba42 | 148 | break; |
belsarekaiwalya | 1:59c416ccba42 | 149 | |
belsarekaiwalya | 1:59c416ccba42 | 150 | case 'A'://Anticlock |
belsarekaiwalya | 1:59c416ccba42 | 151 | dirRa = 1; |
belsarekaiwalya | 1:59c416ccba42 | 152 | dirRb = 0; |
belsarekaiwalya | 1:59c416ccba42 | 153 | dirLa = 0; |
belsarekaiwalya | 1:59c416ccba42 | 154 | dirLb = 1; |
belsarekaiwalya | 1:59c416ccba42 | 155 | pwmL.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 156 | pwmL=0.5; |
belsarekaiwalya | 1:59c416ccba42 | 157 | pwmR.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 158 | pwmR=0.5; |
belsarekaiwalya | 1:59c416ccba42 | 159 | |
belsarekaiwalya | 1:59c416ccba42 | 160 | lcd.cls(); |
belsarekaiwalya | 1:59c416ccba42 | 161 | serial.printf("AntiClock\n"); |
belsarekaiwalya | 1:59c416ccba42 | 162 | lcd.locate(1,0); |
belsarekaiwalya | 1:59c416ccba42 | 163 | lcd.printf("AntiClock\n"); |
belsarekaiwalya | 1:59c416ccba42 | 164 | break; |
belsarekaiwalya | 1:59c416ccba42 | 165 | |
belsarekaiwalya | 1:59c416ccba42 | 166 | case 'C'://Clock |
belsarekaiwalya | 1:59c416ccba42 | 167 | dirRa = 0; |
belsarekaiwalya | 1:59c416ccba42 | 168 | dirRb = 1; |
belsarekaiwalya | 1:59c416ccba42 | 169 | dirLa = 1; |
belsarekaiwalya | 1:59c416ccba42 | 170 | dirLb = 0; |
belsarekaiwalya | 1:59c416ccba42 | 171 | pwmL.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 172 | pwmL=0.5f; |
belsarekaiwalya | 1:59c416ccba42 | 173 | pwmR.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 174 | pwmR=0.5f; |
belsarekaiwalya | 1:59c416ccba42 | 175 | |
belsarekaiwalya | 1:59c416ccba42 | 176 | lcd.cls(); |
belsarekaiwalya | 1:59c416ccba42 | 177 | serial.printf("Clock\n"); |
belsarekaiwalya | 1:59c416ccba42 | 178 | lcd.locate(1,0); |
belsarekaiwalya | 1:59c416ccba42 | 179 | lcd.printf("Clock\n"); |
belsarekaiwalya | 1:59c416ccba42 | 180 | break; |
belsarekaiwalya | 1:59c416ccba42 | 181 | |
belsarekaiwalya | 1:59c416ccba42 | 182 | |
belsarekaiwalya | 1:59c416ccba42 | 183 | |
belsarekaiwalya | 1:59c416ccba42 | 184 | |
belsarekaiwalya | 1:59c416ccba42 | 185 | |
belsarekaiwalya | 0:c9c8c027609e | 186 | default: |
belsarekaiwalya | 0:c9c8c027609e | 187 | serial.printf("Brake"); |
belsarekaiwalya | 0:c9c8c027609e | 188 | lcd.cls(); |
belsarekaiwalya | 0:c9c8c027609e | 189 | lcd.locate(1,0); |
belsarekaiwalya | 0:c9c8c027609e | 190 | lcd.printf("Brake"); |
belsarekaiwalya | 0:c9c8c027609e | 191 | void brake(); |
belsarekaiwalya | 0:c9c8c027609e | 192 | |
belsarekaiwalya | 0:c9c8c027609e | 193 | } |
belsarekaiwalya | 0:c9c8c027609e | 194 | |
belsarekaiwalya | 0:c9c8c027609e | 195 | } |
belsarekaiwalya | 0:c9c8c027609e | 196 | |
belsarekaiwalya | 0:c9c8c027609e | 197 | //serial.printf("%c\n",ch); |
belsarekaiwalya | 0:c9c8c027609e | 198 | } |
belsarekaiwalya | 0:c9c8c027609e | 199 | } |
belsarekaiwalya | 0:c9c8c027609e | 200 | void front() |
belsarekaiwalya | 0:c9c8c027609e | 201 | { |
belsarekaiwalya | 1:59c416ccba42 | 202 | |
belsarekaiwalya | 1:59c416ccba42 | 203 | dirRa = 1; |
belsarekaiwalya | 1:59c416ccba42 | 204 | dirRb = 0; |
belsarekaiwalya | 1:59c416ccba42 | 205 | dirLa = 1; |
belsarekaiwalya | 1:59c416ccba42 | 206 | dirLb = 0; |
belsarekaiwalya | 1:59c416ccba42 | 207 | pwmL.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 208 | pwmL=0.5; |
belsarekaiwalya | 1:59c416ccba42 | 209 | pwmR.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 210 | pwmR=0.5; |
belsarekaiwalya | 0:c9c8c027609e | 211 | |
belsarekaiwalya | 0:c9c8c027609e | 212 | } |
belsarekaiwalya | 0:c9c8c027609e | 213 | void brake() |
belsarekaiwalya | 0:c9c8c027609e | 214 | { |
belsarekaiwalya | 1:59c416ccba42 | 215 | dirRa = 0; |
belsarekaiwalya | 1:59c416ccba42 | 216 | dirRb = 0; |
belsarekaiwalya | 1:59c416ccba42 | 217 | dirLa = 0; |
belsarekaiwalya | 1:59c416ccba42 | 218 | dirLb = 0; |
belsarekaiwalya | 1:59c416ccba42 | 219 | pwmL.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 220 | pwmL=0.0; |
belsarekaiwalya | 1:59c416ccba42 | 221 | pwmR.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 222 | pwmR=0.0; |
belsarekaiwalya | 0:c9c8c027609e | 223 | |
belsarekaiwalya | 0:c9c8c027609e | 224 | } |
belsarekaiwalya | 0:c9c8c027609e | 225 | void back() |
belsarekaiwalya | 0:c9c8c027609e | 226 | { |
belsarekaiwalya | 1:59c416ccba42 | 227 | dirRa = 0; |
belsarekaiwalya | 1:59c416ccba42 | 228 | dirRb = 1; |
belsarekaiwalya | 1:59c416ccba42 | 229 | dirLa = 0; |
belsarekaiwalya | 1:59c416ccba42 | 230 | dirLb = 1; |
belsarekaiwalya | 1:59c416ccba42 | 231 | pwmL.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 232 | pwmL=0.5; |
belsarekaiwalya | 1:59c416ccba42 | 233 | pwmR.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 234 | pwmR=0.5; |
belsarekaiwalya | 0:c9c8c027609e | 235 | |
belsarekaiwalya | 0:c9c8c027609e | 236 | } |
belsarekaiwalya | 0:c9c8c027609e | 237 | void left() |
belsarekaiwalya | 0:c9c8c027609e | 238 | { |
belsarekaiwalya | 1:59c416ccba42 | 239 | dirRa = 0; |
belsarekaiwalya | 1:59c416ccba42 | 240 | dirRb = 1; |
belsarekaiwalya | 1:59c416ccba42 | 241 | dirLa = 0; |
belsarekaiwalya | 1:59c416ccba42 | 242 | dirLb = 0; |
belsarekaiwalya | 1:59c416ccba42 | 243 | pwmL.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 244 | pwmL=0.5; |
belsarekaiwalya | 1:59c416ccba42 | 245 | pwmR.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 246 | pwmR=0.0; |
belsarekaiwalya | 0:c9c8c027609e | 247 | |
belsarekaiwalya | 0:c9c8c027609e | 248 | } |
belsarekaiwalya | 0:c9c8c027609e | 249 | void right() |
belsarekaiwalya | 0:c9c8c027609e | 250 | { |
belsarekaiwalya | 1:59c416ccba42 | 251 | dirRa = 0; |
belsarekaiwalya | 1:59c416ccba42 | 252 | dirRb = 0; |
belsarekaiwalya | 1:59c416ccba42 | 253 | dirLa = 0; |
belsarekaiwalya | 1:59c416ccba42 | 254 | dirLb = 1; |
belsarekaiwalya | 1:59c416ccba42 | 255 | pwmL.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 256 | pwmL=0.0f; |
belsarekaiwalya | 1:59c416ccba42 | 257 | pwmR.period_ms(1); |
belsarekaiwalya | 1:59c416ccba42 | 258 | pwmR=0.5f; |
belsarekaiwalya | 0:c9c8c027609e | 259 | |
belsarekaiwalya | 0:c9c8c027609e | 260 | } |