BASIC4MCU | 질문게시판 | 답변 : 아두이노간 시리얼 통신
페이지 정보
작성자 master 작성일2018-07-30 23:51 조회18,285회 댓글3건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=2597
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-07-30 오후 11:54:57// by Ok-Hyun Park//두개의 아두이노를 이용하여 서로 통신하면서 서모모터를 제어즉 시리얼모니터를 통해 y를 입력하면 아두이노가 데이터를 받고다른 아두이노에게 y를 전송하여 그 아두이노가 서보모터를 제어////-------------- 시리얼과 통신 및 송신 아두이노 코딩은//#include <SoftwareSerial.h>SoftwareSerial BTSerial(2,3);//void setup(){Serial.begin(9600);BTSerial.begin(9600);}//void loop(){if(Serial.available()){char c=Serial.read();if(c=='y')BTSerial.write('y');}}////-------------- 수신 및 서보제어 아두이노 코딩은//#include <SoftwareSerial.h>#include <Servo.h>SoftwareSerial BTSerial(2,3);Servo servo;char state;const int servopin=9;//void setup(){Serial.begin(9600);BTSerial.begin(9600);servo.attach(servopin);}//void loop(){if(BTSerial.available()){state=BTSerial.read();if(state=='y'){ servo.write(90); delay(1000); servo.write(-90); }Serial.write(state); Serial.println("");}}
서보모터 연결핀은 PWM핀을 사용해야합니다.
동작이 안되면 다른 PWM핀으로 바꿔서 동작시키세요
댓글 3
조회수 18,285대영2님의 댓글
대영2 작성일
도움 정말 감사합니다. 하지만 여전히 작동은 안됩니다. 제가 부품이 없어서 일단 팅커캐드라는 사이트를 통해 시뮬레이션을 돌리고 있습니다. 여기서 마스터님께서 수정해주신 코딩으로 해보았지만 모터가 돌아가지 않네요..
일단 제가 시리얼모니터를 통해 y를 입력하면 수신보드 시리얼모니터에서 y가 아닌 숫자 1 이나 1/4 등 분수형태로 출력이 됩니다..
통신은 문제가 없는 것 같은데 변수선언에서 문제가 있는 것 같아 코딩을 다시 봐도 잘못된 점을 못찾고 있습니다. ㅠㅠ
master님의 댓글
master 작성일
통신은 송신 함수 수정했으니 다시 돌려보시고요
시뮬레이션 프로그램 믿을만 한가요?
대영2님의 댓글
대영2 작성일
실제로 아두이노로 돌려보니 잘 됩니다... 시물레이션을 너무 믿으면 안되겟네요 ㅠㅠ
혼란을 드려 죄송합니다..