敦哉 品川
/
limit_switch
This program is about limit switches
Diff: main.cpp
- Revision:
- 2:f64f79a6b5e0
- Parent:
- 1:08c96d55206d
- Child:
- 3:7bbcd64e7127
diff -r 08c96d55206d -r f64f79a6b5e0 main.cpp --- a/main.cpp Tue Jun 25 09:21:06 2019 +0000 +++ b/main.cpp Thu Sep 05 09:42:23 2019 +0000 @@ -6,27 +6,32 @@ #include "mbed.h" Serial master(PC_6,PC_7); Serial pc(USBTX,USBRX); -DigitalIn limit1(D9);//右上ラック -DigitalIn limit2(D8);//左上ラック -DigitalIn limit3(D7);//右下ラック -DigitalIn limit4(D6);//左下ラック -DigitalIn limit5(D5);//回収機構右 -DigitalIn limit6(D4);//回収機構左 -DigitalIn limit7(D2);//予備 +DigitalIn limit0(D10);//右上ラック +DigitalIn limit1(D9);//左上ラック +DigitalIn limit2(D8);//右下ラック +DigitalIn limit3(D7);//左下ラック + +DigitalIn limit4(D6);//回収機構右 +DigitalIn limit5(D5);//回収機構左 +DigitalIn limit6(D4);//吐き出し1 +DigitalIn limit7(D2);//吐き出し2 DigitalOut green(D12);//電源確認 -DigitalOut yellow(D11);//通信確認 -DigitalOut red(D10);//動作確認 +DigitalOut red(D11);//動作確認 + //データ格納用変数 char data; + + //関数プロトタイプ宣言 void send_data(char send); //main()関数 int main(){ - green=1; + + limit0.mode(PullUp); limit1.mode(PullUp); @@ -44,88 +49,132 @@ while(true){ - if(!limit1&&!limit2){ + if(!limit0&&!limit1){ red=1; + green=1; + data=0x20; send_data(data); - }else if(!limit1&&limit2){ + }else if(!limit0&&limit1){ + + red=0; + + green=1; + + data=0x22; + + + send_data(data); + + }else if(limit0&&!limit1){ red=1; - data=0x22; - - send_data(data); - - }else if(limit1&&!limit2){ - - red=1; + green=0; data=0x24; send_data(data); - }else if(!limit3&&!limit4){ + } + + if(!limit2&&!limit3){ + green=1; + red=1; - + data=0x26; send_data(data); - }else if(!limit3&&limit4){ + }else if(!limit2&&limit3){ - red=1; + green=1; + + red=0; data=0x28; send_data(data); - }else if(limit3&&!limit4){ + }else if(limit2&&!limit3){ + + green=0; red=1; - data=0x30; + data=0x30; + send_data(data); - - }else if(!limit5){ + + } + + if(!limit4){ red=1; + green=0; + data=0x32; send_data(data); - }else if(!limit6){ + } + + if(!limit5){ - red=1; + red=0; + + green=1; data=0x34; send_data(data); - - }else if(!limit7){ + + } + if(!limit6){ red=1; + green=0; + data=0x36; send_data(data); - }else{ + } + + + if(!limit7&&data==0x40){ red=0; + green=1; + data=0x38; send_data(data); - } + } + if(limit0&&limit1&&limit2&&limit3&&limit4&&limit5&&limit6&&limit7){ + + red=0; + + green=0; + + data=0x40; + + send_data(data); + + } + pc.printf("%c\n",data); } @@ -133,7 +182,6 @@ //rs232通信 void send_data(char send){ - yellow=1; master.putc(send); wait(0.005); } \ No newline at end of file