エレキジャックweb mbed入門 mbed RMCS鉄道模型自動制御システム 課題4です。2つのボリュームにより反転時の速度制御を独立して行います。

Dependencies:   mbed

Committer:
takeuchi
Date:
Thu Jan 19 00:54:59 2012 +0000
Revision:
0:5d7d8bdafd1f

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
takeuchi 0:5d7d8bdafd1f 1 // mRMCS04 Vr1,Vr2 control
takeuchi 0:5d7d8bdafd1f 2 // mbed RailModelContorolSystem
takeuchi 0:5d7d8bdafd1f 3
takeuchi 0:5d7d8bdafd1f 4 #include "mbed.h"
takeuchi 0:5d7d8bdafd1f 5 #include "TextLCD0420.h"
takeuchi 0:5d7d8bdafd1f 6
takeuchi 0:5d7d8bdafd1f 7 #define ON 1
takeuchi 0:5d7d8bdafd1f 8 #define OFF 0
takeuchi 0:5d7d8bdafd1f 9 #define XON 0
takeuchi 0:5d7d8bdafd1f 10 #define XOFF 1
takeuchi 0:5d7d8bdafd1f 11
takeuchi 0:5d7d8bdafd1f 12 DigitalOut mled1(LED1);
takeuchi 0:5d7d8bdafd1f 13 DigitalOut mled2(LED2);
takeuchi 0:5d7d8bdafd1f 14 DigitalOut mled3(LED3);
takeuchi 0:5d7d8bdafd1f 15 DigitalOut mled4(LED4);
takeuchi 0:5d7d8bdafd1f 16 AnalogIn vr1_adc(p15);
takeuchi 0:5d7d8bdafd1f 17 AnalogIn vr2_adc(p16);
takeuchi 0:5d7d8bdafd1f 18 DigitalIn sens1(p17);
takeuchi 0:5d7d8bdafd1f 19 DigitalIn sens2(p18);
takeuchi 0:5d7d8bdafd1f 20 DigitalIn sens3(p19);
takeuchi 0:5d7d8bdafd1f 21 PwmOut r1_pwm(p22);
takeuchi 0:5d7d8bdafd1f 22 PwmOut r2_pwm(p23);
takeuchi 0:5d7d8bdafd1f 23 DigitalOut po10(p5);
takeuchi 0:5d7d8bdafd1f 24 DigitalOut po11(p6);
takeuchi 0:5d7d8bdafd1f 25 DigitalOut po20(p7);
takeuchi 0:5d7d8bdafd1f 26 DigitalOut po21(p8);
takeuchi 0:5d7d8bdafd1f 27
takeuchi 0:5d7d8bdafd1f 28 TextLCD lcd(p24, p25, p26, p27, p28, p29, p30,20,4); // rs, rw, e, d0, d1, d2, d3
takeuchi 0:5d7d8bdafd1f 29
takeuchi 0:5d7d8bdafd1f 30 float pduty,pduty_slow;
takeuchi 0:5d7d8bdafd1f 31
takeuchi 0:5d7d8bdafd1f 32 void notch(float duty){
takeuchi 0:5d7d8bdafd1f 33 r1_pwm.write(duty);
takeuchi 0:5d7d8bdafd1f 34 r2_pwm.write(0);
takeuchi 0:5d7d8bdafd1f 35 }
takeuchi 0:5d7d8bdafd1f 36
takeuchi 0:5d7d8bdafd1f 37 void r_notch(float duty){
takeuchi 0:5d7d8bdafd1f 38 r1_pwm.write(0);
takeuchi 0:5d7d8bdafd1f 39 r2_pwm.write(duty);
takeuchi 0:5d7d8bdafd1f 40 }
takeuchi 0:5d7d8bdafd1f 41
takeuchi 0:5d7d8bdafd1f 42 int main() {
takeuchi 0:5d7d8bdafd1f 43 int i;
takeuchi 0:5d7d8bdafd1f 44 float pduty;
takeuchi 0:5d7d8bdafd1f 45 r1_pwm.pulsewidth(0.000001);//1us=0.000001
takeuchi 0:5d7d8bdafd1f 46 r1_pwm.period(0.00001);//1ms=0.001s
takeuchi 0:5d7d8bdafd1f 47 r2_pwm.pulsewidth(0.000001);//1us=0.000001
takeuchi 0:5d7d8bdafd1f 48 r2_pwm.period(0.00001);//1ms=0.001s
takeuchi 0:5d7d8bdafd1f 49
takeuchi 0:5d7d8bdafd1f 50
takeuchi 0:5d7d8bdafd1f 51 lcd.cls();
takeuchi 0:5d7d8bdafd1f 52 lcd.locate(0,0);
takeuchi 0:5d7d8bdafd1f 53 lcd.printf("** mbed RMCS04 **");
takeuchi 0:5d7d8bdafd1f 54
takeuchi 0:5d7d8bdafd1f 55
takeuchi 0:5d7d8bdafd1f 56 while(1){
takeuchi 0:5d7d8bdafd1f 57 for(i=0;i<20;i++){
takeuchi 0:5d7d8bdafd1f 58 pduty=vr1_adc.read();
takeuchi 0:5d7d8bdafd1f 59 notch(pduty);
takeuchi 0:5d7d8bdafd1f 60 lcd.locate(0,1);
takeuchi 0:5d7d8bdafd1f 61 lcd.printf("Vr1:notch on=> %2d",20-i);
takeuchi 0:5d7d8bdafd1f 62 wait(1.0);
takeuchi 0:5d7d8bdafd1f 63 }
takeuchi 0:5d7d8bdafd1f 64 notch(0);
takeuchi 0:5d7d8bdafd1f 65 wait(3.0);
takeuchi 0:5d7d8bdafd1f 66 for(i=0;i<20;i++){
takeuchi 0:5d7d8bdafd1f 67 pduty=vr2_adc.read();
takeuchi 0:5d7d8bdafd1f 68 r_notch(pduty);
takeuchi 0:5d7d8bdafd1f 69 lcd.locate(0,2);
takeuchi 0:5d7d8bdafd1f 70 lcd.printf("Vr2:r_notch on=>%2d",20-i);
takeuchi 0:5d7d8bdafd1f 71 wait(1.0);
takeuchi 0:5d7d8bdafd1f 72 }
takeuchi 0:5d7d8bdafd1f 73 r_notch(0);
takeuchi 0:5d7d8bdafd1f 74 wait(3.0);
takeuchi 0:5d7d8bdafd1f 75 }//while
takeuchi 0:5d7d8bdafd1f 76
takeuchi 0:5d7d8bdafd1f 77 }//main