ผมอยากจะให้เวลาเรากดสวิตซ์แล้วจะให้มันส่งโค้ดไปให้อีกตัวหนึ่งรับแล้วให้ไปควบคุมLEDกระพริบอะครับ
แต่ผมลองเขียนเอง ปรากฏว่ามันส่งไปเองตลอดเวลาเลยอะเหมือนไม่มีสวิตซ์อยู่เลย ไม่รู้ทำไง (มือใหม่ครับ)
อันนี้ที่ผมลองเขียนอะคับ พึ่งจะฝึกใช้อะไรไม่ค่อยเป็นหรอก ไม่รู้จำดัดแปลงยังไง ช่วยแนะนำหน่อยนะคร๊าบบบบ
#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("ALL"); // ตั้งชื่อตำแหน่งให้ตรงกัน ชื่อตั้งได้สูงสุด 5 ตัวอักษร
transmitter.init();
pinMode(3,INPUT);
pinMode(2,INPUT);
}
String message;
void loop(){
int Right=digitalRead(2);
int Left=digitalRead(3);
if(Right==HIGH){
transmitter.txPL("LED_Right"); // ค่าที่ต้องการส่ง
transmitter.send(FAST); // สั่งให้ส่งออกไป
delay(1000);
}
if(Left==HIGH){
transmitter.txPL("LED_Left"); // ค่าที่ต้องการส่ง
transmitter.send(FAST); // สั่งให้ส่งออกไป
delay(1000);
}
}
ตอนนี้ส่งได้แล้วครับ แต่โค้ดของตัวรับนี่ต้องดัดแปลงยังไงดีครับให้ LEDกระพริบ
อันนี้ที่ผมก๊อบตัวอย่างมา แต่ไม่รู้จะต้องดัดแปลงยังไงดี
#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("ALL"); // ตั้งชื่อตำแห่นงให้ตรงกัน ชื่อตั้งได้สูงสุด 5 ตัวอักษร
receiver.init();
}
String message;
void loop(){
if(receiver.available()){
if()
receiver.read(); // สั่งให้เริ่มอ่าน
receiver.rxPL(message); // สั่งใหอ่านเก็บไว้ที่ตัวแปร
Serial.println(message);
message="";
}
}
ถ้าเป็นลักษณะสวิตช์ทริกให้ทำงาน
โคดปกติจะอ่านค่า nrf24l01 มาตลอด เพื่อให้รับสัญญาณที่ส่งมาได้ทันที
แนะนำให้เขียนตัวแปรสถานะเก็บไว้ แล้วเขียน if เช็ค ลองออกแบบดูครับ