Arduino Ders 8: Analog Kanal, analogRead(), analogWrite(), map() Fonksiyonu
1. Analog Kanal Nedir?
Analog kanal, Arduino'nun analog sinyalleri okuyabilen pinleridir. Bu pinler, çevresel sensörlerden alınan analog voltajı dijital değere dönüştürmek için kullanılır. Arduino'nun analog pinleri, 0 ile 1023 arasında bir değeri okur ve bu, 0-5V arasında bir voltajı temsil eder.
2. analogRead() Komutu
Arduino'da analogRead() fonksiyonu, belirli bir analog pininden değer okur. Bu fonksiyon, belirli bir pinin voltajını dijital değere dönüştürerek okur. Örneğin, bir potansiyometreyi okurken, bu komut kullanılır.
Sözdizimi:
int analogValue = analogRead(analogPin);
Bu komut ile bir analog pin (örneğin A0) üzerinden okunan değer 0 ile 1023 arasında bir değere dönüştürülür.
3. analogWrite() Komutu
analogWrite() fonksiyonu, bir dijital pinin PWM (Pulse Width Modulation) sinyaliyle voltajını ayarlamaya yarar. Bu fonksiyon sayesinde, bir LED'in parlaklık seviyesini veya motor hızını ayarlayabilirsiniz. PWM ile bir analog benzeri çıkış elde edilir.
Sözdizimi:
analogWrite(pin, value);
Burada pin
, çıkış pinini ve value
, 0 ile 255 arasında bir değeri belirtir. 0, pinin tamamen kapalı olduğu, 255 ise pinin tamamen açık olduğu anlamına gelir.
4. map() Fonksiyonu
map() fonksiyonu, bir değeri başka bir değere dönüştürmek için kullanılır. Örneğin, analog bir sensörden alınan değer 0 ile 1023 arasında olabilir, ancak bu değeri başka bir aralığa (örneğin 0 ile 255) dönüştürmek isteyebilirsiniz.
Sözdizimi:
long map(long x, long in_min, long in_max, long out_min, long out_max);
Bu fonksiyon, giriş değerini belirtilen yeni aralığa dönüştürür.
5. Uygulama Örneği: Potansiyometre ile LED Parlaklık Kontrolü
Bu örnekte, bir potansiyometreyi kullanarak bir LED'in parlaklık seviyesini kontrol edeceğiz. Potansiyometreden okunan analog değeri, analogWrite() fonksiyonu ile LED'e ileteceğiz.
Kod Örneği:
int potPin = A0; // Potansiyometreyi A0 pinine bağla
int ledPin = 9; // LED'i 9 numaralı pinine bağla
int potValue = 0; // Potansiyometreden okunan değer
int brightness = 0; // LED parlaklık değeri
void setup() {
pinMode(ledPin, OUTPUT); // LED pini çıkış olarak ayarlanır
}
void loop() {
potValue = analogRead(potPin); // Potansiyometreden okuma yap
brightness = map(potValue, 0, 1023, 0, 255); // Potansiyometreyi 0-255 aralığına dönüştür
analogWrite(ledPin, brightness); // LED'in parlaklığını ayarla
delay(10); // Küçük bir bekleme süresi
}
Bu kodda, potansiyometre ile okunan değer analogRead() ile alınır, map() ile dönüştürülür ve analogWrite() ile LED'in parlaklık değeri ayarlanır.
6. Sonuç
Bu derste, Arduino'nun analogRead(), analogWrite() ve map() fonksiyonlarıyla nasıl çalışılacağını öğrendik. Bu fonksiyonlar, analog sinyalleri okuyarak ve yazma işlemleri yaparak projelerinizi daha dinamik hale getirebilir. Arduino'nun analog özellikleriyle çalışarak daha hassas kontrol ve etkileşimli projeler geliştirebilirsiniz.
0 Yorumlar