手動機 ヌクレオ用のプログラムです

Dependencies:   mbed

Fork of F3RC_syudou_slave by F3RC1班

Committer:
yuto17320508
Date:
Fri Aug 25 12:23:46 2017 +0000
Revision:
4:5ba58456c3ee
Parent:
3:1a3ed86511d3
Child:
5:72e5a850678a
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yuto17320508 0:d0441e7d5ea3 1 #include "mbed.h"
yuto17320508 0:d0441e7d5ea3 2
yuto17320508 0:d0441e7d5ea3 3 Serial pc(USBTX,USBRX);
yuto17320508 4:5ba58456c3ee 4 BusIn in(PA_7,PA_6,PA_5,PA_4);
yuto17320508 2:96509fc6e151 5 PwmOut moter_1(PB_14);
yuto17320508 2:96509fc6e151 6 PwmOut moter_2(PB_15);
yuto17320508 0:d0441e7d5ea3 7 DigitalOut cyli_1(PB_5);
yuto17320508 0:d0441e7d5ea3 8 DigitalOut cyli_2(PB_3);
yuto17320508 0:d0441e7d5ea3 9 DigitalOut cyli_3(PA_10);
yuto17320508 2:96509fc6e151 10 //フォトインタラプタ上
yuto17320508 2:96509fc6e151 11 InterruptIn photo_1(PC_2);
yuto17320508 2:96509fc6e151 12 //フォトインタラプタ下
yuto17320508 2:96509fc6e151 13 InterruptIn photo_2(PC_3);
yuto17320508 0:d0441e7d5ea3 14
yuto17320508 4:5ba58456c3ee 15 int num;
yuto17320508 0:d0441e7d5ea3 16
yuto17320508 0:d0441e7d5ea3 17 //モーターの出力の設定
yuto17320508 0:d0441e7d5ea3 18 double moter_power = 0.7;
yuto17320508 0:d0441e7d5ea3 19
yuto17320508 2:96509fc6e151 20
yuto17320508 2:96509fc6e151 21 //腕上昇下降の関数
yuto17320508 2:96509fc6e151 22 void up()
yuto17320508 2:96509fc6e151 23 {
yuto17320508 2:96509fc6e151 24 moter_1=moter_power;
yuto17320508 2:96509fc6e151 25 moter_2=0;
yuto17320508 2:96509fc6e151 26 }
yuto17320508 2:96509fc6e151 27 void down()
yuto17320508 2:96509fc6e151 28 {
yuto17320508 2:96509fc6e151 29 moter_1=0;
yuto17320508 2:96509fc6e151 30 moter_2=moter_power;
yuto17320508 2:96509fc6e151 31 }
yuto17320508 2:96509fc6e151 32 void stop()
yuto17320508 2:96509fc6e151 33 {
yuto17320508 2:96509fc6e151 34 moter_1=0;
yuto17320508 2:96509fc6e151 35 moter_2=0;
yuto17320508 2:96509fc6e151 36 }
yuto17320508 2:96509fc6e151 37 //フラグ
yuto17320508 2:96509fc6e151 38 int up_flag=1;
yuto17320508 2:96509fc6e151 39 int down_flag=1;
yuto17320508 2:96509fc6e151 40 //フォトトランジスタのフラグ呼び出し
yuto17320508 2:96509fc6e151 41 void photo_1_rise()
yuto17320508 2:96509fc6e151 42 {
yuto17320508 2:96509fc6e151 43 stop();
yuto17320508 2:96509fc6e151 44 up_flag=0;
yuto17320508 2:96509fc6e151 45 }
yuto17320508 2:96509fc6e151 46 void photo_1_fall()
yuto17320508 2:96509fc6e151 47 {
yuto17320508 2:96509fc6e151 48 up_flag=1;
yuto17320508 2:96509fc6e151 49 }
yuto17320508 2:96509fc6e151 50 void photo_2_rise()
yuto17320508 2:96509fc6e151 51 {
yuto17320508 2:96509fc6e151 52 stop();
yuto17320508 2:96509fc6e151 53 down_flag=0;
yuto17320508 2:96509fc6e151 54 }
yuto17320508 2:96509fc6e151 55 void photo_2_fall()
yuto17320508 2:96509fc6e151 56 {
yuto17320508 2:96509fc6e151 57 down_flag=1;
yuto17320508 2:96509fc6e151 58 }
yuto17320508 0:d0441e7d5ea3 59 int main()
yuto17320508 0:d0441e7d5ea3 60 {
yuto17320508 4:5ba58456c3ee 61
yuto17320508 0:d0441e7d5ea3 62
yuto17320508 2:96509fc6e151 63 //フォトインタラプタ1
yuto17320508 2:96509fc6e151 64 photo_1.rise(&photo_1_rise);
yuto17320508 2:96509fc6e151 65 photo_1.fall(&photo_1_fall);
yuto17320508 2:96509fc6e151 66
yuto17320508 2:96509fc6e151 67 //フォトインタラプタ2
yuto17320508 2:96509fc6e151 68 photo_2.rise(&photo_2_rise);
yuto17320508 2:96509fc6e151 69 photo_2.fall(&photo_2_fall);
yuto17320508 0:d0441e7d5ea3 70 while(1) {
yuto17320508 0:d0441e7d5ea3 71
yuto17320508 4:5ba58456c3ee 72 num=in;
yuto17320508 0:d0441e7d5ea3 73
yuto17320508 0:d0441e7d5ea3 74
yuto17320508 0:d0441e7d5ea3 75 //腕1 上昇下降
yuto17320508 4:5ba58456c3ee 76 if(num == 1 && up_flag==1) {//上昇
yuto17320508 2:96509fc6e151 77 up();
yuto17320508 4:5ba58456c3ee 78 } else if(num == 2 && down_flag==1) {//下降
yuto17320508 2:96509fc6e151 79 down();
yuto17320508 0:d0441e7d5ea3 80 } else {
yuto17320508 2:96509fc6e151 81 stop();
yuto17320508 0:d0441e7d5ea3 82 }
yuto17320508 0:d0441e7d5ea3 83
yuto17320508 0:d0441e7d5ea3 84 //腕1 開閉
yuto17320508 4:5ba58456c3ee 85 if(num == 3) {
yuto17320508 0:d0441e7d5ea3 86 cyli_1=1;
yuto17320508 4:5ba58456c3ee 87 } else if(num == 4) {
yuto17320508 0:d0441e7d5ea3 88 cyli_1=0;
yuto17320508 0:d0441e7d5ea3 89 }
yuto17320508 0:d0441e7d5ea3 90
yuto17320508 0:d0441e7d5ea3 91 //腕2 上昇下降
yuto17320508 4:5ba58456c3ee 92 if(num == 5) {
yuto17320508 0:d0441e7d5ea3 93 cyli_2=1;
yuto17320508 4:5ba58456c3ee 94 } else if(num == 6) {
yuto17320508 0:d0441e7d5ea3 95 cyli_2=0;
yuto17320508 0:d0441e7d5ea3 96 }
yuto17320508 0:d0441e7d5ea3 97
yuto17320508 0:d0441e7d5ea3 98 //腕2 開閉
yuto17320508 4:5ba58456c3ee 99 if(num == 7) {
yuto17320508 0:d0441e7d5ea3 100 cyli_3=1;
yuto17320508 4:5ba58456c3ee 101 } else if(num == 8) {
yuto17320508 0:d0441e7d5ea3 102 cyli_3=0;
yuto17320508 1:dfabac3b39e9 103 }
yuto17320508 4:5ba58456c3ee 104 pc.printf("%d\n\r",num);
yuto17320508 0:d0441e7d5ea3 105 }
yuto17320508 0:d0441e7d5ea3 106 }