Eğitimler
MasterWriter
Bazen, sorumlu millet sadece ne zaman susmak bilmiyorum! Bazı durumlarda, birbirleriyle bilgi paylaşmak için iki (veya daha fazla!) Arduino veya Genuino kartı kurmak yardımcı olabilir. Bu örnekte, iki kart I2C senkron seri protokolü aracılığıyla bir Master Writer / Slave Receiver yapılandırmasında birbirleriyle iletişim kuracak şekilde programlanmıştır. Bunu başarmak için Arduino'nun Tel Kütüphanesi'nin çeşitli fonksiyonları kullanılmaktadır. Master Arduino 1, benzersiz bir şekilde ele alınmış bir Slave'e her yarım saniyede bir 6 bayt veri gönderecek şekilde programlanmıştır. Bu mesaj alındıktan sonra, Arduino Yazılımını (IDE) çalıştıran USB bağlantılı bilgisayarda açılan Slave kartının seri monitör penceresinde görüntülenebilir.
I2C protokolü veri göndermek ve almak için iki hat kullanılmasını içerir: Arduino veya Genuino Master kartının düzenli aralıklarla attığı bir seri saat pimi (SCL) ve iki cihaz arasında verinin gönderildiği bir seri veri pimi (SDA) . Saat çizgisi alçaktan yükseğe değiştiğinde (saat darbesinin yükselen kenarı olarak bilinir), belirli bir cihazın adresini ve aa komutunu veya verilerini sırayla oluşturacak olan tek bir bilgi biti karttan SDA hattı üzerinden I2C cihazı. Bu bilgiler - bit bitinden sonra - gönderildiğinde, çağrılan cihaz isteği yürütür ve gerekirse, zamanlama olarak SCL'de Master tarafından üretilen saat sinyalini kullanarak aynı satır üzerinden verilerini geri gönderir. Master'dan Köleler'e ilk sekiz bit (yani sekiz saat darbesi), Master'ın veri istediği cihazın adresini içerir. Sonrasındaki bitler, Slave'de Master'ın veri okumak veya veri yazmak istediği bellek adresini ve varsa yazılacak verileri içerir.
Her Slave cihazının kendine özgü bir adresi olmalıdır ve hem master hem de slave cihazların aynı veri hattı hattı üzerinden sırayla iletişim kurması gerekir. Bu şekilde, Arduino veya Genuino kartlarınızın, her bir cihazın benzersiz adresini kullanarak mikrodenetleyicinizin yalnızca iki pimini kullanarak birçok cihazla veya diğer kartlarla iletişim kurması mümkündür.
Gerekli Donanım
- 2 Arduino veya Genuino Kartı
- bağlantı telleri
Devre
Ana Arduino üzerindeki pim 5'i (saat veya SCL, pim) ve pim 4'ü (veri veya SDA, pim) köle kartındaki muadillerine bağlayın. Her iki kartın da ortak bir zemini paylaştığından emin olun. Seri iletişimi etkinleştirmek için, bağımlı Arduino'nun bilgisayarınıza USB ile bağlı olması gerekir.
Kartlara bağımsız olarak güç vermek bir sorun teşkil ediyorsa, Master'ın 5V çıkışını slave üzerindeki VIN pinine bağlayın.
Şematik
Kod
See Also
- Wire.begin()
- Wire.beginTransmission()
- Wire.endTransmission()
- Wire.send()
- Wire.OnReceive()
- Wire.available()
- Wire Library- Tel Kütüphanesi için referansınız.
- DigitalPotentiometer- Analog Aygıtlar AD5171 Dijital Potansiyometre nasıl kontrol edilir.
- SFRRanger_reader- I2C ile arayüzlenmiş bir ultra-sonik telemetre nasıl okunur.
- Master Reader/Slave Writer- İki Arduino, I2C aracılığıyla bir Master Reader / Slave Sender yapılandırmasında birbirleriyle iletişim kuracak şekilde programlanmıştır.