Arduino Potansiyometre ile Led Parlaklığı Ayarlama

Robotik ve Arduino Kodlama ve Proje Geliştirme

Arduino Potansiyometre ile Led Parlaklığı Ayarlama

Potansiyometre ile Led Parlaklık Ayarlama uygulamasında PWM Pulse Width Modulation (Darbe Genişliği Modülasyonu) kullanılmaktadır. Potansiyometre değeri değiştirilebilen dirençlerdir. Değer değiştirme işlemi kullanıcı tarafından yapılmaktadır. Radyo, Ses Sistemleri gibi cihazlarda ses ayarı, ton ayarı gibi işlemlerde sıklıkla kullanılmaktadır. Uygulamadan önce potansiyometre hakkında daha detaylı bilgi verilecektir.

Potansiyometre’nin İç Yapısı

Potansiyometrenin İç Yapısı

Direnç elektrik akımına karşı gösterilen zorluk olarak tanımlanır. Direnç değeri yükseldikçe elektrik devresinden daha az akım geçer. Ancak devrelerde dirençler sabit değerlidirler. Çalışma esnasında direnç değerinin kullanıcı tarafından mekanik olarak değiştirilebilmesi için potansiyometre geliştirilmiştir.

Potansiyometrede karbon bir yüzey bulunmaktadır. Bu karbon yüzey direnç oluşturmaktadır. Potansiyometrede hareketli kol ise karbon şerit üzerinde hareket eder ve bu şekilde de direnç değerinin değişmesi sağlanmış olur. Potansiyometreler devreye bağlanırken orta ucu mutlaka kullanılmak zorundadır. Aksi takdirde sabit direnç gibi çalışır ve herhangi bir fonksiyon yerine getirmezler. Potansiyometrelerde hareketli kol sürekli olarak karbon şerite temas ettiği için zamanla bozulmalar oluşur. Ayrıca karbon şeritte oksitlenmeler oluşur ve bu nedenle de özelliği kaybolabilir.

Birçok farklı çeşit ayarlı direnç bulunmaktadır. Kullanıcı tarafından değiştirilebilmek için geliştirilen potansiyometrenin yanında, elektronik devrelerde kart üzerine monte edilen ve daha çok ince ayarlamalar yapılmasını sağlayan trimpot yada trimmer çeşitleri de bulunur. Ancak bunlar daha teknik ayarlamalar için geliştirilmiştir. Çalışma prensipleri aynıdır.

 

Proje Devre Şeması

PROJE PROGRAMI

/*
www.robotik.cc
Potansiyometre ile Led Parlaklık Ayarı Yapma
*/
#define analogGiris A0 // Analog 0 pinini giriş olarak ayarla
#define PWMLed 11 // Digital 11 nolu PWM pinini çıkış olarak ayarla
int potDeger; // potansiyometre değerini saklayacak olan değişken
int ledParlaklik; // led parlaklığının saklayacak değişken
void setup() {
pinMode(analogGiris,INPUT); // analogGiris pinin giris olarak ayarla
pinMode(PWMLed,OUTPUT); // PWMLED pinin çıkış olarak ayarla
potDeger=0; // Değişkenlere ilk değer olarak 0 ver
ledParlaklik=0;
}
void loop() {
potDeger=analogRead(analogGiris); // potansiyometreden gelen değeri oku ve değişkene ata
ledParlaklik=map(potDeger,0,1023,0,255); // Pot değerini led parlaklık değerine dönüştür
analogWrite(PWMLed,ledParlaklik); // Led in yak
}

Programın Çalışması

#define analogGiris A0 // Analog 0 pinini giriş olarak ayarla

analogGiris adındaki sabit ifadeyi A0 olarak seçilmiştir.

#define PWMLed 11 // Digital 11 nolu PWM pinini çıkış olarak ayarla

PWMLed adındaki sabit ifadeyi Arduino’nun 11 nolu pinine atanmıştır.

potDeger=analogRead(analogGiris);

potDeger değişkenine analogGiris’ten gelen potansiyometrenin değeri atanmaktadır.

ledParlaklik=map(potDeger,0,1023,0,255);

Potansiyometre’nin değeri 0 ile 5Volt değerleri arasında değişmektedir. Ancak arduino girişinde bu gerilim değeri programlama mantığına uygulanabilmesi için dönüştürülmektedir. 0-5V değerleri 0-1023 değeri olarak sayısal hale dönüştürülür. Analog giriş  10bitlik veri okuma kapasitesindedir. 210= 1024 değerine eşittir.   10 bitlik veri genişliği 5V/1024= 0,0049V değerini vermektedir. Yani arduino da okunan her 1 birim  0.0049 Voltluk elektrik enerjisine denk gelmektedir. Bu değer oldukça hassas bir dönüşüm yapılabilmesini sağlar.

Ancak dijital çıkışta ise 5Vluk çıkış gerişimi 8bitlik veri halinde gönderilmekte yada okunmaktadır. 28=256 değerine eşittir. Yani kodlama yapılırken 0-5Vluk gerilim 0-255 değerleri ile ifade edilmektedir.

Bu nedenle potansiyometreden okunan değerlerin LED’in yakılabilmesi için gereken değerlere dönüştürülmesi gerekmektedir.

map fonksiyonu bu dönüştürme işlemini yapar.

yukarıdaki map komutunda potDegerini  0,1023 aralığından 0-255 aralığına dönüştür komutudur.  Böylece potansiyometre minimum degerinde iken led sönük, maksimumda iken ise Led en parlak halinde yanacaktır.

analogWrite(PWMLed,ledParlaklik);  komutunda ise istenen değere dönüştürülmüş ledParlaklik değişkeni kullanılarak LED parlaklığı ayarlanmaktadır.

 

Programın Kodlarını İndirebilirsiniz

potansiyometre-ile-led-parlaklik-ayari