Dijital Sinyal Kavramı
Arduino içerisinde bulunan yazılıma göre elektronik bileşenlere 5 Volt yada 0 Volt vermek için kullanılırlar. Bu Pinlerden 40 miliamper çıkış akımı verilebilmekte ve dışarıdan gelecek 40 miliamper akıma dayanabilmektedir. Dijital pinler giriş ( input ) için kullanılması, belirilen pinden gelmesi gereken bir değer olduğu ve okuma yapılacağı anlamına gelir. Arduino üzerindeki dijital pinler varsayılan olarak giriş(input) için tasarlanmışlardır. Dijital pinlerin çıkış (output) için kullanılması, belirilen pinden bir güç çıkışı olacağı ve bu pinden akım bekleyen bir devre elemanı olduğu anlamına gelir. Digital pinleri çıkış için kullanmamız gerektiğinde pinMode(pin, OUTPUT); komutuyla, varsayılan durumunu değiştirmemiz gerekmektedir.
Dijital Sinyali Bir Örnekle Açıklayalım;
Arduino üzerinde 13. pin’ bağlı olan led buliltin’i kullanarak, led’in 1 sn aralıklarla yanıp söneceği basit bir örnek gerçekleştirelim. aşağıdaki kodu Arduino’nuza yüklediğinizde led’inizin yanıp söndüğünü göreceksiniz. Arduino’ya kodunuzu nasıl yükleyeceğinizi daha önce deneyimlemediyseniz, Arduino IDE Kurulumu ve Yapılandırma yazımı inceleyebilirsiniz. Dijital sinyaller ile tam güç vererek led’inizi yakar yada gücü tamamen keserek led’inizi söndürebildiğinizi göreceksiniz.
void setup() { pinMode(LED_BUILTIN, OUTPUT); // Arduino üzerindeki led'in bağlı olduğu, LED_BUIDLIN olarak da isimlendirilen 13. dijital pini çıkış pini olarak ayarladık. } void loop() { digitalWrite(LED_BUILTIN, HIGH); // 13. pin'e bağlı led'i yaktık. delay(1000); // 1 sn 1000ms bekleme kodunu yazdık. digitalWrite(LED_BUILTIN, LOW); // 13. pin'e bağlı led'i kapattık. delay(1000); // 1 sn 1000ms bekleme kodunu yazdık. }
Analog Sinyal Kavramı
Görsel-1’de gördüğünüz Arduino Uno modelinde 6 analog pin bulunmaktadır. Analog pinler Analog(0), Analog(1) şeklinde isimlendirilmektedir. Arduino üzerinde de A0, A1,… şeklinde gösterilmektedir. Bazı Arduino modellerinde ise bu sayı artmaktadır (Örn. Arduino Mega) Analog pinler 0-5 Volt arasındaki gerilimi dijitale dönüştürmektedir. Çoğu Arduino Modelinin Analog Giriş Pin Çözünürlüğü 10 bit tir. Bu değer 0 – 5 Volt arası uygulanan gerilim değerinin 210 yani 1024 parçaya bölündüğünü ve bu hassasiyete (5/1024 Volt) gerilim değerinin okunabildiğini ifade etmektedir. Bu pinler analog çıkış verebilen tüm devre elemanlarının (Potansiyometre, Sensörler vb.) verdikleri değerlerin dijitale çevrilerek Arduino içerisindeki yazılım tarafından işlenebilir hale getirilmesini sağlar. Analog Giriş Pinleri aracılığı ile saniyede 10.000 değer okunabilir. Yani 10 khz hızında örnekleme yapabilirsiniz. Analog giriş pinleri istenildiğinde Dijital Çıkış pini olarak da kullanılabilmektedir.
Analog Sinyali Bir Örnekle Açıklayalım;
Gerekli Malzemeler
- 1 adet Arduino Uno
- 1 adet breadboard
- 1 adet Potansiyometre
- 3 adet M-M Jumper Kablo
Bu örneğimizde Analog(in) pinlerimizden birini kullanarak potansiyometreden aldığımız değeri seri port ekranına yazdıracağız. Öncelikle yukarıdaki gibi bağlantımızı sağlayalım ve kodlamaya geçelim.
#define potansiyometre A0 // A0 pinimizi potansiyometre olarak tanımladık. int potDeger = 0; // potDeger diye bir değişken tanımlıyoruz. bunu potansiyometreden aldığımız değeri okurken kullanacağız. void setup() { // put your setup code here, to run once: Serial.begin(9600); //9600 baud üzerinden haberleşme başlattık. Serial.println("Potansiyometrenin Değeri: "); // seri ekranımıza bir defa gönderilen bir yazı yazdırdık } void loop() { // put your main code here, to run repeatedly: potDeger = analogRead(potansiyometre); // yukraıda tanımladığımız A0 pinine potansiyometreden gelen değeri okuduk. Serial.println(potDeger); // seri ekranımıza potansiyometreden gelen değeri yazdırdık. }
Merhabalar
Hocam ben Scanner V3.0 kullanarak qr hes kodu okumak ve kontrol etmek istiyorum. Bunun için hangi komponentleri kullanacağım konusunda endişe içerisindeyim. Öneriniz ve bilginize muhtacım. Teşekkür ederim.
Merhaba hocam HES kodu kalmadı ama blog’u okuyan farklı birinin de ihtiyacı olabileceğini düşünerek ve bunu Arduino ile yapmak istediğinizi varsayarak bunları kullanarak okuma yapabilirsiniz diye tahmin ediyorum.
Arduino: Arduino Uno veya Arduino Nano gibi bir Arduino kartı kullanabilirsiniz. QR kodu okuma ve kontrol işlemlerini Arduino üzerinde gerçekleştireceksiniz.
Kamera Modülü: QR kodlarını okuyabilmek için bir kamera modülü kullanmanız gerekecektir. Örneğin, OV7670 Kamera Modülü veya Raspberry Pi Kamera Modülü gibi modüller tercih edilebilir. Bu kamera modüllerini Arduino’ya bağlamak için gerekli bağlantıları yapmanız gerekmektedir. Kamera modülü üzerinden görüntü alacak ve QR kodlarını tespit edeceksiniz.
QR Kod Kütüphanesi: Arduino üzerinde QR kodlarını okumak için bir QR kodu kütüphanesi kullanmanız gerekecektir. ZBar kütüphanesi, Arduino ile uyumlu bir kütüphanedir ve QR kodlarını tespit edebilmenizi sağlar. Bu kütüphaneyi Arduino IDE’ye yükleyerek projenize dahil edebilirsiniz. Kütüphane, QR kodlarını okuyabilmek ve içeriklerini elde etmek için gerekli fonksiyonları sağlar.
Ekran: QR kodunun okunduğunu ve kontrol edildiğini görsel olarak takip etmek için bir ekran kullanabilirsiniz. Örneğin, 16×2 karakter LCD ekran veya OLED ekran gibi ekran modülleri kullanılabilir. Ekran modülünü Arduino’ya bağlamak için gerekli bağlantıları yapmanız gerekmektedir. QR kodlarının içeriklerini veya kontrol sonuçlarını ekranda görüntüleyebilirsiniz.
Ekstra Bileşenler: Projenizin gereksinimlerine bağlı olarak ekstra bileşenlere ihtiyaç duyabilirsiniz. Örneğin, projenizin çıktılarını göstermek için LED’ler veya hoparlör gibi bileşenler ekleyebilirsiniz. QR kodlarının doğru veya yanlış olduğuna dair geribildirim sağlamak için bu bileşenleri kullanabilirsiniz.
Projenizi oluştururken, kamera modülü aracılığıyla QR kodlarını okuyacak, Arduino üzerinde QR kodlarını analiz edecek, kontrol işlemlerini gerçekleştirecek ve sonuçları ekran üzerinde veya başka bir şekilde kullanıcıya göstereceksiniz. QR kodu kütüphanesinin doğru şekilde kullanılması ve gerekli bağlantıların düzgün yapıldığından emin olmanız önemlidir.
{
for(int cikispin=2; cikispin < 8; cikispin++)
{
pinmode(cikispin,OUTPUT);
}
}
BU KODUN AÇIKLAMADI NEDİR ACABA
Bu kod, Arduino programının başlangıcında kullanılan bir dil yapısı içerir. Bu yapı, Arduino mikrodenetleyicisinin belirli dijital pinlerini çıkış moduna ayarlamak için kullanılır. Kodun açıklamaları şu şekildedir:
for Döngüsü: Bu kod, bir for döngüsü içerir. for döngüleri, belirli bir işlemi belirli bir koşul altında tekrarlamak için kullanılır. Bu durumda, döngü, cikispin adlı bir değişkeni 2’den başlatır ve 8’e kadar artırır. Bu sayede döngü, 2, 3, 4, 5, 6 ve 7 numaralı dijital pinler için çalışır.
pinMode Fonksiyonu: Her döngü turunda pinMode fonksiyonu kullanılır. Bu fonksiyon, bir pinin giriş (INPUT) veya çıkış (OUTPUT) olarak ayarlanmasını sağlar. pinMode fonksiyonunun ilk parametresi, pin numarasını belirtirken, ikinci parametre ise pinin hangi modda kullanılacağını belirtir.
cikispin Değişkeni: cikispin değişkeni, her döngü turunda artırılarak 2, 3, 4, 5, 6 ve 7 gibi değerleri alır. Bu değerler, belirli dijital pinleri temsil eder. Örneğin, cikispin değeri 2 olduğunda, dijital pin 2 “OUTPUT” (çıkış) moduna ayarlanır.
Bu kod, Arduino’nun belirli dijital pinlerini çıkış moduna ayarlamak için kullanılır. Genellikle birden fazla çıkış pinine sahip projelerde, bu tür bir döngü kullanarak pinleri hızlıca yapılandırmak ve hazırlamak için kullanılır.
Merhabalar hocam, örneğin ben iki adet arduino ile tek ledi kontrol etmek istiyorum Arduino ların dijital pinlerini misal 3 numaralı pinlerini birbirine koşa devre ederk lede bağlasam Arduino lar zarar görürmü
Merhaba Ramazan hocam,
İki adet Arduino ile tek bir LED’i kontrol etmek istediğinizde dijital pinleri kısa devre etmek, yani birbirine bağlamak yerine, iki Arduino’yu birbirine TX-RX pinlerini kullanarak seri olarak bağlayabilirsiniz. Bu durumda, birinci Arduino’nun dijital pini LED’i kontrol ederken, ikinci Arduino’nun dijital pini de bir sonraki Arduino’ya bağlanarak iletişim kurabilir.
Ancak, dijital pinleri kısa devre etmek, hem Arduinolarınızı hem de bağlı olan LED’i zarar gösterebilir. Çünkü iki dijital pini kısa devre etmek, akımı yükselterek devreye zarar verebilir. Bu nedenle, her zaman doğru şekilde bağlantıları yapmak önemlidir.
Ayrıca, iki Arduino ile tek bir LED kontrol etmek gibi basit bir uygulama için, iki Arduino kullanmak gereksiz olabilir. Tek bir Arduino kullanarak bu işlemi gerçekleştirebilirsiniz. Bu şekilde hem daha az donanım kullanarak daha az karmaşık bir proje oluşturabilirsiniz.