Mikrodenetleyicilerde Proje Tabanlı Uygulamalar
Proje Tabanlı Uygulamalar
Mikrodenetleyicilerle yapılan projeler, teorik bilgiyi pratiğe dökerek öğrenmeyi kalıcı hale getiren en iyi yöntemlerden biridir. Proje tabanlı uygulamalar, mikrodenetleyici programlama, donanım tasarımı ve çeşitli sensör/aktüatörlerle etkileşimi kapsayan gerçek dünya uygulamalarını hayata geçirmek için kullanılır.
Bu bölümde, farklı seviyelerde proje önerileri sunarak her birinin nasıl çalıştığını detaylıca açıklayacağız.
1. Temel Seviye Projeler
Bu projeler, yeni başlayanlar için temel giriş/çıkış işlemleri, butonlar, LED’ler ve temel sensörleri içeren projelerdir.
a) LED Yakıp Söndürme (Blink Projesi)
Bu, mikrodenetleyici dünyasına giriş için en temel projedir. LED’in belirli aralıklarla yanıp sönmesini sağlar.
📌 Kod Örneği (Arduino)
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // LED çıkış olarak tanımlandı
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // LED’i yak
delay(1000); // 1 saniye bekle
digitalWrite(LED_BUILTIN, LOW); // LED’i söndür
delay(1000); // 1 saniye bekle
}
🚨 Öğrenilen Konular: Dijital çıkış kontrolü, zamanlama
b) Butona Basınca LED Yakma
Bir butona basıldığında LED’in yanmasını sağlayan proje, butonlardan gelen sinyalleri okuma ve lojik seviyeleri kullanma mantığını öğretir.
📌 Kod Örneği (Arduino)
void setup() {
pinMode(2, INPUT_PULLUP); // Buton giriş pini
pinMode(LED_BUILTIN, OUTPUT); // LED çıkış pini
}
void loop() {
if (digitalRead(2) == LOW) { // Butona basıldığında
digitalWrite(LED_BUILTIN, HIGH); // LED’i yak
} else {
digitalWrite(LED_BUILTIN, LOW); // LED’i söndür
}
}
🚨 Öğrenilen Konular: Dijital giriş okuma, buton kullanımı, pull-up dirençler
2. Orta Seviye Projeler
Bu projelerde sensörler, motorlar ve LCD ekranlar gibi daha karmaşık bileşenler kullanılmaktadır.
a) Sıcaklık ve Nem Sensörü ile Veri Okuma (DHT11 Kullanımı)
Bu projede DHT11 sıcaklık ve nem sensöründen veri okuma işlemi gerçekleştirilir.
📌 Gerekli Bileşenler:
✅ DHT11 sıcaklık ve nem sensörü
✅ Arduino / Mikrodenetleyici
✅ 10kΩ direnç
✅ Bağlantı kabloları
📌 Kod Örneği (Arduino)
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
Serial.print("Sıcaklık: ");
Serial.print(temperature);
Serial.print("°C Nem: ");
Serial.print(humidity);
Serial.println("%");
delay(2000);
}
🚨 Öğrenilen Konular: Analog veri okuma, sensörlerden veri çekme, seri haberleşme
b) LCD Ekranda Mesaj Gösterme (16x2 LCD Kullanımı)
Bu projede LCD ekrana "Merhaba Dünya" mesajı yazdırılacaktır.
📌 Gerekli Bileşenler:
✅ 16x2 LCD ekran
✅ I2C modülü (opsiyonel)
✅ Arduino / Mikrodenetleyici
✅ Bağlantı kabloları
📌 Kod Örneği (Arduino - I2C ile)
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.begin();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Merhaba Dunya");
}
void loop() {
// Ana program burada çalışmaya devam eder
}
🚨 Öğrenilen Konular: LCD ekran kullanımı, I2C haberleşmesi, string gösterimi
3. İleri Seviye Projeler
Bu projeler, karmaşık sensörler, motorlar, internet bağlantısı ve nesnelerin interneti (IoT) konularını içeren projelerdir.
a) Wi-Fi Üzerinden Sensör Verisi Gönderme (ESP8266 Kullanımı)
Bu projede, ESP8266 Wi-Fi modülü kullanılarak sıcaklık verisi internete gönderilecektir.
📌 Gerekli Bileşenler:
✅ ESP8266 Wi-Fi modülü
✅ DHT11 sıcaklık sensörü
✅ Arduino / Mikrodenetleyici
📌 Kod Örneği (ESP8266 ve DHT11 ile sıcaklık verisi gönderme)
#include <ESP8266WiFi.h>
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
const char* ssid = "WiFi_ADINIZ";
const char* password = "WiFi_SIFRENIZ";
WiFiServer server(80);
void setup() {
Serial.begin(115200);
dht.begin();
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
server.begin();
Serial.println("WiFi Baglandi.");
}
void loop() {
WiFiClient client = server.available();
if (client) {
float temperature = dht.readTemperature();
client.print("Sicaklik: ");
client.print(temperature);
client.println("°C");
}
}
🚨 Öğrenilen Konular: Wi-Fi bağlantısı, IoT temelleri, veri gönderme
b) Robot Kol Kontrolü (Servo Motor Kullanımı)
Bu projede, bir servo motor kontrol edilerek robot kol hareket ettirilecektir.
📌 Gerekli Bileşenler:
✅ Servo motor
✅ Potansiyometre
✅ Arduino
📌 Kod Örneği (Servo motor kontrolü)
#include <Servo.h>
Servo myServo;
int potPin = A0;
void setup() {
myServo.attach(9);
}
void loop() {
int potValue = analogRead(potPin);
int angle = map(potValue, 0, 1023, 0, 180);
myServo.write(angle);
delay(15);
}
🚨 Öğrenilen Konular: Motor kontrolü, analog veri okuma, PWM sinyalleri
Sonuç
- Temel projeler, LED ve buton gibi basit bileşenleri kapsar.
- Orta seviye projeler, LCD ekranlar ve sensörler ile veri işleme odaklıdır.
- İleri seviye projeler, Wi-Fi, IoT ve motor kontrolü gibi gelişmiş konseptleri içerir.
- Bu projeler, mikrodenetleyici dünyasına girişten profesyonel uygulamalara kadar geniş bir yelpazeyi kapsar. 🚀
✅ Hangi projeyi yapacağınıza karar vererek adım adım uygulamaya başlayabilirsiniz!
Yorumlar
Yorum Gönder