screenshot_3_7bAq34eY2J.jpg
PROJE HAKKINDA
Bu projenin amacı basittir: Verilerin bir Arduino kartından diğerine nasıl aktarılacağını anlamak. Bu durumda, aktarılacak değer, ilk Arduino kartına bağlı bir potansiyometreden geliyor.
Değer belirli bir eşiği geçerse, ikinci Arduino kartına bağlı LED'in yanmasını sağlayacağız.
Bir Arduino kartından diğerine nasıl değer aktarılır?
Yukarıda belirtilen hedefe ulaşmak için uygulanabilecek birçok farklı protokol vardır. Burada I2C protokolünü ana yazıcı / yardımcı alıcı konfigürasyonunda kullanacağız.
I2C protokolü nedir?
Basitçe söylemek gerekirse, I2C iletişim protokolünde iki cihaza, iki hat, bir veri hattı ve bir saat hattına bağlanan bir master ve slave cihazına sahipsiniz.
Arduino Uno'da, veri hattı Analog pin 4 (A4) ve saat hattı Analog pin 5'tir (A5). Ancak bu, farklı board lar için farklıdır.
Saat pimi alçaktan yükseğe çıktığında, bir veri biti veri pimi ile aktarılır. Slave kartı daha sonra aynı veri pimi ile veri geri gönderebilir veya bir görevi gerçekleştirebilir (bizim durumumuzda olduğu gibi). Bununla birlikte, ilk sekiz bit, master'ın değerleri gönderdiği slave Arduino kartının adresi için ayrılmıştır.
Proje nasıl çalışır ve ne işe yarar?
Bağlı olan bir potansiyometrenin değerini elde etmek için ana Arduino kartında analog okuma kullanıyorum. Sonra bu değer köle Arduino Kartına aktarılır ve eğer bir eşiğin üstünde ise, köle Arduino'ya bağlı LED yanar.
Bağlantılar
Bağlantılar için yüklenen Fritzing dosyasına bakın.
İki panelin ortak bir şase bağlantısına sahip olması gerekir, bu nedenle şaseleri ( her iki panelden birbirine bağlayın.
whatsapp_image_2019-06-24_at_18_01_38_ExCunEcUj8.jpeg
Potansiyometre yeteri kadar açılmamış halde led ışık yanmayacak.
i2c_on_bofTNN07Bq.jpg
Potansiyometre yeteri kadar açıldığında led lamba yanacak.
SONUÇ
I2C iletişimi için özellikle IoT (Nesnelerin İnterneti) alanında birçok uygulama vardır. Bunun dışında, belirli bir proje için bir pimin tükenmesi ve birden fazla panoya sahip olması durumunda, bu da kullanılabilir.
PROJE HAKKINDA
Bu projenin amacı basittir: Verilerin bir Arduino kartından diğerine nasıl aktarılacağını anlamak. Bu durumda, aktarılacak değer, ilk Arduino kartına bağlı bir potansiyometreden geliyor.
Değer belirli bir eşiği geçerse, ikinci Arduino kartına bağlı LED'in yanmasını sağlayacağız.
Bir Arduino kartından diğerine nasıl değer aktarılır?
Yukarıda belirtilen hedefe ulaşmak için uygulanabilecek birçok farklı protokol vardır. Burada I2C protokolünü ana yazıcı / yardımcı alıcı konfigürasyonunda kullanacağız.
I2C protokolü nedir?
Basitçe söylemek gerekirse, I2C iletişim protokolünde iki cihaza, iki hat, bir veri hattı ve bir saat hattına bağlanan bir master ve slave cihazına sahipsiniz.
Arduino Uno'da, veri hattı Analog pin 4 (A4) ve saat hattı Analog pin 5'tir (A5). Ancak bu, farklı board lar için farklıdır.
Saat pimi alçaktan yükseğe çıktığında, bir veri biti veri pimi ile aktarılır. Slave kartı daha sonra aynı veri pimi ile veri geri gönderebilir veya bir görevi gerçekleştirebilir (bizim durumumuzda olduğu gibi). Bununla birlikte, ilk sekiz bit, master'ın değerleri gönderdiği slave Arduino kartının adresi için ayrılmıştır.
Proje nasıl çalışır ve ne işe yarar?
Bağlı olan bir potansiyometrenin değerini elde etmek için ana Arduino kartında analog okuma kullanıyorum. Sonra bu değer köle Arduino Kartına aktarılır ve eğer bir eşiğin üstünde ise, köle Arduino'ya bağlı LED yanar.
Bağlantılar
Bağlantılar için yüklenen Fritzing dosyasına bakın.
İki panelin ortak bir şase bağlantısına sahip olması gerekir, bu nedenle şaseleri ( her iki panelden birbirine bağlayın.
whatsapp_image_2019-06-24_at_18_01_38_ExCunEcUj8.jpeg
Potansiyometre yeteri kadar açılmamış halde led ışık yanmayacak.
i2c_on_bofTNN07Bq.jpg
Potansiyometre yeteri kadar açıldığında led lamba yanacak.
SONUÇ
I2C iletişimi için özellikle IoT (Nesnelerin İnterneti) alanında birçok uygulama vardır. Bunun dışında, belirli bir proje için bir pimin tükenmesi ve birden fazla panoya sahip olması durumunda, bu da kullanılabilir.
Code:
//Code for the Master board #include<Wire.h>//This library is used for I2C communication int x; void setup() { Wire.begin(); Serial.begin(9600); } void loop() { x = analogRead(A0);//Reading value from Potentiometer x/=4; Wire.beginTransmission(9);//9 here is the address of the slave board Wire.write(x);//Transfers the value of potentiometer to the slave board Wire.endTransmission(); Serial.print(x); delay(1000); } //Code for the slave board #include<Wire.h int x; void setup() { pinMode (13, OUTPUT);//Connect LED to pin 13 Wire.begin(9);//9 here is the address(Mentioned even in the master board code) Wire.onReceive(receiveEvent); Serial.begin(9600); } void receiveEvent(int bytes) { x = Wire.read();//Receive value from master board Serial.print(x); } void loop() { if (x > 88) {//I took the threshold as 88,you can change it to whatever you want digitalWrite(13, HIGH); delay(200); } else{ digitalWrite(13, LOW); delay(400); } }