I2C arduinolar arası int aktarımı
  • iki arduino arasında i2c protokolü ile veri aktarmak istiyorum.

    MASTER
    int button=12112;

    Wire.beginTransmission(2);
    Wire.print(button);
    Wire.endTransmission(2);

    SLAVE
    void setup() {
    Serial.begin(9600);
    Wire.begin(2);
    Wire.onReceive(verigeldi);
    pinMode(LED,OUTPUT);
    }

    void verigeldi()
    {
    while(Wire.available() > 0){
    int button = Wire.read();
    Serial.println(button);
    }

    burada slave e veri geliyor ama button değeri değil anlamsız sayılar geliyor. Ne yapabilirim.
  • bağlantıyı nasıl yaptın ?
    Haberleşme yollarını HIGH seviyeye çektin mi ?
  • hocam bağlantıda sorun yok şöyleki integer değilde "a" yada "b" karakteri gönderdiğimde veriyi alıp led yakıyorum. ama integer sayı gönderemiyorum. Aslında slave olan veriyi alıyor ama benim gönderdiğim veri değil
  • o zaman büyük ihtimalle alıcı kısmında ki değişkenin char tanımlanmıştır. Yani

    char gelenveri;

    if bluetootthan bişey geliyorsa
    gelen veri = bluettoh gelen veri;

    eğer böyle ise
    değişken uyumsuzluğun var. Bunu şöyle çözersin alıcı ve verici değişkenlerini aynı cins tanımla.
    alıcıda char yapıyorsan göndericide de
    char button yap.

    ikinci bir seçenek ise değişken dönüşümü yapabilirsin.
    Sen int button =12112 yazdığında giden verin int tipinde

    sen bunu char tipinde alıyorsan,

    char to int yparsan aynı veriyi elde edersin.

    umarım yardımcı olmuştur.
  • 0-255 arasında değerler yolla daha buyugu olunca 2 byte arka arkaya yollaman lazım
  • evet hocam bende byte sorunu olabilir dedim uint8_t (0-255) değişken tanımladım. Gönderdim veriyi ama değişen bişi olmadı. Master ve Slave de değişken türleri aynı.
  • o zaman şöyle yap dostum

    butonu char tanımla

    char buton=12112;


    alıcıda da aldıgğın veriyi char tanımla.

    birde öyle dene bakalım
  • hallettim çok sağolun ne güzel bir forum ya :)
    nasıl çözdüm anlatayım değikeni 1 bytlık değişken olarak tanımladım. Master da timer çalışıyordu slavede loop içerisinde okuma yapıyordum onu if else yapısıyla kontrole bağladım şimdi hafif bir senkron kaybı olsada çalışıyor.
  • hadi gözün aydın :)

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook
Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.