سلام خدمت تمامی دوستان عزیز

میخواهیم در این مقاله آموزش روشن کردن چند LED و زمان بندی برای روشن و خاموش کردنش را با Raspberry Pi 3 model B  یاد بگیریم

خب رزبری من رو میتونید در تصویر زیر ببینید

در قدم اول باید اتصالات رزبری را برقرار و رزبری را روشن کنیم که من از مانیتور موس و کیبورد استفاده میکنم ممکنه بعضی ها تمایل داشته باشند با ssh یا VNC به رزبری وصل بشند که سلیقه ایه

خب الان بهتره به این تصویر زیر نگاه کنید تا با پین های رزبری آشنا بشید ما برای روشن کردن LED باید از پین های GPIO استفاده کنیم که در واقع مقدار ۰ یا ۱ میگیرند که یعنی جریان در داخلشون قرار بگیرد یا نه

خب ابتدا بیاید مدار را درست کنیم، سه تا LED را روی برد قرار میدهیم و پایه های آند (+) را به GPIO ها و پایه های کاتد (-) را به GND وصل میکنیم برای دوستانی که کمی تازه کار تر هستند این قسمت رو بگم که پایه کاتد پایه کوتاه و پایه آند بلندتر است

خب من پین های ۱۲ ۱۶ و ۷ رو که مربوط به GPIO های ۱۸ ۲۳ و ۴ میشود را به پایه های آند LED ها متصل کردم بعد پین های ۶ ۱۴ و ۹ رو که مربوط به GND ها میشود را به پایه های کاتد وصل کردم که میونید در تصویر زیر ببینید

 

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

برای اینکار وارد رزبری میشویم و با vim یک فایل پایتون با هر اسم دلخواه ایجاد میکنیم

vim led.py

اگه ویم را نصب ندارید میتوانید با دستور زیر نصب کنید

sudo apt install vim

خب الان باید اسکریپت را بنوسیم، ابتدا از کتابخانه Rpi.GPIO بخش GPIO را import میکنیم تا بتوانیم با پین های GPIO کار کنیم همچنین time هم import میکنیم تا بتوانیم در بازه های زمانی خاص LED ها را روشن یا خاموش کنیم

import RPi.GPIO as GPIO
import time

خب قدم بعدی باید مود GPIO را با دستور زیر ست کنیم

GPIO.setmode(GPIO.BCM)

خب بعد از اینکار باید پین هایی که استفاده کردیم را فعال کنیم

GPIO.setup(18, GPIO.OUT)
GPIO.setup(23, GPIO.OUT)
GPIO.setup(4, GPIO.OUT)

حالا باید یک حلقه while بنویسیم که چراغ ها را روشن یا خاموش کنیم از time.sleep هم برای ایجاد وقفه در روند عملیات استفاده میکنیم

while True:
   GPIO.output(18, True)
   time.sleep(1)
   GPIO.output(23, False)
   GPIO.output(4, True)
   time.sleep(1)
   GPIO.output(18, False)
   GPIO.output(23, True)
   time.sleep(1)
   GPIO.output(4, False)

با این حلقه ما میتوانیم led ها را روشن یا خاموش کنیم
میتونید این حلقه رو در try قرار بدید و کدهای ex رو فقط False بنویسید تا اگر اسکریپت را متوقف کردید همه led ها را خاموش کند
فیلم نتیجه کار هم میتونید در زیر ببینید

دوستان میتوانند برای طراحی مدار بین اتصال LED ها با پین های GPIO از مقاومت استفاده کنند ولی به نظر من ولتاژ رزبری اندازه ای نیست که باعث سوختن LED ها  شود

موفق و پیروز باشید

2 Comments

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *