Potansiyometre ile LED parlaklığı ayarlama

Bu yazımızda Arduino ile potansiyometre kullanarak bir led’in parlaklığını artırıp azaltan uygulamayı kodlayıp devre kurulumunu yapacağız. 

    *Gerekli Malzemelerden Başlayalım.

Bu uygulamada yapmak istediğimiz, potansiyometreden gelen sinyali analog olarak ölçerek, sinyalin büyüklüğü oranında ledin parlaklığını ayarlamak. 

Kodların tamamına göz gezdirin ardından adım adım bütün komutları ayrıntılarıyla açıklayacağız.

int ledPin=5;
int potansiyometrePin=A0;
int potansiyometreDegeri;

void setup(){

}
void loop(){
  potansiyometreDegeri=analogRead(potansiyometrePin);
  potansiyometreDegeri=map(potansiyometreDegeri, 0, 1023, 0, 255);
  analogWrite(ledPin, potansiyometreDegeri);
  delay(10);
}

PROGRAM ADIMLARI

ADIM 1:

int ledPin=5;

Setup() ve Loop() fonksiyonlarından önce tanımlamalar, sabitler ve değişkenler oluşturulabilir. Bizde kullanacağımız ledin hangi pine bağlanacağını, potansiyometrenin hangi pine bağlanacağını önceden yazıyoruz.

Kodlarımız arttıkça veya sensörlerimiz ve kullandığımız pin sayısı arttıkça kod karmaşası artar. Bu kod karmaşasını engellemek ve kodu daha anlaşılır hale getirmek için kullanacağımız pinleri, hangi görev ya da sensör için kullanacaksak onunla ilişkili bir isimle tanımlayıp kullanmak gerekir.

Burada “int ledPin=5;” ifadesi ledin 5 numaralı pine bağlanacağını belirtir. Program içerisinde 5 numaralı pin demek yerine ledPin diyerek daha anlamlı ve anlaşılır kod yazılmasını sağlıyoruz.

ADIM 2:

int potansiyometrePin=A0;

“int potansiyometrePin=A0;” ifadesi, potansiyometrenin bağlandığı pinin A0 pini olduğunun tanımlanmasıdır. PotansiyometrePin adında bir değişken oluşturup bu değişkene A0 değişkenini atarsak, artık A0 demek PotansiyometrePin demektir. Fark ettiyseniz PotansiyometrePin A0’dan çok daha anlamlı ve bilgi verici. (PotansiyometrePin bizim verdiğimiz değişken adıdır. İstediğiniz ismi verebilirsiniz.)

ADIM 3:

int potansiyometreDegeri;

Bu komut ile potansiyometreDegeri adında bir değişken oluşturuyoruz. Fakat bu değişkene şuan bir değer atamadık. Bunu nedeni bu değişkeni loop() fonksiyonunda kullanmak için hazırladık. Aşağıdaki adımlarda ayrıntılı bilgi alacaksınız.

ADIM 4:

void setup(){ }

void setup() bir fonksiyondur. Arduino çalışmaya başladığında ilk olarak Setup fonksiyonunu okur. Bu fonksiyonun temel görevi, yapacağımız proje için Arduino’nun ön ayarların yapılmasını yani kurulumunun yapılmasını sağlamaktır.

Bu kısımda herhangi bir şey yazmamıza gerek yok. İçini boş bırakıyoruz.

ADIM 5:

void loop(){}

Loop() fonksiyonu Arduino çalıştığı sürece, içerisindeki komutları sürekli olarak tekrar eder. Yani loop bir sonsuz döngüdür. Loop fonksiyonunun içerisinde yazacağımız komutlar, sürekli olarak çalışır.

Yaptığımız projede, potansiyometrenin değeri sürekli olarak, tekrar tekrar okunacak ve elde edilen değere göre ledin parlaklığı ayarlanacak. Bu nedenle potansiyometrenin değerinin okunması ve ledin parlaklığının ayarlanması işlemleri LOOP() fonskiyonun içinde yapılmak zorundadır.

ADIM 6:

potansiyometreDegeri=analogRead(potansiyometrePin);

analogRead() fonksiyonu ile potansiyometrePin adlı pinden değer okunuyor ve potansiyometreDegeri adlı değişkene kaydediliyor.

Okunan bu değer 0-1023 arasında bir değerdir. (10bitlik ADC kullandığı için)

ADIM 7:

potansiyometreDegeri=map(potansiyometreDegeri, 0, 1023, 0, 255);

potansiyometreDegeri 0-1023 arasında bir sayı. Bizim led’e sinyal göndereceğimiz PWM pini 0-255 arasında bir değer alabiliyor. Bu nedenle 0-1023 arasındaki sayısı 0-255 arasına indiriyoruz. Bu işi yapan özel bir fonksiyon tanımlı, map() fonksiyonu.

ADIM 8:

analogWrite(ledPin, potansiyometreDegeri);

analogWrite() komutu pinlere analog sinyal göndermek için kullanılır. potansiyometreDegeri değişkenindeki değeri ledPin adlı pine gönderiyoruz. Led potansiyometreden gelen değer kadar parlak yanıyor.

ADIM 9:

delay(10);

delay() komutu belirlenen süre kadar arduino’yu bekletir yani duraksatır. delay(10) yazarak 10ms aralıklarla potansiyometredeki değeri ölçmesini sağlıyoruz.

Bu projede led’in bağlı olduğu pin PWM pini olmalıdır. Arduino Uno için söyleyecek olursak, 3, 5, 6, 9, 10 ve 11 numaralı pinleri kullanabilirsiniz.

DEVRE KURULUMU

Devre kurulumunda görüldüğü üzere, mor kablo ile Arduino’nun GND ucundan potansiyometrenin soldaki bacağına bağlanıyor. Turkuaz kablo Arduino’nun 5v ucundan potansiyometrenin sağdaki bacağına bağlanıyor. Sarı kablo, Arduino’nun A0 ucundan potansiyometrenin ortadaki bacağına bağlanıyor.

LED’in artı ucu 5 numaralı dijital pine, eksi ucu ise direnç üzerinden GND ucuna bağlanıyor. 

Kolay gelsin.

Bu projenin Tinkercad uygulamasında yapılmış haline aşağıdaki linkten erişebilirsiniz.
https://www.tinkercad.com/things/eKoXQJ4XHPU-mighty-sango/editel?sharecode=wjHjCA8JzhFbjWAdhVjeZyQdmVwkpXIFWfbLHVfOENw

Reply