برنامه روشن کردن LED با یک کلید با زبان Python

در برنامه گفته شده در این پست روشن کردن LED و درواقع کار با پایه های خروجی را بررسی کریدم

در این قسمت همون برنامه را کمی تغییر می دیم و با اضافه کردن تابع ()getinput به خواندن یک پایه می پردازیم.

برای شروع یک فایل با اسمه LED&button.py بسازید و برنامه زیر را داخلش تایپ کنید…

import os,time

_PIN_EN = ‘/sys/class/gpio/export’
_PIN_DS = ‘/sys/class/gpio/unexport’
_PIN_PA = ‘/sys/class/gpio/%s’

GPIO_PINS = [‘gpio1_pg3’, ‘gpio2_pb19’, ‘gpio3_pb18’, ‘gpio4_pg6’, ‘gpio5_pg5’,
‘gpio6_pg4’, ‘gpio7_pg1’, ‘gpio8_pg2’, ‘gpio9_pg0’, ‘gpio10_ph14’,
‘gpio11_ph15’, ‘gpio12_pi6’, ‘gpio13_pi5’, ‘gpio14_pi4’]

class InvalidPinNumber(Exception):
“””The Pin Number sent is invalid on a Cubieboard”””
pass

def _GetPinName(pinNumber):
if pinNumber in range(1,67):
return GPIO_PINS[pinNumber – 1]
else:
raise InvalidPinNumber

def usleep(ms):
time.sleep(ms/10000.0)

def output(pinNumber, value):
id = _GetPinName(pinNumber)
pin_path=_PIN_PA %id
if not os.path.exists(pin_path):
open(_PIN_EN, ‘w’).write(str(pinNumber))
with open(pin_path+’/direction’, ‘w’) as f:
f.write(‘out’)
with open(pin_path+’/value’, ‘w’) as f:
f.write(‘1’ if value==1 or value==True else ‘0’)

def getinput(pinNumber):
id = _GetPinName(pinNumber)
pin_path=_PIN_PA %id
if not os.path.exists(pin_path):
open(_PIN_EN, ‘w’).write(str(pinNumber))
with open(pin_path+’/direction’, ‘w’) as f:
f.write(‘in’)
with open(pin_path+’/value’, ‘r’) as f:
key=int(f.read(1))
if key==1:
return True
else:
return False

while(1):
output(12, not getinput(11))

 

در این برنامه با استفاده از یک کلید، یک LED را خاموش و روشن می کنیم

با توجه به خط زیر از برنامه

output(12, not getinput(11))

مشخص است که کلید به پایه 11 در حالت pull-up و LED به پایه 12 وصل است.

برای اجرای برنامه از دستور زیر استفاده کنید.

python LED&button.py

برای خارج شدن از برنامه از کلید Ctrl+c استفاده کنید.

 

برای پیدا کردن پایه های 11 و 12 به این قسمت از برنامه توجه کنید.

GPIO_PINS = [‘gpio1_pg3’, ‘gpio2_pb19’, ‘gpio3_pb18’, ‘gpio4_pg6’, ‘gpio5_pg5’,
‘gpio6_pg4’, ‘gpio7_pg1’, ‘gpio8_pg2’, ‘gpio9_pg0’, ‘gpio10_ph14’,
‘gpio11_ph15’, ‘gpio12_pi6’, ‘gpio13_pi5’, ‘gpio14_pi4’]

 

طبق این ارایه پایه 11 پایه ph11 و پایه 12 پایه pi6 است. برای پیدا کردن شماره پایه ها هم به این لینک مراجعه کنید.

می تونید فایل برنامه را ازلینک زیر دانلود کنید.

LEDButton.rar

برچسب خورده : , , , , . Bookmark the پیوند یکتا.

دیدگاهتان را بنویسید