วิธีต่อ
sensor to arduino uno board
GND > ground
VCC > 3.3V
CE > 7
CSN > 8
CE และ CSN สามารถกำหนดช่องเองได้ ส่วน SCK, MISO และ MOSI แต่ละรุ่นของ arduino จะต่อไม่เหมือนกัน
Arduino | SCK | MISO | MOSI | SS |
Uno | 13 | 12 | 11 | 10 |
Nano | 13 | 12 | 11 | 10 |
Mega | 52 | 50 | 51 | 53 |
โหลด libraly ที่นี่
ตัวอย่าง code สำหรับส่งข้อความ ใช้สำหรับการตรวจสอบอุปกรณ์และ code ว่าปกติหรือไม่
#include <SPI.h> #include <nRF24L01p.h> nRF24L01p transmitter(7,8);//CSN,CE void setup(){ delay(150); Serial.begin(115200); SPI.begin(); SPI.setBitOrder(MSBFIRST); transmitter.channel(90); // ตั้งช่องความถี่ให้ตรงกัน transmitter.TXaddress("EMR"); // ตั้งชื่อตำแหน่งให้ตรงกัน ชื่อตั้งได้สูงสุด 5 ตัวอักษร transmitter.init(); } String message; void loop(){
transmitter.txPL("www.engineer-maker-robot.com"); // ค่าที่ต้องการส่ง
transmitter.send(FAST); // สั่งให้ส่งออกไป
delay(1000); }
#include <SPI.h> #include <nRF24L01p.h> nRF24L01p receiver(7,8);//CSN,CE void setup(){ delay(150); Serial.begin(115200); SPI.begin(); SPI.setBitOrder(MSBFIRST); receiver.channel(90); // ตั้งช่องความถี่ให้ตรงกัน receiver.RXaddress("EMR"); // ตั้งชื่อตำแห่นงให้ตรงกัน ชื่อตั้งได้สูงสุด 5 ตัวอักษร receiver.init(); } String message; void loop(){ if(receiver.available()){
receiver.read(); // สั่งให้เริ่มอ่าน
receiver.rxPL(message); // สั่งใหอ่านเก็บไว้ที่ตัวแปร
Serial.println(message); message=""; } }
Transmitter Code
#include <SPI.h> #include <nRF24L01p.h> |
|
String message; | |
nRF24L01p transmitter(7,8);//CSN,CE | |
void setup(){ | |
Serial.begin(115200); | |
Serial.println("engineer maker robot"); | |
SPI.begin(); | |
SPI.setBitOrder(MSBFIRST); | |
transmitter.channel(88); // กำหนดช่องสื่อสาร | |
transmitter.TXaddress("EMR"); // ตั้งชื่อตำแหน่งให้ตรงกันระหว่างตัวรับ ตัวส่ง (ได้สูงสุด 5 ตัวอักษร) | |
transmitter.init(); | |
} | |
void loop(){ | |
int val=analogRead(A0); //รับค่าจากเซนเซอร์ | |
val = map(val,0,1023,255,0); //แปลงค่า | |
Serial.println(">> "+String(val)); | |
text_send(String(val)); //ส่งค่าไปยังฟังก์ชั่นส่ง | |
delay(100); | |
} | |
void text_send(String text){ | |
transmitter.txPL(text); // ข้อความที่ต้องการส่ง | |
transmitter.send(FAST); // สั่งให้ส่งส่งข้อความออกไป | |
} |
Code language: Arduino (arduino)
Receiver Code
#include <SPI.h> #include <nRF24L01p.h> |
|
String message; | |
nRF24L01p receiver(7,8);//CSN,CE | |
void setup(){ | |
Serial.begin(115200); | |
Serial.println("engineer maker robot"); | |
SPI.begin(); | |
SPI.setBitOrder(MSBFIRST); | |
receiver.channel(88); // ตั้งช่องสื่อสารให้ตรงกันระหว่างตัวรับตัวส่ง | |
receiver.RXaddress("EMR"); // ตั้งชื่อตำแหน่งให้ตรงกันระหว่างตัวรับ ตัวส่ง (ได้สูงสุด 5 ตัวอักษร) | |
receiver.init(); | |
pinMode(3,OUTPUT); | |
} | |
void loop(){ | |
if(receiver.available()){ | |
receiver.read(); // สั่งให้อ่านค่าที่ส่งมา | |
receiver.rxPL(message); // สั่งให้อ่านเก็บไว้ที่ตัวแปร | |
int val = message.toInt(); //แปลงค่าจาก String เป็น int | |
Serial.println("<< "+String(val)); | |
analogWrite(3,val); //สั่ง LED | |
message=""; | |
} | |
} |
หน้าที่เข้าชม | 419,691 ครั้ง |
ผู้ชมทั้งหมด | 257,599 ครั้ง |
เปิดร้าน | 5 มิ.ย. 2560 |
ร้านค้าอัพเดท | 4 ก.ย. 2568 |