Arduino UNO, analog giriş ve çıkış işlemlerini destekleyerek kesin değerler gerektiren sensörler ve aktüatörlerle etkileşime girmenizi sağlar. Analog işlemler, LED'ler, motorlar ve potansiyometreler veya ışık sensörleri gibi sensörlerden okuma girişlerini kontrol etmek için gereklidir. Bu öğretici, kurulum, analog okuma ve yazma ve mantık işlemlerini kullanarak size rehberlik edecektir. if
analog veriler ile ifadeler.
Ne İhtiyacınız Olacak
- USB kablosu ile arduino uno
- Analog giriş için potansiyometre (veya herhangi bir değişken direnç)
- Analog çıkış için LED ve 220 ohm'luk bir direnç
- Breadboard ve jumper telleri
- Arduino IDE kurulu bir bilgisayar
Adım 1: Arduino'daki analog pimleri anlamak
Arduino UNO, 0 ile 5V arasında bir voltaj okuyabilen ve 0 ile 1023 arasında bir dijital değere dönüştürebilen altı analog giriş pimine (A0-A5) sahiptir. Analog çıkış için Arduino, belirli dijital pimlerde PWM (nabız genişliği modülasyonu) kullanır. işaretli ~
(ör. 3, 5, 6, 9, 10, 11).
Kullanılan işlevler
-
Analog giriş:
analogRead(pin)
- Bir voltaj (0-5V) okur ve 0 ile 1023 arasında bir değer döndürür.
-
Analog Çıkış:
analogWrite(pin, value)
- Bir PWM sinyali çıkarır
value
0 (% 0 görev döngüsü) ila 255 (% 100 görev döngüsü) arasında değişir.
- Bir PWM sinyali çıkarır
Adım 2: Kablolama Analog Giriş (potansiyometre)
Bir potansiyometre bir Arduino analog pimine bağlayın:
Potansiyometre pimi | Arduino bağlantısı |
---|---|
1 (uç pim) | 5V |
2 (orta/çıktı) | A0 |
3 (uç pim) | Gnd |
Adım 3: Kablolama Analog Çıkış (LED)
220-ohm dirençli bir LED'i bir Arduino PWM pimine (örneğin, pim 9) bağlayın:
LED PIN | Arduino bağlantısı |
---|---|
Uzun bacak (+) | Dijital Pin 9 |
Kısa Bacak (-) | Gnd |
4. Adım: Analog girişi okuma
Kullanın analogRead()
Potansiyometreden verileri okuma işlevi:
Örnek Kodu: Analog girişi okuma
#define potPin A0 // Potentiometer connected to A0
void setup() {
Serial.begin(9600);
Serial.println("Analog Input Test");
}
void loop() {
int sensorValue = analogRead(potPin); // Read analog value
Serial.print("Sensor Value: ");
Serial.println(sensorValue);
delay(500); // Wait for half a second
}
Kodu çalıştırın ve seri monitörde potansiyometre değerlerini (0-1023) gözlemleyin.
Adım 5: Analog Çıktı Yazma
Kullanın analogWrite()
Bir LED'in parlaklığını kontrol etmek için işlev:
Örnek kodu: LED'e analog çıkış
#define ledPin 9 // LED connected to pin 9
void setup() {
pinMode(ledPin, OUTPUT); // Set LED pin as output
}
void loop() {
for (int brightness = 0; brightness <= 255; brightness++) {
analogWrite(ledPin, brightness); // Increase brightness
delay(10);
}
for (int brightness = 255; brightness >= 0; brightness--) {
analogWrite(ledPin, brightness); // Decrease brightness
delay(10);
}
}
Adım 6: Analog giriş ve çıkışın birleştirilmesi
LED parlaklığının potansiyometre konumuna göre ayarlanması gibi çıkışı kontrol etmek için analog giriş değerlerini kullanabilirsiniz.
Örnek Kodu: Potansiyometre Kontrolleri LED parlaklığı
#define potPin A0 // Potentiometer connected to A0
#define ledPin 9 // LED connected to pin 9
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(potPin); // Read potentiometer value
int brightness = map(sensorValue, 0, 1023, 0, 255); // Map to PWM range
analogWrite(ledPin, brightness); // Set LED brightness
Serial.print("Sensor Value: ");
Serial.print(sensorValue);
Serial.print(" -> Brightness: ");
Serial.println(brightness);
delay(100);
}
7. Adım: Kullanma if
Analog verilere sahip ifadeler
Belirli eylemleri gerçekleştirmek için analog giriş kullanarak koşullar oluşturabilirsiniz:
Örnek Kodu: Koşullu Kontrol
#define potPin A0 // Potentiometer connected to A0
#define ledPin 9 // LED connected to pin 9
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(potPin);
if (sensorValue > 512) {
analogWrite(ledPin, 255); // Full brightness if sensor value > 512
Serial.println("Bright!");
} else {
analogWrite(ledPin, 0); // Turn off LED otherwise
Serial.println("Off");
}
delay(500);
}
Analog okuma/yazma uygulamaları
- Çevresel sensörleri okuma (ör. Işık, sıcaklık, nem)
- Motor hızlarını ayarlama
- LED parlaklığı kontrol etmek
- Ses sinyali işleme
- Analog tabanlı kullanıcı arayüzleri oluşturma
Sorun giderme
- Sensörden yanlış okumalar: Uygun kablolamayı sağlayın ve potansiyometre bağlantılarını doğrulayın.
- LED aydınlatılmadı: LED yönünü onaylayın ve akımı sınırlamak için bir direnç kullanın.
- Çıktı pürüzsüz değil: Küçük bir gecikme ekleyin veya stabilite için giriş değerleri ortalama.
Çözüm
Arduino Uno kullanarak analog okuma ve yazma işlemlerini nasıl gerçekleştireceğinizi, çıkışlara harita sensörü değerlerini nasıl gerçekleştireceğinizi ve kullanmayı öğrendiniz. if
Koşullu mantık için ifadeler. Bu beceriler duyarlı, etkileşimli projeler oluşturmak için çok önemlidir. Yeteneklerinizi genişletmek için diğer analog sensörleri ve aktüatörleri entegre ederek daha da deneyin!