1. NRF24L01 모듈
NRF24L01을 아두이노와 함께 사용하기 위해서는 다음과 같은 것들이 필요합니다.
아두이노 우노 (또는 나노) x2, NRF24L01 모듈 x2, 가변저항 x1, 서보모터 x1, 등등
위의 사진은 NRF24L01의 안테나 증폭회로가 달려있지 않은 모듈입니다. 안테나 증폭회로가 달려있는 모듈은 좀더 비싸지만 훨씬 더 멀리까지 송수신이 가능합니다.
2. 회로구성
(1)송신부
송신부에서는 가변저항의 값을 읽어들여 수신부로 보내는 역활을 합니다. NRF24L01모듈의 특성상 아두이노의 전원 노이즈와 전력량에 영향을 받기 때문에 NRF24L01의 VCC와 GND단자에 10uF의 콘덴서를 달아주는 것이 좋습니다.
소스코드
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int joystick;
RF24 radio(8,7);
const uint64_t pipe = 0xE8E8F0F0E1LL;
void setup(void)
{
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(pipe);
}
void loop(void)
{
joystick = analogRead(A0);
joystick = map(joystick, 0, 1023, 1000, 2000);
Serial.println(joystick);
radio.write( &joystick, sizeof(joystick) );
delay(50);
}
#include <SPI.h>
#include <Servo.h>
#include "nRF24L01.h"
#include "RF24.h"
int joystick;
Servo myservo;
int servo;
RF24 radio(8,7);
const uint64_t pipe = 0xE8E8F0F0E1LL;
void setup(void)
{
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();
myservo.attach(4);
}
void loop(void)
{
radio.read(&joystick, sizeof(joystick));
Serial.println(joystick);
servo=map(joystick,1000,2000,0,90);
myservo.write(servo);
delay(50);
}
NRF24L01을 사용하기 위해서는 라이브러리가 필요합니다. 라이브러리는 아래의 링크에서 다운받을 수 있습니다.
'아두이노' 카테고리의 다른 글
아두이노를 버튼으로 제어하기 (0) | 2017.12.29 |
---|---|
아두이노로 자동 로그인 장치 만들기 (16) | 2017.12.23 |
wemos d1으로 인터넷 시계 만들기 (0) | 2017.11.14 |
DHT22 온습도 모듈 사용하기 (0) | 2017.11.05 |
장애물 피하는 로봇 만들기 (1) | 2017.11.04 |