DC Motor control using current time
Dependencies: 4DGL-uLCD-SE EthernetNetIf Motor NTPClient_NetServices mbed
Fork of Internet_Nokia_LCD_Clock by
Time_based_motor_control.cpp@3:dc6edb51a46e, 2014-03-24 (annotated)
- Committer:
- nturakhia
- Date:
- Mon Mar 24 15:05:00 2014 +0000
- Revision:
- 3:dc6edb51a46e
- Parent:
- 2:944077f530be
Initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
4180_1 | 0:da7f4b6d2b7c | 1 | #include "mbed.h" |
4180_1 | 0:da7f4b6d2b7c | 2 | #include "EthernetNetIf.h" |
4180_1 | 0:da7f4b6d2b7c | 3 | #include "NTPClient.h" |
nturakhia | 1:ebe96d5a5825 | 4 | #include "Motor.h" |
nturakhia | 1:ebe96d5a5825 | 5 | #include "uLCD_4DGL.h" |
nturakhia | 1:ebe96d5a5825 | 6 | #include<string> |
nturakhia | 1:ebe96d5a5825 | 7 | #include<iostream> |
nturakhia | 1:ebe96d5a5825 | 8 | #include<sstream> |
nturakhia | 1:ebe96d5a5825 | 9 | using namespace std; |
nturakhia | 1:ebe96d5a5825 | 10 | |
nturakhia | 1:ebe96d5a5825 | 11 | Serial pc(USBTX,USBRX); |
nturakhia | 1:ebe96d5a5825 | 12 | Motor m(p22, p28, p21); // pwm, fwd, rev |
nturakhia | 1:ebe96d5a5825 | 13 | DigitalIn pin_up(p13); |
nturakhia | 1:ebe96d5a5825 | 14 | DigitalIn pin_down(p14); |
nturakhia | 1:ebe96d5a5825 | 15 | DigitalIn pin_menu(p15); |
nturakhia | 1:ebe96d5a5825 | 16 | DigitalIn pin_enter(p16); |
nturakhia | 1:ebe96d5a5825 | 17 | uLCD_4DGL lcd(p9, p10, p11); // create a global lcd object |
4180_1 | 0:da7f4b6d2b7c | 18 | // Internet of Things clock example: LCD time is set via internet NTP time server |
4180_1 | 0:da7f4b6d2b7c | 19 | EthernetNetIf eth; |
nturakhia | 1:ebe96d5a5825 | 20 | DigitalOut led(LED1); |
4180_1 | 0:da7f4b6d2b7c | 21 | NTPClient ntp; |
nturakhia | 1:ebe96d5a5825 | 22 | DigitalIn pin(p20); |
4180_1 | 0:da7f4b6d2b7c | 23 | |
4180_1 | 0:da7f4b6d2b7c | 24 | int main() { |
nturakhia | 1:ebe96d5a5825 | 25 | pc.printf("beginning"); |
nturakhia | 1:ebe96d5a5825 | 26 | m.speed(1); |
nturakhia | 1:ebe96d5a5825 | 27 | pin_up.mode(PullUp); |
nturakhia | 1:ebe96d5a5825 | 28 | pin_down.mode(PullUp); |
nturakhia | 1:ebe96d5a5825 | 29 | pin_menu.mode(PullUp); |
nturakhia | 1:ebe96d5a5825 | 30 | pin_enter.mode(PullUp); |
nturakhia | 1:ebe96d5a5825 | 31 | |
4180_1 | 0:da7f4b6d2b7c | 32 | //system time structure |
4180_1 | 0:da7f4b6d2b7c | 33 | time_t ctTime; |
4180_1 | 0:da7f4b6d2b7c | 34 | char *time_str; |
4180_1 | 0:da7f4b6d2b7c | 35 | //clear LCD |
4180_1 | 0:da7f4b6d2b7c | 36 | lcd.cls(); |
4180_1 | 0:da7f4b6d2b7c | 37 | lcd.locate(0,2); |
4180_1 | 0:da7f4b6d2b7c | 38 | // lcd.printf prints to LCD display; |
4180_1 | 0:da7f4b6d2b7c | 39 | lcd.printf("Get IP addr..."); |
4180_1 | 0:da7f4b6d2b7c | 40 | EthernetErr ethErr = eth.setup(); |
4180_1 | 0:da7f4b6d2b7c | 41 | //Get an Internet IP address using DHCP |
4180_1 | 0:da7f4b6d2b7c | 42 | if (ethErr) { |
4180_1 | 0:da7f4b6d2b7c | 43 | //error or timeout getting an IP address |
4180_1 | 0:da7f4b6d2b7c | 44 | lcd.cls(); |
4180_1 | 0:da7f4b6d2b7c | 45 | lcd.locate(0,2); |
4180_1 | 0:da7f4b6d2b7c | 46 | lcd.printf("Net Error %d",ethErr); |
4180_1 | 0:da7f4b6d2b7c | 47 | return -1; |
4180_1 | 0:da7f4b6d2b7c | 48 | } |
4180_1 | 0:da7f4b6d2b7c | 49 | lcd.locate(0,3); |
4180_1 | 0:da7f4b6d2b7c | 50 | lcd.printf("Reading Time..."); |
4180_1 | 0:da7f4b6d2b7c | 51 | //specify time server URL |
4180_1 | 0:da7f4b6d2b7c | 52 | Host server(IpAddr(), 123, "0.uk.pool.ntp.org"); |
4180_1 | 0:da7f4b6d2b7c | 53 | //Read time from server |
4180_1 | 0:da7f4b6d2b7c | 54 | ntp.setTime(server); |
4180_1 | 0:da7f4b6d2b7c | 55 | lcd.locate(0,4); |
4180_1 | 0:da7f4b6d2b7c | 56 | lcd.printf("Time set"); |
4180_1 | 0:da7f4b6d2b7c | 57 | //Delay for human time to read LCD display |
4180_1 | 0:da7f4b6d2b7c | 58 | wait(1); |
nturakhia | 1:ebe96d5a5825 | 59 | float motor_speed=1.0; |
nturakhia | 1:ebe96d5a5825 | 60 | int start_time_hr=14; |
nturakhia | 1:ebe96d5a5825 | 61 | int start_time_min=0; |
nturakhia | 1:ebe96d5a5825 | 62 | int end_time_hr=21; |
nturakhia | 1:ebe96d5a5825 | 63 | int end_time_min=0; |
4180_1 | 0:da7f4b6d2b7c | 64 | while (1) { |
4180_1 | 0:da7f4b6d2b7c | 65 | // loop and periodically update the LCD's time display |
nturakhia | 1:ebe96d5a5825 | 66 | |
nturakhia | 1:ebe96d5a5825 | 67 | if(pin_menu==0) |
nturakhia | 1:ebe96d5a5825 | 68 | { |
nturakhia | 1:ebe96d5a5825 | 69 | lcd.cls(); |
nturakhia | 1:ebe96d5a5825 | 70 | lcd.color(LGREY); |
nturakhia | 1:ebe96d5a5825 | 71 | lcd.printf("Start time:\n%d hour ",start_time_hr); |
nturakhia | 1:ebe96d5a5825 | 72 | while(1) |
nturakhia | 1:ebe96d5a5825 | 73 | { |
nturakhia | 1:ebe96d5a5825 | 74 | lcd.color(GREEN); |
nturakhia | 1:ebe96d5a5825 | 75 | if(pin_up==0) |
nturakhia | 1:ebe96d5a5825 | 76 | { |
nturakhia | 1:ebe96d5a5825 | 77 | |
nturakhia | 1:ebe96d5a5825 | 78 | start_time_hr=(start_time_hr+1) % 24; |
nturakhia | 1:ebe96d5a5825 | 79 | lcd.locate(0,1); |
nturakhia | 1:ebe96d5a5825 | 80 | lcd.printf("%d hour ",start_time_hr); |
nturakhia | 1:ebe96d5a5825 | 81 | wait(2); |
nturakhia | 1:ebe96d5a5825 | 82 | } |
nturakhia | 1:ebe96d5a5825 | 83 | else if(pin_down==0) |
nturakhia | 1:ebe96d5a5825 | 84 | { |
nturakhia | 1:ebe96d5a5825 | 85 | if(start_time_hr==0) |
nturakhia | 1:ebe96d5a5825 | 86 | start_time_hr=23; |
nturakhia | 1:ebe96d5a5825 | 87 | else |
nturakhia | 1:ebe96d5a5825 | 88 | start_time_hr=(start_time_hr-1) % 24; |
nturakhia | 1:ebe96d5a5825 | 89 | lcd.locate(0,1); |
nturakhia | 1:ebe96d5a5825 | 90 | lcd.printf("%d hour ",start_time_hr); |
nturakhia | 1:ebe96d5a5825 | 91 | wait(2); |
nturakhia | 1:ebe96d5a5825 | 92 | } |
nturakhia | 1:ebe96d5a5825 | 93 | else if(pin_enter==0) |
nturakhia | 1:ebe96d5a5825 | 94 | { |
nturakhia | 1:ebe96d5a5825 | 95 | wait(2); |
nturakhia | 1:ebe96d5a5825 | 96 | break; |
nturakhia | 1:ebe96d5a5825 | 97 | } |
nturakhia | 1:ebe96d5a5825 | 98 | } |
nturakhia | 1:ebe96d5a5825 | 99 | lcd.locate(0,1); |
nturakhia | 1:ebe96d5a5825 | 100 | lcd.printf("%d min ",start_time_min); |
nturakhia | 1:ebe96d5a5825 | 101 | while(1) |
nturakhia | 1:ebe96d5a5825 | 102 | { |
nturakhia | 1:ebe96d5a5825 | 103 | if(pin_up==0) |
nturakhia | 1:ebe96d5a5825 | 104 | { |
nturakhia | 1:ebe96d5a5825 | 105 | start_time_min=(start_time_min+1) % 60; |
nturakhia | 1:ebe96d5a5825 | 106 | lcd.locate(0,1); |
nturakhia | 1:ebe96d5a5825 | 107 | lcd.printf("%d min ",start_time_min); |
nturakhia | 1:ebe96d5a5825 | 108 | wait(2); |
nturakhia | 1:ebe96d5a5825 | 109 | } |
nturakhia | 1:ebe96d5a5825 | 110 | else if(pin_down==0) |
nturakhia | 1:ebe96d5a5825 | 111 | { |
nturakhia | 1:ebe96d5a5825 | 112 | if(start_time_min==0) |
nturakhia | 1:ebe96d5a5825 | 113 | start_time_min=59; |
nturakhia | 1:ebe96d5a5825 | 114 | else |
nturakhia | 1:ebe96d5a5825 | 115 | start_time_min=(start_time_min-1) % 60; |
nturakhia | 1:ebe96d5a5825 | 116 | lcd.locate(0,1); |
nturakhia | 1:ebe96d5a5825 | 117 | lcd.printf("%d min ",start_time_min); |
nturakhia | 1:ebe96d5a5825 | 118 | wait(2); |
nturakhia | 1:ebe96d5a5825 | 119 | } |
nturakhia | 1:ebe96d5a5825 | 120 | else if(pin_enter==0) |
nturakhia | 1:ebe96d5a5825 | 121 | { |
nturakhia | 1:ebe96d5a5825 | 122 | wait(2); |
nturakhia | 1:ebe96d5a5825 | 123 | break; |
nturakhia | 1:ebe96d5a5825 | 124 | } |
nturakhia | 1:ebe96d5a5825 | 125 | } |
nturakhia | 1:ebe96d5a5825 | 126 | lcd.cls(); |
nturakhia | 1:ebe96d5a5825 | 127 | lcd.color(LGREY); |
nturakhia | 1:ebe96d5a5825 | 128 | lcd.printf("End time:\n%d hour",end_time_hr); |
nturakhia | 1:ebe96d5a5825 | 129 | while(1) |
nturakhia | 1:ebe96d5a5825 | 130 | { |
nturakhia | 1:ebe96d5a5825 | 131 | lcd.color(GREEN); |
nturakhia | 1:ebe96d5a5825 | 132 | if(pin_up==0) |
nturakhia | 1:ebe96d5a5825 | 133 | { |
nturakhia | 1:ebe96d5a5825 | 134 | end_time_hr=(end_time_hr+1) % 24; |
nturakhia | 1:ebe96d5a5825 | 135 | lcd.locate(0,1); |
nturakhia | 1:ebe96d5a5825 | 136 | lcd.printf("%d hour ",end_time_hr); |
nturakhia | 1:ebe96d5a5825 | 137 | wait(2); |
nturakhia | 1:ebe96d5a5825 | 138 | } |
nturakhia | 1:ebe96d5a5825 | 139 | else if(pin_down==0) |
nturakhia | 1:ebe96d5a5825 | 140 | { |
nturakhia | 1:ebe96d5a5825 | 141 | if(end_time_hr==0) |
nturakhia | 1:ebe96d5a5825 | 142 | end_time_hr=23; |
nturakhia | 1:ebe96d5a5825 | 143 | else |
nturakhia | 1:ebe96d5a5825 | 144 | end_time_hr=(end_time_hr-1) % 24; |
nturakhia | 1:ebe96d5a5825 | 145 | lcd.locate(0,1); |
nturakhia | 1:ebe96d5a5825 | 146 | lcd.printf("%d hour ",end_time_hr); |
nturakhia | 1:ebe96d5a5825 | 147 | wait(2); |
nturakhia | 1:ebe96d5a5825 | 148 | } |
nturakhia | 1:ebe96d5a5825 | 149 | else if(pin_enter==0) |
nturakhia | 1:ebe96d5a5825 | 150 | { |
nturakhia | 1:ebe96d5a5825 | 151 | wait(2); |
nturakhia | 1:ebe96d5a5825 | 152 | break; |
nturakhia | 1:ebe96d5a5825 | 153 | } |
nturakhia | 1:ebe96d5a5825 | 154 | } |
nturakhia | 1:ebe96d5a5825 | 155 | lcd.locate(0,1); |
nturakhia | 1:ebe96d5a5825 | 156 | lcd.printf("%d min ",end_time_min); |
nturakhia | 1:ebe96d5a5825 | 157 | while(1) |
nturakhia | 1:ebe96d5a5825 | 158 | { |
nturakhia | 1:ebe96d5a5825 | 159 | if(pin_up==0) |
nturakhia | 1:ebe96d5a5825 | 160 | { |
nturakhia | 1:ebe96d5a5825 | 161 | end_time_min=(end_time_min+1) % 60; |
nturakhia | 1:ebe96d5a5825 | 162 | lcd.locate(0,1); |
nturakhia | 1:ebe96d5a5825 | 163 | lcd.printf("%d min ",end_time_min); |
nturakhia | 1:ebe96d5a5825 | 164 | wait(2); |
nturakhia | 1:ebe96d5a5825 | 165 | } |
nturakhia | 1:ebe96d5a5825 | 166 | else if(pin_down==0) |
nturakhia | 1:ebe96d5a5825 | 167 | { |
nturakhia | 1:ebe96d5a5825 | 168 | if(end_time_min==0) |
nturakhia | 1:ebe96d5a5825 | 169 | end_time_min=59; |
nturakhia | 1:ebe96d5a5825 | 170 | else |
nturakhia | 1:ebe96d5a5825 | 171 | end_time_min=(end_time_min-1) % 60; |
nturakhia | 1:ebe96d5a5825 | 172 | lcd.locate(0,1); |
nturakhia | 1:ebe96d5a5825 | 173 | lcd.printf("%d min ",end_time_min); |
nturakhia | 1:ebe96d5a5825 | 174 | wait(2); |
nturakhia | 1:ebe96d5a5825 | 175 | } |
nturakhia | 1:ebe96d5a5825 | 176 | else if(pin_enter==0) |
nturakhia | 1:ebe96d5a5825 | 177 | { |
nturakhia | 1:ebe96d5a5825 | 178 | wait(2); |
nturakhia | 1:ebe96d5a5825 | 179 | break; |
nturakhia | 1:ebe96d5a5825 | 180 | } |
nturakhia | 1:ebe96d5a5825 | 181 | } |
nturakhia | 1:ebe96d5a5825 | 182 | lcd.cls(); |
nturakhia | 1:ebe96d5a5825 | 183 | lcd.color(LGREY); |
nturakhia | 1:ebe96d5a5825 | 184 | lcd.printf("Motor speed: \n%2.1f (normalized)",motor_speed); |
nturakhia | 1:ebe96d5a5825 | 185 | while(1) |
nturakhia | 1:ebe96d5a5825 | 186 | { |
nturakhia | 1:ebe96d5a5825 | 187 | lcd.color(GREEN); |
nturakhia | 1:ebe96d5a5825 | 188 | if(pin_up==0) |
nturakhia | 1:ebe96d5a5825 | 189 | { |
nturakhia | 1:ebe96d5a5825 | 190 | if(motor_speed==1.0) |
nturakhia | 1:ebe96d5a5825 | 191 | motor_speed=1.0; |
nturakhia | 1:ebe96d5a5825 | 192 | else |
nturakhia | 1:ebe96d5a5825 | 193 | motor_speed=motor_speed+0.1; |
nturakhia | 1:ebe96d5a5825 | 194 | |
nturakhia | 1:ebe96d5a5825 | 195 | lcd.locate(0,1); |
nturakhia | 1:ebe96d5a5825 | 196 | lcd.printf("%2.1f (normalized)",motor_speed); |
nturakhia | 1:ebe96d5a5825 | 197 | wait(2); |
nturakhia | 1:ebe96d5a5825 | 198 | } |
nturakhia | 1:ebe96d5a5825 | 199 | else if(pin_down==0) |
nturakhia | 1:ebe96d5a5825 | 200 | { |
nturakhia | 1:ebe96d5a5825 | 201 | if(motor_speed==0.0) |
nturakhia | 1:ebe96d5a5825 | 202 | motor_speed=0.0; |
nturakhia | 1:ebe96d5a5825 | 203 | else |
nturakhia | 1:ebe96d5a5825 | 204 | motor_speed=motor_speed-0.1; |
nturakhia | 1:ebe96d5a5825 | 205 | |
nturakhia | 1:ebe96d5a5825 | 206 | lcd.locate(0,1); |
nturakhia | 1:ebe96d5a5825 | 207 | lcd.printf("%2.1f (normalized)",motor_speed); |
nturakhia | 1:ebe96d5a5825 | 208 | wait(2); |
nturakhia | 1:ebe96d5a5825 | 209 | } |
nturakhia | 1:ebe96d5a5825 | 210 | else if(pin_enter==0) |
nturakhia | 1:ebe96d5a5825 | 211 | { |
nturakhia | 1:ebe96d5a5825 | 212 | wait(2); |
nturakhia | 1:ebe96d5a5825 | 213 | break; |
nturakhia | 1:ebe96d5a5825 | 214 | } |
nturakhia | 1:ebe96d5a5825 | 215 | } |
nturakhia | 1:ebe96d5a5825 | 216 | } |
nturakhia | 1:ebe96d5a5825 | 217 | |
nturakhia | 1:ebe96d5a5825 | 218 | |
nturakhia | 1:ebe96d5a5825 | 219 | led=pin; |
4180_1 | 0:da7f4b6d2b7c | 220 | lcd.cls(); |
4180_1 | 0:da7f4b6d2b7c | 221 | ctTime = time(NULL); |
4180_1 | 0:da7f4b6d2b7c | 222 | lcd.locate(0,1); |
nturakhia | 1:ebe96d5a5825 | 223 | lcd.color(LGREY); |
nturakhia | 1:ebe96d5a5825 | 224 | lcd.printf("Current time(UTC):"); |
nturakhia | 1:ebe96d5a5825 | 225 | lcd.color(GREEN); |
4180_1 | 0:da7f4b6d2b7c | 226 | lcd.locate(0,3); |
4180_1 | 0:da7f4b6d2b7c | 227 | time_str = ctime(&ctTime); |
4180_1 | 0:da7f4b6d2b7c | 228 | time_str[strlen(time_str)-1] = 0; |
nturakhia | 1:ebe96d5a5825 | 229 | lcd.printf("%s\n", time_str); |
nturakhia | 1:ebe96d5a5825 | 230 | string s(time_str); |
nturakhia | 1:ebe96d5a5825 | 231 | int ind=s.find(":"); |
nturakhia | 1:ebe96d5a5825 | 232 | char* bh; |
nturakhia | 1:ebe96d5a5825 | 233 | bh[0]=s[ind-2]; |
nturakhia | 1:ebe96d5a5825 | 234 | bh[1]=s[ind-1]; |
nturakhia | 1:ebe96d5a5825 | 235 | bh[2]=0; |
nturakhia | 1:ebe96d5a5825 | 236 | int hour=atoi(bh); |
nturakhia | 1:ebe96d5a5825 | 237 | char* b; |
nturakhia | 1:ebe96d5a5825 | 238 | b[0]=s[ind+1]; |
nturakhia | 1:ebe96d5a5825 | 239 | b[1]=s[ind+2]; |
nturakhia | 1:ebe96d5a5825 | 240 | b[2]=0; |
nturakhia | 1:ebe96d5a5825 | 241 | int min=atoi(b); |
nturakhia | 1:ebe96d5a5825 | 242 | lcd.color(LGREY); |
nturakhia | 1:ebe96d5a5825 | 243 | lcd.printf("\nMotor run time:\n"); |
nturakhia | 1:ebe96d5a5825 | 244 | lcd.color(GREEN); |
nturakhia | 1:ebe96d5a5825 | 245 | lcd.printf("%d:%d to %d:%d (UTC)\n \n",start_time_hr,start_time_min,end_time_hr,end_time_min); |
nturakhia | 1:ebe96d5a5825 | 246 | time(&ctTime); |
nturakhia | 1:ebe96d5a5825 | 247 | struct tm *tmp = gmtime(&ctTime); |
nturakhia | 1:ebe96d5a5825 | 248 | lcd.color(LGREY); |
nturakhia | 1:ebe96d5a5825 | 249 | pc.printf("hour: %d min: %d",hour,min); |
nturakhia | 1:ebe96d5a5825 | 250 | if((hour>start_time_hr && hour<end_time_hr)) |
nturakhia | 1:ebe96d5a5825 | 251 | { |
nturakhia | 1:ebe96d5a5825 | 252 | m.speed(motor_speed); |
nturakhia | 1:ebe96d5a5825 | 253 | lcd.color(LGREY); |
nturakhia | 1:ebe96d5a5825 | 254 | lcd.printf("Motor running \n"); |
nturakhia | 1:ebe96d5a5825 | 255 | lcd.color(GREEN); |
nturakhia | 1:ebe96d5a5825 | 256 | lcd.printf("Speed=%2.1f\n",motor_speed); |
nturakhia | 1:ebe96d5a5825 | 257 | } |
nturakhia | 1:ebe96d5a5825 | 258 | else if((hour==start_time_hr && hour==end_time_hr && min>=start_time_min && min<=end_time_min)) |
nturakhia | 1:ebe96d5a5825 | 259 | { |
nturakhia | 1:ebe96d5a5825 | 260 | m.speed(motor_speed); |
nturakhia | 1:ebe96d5a5825 | 261 | lcd.color(LGREY); |
nturakhia | 1:ebe96d5a5825 | 262 | lcd.printf("Motor running \n"); |
nturakhia | 1:ebe96d5a5825 | 263 | lcd.color(GREEN); |
nturakhia | 1:ebe96d5a5825 | 264 | lcd.printf("Speed=%2.1f\n",motor_speed); |
nturakhia | 1:ebe96d5a5825 | 265 | } |
nturakhia | 1:ebe96d5a5825 | 266 | else if(hour==start_time_hr && hour<end_time_hr && min>=start_time_min) |
nturakhia | 1:ebe96d5a5825 | 267 | { |
nturakhia | 1:ebe96d5a5825 | 268 | m.speed(motor_speed); |
nturakhia | 1:ebe96d5a5825 | 269 | lcd.color(LGREY); |
nturakhia | 1:ebe96d5a5825 | 270 | lcd.printf("Motor running \n"); |
nturakhia | 1:ebe96d5a5825 | 271 | lcd.color(GREEN); |
nturakhia | 1:ebe96d5a5825 | 272 | lcd.printf("Speed=%2.1f\n",motor_speed); |
nturakhia | 1:ebe96d5a5825 | 273 | } |
nturakhia | 1:ebe96d5a5825 | 274 | else if(hour==end_time_hr && hour>start_time_hr && min<=end_time_min) |
nturakhia | 1:ebe96d5a5825 | 275 | { |
nturakhia | 1:ebe96d5a5825 | 276 | m.speed(motor_speed); |
nturakhia | 1:ebe96d5a5825 | 277 | lcd.color(LGREY); |
nturakhia | 1:ebe96d5a5825 | 278 | lcd.printf("Motor running \n"); |
nturakhia | 1:ebe96d5a5825 | 279 | lcd.color(GREEN); |
nturakhia | 1:ebe96d5a5825 | 280 | lcd.printf("Speed=%2.1f\n",motor_speed); |
nturakhia | 1:ebe96d5a5825 | 281 | } |
nturakhia | 1:ebe96d5a5825 | 282 | else |
nturakhia | 1:ebe96d5a5825 | 283 | { |
nturakhia | 1:ebe96d5a5825 | 284 | m.speed(0); |
nturakhia | 1:ebe96d5a5825 | 285 | lcd.color(LGREY); |
nturakhia | 1:ebe96d5a5825 | 286 | lcd.printf("Motor stopped\n"); |
nturakhia | 1:ebe96d5a5825 | 287 | |
nturakhia | 1:ebe96d5a5825 | 288 | } |
nturakhia | 1:ebe96d5a5825 | 289 | |
nturakhia | 1:ebe96d5a5825 | 290 | wait(5); |
4180_1 | 0:da7f4b6d2b7c | 291 | } |
4180_1 | 0:da7f4b6d2b7c | 292 | } |