ผมใช้บอร์ด pro mini 5v แล้วใช้ตัวแปลงไฟตัวนี้
ถ้าใช้ตัวแปลงไฟตัวนี้ต้องคร่อม0.1ufมั้ยครับ
และมีอีกปัญหาคือไม่สามารถส่งข้อความได้
ตัวส่งต่อcsn 14 ce 15
ตัวรับต่อ csn7 ce 8
สามรถต่อยังงี้ได้ใช่มั้ยครับ
ตัวnrf24l01ส่งข้อมมูลแบบไหนหรอคับทีละไบท์ใช่มั้ยครับ
ผมเขียนตัวแยกข้อมูลแบบนี้ถูกมั้ยครับ
#include <SPI.h>
#include <nRF24L01p.h>
nRF24L01p Rxaaa(7,8);//CSN,CE
void setup()
{
Serial.begin(115200);
SPI.begin();
SPI.setBitOrder(MSBFIRST);
Rxaaa.channel(001); // ตั้งช่องความถี่ให้ตรงกัน
Rxaaa.TXaddress("TXAAA"); // ตั้งชื่อตำแหน่งให้ตรงกัน ชื่อตั้งได้สูงสุด 5 ตัวอักษร
Rxaaa.RXaddress("RXAAA"); //address สำหรับรับข้อมูลกลับ
Rxaaa.dataRate(2);
Rxaaa.init();
}
void loop()
{
static int state = 0;
static int index = 0;
static char Buffer[4];
static int v1,v2,v3,v4;
if (Rxaaa.available())
{
char data = Rxaaa.read();
switch(state){
case 0: if(data == ">"){
index = 0;
state = 1;
}
break;
case 1: if(data == "]["){
Buffer[index] = "\0";
v1 = atoi(Buffer);
index = 0;
state = 2;
}else{
Buffer[index] = data;
index++;
}
break;
case 2: if(data == "]["){
Buffer[index] = "\0";
v2 = atoi(Buffer);
index = 0;
state = 3;
}else{
Buffer[index] = data;
index++;
}
break;
case 3: if(data == "]["){
Buffer[index] = "\0";
v3 = atoi(Buffer);
index = 0;
state = 4;
}else{
Buffer[index] = data;
index++;
}
break;
case 4: if(data == "<"){
Buffer[index] = "\0";
v4 = atoi(Buffer);
state = 0;
}else{
Buffer[index] = data;
index++;
}
break;
}
}
}
ถ้าส่งข้อมูลได้ ก็ไม่ต้องต่อ C เพิ่ม แนะนำให้ต่อขาเหมือนกัน NRF24L01 เป็นแบบ SPI ต้องต่อให้ถูกขาด้วย
สำหรับตัวอย่างใช้งานโดยละเอียดมีในหน้าบทความครับ