Takeuchi Kouichi
/
2bk0817_servo_test04
エレキジャックweb mbed入門 サーボを動かそう 課題4です。サーボの動きに合わせて'*'を左右に動かします。
main.cpp@0:04604e1f2302, 2011-08-18 (annotated)
- Committer:
- takeuchi
- Date:
- Thu Aug 18 23:17:04 2011 +0000
- Revision:
- 0:04604e1f2302
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
takeuchi | 0:04604e1f2302 | 1 | //Servo test04 Vr_control |
takeuchi | 0:04604e1f2302 | 2 | // * level meter |
takeuchi | 0:04604e1f2302 | 3 | #include "mbed.h" |
takeuchi | 0:04604e1f2302 | 4 | #include "TextLCD0420.h" |
takeuchi | 0:04604e1f2302 | 5 | |
takeuchi | 0:04604e1f2302 | 6 | #define ON 1 |
takeuchi | 0:04604e1f2302 | 7 | #define OFF 0 |
takeuchi | 0:04604e1f2302 | 8 | |
takeuchi | 0:04604e1f2302 | 9 | DigitalOut mled0(LED1); |
takeuchi | 0:04604e1f2302 | 10 | DigitalOut mled1(LED2); |
takeuchi | 0:04604e1f2302 | 11 | AnalogIn vr_adc(p15); |
takeuchi | 0:04604e1f2302 | 12 | PwmOut servo1(p21); |
takeuchi | 0:04604e1f2302 | 13 | |
takeuchi | 0:04604e1f2302 | 14 | TextLCD lcd(p24, p25, p26, p27, p28, p29, p30,20,4); // rs, rw, e, d0, d1, d2, d3 |
takeuchi | 0:04604e1f2302 | 15 | |
takeuchi | 0:04604e1f2302 | 16 | int main() { |
takeuchi | 0:04604e1f2302 | 17 | int i; |
takeuchi | 0:04604e1f2302 | 18 | float pwidth,vr_data; |
takeuchi | 0:04604e1f2302 | 19 | lcd.cls(); |
takeuchi | 0:04604e1f2302 | 20 | lcd.locate(0,0); |
takeuchi | 0:04604e1f2302 | 21 | lcd.printf("*** Servo test ****\n"); |
takeuchi | 0:04604e1f2302 | 22 | servo1.period_ms(20); |
takeuchi | 0:04604e1f2302 | 23 | |
takeuchi | 0:04604e1f2302 | 24 | while(1){ |
takeuchi | 0:04604e1f2302 | 25 | vr_data=vr_adc.read()/1000; |
takeuchi | 0:04604e1f2302 | 26 | pwidth=vr_data+0.001; |
takeuchi | 0:04604e1f2302 | 27 | servo1.pulsewidth(pwidth); |
takeuchi | 0:04604e1f2302 | 28 | i=vr_data*10000-1; |
takeuchi | 0:04604e1f2302 | 29 | if(i<0){ |
takeuchi | 0:04604e1f2302 | 30 | i=0; |
takeuchi | 0:04604e1f2302 | 31 | } |
takeuchi | 0:04604e1f2302 | 32 | lcd.locate(0,1); |
takeuchi | 0:04604e1f2302 | 33 | lcd.printf("----+----:%2.2f%ms",pwidth*1000); |
takeuchi | 0:04604e1f2302 | 34 | lcd.locate(0,2); |
takeuchi | 0:04604e1f2302 | 35 | lcd.printf(" "); |
takeuchi | 0:04604e1f2302 | 36 | lcd.locate(i,2); |
takeuchi | 0:04604e1f2302 | 37 | lcd.printf("*"); |
takeuchi | 0:04604e1f2302 | 38 | }//while |
takeuchi | 0:04604e1f2302 | 39 | }//main |
takeuchi | 0:04604e1f2302 | 40 |