
วิธีต่อ
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=""; | |
| } | |
| } |
| หน้าที่เข้าชม | 420,215 ครั้ง |
| ผู้ชมทั้งหมด | 258,123 ครั้ง |
| เปิดร้าน | 5 มิ.ย. 2560 |
| ร้านค้าอัพเดท | 22 ต.ค. 2568 |