Selamın Aleyküm
Serinin bu bölümünde piyasada değişik modellerini bulabileceğiniz darbe ve titreşim modüllerini ele alacağız, nasıl çalışır neler yapılabilir gibi sorulara cevap verdikten sonra cıvalı sensor kullanarak kum saati simülasyonu yapacağız.
Öncelikle sensorlarımızı tanıyalım. Bu sensorlar yabancı kaynaklar da “tilt switch” diye geçiyor,
Kelime anlamı itibari ile “tilt“ eğilme, devrilme anlamlarına geliyor isminden de anlaşılacağı üzere eğilme yada devrilme ile devreyi açar yada kapatır ve bizde bu değişikliği kullanarak devrelerimizde çeşitli görevleri başlatırız. Örneğin bir buzzer ekleyip bisiklet yada motosiklet alarmı yapabilirsiniz, yada denge robotu projelerinde kullanabilirsiniz. Biz yazımızın sonunda kum saati simülasyonu yapacağız. Yazının başında bahsettiğim gibi bu işi yapan birkaç model tilt switch var, benim bildiğim yay ile çalışanlar, cıva ile çalışanlar, ve birde içinde küçük bir metal top olanlar. İşte elimde ki modeller;
Hepsinde mantık aynı videoda görebilirsiniz. Kullanımı ise buton kullanmaktan farksız ve o kadar kolay zira eğime göre açılan ya da kapanan bir buton olduğunu farz edebilirsiniz, böylece butona basınca yapılacak işler ve basılı değilken yapılacak işler gibi bir kodlama mantığı yürütebilirsiniz.
Yukarıda gördüğünüz tüm sensorlar bu mantıkla çalışıyor.
Bu devrede sensorun eğilmesi yada titremesi gibi bir durumda devre tamamlanıyor ve ledimizin yanmasını sağlıyor kodlar aşağıda
int sensor_pin = 4;
int led_pin = 5;
int sensor;
void setup() {
Serial.begin(9600);
pinMode(sensor_pin, INPUT);
pinMode(led_pin, OUTPUT);
}
void loop() {
sensor = digitalRead(sensor_pin);
Serial.println(sensor);
if (sensor > 0) {
digitalWrite(led_pin, 0);
} else {
digitalWrite(led_pin, 1);
delay(500);
}
}
Burada ledin yanışını görebilmek için yarım saniye bekleme vermek zorunda kaldım, siz kendi projenize göre değiştirin.
Şimdi gelelim kum saati simülasyonuna;
Devre elemanlarını iki katına çıkaracağız, benim elimde hazır bir modül var ama siz de yoksa yukarıda ki şemaya sadık kalmanız yeterli.
Kodun çalışma mantığı gayet basit; tıpkı kum saatinde olduğu gibi üstte kalan sensor devreyi tamamlamış ise ve diğer sensor devresi de açık ise üstte kalan ledi yavaş yavaş söndür ve altta kalan ledi yavaş yavaş yak;
Arduino ile kum saati kodları
int Led_Pin_A = 5;
int Led_Pin_B = 6;
int Sensor_Pin_A = 7;
int Sensor_Pin_B = 4;
int Sensor_Durum_A = 0;
int Sensor_Durum_B = 0;
int parlaklik = 0;
void setup() {
pinMode(Led_Pin_A, OUTPUT);
pinMode(Led_Pin_B, OUTPUT);
pinMode(Sensor_Pin_A, INPUT);
pinMode(Sensor_Pin_B, INPUT);
}
void loop() {
Sensor_Durum_A = digitalRead(Sensor_Pin_A);
if (Sensor_Durum_A == HIGH && parlaklik != 255) {
parlaklik ++;
}
Sensor_Durum_B = digitalRead(Sensor_Pin_B);
if (Sensor_Durum_B == HIGH && parlaklik != 0) {
parlaklik --;
}
analogWrite(Led_Pin_A, parlaklik);
analogWrite(Led_Pin_B, 255 - parlaklik);
delay(30);
}
arduino serisi videolar için olaylistim bu linkte
https://www.youtube.com/watch?v=4lneyUsTu7c&list=PLaEea2gDu6vVcpvw0EdwRDdJjMOR0qakn