![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
very stupid
Dependencies: mbed ros_lib_melodic DC_Stepper_Controller_Lib
main.cpp
- Committer:
- ftppr
- Date:
- 2021-06-17
- Revision:
- 0:52f6905317cb
File content as of revision 0:52f6905317cb:
#include "mbed.h" #include "DC_Motor_Controller.h" DC_Motor_PID dc_motor2(D10, D12, PC_8, PC_9, 792); //M1, M2, INA, INB, PPR; picker // D11, D10 see works? original: D4, D7 for encoder, D12, D13 for out Serial myPC(USBTX, USBRX); // import serial for the UART attached toUSB DigitalOut myLED(LED1); DigitalIn button(USER_BUTTON); DigitalIn firing3 = D7; // Pick, short DigitalIn firing4 = D4; // Pick, long DigitalIn firing5 = D8; DigitalOut faul2_1 = A1; DigitalOut faul2_2 = A2; DigitalOut valve_1 = D0; // valve 1 DigitalOut valve_2 = D1; // valve 2 int main() { firing3.mode(PullUp); // default 0 firing4.mode(PullUp); // default 0 firing5.mode(PullUp); // default 0 int stage_pick = 0; dc_motor2.reset(); dc_motor2.set_pid(0.008, 0, 0); myPC.printf("Initialization Finished \n\r"); myPC.printf("Firing3 is %d, Firing4 is %d, button is %d. \n\r", firing3.read(), firing4.read(), button.read()); // valve omitted while(1) { if(button == 1) { if(stage_pick == 0) { myPC.printf("dc_motor reset\r\n"); dc_motor2.set_out(0.5, 0); while(firing3 == 0); if(firing3 == 1) { dc_motor2.set_out(0,0); myPC.printf("short: firing3 pin detected\n\r"); } stage_pick++; valve_1 = 1; valve_2 = 0; } else if(stage_pick == 1) { myPC.printf("faulhaber 2 RefPos\n\r"); faul2_1 = 1; while(firing4 == 0); faul2_1 = 0; myPC.printf("long: firing4 detected \n\r"); //內 stage_pick++; } else if(stage_pick == 2) { myPC.printf("dc_motor rotate to pick up\n\r"); dc_motor2.set_out(0,0.5); wait(0.3); dc_motor2.set_out(0,0); stage_pick++; } else if(stage_pick == 3) { myPC.printf("faul2 to pick the arrows \n\r"); // 外 faul2_2 = 1; while(firing5 == 0); wait(0.3); faul2_2 = 0; myPC.printf("Firing5 touched \n\r"); stage_pick++; // use firing 5 } else if(stage_pick == 4) { myPC.printf("faul2 rotate to vertical \n\r"); // 內一啲 faul2_1 = 1; wait(2.6); faul2_1 = 0; stage_pick++; } else if(stage_pick == 5) { myPC.printf("dc_motor rotate to final pos\n\r"); dc_motor2.set_out(0,1); wait(0.4); dc_motor2.set_out(0,0); stage_pick++; } else if(stage_pick == 6) { myPC.printf("faul2 rotate to final pos \n\r"); // 內一啲 faul2_1 = 1; wait(1.9); faul2_1 = 0; stage_pick = 0; } while(button == 1); wait(0.3); } } }