ROBOSTEP / Mbed 2 deprecated hybrid_arm_fan

Dependencies:   mbed

Fork of hybrid_arm_main by ROBOSTEP_SHARE

main.cpp

Committer:
hare
Date:
2016-03-09
Revision:
7:230f27866c1a
Parent:
6:8db4a07deff0
Child:
8:f756ddb8ff5b

File content as of revision 7:230f27866c1a:

#include "mbed.h"
DigitalIn start_sw(p21);

PwmOut motor_up(p23);
PwmOut motor_down(p22);

DigitalIn encoder_A(p16);
DigitalIn encoder_B(p17);

AnalogIn sensor(p20);

DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);

CAN can1(p30,p29);
PwmOut fan(p25);

Ticker can_sub;

int river_eco_loca=0;
void receive(){
    CANMessage msg;
    if(can1.read(msg)){
        if(msg.id==5){
            river_eco_loca=(short)((msg.data[0]<<8)|(msg.data[1]));
            led4=!led4;
            }
        }
    }
int fan_power=1100;

int main(){
     motor_up.period_us(20);
     motor_down.period_us(20);
     motor_up=0;
     motor_down=0;
     while(1){
       if(start_sw==1){break;}
       else if(sensor>=0.7){break;}
       else{motor_up=0.2;motor_down=0;}       
        }
    wait(0.3);
    fan.period_ms(20);
    fan.pulsewidth_us(1100);
    printf("connect battery in 5sec please\n\r");
    for(int p=0;p<5;p++){
    led1=1;
    wait(0.6);
    led1=0;
    wait(0.4);} // connect ripo in 5s;
    
    printf("4sec is count down\n\r");    
    for(int p=0;p<4;p++){
    led1=1;
    led2=1;
    wait(0.6);
    led2=0;
    wait(0.4); }
    printf("fan and is running\n\r");
led1=1;
led2=1;
led3=1;
can_sub.attach_us(&receive,5000);
can1.frequency(1000000);

while(1){
     switch(river_eco_loca){
        case 0:
        fan_power=1100;
        break;
        case 1:
        fan_power=1550;   //start
        break;
        case 2:
        fan_power=1750;
        break;
        case 3:
        fan_power=1100;
        led1=0;led2=0;led3=0;
        break;
        default:
        fan_power=1100;
        break;} 
    fan.pulsewidth_us(fan_power);    
}
}