エレキジャックweb mbed入門 ジャイロとサーボを動かそう 課題3 予備課題です。

Dependencies:   mbed

Committer:
takeuchi
Date:
Tue Sep 20 09:57:39 2011 +0000
Revision:
0:6ad4aadbee68

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
takeuchi 0:6ad4aadbee68 1 //Gyro test03-00
takeuchi 0:6ad4aadbee68 2 // Akidukidensi AE-GYRO-SMD
takeuchi 0:6ad4aadbee68 3 #include "mbed.h"
takeuchi 0:6ad4aadbee68 4 #include "TextLCD0420.h"
takeuchi 0:6ad4aadbee68 5
takeuchi 0:6ad4aadbee68 6 #define ON 1
takeuchi 0:6ad4aadbee68 7 #define OFF 0
takeuchi 0:6ad4aadbee68 8 #define Gy1_offset 0.01
takeuchi 0:6ad4aadbee68 9
takeuchi 0:6ad4aadbee68 10 DigitalOut mled0(LED1);
takeuchi 0:6ad4aadbee68 11 DigitalOut mled1(LED2);
takeuchi 0:6ad4aadbee68 12 AnalogIn gy1_adc(p16);
takeuchi 0:6ad4aadbee68 13 AnalogIn gy2_adc(p17);
takeuchi 0:6ad4aadbee68 14
takeuchi 0:6ad4aadbee68 15 TextLCD lcd(p24, p25, p26, p27, p28, p29, p30,20,4); // rs, rw, e, d0, d1, d2, d3
takeuchi 0:6ad4aadbee68 16
takeuchi 0:6ad4aadbee68 17 int main() {
takeuchi 0:6ad4aadbee68 18 float gy1_data;
takeuchi 0:6ad4aadbee68 19 float gy1_center;
takeuchi 0:6ad4aadbee68 20 float gy1_sgm=0;
takeuchi 0:6ad4aadbee68 21 float gy1_wk0=0,gy1_wk1=0;
takeuchi 0:6ad4aadbee68 22 int i;
takeuchi 0:6ad4aadbee68 23
takeuchi 0:6ad4aadbee68 24 lcd.cls();
takeuchi 0:6ad4aadbee68 25 lcd.locate(0,0);
takeuchi 0:6ad4aadbee68 26 lcd.printf("** Gyro test03-00 ***\n");
takeuchi 0:6ad4aadbee68 27
takeuchi 0:6ad4aadbee68 28 gy1_center=gy1_adc.read()*3.3;
takeuchi 0:6ad4aadbee68 29
takeuchi 0:6ad4aadbee68 30 while(1){
takeuchi 0:6ad4aadbee68 31 gy1_data=gy1_adc.read()*3.3;
takeuchi 0:6ad4aadbee68 32 wait(0.1);
takeuchi 0:6ad4aadbee68 33
takeuchi 0:6ad4aadbee68 34 gy1_wk1=(gy1_data-gy1_center)*1000/6.7;
takeuchi 0:6ad4aadbee68 35 gy1_sgm=gy1_sgm+(gy1_wk0+gy1_wk1)*0.1/2;
takeuchi 0:6ad4aadbee68 36 gy1_wk0=gy1_wk1;
takeuchi 0:6ad4aadbee68 37
takeuchi 0:6ad4aadbee68 38 if(gy1_sgm > 90){
takeuchi 0:6ad4aadbee68 39 gy1_sgm=90;
takeuchi 0:6ad4aadbee68 40 }
takeuchi 0:6ad4aadbee68 41 if(gy1_sgm < -90){
takeuchi 0:6ad4aadbee68 42 gy1_sgm=-90;
takeuchi 0:6ad4aadbee68 43 }
takeuchi 0:6ad4aadbee68 44
takeuchi 0:6ad4aadbee68 45 lcd.locate(0,1);
takeuchi 0:6ad4aadbee68 46 lcd.printf("%3.4f %3.4f",gy1_center,gy1_data);
takeuchi 0:6ad4aadbee68 47 lcd.locate(0,2);
takeuchi 0:6ad4aadbee68 48 lcd.printf("Deg:%3.0f",gy1_sgm);
takeuchi 0:6ad4aadbee68 49 }//while
takeuchi 0:6ad4aadbee68 50 }//main
takeuchi 0:6ad4aadbee68 51