Arduino breadboard takıldım kaldım!

Reklam Alanı #5

gazeteci

Yeni üye
Katılım
1 Kas 2018
Mesajlar
46
Tepkime puanı
0
Puanları
1
Konum
İstanbul
3 adet nrf24 var elimde. 3 adet arduino pro micro. Her bir breadbordda 3 adet buton ve 3 adet led var. Bağlantılarım herşeyim, tek yönlü iletişimde çalışıyor, birinden butona basıp diğer taraftaki ilgili ledi yakabiliyorum. Benim yapmak istediğim ise bütün breadborddaki ledler senkronize olsun, yani herhangi breadboardda 1. butona basınca tüm 1.ledler yansın, ya da yanıyorsa sönsün. 2. butona basınca tüm 2.ledler yansın ya da sönsün...

RF24Mesh_Example_Master.ino kütüphane örneğini denedim, breadboardların bağlandığına dair ibare alıyorum ama ileriye götüremiyorum. Tıkandım. Bu işi daha önceden yapmış ve basitçe anlatabilecek birine ihtiyacım var. Yardımcı olabilecek bir arkadaş var mıdır?

İstanbul içinde yanımda bir iki saat bu işi çözmek isteyen olursa maddi destek de bulunabilirim. Uzaktan da olabilir..
 

aphro

Yeni üye
Katılım
26 Eki 2018
Mesajlar
51
Tepkime puanı
1
Puanları
1
Konum
Adıyaman
Toplam kaç led var güç kısmını halledin gerisi toogle ile kolay high ise low vs gibi
 

gazeteci

Yeni üye
Katılım
1 Kas 2018
Mesajlar
46
Tepkime puanı
0
Puanları
1
Konum
İstanbul
Toplam kaç led var güç kısmını halledin gerisi toogle ile kolay high ise low vs gibi
herşey ok. ledleri yakmak söndürmekte sıkıntı çekmiyorum. toogle kısmında değil veri gönderme kısmında takıldım. node0 node1 node2 var. diyorum ki tüm bilgi node0 da toplansın, yani ledlerin durumları. ama node1 ya da 2 den bilgi nasıl gönderilir , node0 dan nasıl okunur ve tekrar geri gönderilir bilmiyorum.

bu arada 3 ayrı board da 3 er tane led, yani. toplamda 9 adet led var "güç kısmını halledin" ne demek? herşeyi hallettim diyorum. cihazlar birbirini görüyor. hatta tek yönlü veri gönderiyorum. bir board dan diğerine, ayrı butonlarla ayrı ledleri yakmayı da başardım. yapamadığım kısım ikiyönlü iletişim.
 

archell

Yeni üye
Katılım
26 Eki 2018
Mesajlar
81
Tepkime puanı
7
Puanları
1
Konum
Adana
İki yönlü ve çok kullaıcılı 3 veya daha fazla olan sistemlerde bir merkez olmalı, master merkez olmalı. Merkez her alıcıya tek tek ulaşır ve aldığı veriye göre işlem yaptırır. Mesela 3 boarddan 1.yi merkez yapalım. Merkez ortak kanaldan 2.sinin buton bilgisini istesin ve gelen bilgiye göre kendi ledlerini ve 3. board a veri göndererek onun ledlerine konum verisi göndersin. Sonra aynı işlemi sürekli tekrarlasın. 2 yönlü iletişimde çakışma olmadan bu şekilde yapılabilir diye düşünüyorum.
 

gazeteci

Yeni üye
Katılım
1 Kas 2018
Mesajlar
46
Tepkime puanı
0
Puanları
1
Konum
İstanbul
İki yönlü ve çok kullaıcılı 3 veya daha fazla olan sistemlerde bir merkez olmalı, master merkez olmalı. Merkez her alıcıya tek tek ulaşır ve aldığı veriye göre işlem yaptırır. Mesela 3 boarddan 1.yi merkez yapalım. Merkez ortak kanaldan 2.sinin buton bilgisini istesin ve gelen bilgiye göre kendi ledlerini ve 3. board a veri göndererek onun ledlerine konum verisi göndersin. Sonra aynı işlemi sürekli tekrarlasın. 2 yönlü iletişimde çakışma olmadan bu şekilde yapılabilir diye düşünüyorum.
yapılabilir gibi evet. ama. yapamıyorum. bilgiler mevcut internette ama. tecrübe eden birisini arıyorum. çünkü ben yapamadım, beceremedim. node0. Master zaten. herşey kafamda ok ama veri nasıl gönderiyorum bilmiyorum? mesela analog pot bilgisi okuyup mastera nasıl gönderirim. Master bu değeri ikiyle çarpıp o node a nasıl gönderir. rf24 mesh i tecrübe eden varsa basit bir çift yönlü kod üzerinde anlatabilir mi?

Kodlarım aşağıdaki gibi:
Kod:
/** Modification of RF24Mesh_Example_Master.ino by TMRh20 and RF24Mesh_Example_Master_Statics by TMRh20
*
*
* This example sketch shows how to send data to nodes bassed on their ID.
*
* The nodes can change physical or logical position in the network, and reconnect through different
* routing nodes as required. The master node manages the address assignments for the individual nodes
* in a manner similar to DHCP.
*
**/

int but1 = 3;
int but2 = 6;
int but3 = 8;

int led1 = 4;
int led2 = 5;
int led3 = 7;

#include "RF24Network.h"
#include "RF24.h"
#include "RF24Mesh.h"
#include <SPI.h>

/***** Configure the chosen CE,CS pins *****/
RF24 radio(9,10);
RF24Network network(radio);
RF24Mesh mesh(radio,network);

struct payload_t {
unsigned long ms;
unsigned long counter;
};

uint32_t ctr=0;

void setup() {
pinMode(but1, INPUT_PULLUP);
digitalWrite(but1, HIGH);
pinMode(but2, INPUT_PULLUP);
digitalWrite(but2, HIGH);
pinMode(but3, INPUT_PULLUP);
digitalWrite(but3, HIGH);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
Serial.begin(115200);

// Set the nodeID to 0 for the master node
mesh.setNodeID(0);
Serial.println(mesh.getNodeID());
// Connect to the mesh
mesh.begin();

}

uint32_t displayTimer = 0;

void loop() {

// Call mesh.update to keep the network updated
mesh.update();

if (digitalRead(but1) == LOW){
digitalWrite(led1, HIGH);
} else {
digitalWrite(led1, LOW);
}

if (digitalRead(but2) == LOW){
digitalWrite(led2, HIGH);
} else {
digitalWrite(led2, LOW);
}

if (digitalRead(but3) == LOW){
digitalWrite(led3, HIGH);
} else {
digitalWrite(led3, LOW);
}

// In addition, keep the 'DHCP service' running on the master node so addresses will
// be assigned to the sensor nodes
mesh.DHCP();

// Check for incoming data from the sensors
if(network.available()){
RF24NetworkHeader header;
network.peek(header);
Serial.print("Got ");
uint32_t dat=0;
switch(header.type){
// Display the incoming millis() values from the sensor nodes
case 'M':
network.read(header,&dat,sizeof(dat));
Serial.print(dat);
Serial.print(" from RF24Network address 0");
Serial.println(header.from_node, OCT);
break;
default:
network.read(header,0,0);
Serial.println(header.type);
break;
}
}

// Send each node a message every five seconds
// Send a different message to node 1, containing another counter instead of millis()
if(millis() - displayTimer > 300){
ctr++;
for (int i = 0; i < mesh.addrListTop; i++) {
payload_t payload = {millis(),ctr};
if (mesh.addrList[i].nodeID == 1) { //Searching for node one from address list
payload = {ctr%3,ctr};
}
RF24NetworkHeader header(mesh.addrList[i].address, OCT); //Constructing a header
Serial.print(mesh.addrList[i].address);
Serial.print(network.write(header, &payload, sizeof(payload)) == 1 ? "-" : "x"); //Sending an message
Serial.print(" , ");
}
Serial.println("...");
displayTimer = millis();
}
}
mesh.setNodeID(0); satırındakini 0-1-2 şeklinde 3 ayrı arduinoya atıyorum. masterdan(yani 0 dan) serialmonitörde diğerleri bağlanırsa karşısında (-) bağlantı koparsa (x) gösteriyor. Buraya kadar okey. Butonları ledleri de tanımladım. Bir veriyi gönderirken hangi komutu kullandığımı anlamadım.

Belki de bu çok saçma bir örnek (ya da kütüphane) benim için. Ama çift yönlü iletişim için başka bir yöntem bulamadım.
 

Reklam Alanı #6

Reklam Alanı #1

Yeni konular

Reklam Alanı #2

Üst