BASIC4MCU | 질문게시판 | 답변 : 아두이노 Rf433 송수신기 진동모터
페이지 정보
작성자 master 작성일2018-09-28 21:50 조회501,955회 댓글28건본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-09-28 오후 9:54:17// by Ok-Hyun Park////수신기 스케치//byte message[VW_MAX_MESSAGE_LEN]; // a buffer to store the incoming messagesbyte messageLength=VW_MAX_MESSAGE_LEN; // the size of the messageconst int RX_DIO_Pin=11; // default 11//void setup(){pinMode(2,OUTPUT); // 진동모터Serial.begin(9600);Serial.println("Ready to receive: ");vw_set_rx_pin(RX_DIO_Pin); // Initialize RX pinvw_setup(2000); // Transfer speed: 2000 bits per secvw_rx_start(); // Start the receiver}//void loop(){if(vw_get_message(message,&messageLength)){ // Non-blockingSerial.print("Received: ");for(int i=0;i<messageLength;i++)Serial.write(message[i]);Serial.println();if(message[i]=='0')digitalWrite(2,0); // 진동모터 OFFif(message[i]=='1')digitalWrite(2,1); // 진동모터 ON}}//-------------------------------------------------------//송신기 스케치//#include <VirtualWire.h>const int TX_DIO_Pin=12; // default 12//void setup(){vw_set_tx_pin(TX_DIO_Pin); // Initialize TX pinvw_setup(2000); // Transfer speed: 2000 bits per sec}//void loop(){send("0"); delay(1000); // 진동모터 OFFsend("1"); delay(1000); // 진동모터 ON}//void send(char *message){vw_send((uint8_t*)message,strlen(message));vw_wait_tx(); // Wait until the whole message is gone}
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-10-01 오후 11:35:53// by Ok-Hyun Park//#include <VirtualWire.h>byte message[VW_MAX_MESSAGE_LEN]; // a buffer to store the incoming messagesbyte messageLength=VW_MAX_MESSAGE_LEN; // the size of the messageconst int RX_DIO_Pin=11; // default 11//void setup(){pinMode(2,OUTPUT); // 진동모터Serial.begin(9600);Serial.println("Ready to receive: ");vw_set_rx_pin(RX_DIO_Pin); // Initialize RX pinvw_setup(2000); // Transfer speed: 2000 bits per secvw_rx_start(); // Start the receiver}//int i;//void loop(){if(vw_get_message(message,&messageLength)){ // Non-blockingSerial.print("Received: ");for(i=0;i<messageLength;i++)Serial.write(message[i]);Serial.println();if(message[i]=='0')digitalWrite(2,0); // 진동모터 OFFif(message[i]=='1')digitalWrite(2,1); // 진동모터 ON}}수신기 컴파일 오류 처리
RF434 MHz Modules
https://wiki.eprolabs.com/index.php?title=RF434_MHz_Modules
위 사이트 참고하세요
댓글 28
조회수 501,955A반장님의 댓글
A반장 작성일
정말 감사합니다!!!!!
엄청 고민 많이 했었는데 이렇게 도와주셔서 해결했네요 ㅜㅜ 감사합니다!!
A반장님의 댓글
A반장 작성일진동모터 선이 2개인제 하나는 2번에 하나는 gnd에 연결하면 될까요???
master님의 댓글
master 작성일
모터 드라이버는 사용하지 않나요?
TR이라도 사용해야 할텐데요
그냥연결하면 핀이 고장날 수 있습니다.
A반장님의 댓글
A반장 작성일넵 동전진동모터로 하고 있습니다.
A반장님의 댓글
A반장 작성일동전모터로 하면 안될까요?ㅜㅜ 지금 당장 구할 수 가 없어서요..ㅠ
A반장님의 댓글
A반장 작성일
수신기 스케치에서 byte messageLength=VW_MAX_MESSAGE_LEN; // the size of the message 이부분에서 오류가 뜨는데 도움 부탁드립니다.ㅠㅠ
아두이노:1.8.7 (Windows 10), 보드:"Arduino/Genuino Uno"
sketch_oct01b:1:14: error: 'VW_MAX_MESSAGE_LEN' was not declared in this scope
sketch_oct01b:2:20: error: 'VW_MAX_MESSAGE_LEN' was not declared in this scope
C:\Users\?씠珥?\Desktop\sketch_oct01b\sketch_oct01b.ino: In function 'void setup()':
sketch_oct01b:9:27: error: 'vw_set_rx_pin' was not declared in this scope
sketch_oct01b:10:16: error: 'vw_setup' was not declared in this scope
sketch_oct01b:11:15: error: 'vw_rx_start' was not declared in this scope
C:\Users\?씠珥?\Desktop\sketch_oct01b\sketch_oct01b.ino: In function 'void loop()':
sketch_oct01b:15:21: error: 'message' was not declared in this scope
sketch_oct01b:15:43: error: 'vw_get_message' was not declared in this scope
sketch_oct01b:17:37: error: 'serial' was not declared in this scope
sketch_oct01b:18:5: error: 'serial' was not declared in this scope
sketch_oct01b:20:16: error: 'i' was not declared in this scope
exit status 1
'VW_MAX_MESSAGE_LEN' was not declared in this scope
이 리포트는 파일 -> 환경설정에 "컴파일중 자세한 출력보이기"를
활성화하여 더 많은 정보를
보이게 할 수 있습니다.
A반장님의 댓글
A반장 작성일
수신기 스케치에서
for(int i=0;i<messageLength;i++)Serial.write(message[i];
이부분도
아두이노:1.8.7 (Windows 10), 보드:"Arduino/Genuino Uno"
C:\Users\?씠珥?\Desktop\sketch_oct01b\sketch_oct01b.ino: In function 'void loop()':
sketch_oct01b:19:60: error: expected ')' before ';' token
sketch_oct01b:22:16: error: 'i' was not declared in this scope
exit status 1
expected ')' before ';' token
이 리포트는 파일 -> 환경설정에 "컴파일중 자세한 출력보이기"를
활성화하여 더 많은 정보를
보이게 할 수 있습니다.
이렇게 뜨네요..ㅠ
A반장님의 댓글
A반장 작성일
혹시 시간 되실때 카톡으로 좀 도와주실 수 있을까요?ㅠㅠ 도저히 혼자서는 안되서 부탁좀 드리겠습니다.
카톡아이디는 hrdragon314 입니다
제발 도와주세요..ㅠㅠㅠ
master님의 댓글
master 작성일
원 소스를 어디서 구했을까요?
본문글 하단에 수신쪽 컴파일 오류는 처리했습니다만
정상동작을 하지 않으면 직접 디버깅 해보세요
모뎀 자료가 있는 사이트 링크도 첨부했습니다.
A반장님의 댓글
A반장 작성일
http://bbangpan.tistory.com/9
원본은 여기서 가져왔습니다.
A반장님의 댓글
A반장 작성일
byte message[VW_MAX_MESSAGE_LEN]; // a buffer to store the incoming messages
byte messageLength=VW_MAX_MESSAGE_LEN; // the size of the message
수신기 스케치가 또 오류라고 뜨네요.ㅠㅠ
머가 문제일까요?ㅜㅜ
master님의 댓글
master 작성일
#include <VirtualWire.h>
제일 위에 라이브러리 헤더파일 선언 해주면 에러 없습니다.
라이브러리 설치되지 않았다면 다시 설치하세요
A반장님의 댓글
A반장 작성일
void setup() {
아두이노:1.8.7 (Windows 10), 보드:"Arduino/Genuino Uno"
sketch_oct01b:7:1: error: expected ',' or ';' before 'void'
C:\Users\?씠珥?\Desktop\sketch_oct01b\sketch_oct01b.ino: In function 'void loop()':
sketch_oct01b:22:3: error: 'serial' was not declared in this scope
sketch_oct01b:23:38: error: 'digitalwrite' was not declared in this scope
exit status 1
expected ',' or ';' before 'void'
이 리포트는 파일 -> 환경설정에 "컴파일중 자세한 출력보이기"를
활성화하여 더 많은 정보를
보이게 할 수 있습니다.
여기에서도 오류가 뜨네요 확인 좀 부탁드려요..ㅠ
master님의 댓글
master 작성일
소스를 마우스로 긁어서 복사하면 되는데 키입력했나보군요?
키입력오타입니다.
A반장님의 댓글
A반장 작성일복사해서 입력하면 302오류가 뜨더아규요 ㅠㅠ
A반장님의 댓글
A반장 작성일
죄송하지만 스케치를 메일로 보내 주실 수 있을까요???ㅜㅜ
hrdragon314@naver.com
입니다
master님의 댓글
master 작성일복사하는 법을 공부하세요
A반장님의 댓글
A반장 작성일죄송하지만 복사하는법은 어디서 배울 수 있을까요??ㅠㅠ초보자라서요 ㅠㅠ
master님의 댓글
master 작성일초등학생도 할 줄아는 복사를 모르신다는 것은 이해가 안되고요
A반장님의 댓글
A반장 작성일그리고 위에 알려주신 사이트 링크는 연결이 안된다고 하네요 ㅠㅠ
master님의 댓글
master 작성일사이트는 문제가 있나봅니다.
A반장님의 댓글
A반장 작성일
마스터님
소스 드레그 해서 Ctrl+c ctrl+v하는게 맞다면 stay 302오류가 뜬다고 말씀 드렸는데요;;
그리고 복사하고 붙이는 방법 다른 방법이 있는줄 알았습니다
방금 말씀드린거 위에 댓글보면 똑같이 댓글달았는데 복사하는법을 공부하라고 하셔서...
master님의 댓글
master 작성일
노트북에서 오류가 발생하나요?
그런 오류는 처음 봅니다.
A반장님의 댓글
A반장 작성일넵 ㅜㅜ 저희집엔 전부 노트북이라서요 ㅠㅠ 아두이노 지우고 다시 깔아보고 말씀드리겠습니다 ! 항상 관심가져주셔서 감사합니다 ㅠㅠ
A반장님의 댓글
A반장 작성일드디어 되었네요;;; 인터넷 검색하니 띄어쓰기를 전부 지우고 다시 하면 된다고 하여 성공하였습니다. 그런데 진동모터를 빨강선을 2번에 검정선을 GND에 연결하였는데 진동이 안되네요;; 시리얼 모니터에 0와 1이 계속 반복 되서 나오기는 하는데; 방법이 없을까요?ㅠㅠ
A반장님의 댓글
A반장 작성일수신기에서 코인형 진동모터가 켜지게는 만들었는데요 혹시 메시지가 않오면 진동모터가 꺼지게 루프를 어떻게 수정해야 할ㄲㅏ요?
master님의 댓글
master 작성일마지막 수정한 소스 첨부해보세요
A반장님의 댓글
A반장 작성일
//
#include <VirtualWire.h>
byte message[VW_MAX_MESSAGE_LEN]; // a buffer to store the incoming messages
byte messageLength=VW_MAX_MESSAGE_LEN; // the size of the message
const int RX_DIO_Pin=11; // default 11
//
void setup(){
pinMode(2,OUTPUT); // 진동모터
Serial.begin(9600);
Serial.println("Ready to receive: ");
vw_set_rx_pin(RX_DIO_Pin); // Initialize RX pin
vw_setup(2000); // Transfer speed: 2000 bits per sec
vw_rx_start(); // Start the receiver
}
//
int i;
//
void loop(){
if(vw_get_message(message,&messageLength)){ // Non-blocking
Serial.print("Received: ");
for(i=0;i<messageLength;i++)Serial.write(message[i]);
Serial.println();
//if(message[i]=='0')digitalWrite(2,0); // 진동모터 OFF
//if(message[i]=='1')digitalWrite(2,1); // 진동모터 ON
digitalWrite(4,HIGH)
else if()
}
}
이다음에 어떻게 해야할지 모르겠네요 ㅠㅠ 스케치 어떻게 해야할까요??ㅠㅠ