Son kullanma tarihi geçmiş, bayatlamış bir tarayıcı kullanıyorsanız, Mercedes kullanmak yerine tosbağaya binmek gibi... Web sitelerini düzgün görüntüleyemiyorsanız eh, bi' zahmet tarayıcınızı güncelleyiniz. Modern Web standartlarını karşılayan bir tarayıcı alternatifine göz atın.
Arduino Buton ile LED yakma projesi devre ve kodları
pinMode ile o çıkışın ne iş yapmasını seçiyoruz. Örneğin pinMode(13. OUTPUT); bu 13. dijital pini çıkış olarak kullanacağımız anlamına geliyor. INPUT yazsaydık okuma yapmak için kullanacaktık.
digitalWrite komutu seçtiğimiz pine dijital olarak güç verir 1 ve 0 mantığı ile çalıştığı için ya 5V ya da 0V verir. digitalRead ise seçtiğimiz pinde elektrik akımına göre true yada false olarak değişken atamamızı sağlar.
pinMode ile o çıkışın ne iş yapmasını seçiyoruz. Örneğin pinMode(13. OUTPUT); bu 13. dijital pini çıkış olarak kullanacağımız anlamına geliyor. INPUT olsaydı okumam için kullanacaktık.
digitalWrite komutu seçtiğimiz pine dijital olarak güç verir 1 ve 0 mantığı ile çalıştığı için ya 5V ya da 0V verir.
#define genellikle pin gibi sabit değişkenleri tanımlamak için kullanılır. Burada da Button ve Led değişkenleri, ilgili devre elemanlarının bağlandığı portları temsil etmek için kullanılmış.
int değişken tanımlamak için kullanılır. 3 temel değişken vardır:
String
Integer
Float
int buton_durumu = 0; kodu, buton_durumu adında bir değişken oluşturuyor. Bu değişkenin amacı, butonun basılı olup olmadığını kontrol etmek ve kaydetmek.
void setup() kısmında, pin giriş ve çıkışlarını ayarlıyoruz. GPIO pinlerinin veri mi alacağı yoksa veri mi göndereceğini belirtmemiz gerek. Bu durumda, Buton pini giriş, Led pini çıkış oluyor. Çünkü butondan veri gelecek, LED'i yakmak içinse enerji göndermemiz gerekecek.
Gelelim void loop() kısmına:
void loop(), genellikle en son çalışan ve sonsuza kadar tekrarlayan master fonksiyondur. Yani kartın yapmak istediği şeyi buraya yazarsın.
Butonlar, anahtarlardan farklıdır. Zira anahtarlar, statiktir. Yani gücü keser ya da sağlar.
Butonlar ise farklı çalışırlar. Zira güç vereceğin şeyi butona değil direkt karta bağlarsın. Butonu ise sensör gibi kullanman gerekir.
Yani butondan bir şekilde karta veri gitmeli, giden veriye göre de kart üzerindeki LED açılıp kapanmalı.
Dikkat ettiysen digital... adlı iki fonksiyon var: digitalWrite ve digitalRead.
Port numaralarından bahsederken, pinlerin giriş ve çıkış olabildiğinden bahsetmiştim digitalWrite çıkış olarak ayarlanmış pine veri göndermeyi sağlarken, digitalRead giriş olarak ayarlanmış pinden gelen veriyi okumayı sağlar.
Butonun bir bacağı GND, diğer bacağı ise 5V portuna bağlanmış.
Şimdi, digitalRead fonksiyonu temelde iki değer döner: HIGH ya da LOW. Eğer okunan portta akım varsa bu HIGH olur, eğer yoksa LOW.
Buton basılı değilken 5V ve GND uçları birleşmez. Okuma yapacağımız port ise GND'ye bağlı. GND, - porttur kabaca, yani buton basılı değilken okuma yaptığımızda, GND'yi okuyacağız yani LOW olarak dönecek.
Butona bastığında ise, GND ve 5V hattı birleşecek, aynı zamanda okuma yaptığımız porta da akım gidecek. Böyle olunca da HIGH olarak okumuş olacağız.
Yani butona basıldığında, HIGHdeğeri okunacak ve LED yanacak, basılı değilken LOWdeğeri okunacak ve LED yakılmayacak.
Kodda 0 ve 1 olarak kullanmış, HIGH'ın int karşılığı 1, LOW'un int karşılığı 0'dır.
Hocam vallahi Robotistan derslerinden hiçbir şey anlamadım. Benim için Arduino öğrenebileceğim türkçe kaynak ve kanal önerileri yapar mısınız? @cengover_ekin hocam sizin de yorumlarınızı görmek isterim.