سلام دوستان
برای ساخت یه فرستنده 25 کانال با nrf24 از کدوم اردینو استفاده کنم .وکسی نم.نه کدی برای این همه کلید داره///
سلام دوستان
برای ساخت یه فرستنده 25 کانال با nrf24 از کدوم اردینو استفاده کنم .وکسی نم.نه کدی برای این همه کلید داره///
سلام
لطفا اول یه سرچی در گوگل بکنین
اگه به این موضوع مسلط هستی من یک روش پیشنهادی دارم که کارت رو خیلی خیلی راحت میکنه
اول اینکه با هر آردوینویی میشه
دوم اینکه با یه ترفندی میتونی فقط با یک پایه 25 کلید رو بخونی
تقریبا همچین مداری رو همینطوری ادامه میدی
آموزش اتصال چند کلید به یک پین آردوینو - دیجی اسپارکدیجی اسپارک
حالا فقط کافیه مقدار عددی آنالوگ رو بخونی و به گیرنده بفرستی و در کارت خیلی صرفه جویی میشه![]()
ببخشین منظورم این بود 25 پایه جدا داشته باشیم و همشون تو حالت توگل 25تا خروجی رو کنترل بکنن.توی نت بیشتر راه اندازی با ال سی دی هست
منظور شما رو نفهمیدم یعنی میخوای 25 تا خروجی رو با nrf کنترل کنی؟
برای اینکار به آردوینو مگا نیاز داری
سلام
درساخت سخت افزار مشکلی ندارم .بیشتر در بحث برنامه نویسی مشکل دارم.چند تا کد توی نت پیدا کردم.میزارم اگه براتون مقدوره در توسعه برنامه بهم کمک کنید
فرستنده
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int msg[1];
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int SW1 = 7;
void setup(void){
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(pipe);}
void loop(void){
if (digitalRead(SW1) == HIGH){
msg[0] = 111;
radio.write(msg, 1);}}
گیرنده
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int msg[1];
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int LED1 = 3;
void setup(void){
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();
pinMode(LED1, OUTPUT);}
void loop(void){
if (radio.available()){
bool done = false;
while (!done){
done = radio.read(msg, 1);
Serial.println(msg[0]);
if (msg[0] == 111){delay(10);digitalWrite(LED1, HIGH);}
else {digitalWrite(LED1, LOW);}
delay(10);}}
else{Serial.println("No radio available");}}
برای 25 کلید از این میشه استفاده کرد
ویرایش توسط sniper-70 : 09-04-2016 در ساعت 03:14 PM
اره میتونی با همین کد انجام بدی
سمت فرستنده کافیه به جای هر سوئیچت یه if اضافه کنی:
مثلا برای حالت دو کلیدی فرستنده این کد رو ببین و تا آخر پیش برو :
گیرنده :کد:#include <SPI.h> #include "nRF24L01.h" #include "RF24.h" int msg[2]; RF24 radio(8,10); const uint64_t pipe = 0xE8E8F0F0E1LL; int SW1 = 2; int SW2=3; void setup(void){ Serial.begin(9600); radio.begin(); radio.openWritingPipe(pipe);} void loop(void){ if (digitalRead(SW1) == HIGH){ msg[0] = 111; radio.write(msg, 2);} if (digitalRead(SW2)==HIGH) { msg[1]=222; radio.write(msg, 2); } }
کد:#include <SPI.h> #include "nRF24L01.h" #include "RF24.h" #define CE_PIN 9 #define CSN_PIN 10 int msg[2]; const uint64_t pipe = 0xE8E8F0F0E1LL; RF24 radio(CE_PIN, CSN_PIN); int LED1 = 3; int led=2; void setup(){ Serial.begin(9600); radio.begin(); radio.openReadingPipe(1,pipe); radio.startListening(); pinMode(LED1, OUTPUT); pinMode(2,OUTPUT); } void loop(void){ if ( radio.available() ) { // Read the data payload until we've received everything bool done = false; while (!done) { done = radio.read( msg, sizeof(msg) ); if(msg[0]==111) { digitalWrite(3,HIGH); Serial.print("Message recived "); } else { digitalWrite(3,LOW); } if(msg[1]==222){ digitalWrite(2,HIGH) ; } else { digitalWrite(2,LOW); } } } }
سلام
ممنون از شما دوست عزیز.امتحان میکنم خبرشو بهتون میدم
سلام
نمیدونم چرا چراغ متصل به پورت اردوینو الکی چشمک میزنه . دوستان شما تست کردین
سلام
برنامه بالا رو اجرا کردم . ولی با زدن هر کدوم ار کلیدها فقط یه ال ای دی عمل میکنه
برنامه هم به نظر درسته
مشکل از کجاست به نطرتون دوستان///