lnwshop logo
  • ตอบกระทู้
  • ตั้งกระทู้ใหม่
QUOTE 

nRF24L01 TX=10Ch,Rxตัวเดียว ทำอย่างไรครับ

Mr.Waiwit
Mr.Waiwit (Guest)
IP: 61.7.141.x
5 เดือนที่ผ่านมา

nRF24L01 TX=10Ch,Rxตัวเดียว ทำอย่างไรครับ 

#include <WiFiClient.h>

#include <WiFiServer.h>

#include <WiFiUdp.h>

 

#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); // ส่วนตรงนี้ ย้ายไปไว้ที่ loop ได้ไหมครับ

transmitter.TXaddress("ALL"); ส่วนตรงนี้ ย้ายไปไว้ที่ loop ได้ไหมครับ

transmitter.init();

}

 

String message;

 

void loop(){

 transmitter.txPL("^^"); // เธ„เนˆเธฒเธ—เธตเนˆเธ•เน‰เธญเธ‡เธเธฒเธฃเธชเนˆเธ‡

transmitter.send(FAST); // เธชเธฑเนˆเธ‡เนƒเธซเน‰เธชเนˆเธ‡เธญเธญเธเน„เธ›

delay(1000);

}

 

QUOTE 
ความคิดเห็นที่ #1
เจ้าของร้าน
เจ้าของร้าน
5 เดือนที่ผ่านมา

transmitter.channel(90); // ส่วนตรงนี้ ย้ายไปไว้ที่ loop ได้ไหมครับ

transmitter.TXaddress("ALL"); ส่วนตรงนี้ ย้ายไปไว้ที่ loop ได้ไหมครับ

  • ทำได้ครับ

การรับ 10 ตัว ใช้ตัวส่ง 1 ตัว

  • ทำได้โดยเซต channel และ address ใน loop ให้สแกนรับข้อมูล ลองดูครับ
QUOTE 
ความคิดเห็นที่ #2
Mr.Waiwit
Mr.Waiwit (Guest)
IP: 61.7.141.x
5 เดือนที่ผ่านมา
#include #include nRF24L01p transmitter(7,8);//CSN,CE int analogPin = 3; int x; void setup() { delay(150); Serial.begin(115200); SPI.begin(); SPI.setBitOrder(MSBFIRST); transmitter.channel(92); // transmitter.TXaddress("2"); // transmitter.init(); } String message; void loop() { x = analogRead(A3); //Reads the analog value on pin A3 into x chk_data(); transmitter.send(FAST); delay(500); } //---------------------------------------------------------------- void chk_data() { switch (x) { case 0:transmitter.txPL("2=0");break; case 1:transmitter.txPL("2=1");break; case 2:transmitter.txPL("2=2");break; case 3:transmitter.txPL("2=3");break; case 4:transmitter.txPL("2=4");break; case 5:transmitter.txPL("2=5");break; case 6:transmitter.txPL("2=6");break; case 7:transmitter.txPL("2=7");break; case 8:transmitter.txPL("2=8");break; case 9:transmitter.txPL("2=9");break; ผมต้องการอ่านค่า Adc เพื่อส่งผ่าน nRF24L01 โดยใช้ function case ทั้งหมด 0-1023 case ทดลองกำหนดค่า ตัวแปร X ตั้งแต่ 0-1023 สามารถส่งค่าได้ ทดลองอ่านค่า Adc ก็สามารถอ่านค่าได้ 0-1023 แต่พอเอา ทั้ง 2 อย่างมารวมกัน กลับขึ้นErrorดังนี้ครับ Not enough memory; see http://www.arduino.cc/en/Guide/Troubleshooting#size for tips on reducing your footprint. Error compiling for board Arduino/Genuino Uno. คำถามคือ ตัวแปร x ในการอ่านค่า Adc กับตัวแปร x ในคำสั่ง switch (x) จะต้องเชื่อมโยมกับแบบไหนถึงจะได้ครับ
QUOTE 
ความคิดเห็นที่ #3
Mr.Waiwit
Mr.Waiwit (Guest)
IP: 61.7.141.x
5 เดือนที่ผ่านมา
#include #include #include #include #include nRF24L01p transmitter(7,8);//CSN,CE int analogPin = 3; int x; void setup() { delay(150); Serial.begin(115200); SPI.begin(); SPI.setBitOrder(MSBFIRST); transmitter.channel(92); // transmitter.TXaddress("2"); // transmitter.init(); } String message; void loop() { x = analogRead(A3); //Reads the analog value on pin A3 into x chk_data(); transmitter.send(FAST); delay(500); } //---------------------------------------------------------------- void chk_data() { switch (x) ผมต้องการอ่านค่า Adc เพื่อส่งผ่าน nRF24L01 โดยใช้ function case ทั้งหมด 0-1023 case ทดลองกำหนดค่า ตัวแปร X ตั้งแต่ 0-1023 สามารถส่งค่าได้ ทดลองอ่านค่า Adc ก็สามารถอ่านค่าได้ 0-1023 3 แต่พอเอา ทั้ง 2 อย่างมารวมกัน กลับขึ้น Errorดังนี้ครับ Not enough memory; see http://www.arduino.cc/en/Guide/Troubleshooting#size for tips on reducing your footprint. Error compiling for board Arduino/Genuino Uno. คำถามคือ ตัวแปร x ในการอ่านค่า Adc กับตัวแปร x ในคำสั่ง switch (x) จะต้องเชื่อมโยมกับแบบไหนถึงจะได้ครับ
QUOTE 
ความคิดเห็นที่ #4
เจ้าของร้าน
เจ้าของร้าน
5 เดือนที่ผ่านมา

Error : Not enough memory แรมหมดครับ

ลองเช็คโคดที่ใช้งาน หรือเปลี่ยนเป็นรุ่นที่ใหญ่ขึ้นเช่น arduino mega ในการประมวลผลครับ

QUOTE 
ความคิดเห็นที่ #5
Mr.Waiwit
Mr.Waiwit (Guest)
IP: 61.7.141.x
4 เดือนที่ผ่านมา
ผมใช้ บอร์ดตัวรับ เป็นUNO #include #include 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()){ receiver.read(); // สั่งให้เริ่มอ่าน receiver.rxPL(message); // สั่งใหอ่านเก็บไว้ที่ตัวแปร Serial.println(message); message=""; } } บอร์ดตัวส่งเป็น MAGA2560 ใช้Code ตัวอย่าง #include #include 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(); } String message; void loop(){ transmitter.txPL("Welcome ArduinoAll"); // ค่าที่ต้องการส่ง transmitter.send(FAST); // สั่งให้ส่งออกไป delay(1000); } ผลคือรับ-ส่ง ไม่ได้เลยครับ หมายเหตุ ทดลองใช้เป็นบอร์ดรุ่น Uno ทั้งหมดสามารถใช้ได้ปกติครับ รบกวนช่วยบอกสาเหตุด้วยครับ
1
แสดงความคิดเห็นที่ 1-5 จากทั้งหมด 5 ความคิดเห็น
ข้อความ
ชื่อผู้โพส
ข้อมูลสำหรับการติดต่อกลับ (ไม่เปิดเผย เห็นเฉพาะเจ้าของร้าน)
อีเมล
เบอร์มือถือ
  • ตอบกระทู้

หมวดหมู่สินค้า

สมาชิก Arduino All

เข้าสู่ระบบด้วย
เข้าสู่ระบบ
สมัครสมาชิก

ยังไม่มีบัญชีเทพ สร้างบัญชีใหม่ ไม่เกิน 5 นาที
สมัครสมาชิก (ฟรี)

Arduino All ขายดี

รหัสสินค้า A015
270.00 บาท
  • สั่งซื้อ
รหัสสินค้า A233
5.00 บาท
  • สั่งซื้อ
รหัสสินค้า A115
10.00 บาท
  • สั่งซื้อ
รหัสสินค้า A238
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A097
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A014
90.00 บาท
  • สั่งซื้อ
รหัสสินค้า A474
5.00 บาท
  • สั่งซื้อ
รหัสสินค้า A237
4.00 บาท
  • สั่งซื้อ
Go to Top