エレキジャックweb mbed入門 サーボを動かそう 課題3です。'*'をサーボの動きに合わせて棒グラフとして表示します。

Dependencies:   mbed

Committer:
takeuchi
Date:
Thu Aug 18 23:07:55 2011 +0000
Revision:
0:0a937a97f30f

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
takeuchi 0:0a937a97f30f 1 //Servo test04 Vr_control => AD=>Servo
takeuchi 0:0a937a97f30f 2 // '*' bar graph
takeuchi 0:0a937a97f30f 3 #include "mbed.h"
takeuchi 0:0a937a97f30f 4 #include "TextLCD0420.h"
takeuchi 0:0a937a97f30f 5
takeuchi 0:0a937a97f30f 6 #define ON 1
takeuchi 0:0a937a97f30f 7 #define OFF 0
takeuchi 0:0a937a97f30f 8
takeuchi 0:0a937a97f30f 9 DigitalOut mled0(LED1);
takeuchi 0:0a937a97f30f 10 DigitalOut mled1(LED2);
takeuchi 0:0a937a97f30f 11 AnalogIn vr_adc(p15);
takeuchi 0:0a937a97f30f 12 PwmOut servo1(p21);
takeuchi 0:0a937a97f30f 13
takeuchi 0:0a937a97f30f 14 TextLCD lcd(p24, p25, p26, p27, p28, p29, p30,20,4); // rs, rw, e, d0, d1, d2, d3
takeuchi 0:0a937a97f30f 15
takeuchi 0:0a937a97f30f 16 int main() {
takeuchi 0:0a937a97f30f 17 int i;
takeuchi 0:0a937a97f30f 18 float pwidth,vr_data;
takeuchi 0:0a937a97f30f 19 lcd.cls();
takeuchi 0:0a937a97f30f 20 lcd.locate(0,0);
takeuchi 0:0a937a97f30f 21 lcd.printf("*** Servo test ****\n");
takeuchi 0:0a937a97f30f 22 servo1.period_ms(20);
takeuchi 0:0a937a97f30f 23
takeuchi 0:0a937a97f30f 24 while(1){
takeuchi 0:0a937a97f30f 25 vr_data=vr_adc.read()/1000;
takeuchi 0:0a937a97f30f 26 pwidth=vr_data+0.001;
takeuchi 0:0a937a97f30f 27 servo1.pulsewidth(pwidth);
takeuchi 0:0a937a97f30f 28 lcd.locate(0,1);
takeuchi 0:0a937a97f30f 29 lcd.printf("----+----:%2.2f%ms",pwidth*1000);
takeuchi 0:0a937a97f30f 30 lcd.locate(0,2);
takeuchi 0:0a937a97f30f 31 lcd.printf(" ");
takeuchi 0:0a937a97f30f 32 lcd.locate(0,2);
takeuchi 0:0a937a97f30f 33 for(i=0;i<vr_data*10000-1;i++){
takeuchi 0:0a937a97f30f 34 lcd.printf("*");
takeuchi 0:0a937a97f30f 35 }
takeuchi 0:0a937a97f30f 36
takeuchi 0:0a937a97f30f 37 }//while
takeuchi 0:0a937a97f30f 38 }//main
takeuchi 0:0a937a97f30f 39