BASIC4MCU | 질문게시판 | 답변 2: 아두이노 flex센서 5개 송신
페이지 정보
작성자 master 작성일2018-09-01 21:15 조회9,863회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=5298
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-09-01 오후 9:18:08// by Ok-Hyun Park//-----------------------------------<<마스터 코드>>#include <SoftwareSerial.h>SoftwareSerial mySerial(2,3); //블루투스의 Tx,Rx핀을 2번 3번핀으로 설정int flex_1=0,flex_2=1,flex_3=2,flex_4=3,flex_5=4;//void setup(){Serial.begin(9600); while(!Serial){ ; } Serial.println("Hello World!");mySerial.begin(9600);}//void loop(){ //코드를 무한반복합니다.int v1=analogRead(flex_1);if(v1<1004)v1=0; else v1-=1004; if(v1>14)v1=14; // 1004~1018 --> 0~14Serial.println(v1); mySerial.write(v1); // 0~14delay(100);//int v2=analogRead(flex_2);if(v2<997)v2=0; else v2-=997; if(v2>19)v2=19; // 997~1016 --> 0~19Serial.println(v2); mySerial.write(v2+50); // 50~69delay(100);//int v3=analogRead(flex_3);if(v3<999)v3=0; else v3-=999; if(v3>20)v3=20; // 999~1019 --> 0~20Serial.println(v3); mySerial.write(v3+100); // 100~120delay(100);//int v4=analogRead(flex_4);if(v4<1014)v4=0; else v4-=1014; if(v4>8)v4=8; // 1014~1022 --> 0~8Serial.println(v4); mySerial.write(v4+150); // 150~158delay(100);//int v5=analogRead(flex_5);if(v5<1004)v1=0; else v5-=1004; if(v5>9)v5=9; // 1004~1013 --> 0~9Serial.println(v5); mySerial.write(v5+200); // 200~209delay(100);}////-----------------------------------<<슬레이브 코드>>#include <SoftwareSerial.h>#include <Servo.h>SoftwareSerial mySerial(2,3); //블루투스의 Tx,Rx핀을 2번 3번핀으로 설정Servo servo1;Servo servo2;int r;//void setup(){Serial.begin(9600); while(!Serial){ ; } Serial.println("Hello World!");mySerial.begin(9600);servo1.attach(9); servo2.attach(10);}//void loop(){if(mySerial.available()){r=mySerial.read();if (r< 50){ r=map(r, 0, 14,180,0); Serial.print("1"); Serial.println(r); servo1.write(r); }else if(r<100){ r=map(r, 50, 69,180,0); Serial.print("2"); Serial.println(r); servo2.write(r); }//else if(r<150){ r=map(r,100,120,180,0); Serial.print("3"); Serial.println(r); servo3.write(r); }//else if(r<200){ r=map(r,150,158,180,0); Serial.print("4"); Serial.println(r); servo4.write(r); }//else if(r<250){ r=map(r,200,209,180,0); Serial.print("5"); Serial.println(r); servo5.write(r); }}}
센서 값의 범위가 작아서 50씩 5개의 구간을 나누어서 송수신합니다.
댓글 0
조회수 9,863등록된 댓글이 없습니다.