BASIC4MCU | 질문게시판 | 아두이노 블루투스 통신. HC-06 질문
페이지 정보
작성자 master 작성일2018-08-09 10:00 조회10,411회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=2696
본문
아두이노 블루투스 통신을 공부하고 있습니다.
두 개의 블루투스 모듈로 master와 slave를 만드는거 까지는 성공했습니다.master 모듈이 있는 아두이노에는 두개의 가변저항을 연결했습니다.slave 모듈이 있는 아두이노에는 두개의 서보모터를 연결해서 따로따로 제어를 하려고 합니다.1번 가변저항은 1번 서보모터만을 제어하고2번 가변저항은 2번 서보모터만을 제어하도록하고싶습니다.블루투스 통신으로 정보를 주고받는 과정에서slave가 가변저항에 대한 정보를 받아 들일때이 정보가 1번 가변저항에 대한 정보인지 2번가변저항에 대한 정보인지 알아야각각에 해당되는 서보모터를 알맞게 조종할 수 있잖아요이렇게 정보를 구분하는게 가능한지, 어떤 방식으로 정보를 구분해야 하는지 대책이 안서네요......도와주세요 ㅠㅠ//// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-07-27 오전 9:31:41// by Ok-Hyun Park//#include <SoftwareSerial.h>SoftwareSerial mySerial(2,3); // RX, TXint VR1,VR2;//void setup(){Serial.begin(9600);mySerial.begin(9600);}//void loop(){VR1=analogRead(A0)/8; // 0~1023 -> 0~127mySerial.write(VR1);Serial.print("VR1="); Serial.println(VR1);delay(10);//VR1=analogRead(A2)/8+128; // 0~1023 -> 128~255mySerial.write(VR2);Serial.print("VR2="); Serial.println(VR2);delay(10);}//----------------------------------------------------------------#include <SoftwareSerial.h>SoftwareSerial mySerial(2,3); // RX, TX#include <Servo.h>Servo servo1;Servo servo2;int angle;//void setup(){servo1.attach(9);servo2.attach(10);Serial.begin(9600);mySerial.begin(9600);}//void loop(){if(mySerial.available()){angle=mySerial.read();if(angle<128){ servo1.write(angle*2); Serial.print("Motor1="); }else { servo2.write(angle*2); Serial.print("Motor2="); }Serial.println(angle);}}
송신 1바이트(0~255)를 반으로 나누어서
0~127 구간은 VR1,서보모터1
128~255 구간은 VR2,서보모터2
//BASIC4MCU | AVR | ADC | ATmega128 코드비젼 ADC 8채널 --> UART 송신 및 수신 전송 포멧
위 예제는 아두이노용 소스는 아니지만8채널의 10비트 ADC 값을 데이터 손실없이 전송하는 간단한(코드는 짧지만 알고리즘은 절대 간단하지 않음) 예제입니다.알고리즘을 잘 이해 한다면 아두이노용으로 바꾸는 것은 어렵지 않습니다.
댓글 0
조회수 10,411등록된 댓글이 없습니다.