Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

RASPBERRY PI BUTON İLE LED KONTROLÜ

Pull Up- PullDown dirençlerinin kullanımı:

Bir mikrodenetleyicinin gpio pinlerini dijital veri girişi amacıyla kullanabilmek için pinlerin karralı bir lojik
durumda olması gerekir.

Bu devrede butonun bağlı olduğu 18 numaralı pinin pullup direnç bağlantısı gösterilmektedir. Burada
butona basılmadığı durumlarda 18 numaralı pinin lojik durumu HIGH olarak ayarlamak amacıyla 1K
direnç ile 3.3V’a bağlantı sağlanmıştır. Bu sayede butona basılmadığı anlarda 18 numaralı pin HIGH
seviyesine çekilmiştir. Butona basıldığında ise butonun 20 numaralı pine yani GND’ye bağlı olan pini
sayesinde 18 numaralı pin LOW seviyesine çekilir. Böylece 18 numaralı pindeki lojik değişim net bir
şekilde sağlanmış olur.

Fiziki olarak direnç kullanmadan da butonun bağlı olduğu 18 numaralı pini HIGH seviyesine çekmek
için;

GPIO.setup (buton, GPIO.IN, pull_up_down=GPIO.PUD_UP)


Komutu kullanılabilir.
Benzer şekilde 18 numaralı pin için pulldown direnci
kullanmak istersek devremiz şu şekilde olmalıdır.

Bu devrede butonun bir ucu 3.3V’a bağlıdır. Butonun diğer


ucu ise 18 numaralı pine bağlı iken, aynı pin pulldown
direnci ile gnd’ye bağlanmıştır. Butona basılmadığı
durumlarda 18 numaralı pin LOW seviyesine çekilmiştir.
Butona basıldığında 18 numaralı HIGH seviyesine çekilir.
Pull down direncini harici olarak bağlamak istemezsek şu
komutu kullanırız:
GPIO.setup (buton, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
Raspberry pi’nin BOARD dizilimine göre 12 numaralı pini led diyotun anot bacağına, led diyotun
katodu ise 14 numaralı gnd pinine bağlanır. Butonun bir bacağı Raspberry pinin 18 numaralı pinine,
butonun diğer bacağı ise 20 numaralı pine bağlanır.

Bu uygulamada amacımız butona basıldığında led diyotun çalışmasını sağlamaktır.

import RPi.GPIO as GPIO


from time import sleep
GPIO.setwarnings (False)
GPIO.setmode (GPIO.BOARD)
led=12
buton=18
GPIO.setup (buton, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup (led, GPIO.OUT)
while True:
button_durum = GPIO.input (buton)
if button_ durum == 0:
print (“butona basıldı”)
GPIO.output (led,GPIO.HIGH)
else:
GPIO.output (led,GPIO.LOW)
sleep (1)

Led diyotun butona 1 defa basıldığında çalışmasını


sağlamak için led_durum adında bir değişken
tanımlanmıştır. Bu değişkenin amacı; butona basıldığında
değerinin değişmesini sağlamaktır. Butona basıldığında
led_durum değişkeninin değeri True ise False, False ise
True yapılmaktadır. Böylelikle ledin çalışması için direkt
olarak butonun lojik durumuna bakmadan led_durum
değişkeninin lojik durumuna bakılır.
import RPi.GPIO as GPIO
from time import sleep
GPIO.setwarnings (False)
GPIO.setmode (GPIO.BOARD)
led=12
buton=18
led_durum=False
GPIO.setup (buton, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup (led, GPIO.OUT)
while True:
button_durum = GPIO.input (buton)
if button_ durum == 0:
print ("butona basıldı")
led_durum= not led_durum
if led_durum == 1:
GPIO.output (led,GPIO.HIGH)
else:
GPIO.output (led,GPIO.LOW)
sleep (1)

You might also like