setting program for Hexarugon

Dependencies:   mbed SoftPWM Servo_softpwm IR2302

main.cpp

Committer:
umekou
Date:
2021-10-30
Revision:
3:559589cd51de
Parent:
2:b8e36dfae8e0

File content as of revision 3:559589cd51de:

#include "mbed.h"
#include "Servo.h"
#include "IR2302.h"

#define DSA 0.8//default servo angle:サーボの初期角度の値
 
DigitalOut stop(D13);
IR2302 ir2302(D7,D8);
Serial pc(USBTX, USBRX,115200);
Timer t;
Servo servo[]={PA_10,PB_4,PB_5};
DigitalIn b1(USER_BUTTON);
DigitalIn b2(PA_15);

int main()
{
    stop=1;
    float servoValue[3]={DSA,DSA,DSA};
    float angle=DSA;
    int i,j;
    for(int i=0;i < 3; i++)servo[i].calibrate(0.00095, 90);
    for(i=0;i<3;i++) servo[i].write(servoValue[i]);
    t.start();
    while(1){
        if((b1==0)&&(b2==1)){
            ir2302.SetMotorSpeed(0.0);
            break;
        }else if(b1==0){
            ir2302.SetMotorSpeed(0.2);
        }else if(b2==1){
            ir2302.SetMotorSpeed(-0.2);
        }else{
            ir2302.SetMotorSpeed(0.0);
        }
        for(i=0;i<3;i++) servo[i].write(servoValue[i]);
    }
    wait(2);
    while(1){
        if(b1==0){
            if(j){
                if(angle>1.0){
                    angle=1.0;
                }else{
                    angle+=0.05;
                }
                j=0;
            }
        }else if(b2==1){
            angle=0.0;
        }else{
            j=1;
        }
        for(i=0;i<3;i++){
            servoValue[i]=angle;
        }
        for(i=0;i<3;i++) servo[i].write(servoValue[i]);
    }
}