Newton hareket yasalarında açıkladığı gibi her etkiye karşı bir tepki oluşur. Elektronik sistemler kullanıcılardan komutlar alırlar ve görevlerini yerine getirirler. Genellikle bu iş için bir tuş takımı, dokunmatik ekran veya bir buton kullanılır. Elektronik cihazlar görevlerinin sona erdiğini ve görev süresince olan bitenden kullanıcıyı haberdar etmek için sesli, yazılı veya görsel olarak tepki verirler. Bu tepkilerin kullanıcıyı haberdar etmenin yanı sıra olası arızada hatanın nerede olabileceğinin anlaşılmasında yardımcı olabilmektedir.
Bu projede Picobricks’in buton-LED modülünü kodlayarak projelerinde kullanıcıdan bir komutun nasıl alınacağını ve bu komuta nasıl tepki verileceğini öğreneceksin.
Proje Detayları ve Algoritma
Elektronik sistemlerde farklı türlerde butonlar kullanılmaktadır. Kilitli butonlar, push butonlar, anahtarlamalı butonlar… Picobricks üzerinde 1 adet push buton bulunmaktadır. Anahtar gibi çalışmaktadırlar, basıldığında akımı iletirler bırakıldığında akımı iletmezler. Projede butonun akım iletip iletmediğini kontrol ederek basılma durumunu anlayacağız. Basılmışsa LED’i yakacak, basılmamışsa LED’i söndüreceğiz.
Bağlantı Şeması
Picobricks’in modüllerini kablo bağlantısı yapmadan kodlayabilir ve çalıştırabilirsin. Modülleri board’dan ayırarak kullanacaksan grove kablolar ile modül bağlantılarını yapmalısın.
Projenin MicroBlocks ile Kodlanması
1 | Butona basılma durumunda çalıştırmamız gereken bir komut olduğu için Control kategorisindeki when bloğunu sürükleyelim. Bu blok belirlediğimiz koşulu sürekli denetler koşul doğrulanırsa altındaki komutu çalıştırır. | |
2 | Koşulumuz Picobricks’in butonuna basılması olduğu için Picobricks kategorisindeki PicoBricks button bloğunu when bloğuna yerleştir. | |
3 | Koşul gerçekleştiğinde Picobricks de bulunan kırmızı ledin yanmasını istiyoruz. Bu yüzden Picobricks kategorisindeki PicoBricks set red LED bloğunu when bloğunun altına yerleştir. | |
4 | Butona basılmadığında kırmızı LED’in sönük kalmasını istiyoruz. O yüzden Control kategorisinden ikinci when bloğunu sürükle. Koşul alanına ise butona basılmadığında ifadesini oluşturabilmek için operators kategorisindeki bloğunu yerleştir | |
5 | Picobricks’in butonuna basılmadığında ifadesini oluşturmak için Picobricks kategorisindeki PicoBricks button bloğunu not bloğuna yerleştir. | |
6 | Butona basılmayan her an kırmızı ledin sönük kalmasını istiyoruz. O yüzden Picobricks kategorisinden PicoBricks set red LED bloğunu when bloğunun altına yerleştirip anahtarını kapalı hale getir. | |
7 | MicroBlocks’un Start butonuna bastığında kodlar gerçek zamanlı çalışacaktır. Picobricks deki butona bastığında kırmızı LED yanacak, bıraktığında sönecektir. |
Projenin MicroBlocks kodlarına erişmek için tıkla.
Proje Görseli
Proje Önerisi
Bu projede butona basıldığında LED’in yanması buton bırakıldığında LED’in sönmesi sağlanmıştır. Sen de butona bir kere basılıp bırakıldığında LED’in yanması, tekrar basılıp bırakıldığında LED’in sönmesi için gerekli kodları yazabilirsin.
Projenin MicroPython Kodları
from machine import Pin
led = Pin(7, Pin.OUT)
push_button = Pin(10, Pin.IN,Pin.PULL_DOWN)
while True:
logic_state = push_button.value()
if logic_state == True:
led.value(1)
else:
led.value(0)
Projenin Arduino C Kodları
void setup() {
pinMode(7, OUTPUT);
pinMode(10,INPUT);
}
void loop() {
if (digitalRead(10) == 1){
digitalWrite(7, HIGH);
}
else{
digitalWrite(7, LOW);
}
delay(10);
}