エレキジャックweb mbed入門 サーボを動かそう 課題4です。サーボの動きに合わせて'*'を左右に動かします。

Dependencies:   mbed

Committer:
takeuchi
Date:
Thu Aug 18 23:17:04 2011 +0000
Revision:
0:04604e1f2302

        

Who changed what in which revision?

UserRevisionLine numberNew 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