Arduino I2C haberleşme pinleri çoklanabiliyor mu?

Merhaba ben bitirme tezim için mpu6050 sensörlerinden 3 adet kullanmalıyım ancak sensör I2C haberleşme protokolünü kullanıyor ve SDA SCL pinlerini kullanıyorum. Mega da da bu pinlerdne birer tane var. Acaba bu pinleri çoklamam ya da 3 sensörü de bağlamam gibi durumlar olabilir mi ?

mpu6050 yi spi modunda kullanıp clk,sdi,sdo pinlerini ortak kullanacaksın sonra cs pinlerini her sensor için ayrı ayrı seçeceksin veri okup yazacağın zaman hangisini okuyacaksan onun cs pinin seçeceksin ancak böyle olur. i2c ile yapmak istersen zor olacak data pini iki yönlü olduğu için pek oraya dokunamazsın clock hattı uzerine bir and gate ile cloku toplayıp hepsine ayrı ayrı dağıtman gerekecek zor iş, birde i2c slave adres seçme bacaklarından yönetirsin ama 1 pin vermiş o nedenle 2 sensoru destekler aynı anda, yada adresbitleri kısmına bir dönüştürücü koyup istediğin kadar çoğaltırsın denemek lazım, ha birde sensor fazla akım çekmediği için direk power hatlarını arduinoda ayrı bir pinden çıkış ver besle diyecem(voltaja dikkat ederek) ama devamlı aç kapa yapmaktan sensor kalıbrasyonu bozulacak hemde hız düşecek, hangisini yaparsan yap ozel bir lib yazman gerekecek yoksa işler çok fena karışacak gibi duruyor…

Çok teşekkür ederim baya zordayım anlaşılan. Kütüphane yazamayacağıma göre, bütün bunları nasıl yapabilirim rica etsem biraz daha açıklayabilir miyiz peki?

mpu6050 yi spi modunda kullanan bir kutuphane bul bağlantıları spi modunda yaparsan kolay biter sanırım.

MPU6050’den neden 3 adet gerekiyor? Bu sensör içinde 3 eksen sensörler var. Adresin bir biti değiştirilerek 2 sensör bağlanabiliyormuş aynı bus’a ama 3.sü sorun tabi: "The slave address of the MPU-60X0 is b110100X which is 7 bits long. The LSB bit of the 7 bit address is determined by the logic level on pin AD0. This allows two MPU-60X0s to be connected to the same I2C bus. When used in this configuration, the address of the one of the devices should be b1101000 (pin AD0 is logic low) and the address of the other should be b1101001 (pin AD0 is logic high). "

Açı ölçmek için kullanıyorum ve 3 jointin açı ölçümüne ihtiyacım var bu sebeple kullanıyorum 3 adet. Oldukça uzun süre adres değiştirerek çözüm bulmayı denedim fakat iyice karışınca sensörlerden veri alamamaya başladım şimdi 3 ayrı karttan veri alıp işleyim tek arduinoda birleştirmek için arduinoları seri haberleştirmeye çalışıyorum. ama buna benzer açı ölçebileceğim bir sensör (ı2c kullanmayan) öneriniz varsa çok memnun olurum. Potansiyometre kullanacak mekanik yapıya maalesef sahip değilim çünkü.

spi modunu kullanabilirsin o sensorun böyle adres karmaşası yaşamazsın istediğin sensörün cs pinini aktif ettiğinden o sensöre tamamen hakim olursun. spi modunu kullanan bir kutuphane bulmanız lazım daha önce dediğim gibi bulamazsanız sensorun datasheete bakıp kendi spi kutuphanenızı de yazabılırsın. bu soruyu sorduğunda 25 nisanmış şimdiye kadar yazardın aslında :slight_smile:

evet, yazmayı bilsem yazardım. okuduğum kaynaklarda spi desteklemediği yazıyor. 6000 da spi kullanabilirsiniz ancak 6050 yanlız i2c diyor