ผมสั่ง NRF24L01 PA LNA มาคู่นึง และ arduino atmega8 ทดสอบตามโค้ดที่ได้แนะนำในบทความแล้วทำงานได้ดีครับ (ขอบคุณสำหรับโค้ดตัวอย่างด้วยครับ) ผมอยากถามเพิ่มเติมดังนี้ครับ
- ไลบรารี่ที่ให้มาสามารถกำหนดความเร็วในการส่งได้มั้ยครับ เพราะจากข้อมูลในดาต้าชีตถ้าส่งที่ความเร็วตำสุดสามารถส่งได้ไกลสุดใช่มั้ยครับ
- สามารถรับและส่งข้อมูลพร้อมๆกันเลยได้มั้ยครับ เช่น A ส่งข้อมูลไป B ได้รับก็ตอบ ACK กลับมาเพื่อยืนยันข้อมูลและไม่ทราบว่ามันรับส่งกันแบบ half duplex หรือ full duplex ครับ พอจะมีข้อมูลมั้ยครับ
....ตัวนี้ผมจะทำเป็นตัวแปลงข้อมูล serial (uart) แล้วส่งแบบไร้สายไป อีกฝั่งก็รับแล้วส่งต่อออกไปเป็น serial uart อ่ะครับ
ขอบคุณครับ
ลองศึกษาทีละส่วนก่อนครับ อย่างในตัวอย่างในบทความ ก็ได้ค่ามาเป็นตัวแปร สามารถเอาตัวแปรไปส่งให้ฟังก์ชันของเราทำงานได้ตามต้องการครับ
ขอโทษนะ คะ คือ code อันนี้สามารถ รับและส่งได้เลยรึป่าวคะ คือลอง เอา
receiver.TXaddress("MRK2"); // address สำหรับส่งข้อมูลกลับ
ถึงจะสามารถ รับ String ที่ส่งมาได้ แต่ถ้า
receiver.TXaddress("MRK2"); // address สำหรับส่งข้อมูลกลับ
ม่สามารถ อ่าน String ที่ส่งมาจากอีกตัวได้อะคะ
เป็นได้ทั้งตัวรับและตัวส่ง แต่ทำงานได้ทีละโหมด มีโคดตัวอย่างการรับและส่งในเว็บบอร์ดนี้ลองหาดูครับ : )
คุณ download library จากที่ไหน ถีงใช้คำสั่งพวกที่อยู่ข้างล่างนีได้
transmitter.channel(90);
transmitter.TXaddress("Artur");
transmitter.dataRate(250);
transmitter.init();
ที่ผม download ใช้ไม่ได้เลย ผมลองแกะได้ตัวหนึ่่ง นั่นคือ channel ต้องใช้ setChannel แทน ส่วนตัวอื่นผมยังแกะไม่ใได้ จึงอยากถามว่าคุณใช้ Library version ไหน ถึง run ตัวอย่างที่คุณให้มาได้ครับ
ไลบารีตามหน้าตัวอย่างหน้าบทความครับ
ไฟล์ nRF24L01p.cpp บรรทัดที่ 142 แกะไม่ยากลองเล่นดูครับ
ตามจริงมีไลบารี NRF24L01 มีอีกหลายตัวให้เลือกใช้ อาจจะลองหาตัวอื่นมาลองก็ได้ครับ
สามารถปรับให้รับค่า serial monitor ของตัว receiver ให้เร็วขึ้นได้ไหมครับ
ไม่รู้ว่าเป็นอะไรครับว่าพอใส่
receiver.RXaddress("ROOT");
receiver.TXaddress("AD01");
พร้อมกันมันไม่สามารถทำงานได้ เเต่พอตัด rx ออกไปส่งได้ตามปกติ อยากรุ้วิธีเเก้ปัญหาครับ
receiver.RXaddress("ROOT");
receiver.TXaddress("AD01");
เช็คทึ่โคด มีตัวอย่างในหน้าแรก ๆ ของกระทู้ครับ