Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
215
Tıklama
0
Öne Çıkarma
arduino haberleşme
A
6 yıl
Binbaşı
Konu Sahibi

Merhaba

Bitirme projesi kapsamında slave arduinoda dizi halinde bulunan verileri master arduinoya aktarmam ve masterdan da bluetooth ile cep telefonu arayüzüne vermem lazım.
2 arduino haberleşmesi için nrf24l01 aldım ancak çalışmıyor.Tekrar tekrar aldım yine çalıştıramadım.
spi haberleşme denedim onu yapamadım.
I2C ile veri gönderiyorum ama float veri gönderemiyorum sadece int verileri gönderebiliyorum.

En kolay hangi yolla çözebilirim bunu.2 arduinoyu bluetooth modülle bağlasam nasıl olur?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



L
6 yıl
Binbaşı

Float veri tipini iki adet int olarak gönderin, hedefe ulaşınca da tekrar birleştirilsin
(nokta öncesi ve nokta sonrası)





< Bu mesaj bu kişi tarafından değiştirildi limbesh -- 7 Aralık 2019; 20:42:25 >
Bu mesaja 1 cevap geldi.
A
6 yıl
Binbaşı
Konu Sahibi

quote:

Orijinalden alıntı: limbesh

Float veri tipini iki adet int olarak gönderin, hedefe ulaşınca da tekrar birleştirilsin
(nokta öncesi ve nokta sonrası)
Master arduinoda kodları yazıp seri ekranda görüntülerken değerlerim istediğim gibi çıkıyor ama 2 arduinoyu seri haberleşme ile rx-tx pinleriyle bağladığımda slavede çok alakasız değerler okuyorum.



L
6 yıl
Binbaşı

Anladım, onu ben hiç denemedim,
rx tx bağlantı mantığını biliyorsunuzdur.
tx > rx ve rx >tx



A
6 yıl
Binbaşı
Konu Sahibi

edit.sorun çözüldü.Muhtemelen potansiyometrenin bağlı olduğu gerilim kaynağı ile arduino arasında toprak bağlantısını yapmamışım.Şimdi devre ve kod çalışıyor.

1. arduinoda basit bir şekilde pot değeri okuyorum ve serial.write ile 2. arduinoya yolluyorum.
1. arrduinoda ölçtüğüm değerler doğru ama 2. arduinoya giden değerler yanlış. 3-4 tane sayıyı sürekli gösteriyor. 10-25-36-40 gibi.Hep bu rakamlar var.

İşin kötü tarafı dün çalıştırdım ve her şeyi aynı yapmama rağmen şimdi çalışmıyor.
Nedeni ney olabilir?
Veici kod 

#include <SPI.h>

long value=0;
void setup() {
pinMode(A0, INPUT);
Serial.begin(9600);

}

void loop() {
value=analogRead(A0);
value=map(value, 0,1023,0,255);
Serial.write(value);

}


Alici kod 


#include <SPI.h>
long deger;
int sayi;
float v=0;
void setup() {

Serial.begin(9600);
}

void loop() {
deger=Serial.read();
sayi=(deger*4);
v=(sayi*5.0)/1024.0;

Serial.println(v);


}





< Bu mesaj bu kişi tarafından değiştirildi aeson01 -- 21 Aralık 2019; 14:49:29 >

L
6 yıl
Binbaşı

Hocam basitten karmaşığa doğru giderek çözebilirsiniz, en azından hatayı bulursunuz.
Pinlerden okuma yapmadan basit sade bir değer gönderin,
alıcı da işlem yapmadan direkt ekrana yazsın
problem yok ise noktalı değer gönderin vs





< Bu mesaj bu kişi tarafından değiştirildi limbesh -- 27 Aralık 2019; 0:36:7 >

B
6 yıl
Binbaşı

Serial.write ve Serial.read yaptığınızda muhtemelen tek byte gönderip alıyorsunuz fakat gönderdiğin değer long türünde yani 4 byte.

Verici kodunuzda Serial.write(value) yerine Serial.write(value,4); kullanın.

Alıcı kodunda

long value = 0;
Serial.readBytes(&value, 4);


yapın. Sonra value üstünden istediğiniz işlemleri yapabilirsiniz.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.