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

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 //Servo test04 Vr_control
00002 // * level meter
00003 #include "mbed.h"
00004 #include "TextLCD0420.h"
00005 
00006 #define ON 1
00007 #define OFF 0
00008 
00009 DigitalOut mled0(LED1);
00010 DigitalOut mled1(LED2);
00011 AnalogIn vr_adc(p15);
00012 PwmOut servo1(p21);
00013 
00014 TextLCD lcd(p24, p25, p26, p27, p28, p29, p30,20,4); // rs, rw, e, d0, d1, d2, d3
00015 
00016 int main() {
00017   int i;
00018   float pwidth,vr_data;
00019   lcd.cls();
00020   lcd.locate(0,0);
00021   lcd.printf("*** Servo test ****\n");         
00022   servo1.period_ms(20);
00023 
00024   while(1){   
00025     vr_data=vr_adc.read()/1000;
00026     pwidth=vr_data+0.001;
00027       servo1.pulsewidth(pwidth);
00028       i=vr_data*10000-1;
00029       if(i<0){
00030         i=0;
00031       }
00032       lcd.locate(0,1);
00033       lcd.printf("----+----:%2.2f%ms",pwidth*1000);
00034       lcd.locate(0,2);
00035       lcd.printf("                    ");
00036       lcd.locate(i,2);
00037       lcd.printf("*");      
00038   }//while    
00039 }//main      
00040