کنترل روشنایی LED RGB و ربات با PWM و با رزبری پای

مقدمه
سلام امیدوارم حالتون خوب باشه و تا اینجا از آموزش های ما استفاده های خوبی کرده باشید 😉
امروز با هم به آموزش کنترل روشنایی LED RGB و ربات با PWM و با رزبری پای می پردازیم.
وسایل مورد نیاز برای راه اندازی:
یک عدد برد رزبری پای
یک عدد برد برد
یک عدد کابل LAN
کابل عدد POWER
یک عدد مقاومت 3.3کیلو اهم
یک عدد LED
یک عدد LED RGB
یک عدد micro sd
برای راه اندازی برنامه برد رزبری به لینک مراجعه کنید.
شمای فنی برد رزبری پای:
توجه داشته باشید که برد رزبری را پایه اش را به سمت پایین نگه داشته و خواندن پایه ها از سمت راست به چپ می باشد
در شکل بالا با نحوه متصل کردن پایه ها با رزبری پای آشنا شده ایم حالا نوبت به توضیح تک به تک اتصالات در جدول زیر میرسیم.
جدول اتصالات:
یایه های رزبری | پایه های متصل به برد |
17 | مثبت LED |
GROUND | متصل به مقاومت ومنفی LED |
کدهای دستور راه اندازی:
import RPi.GPIO as GPIO
این دستور برای اضافه کردن کتابخانه RPi است و ما GPIO را برای نام گذاری گذاشته ایم
مانند کد زیر:
import RPi.GPIO as GPIO
led_pin = 17
در این دستور ما پایه 17را به عنوان خروجی رزبری به led متصل کرده ایم
مانند کد زیر:
led_pin = 17
(GPIO.setmode(GPIO.BCM
در این دستور ما کتابخانه مورد نظر بردمان را وارد کرده ایم
مانند کد زیر:
GPIO.setmode(GPIO.BCM)
(GPIO.setup(led_pin, GPIO.OUT
در این خط ما توابع مورد نظرمان را معرفی کرده ایم
مانند کد زیر:
GPIO.setup(led_pin, GPIO.OUT)
(pwm_led = GPIO.PWM(led_pin, 500
در این خط ما پین انتخاب کرده را به شکل pwm پیکر بندی کرده ایم و فرکانس 500 هرتز را برایش در نظر می گیریم
مانند کد زیر:
pwm_led = GPIO.PWM(led_pin, 500)
(pwm_led.start(100
در این خط ما دیوتی سابکل مدولاسیون هنگام شروع برابر 100 قرار داده ایم
مانند کد زیر:
pwm_led.start(100)
while True:
یک حلقه بی نهایت می باشد
مانند کد زیر:
while True:
(“: (duty_s = input(“Enter brightness(0 to 100
در این خط یک مقدار بین 0 تا 100 از کاربر دریافت می کند تا دیوتی سایکل مدولاسیون را تغییر دهد
مانند کد زیر:
duty_s = input("Enter brightness (0 to 100):")
(duty = int(duty_s
دیوتی سایکل را مساوی عدد دیوتی سایکل قرار داده ایم
مانند کد زیر:
duty = int(duty_s)
(pwm_led.ChangeDutyCycle(duty
تغییرات دیوتی سایکل led را نشان می دهد
مانند کد زیر:
pwm_led.ChangeDutyCycle(duty)
برای دانلود کامل برنامه و فایل های پروژه به صورت رایگان به پایین صفحه مراجعه کنید.
#این دستور برای اضافه کردن کتابخانه RPi است و ما GPIO را برای نام گذاری گذاشته ایم import RPi.GPIO as GPIO #در این دستور ما پایه 17را به عنوان خروجی رزبری به led متصل کرده ایم led_pin = 17 #در این دستور ما کتابخانه مورد نظر بردمان را وارد کرده ایم GPIO.setmode(GPIO.BCM) # در این خط ما توابع مورد نظرمان را معرفی کرده ایم GPIO.setup(led_pin, GPIO.OUT) #در این خط ما پین انتخاب کرده را به شکل pwm پیکر بندی کرده ایم و فرکانس 500 هرتز #را برایش در نظر می گیریم pwm_led = GPIO.PWM(led_pin, 500) # در این خط ما دیوتی سابکل مدولاسیون هنگام شروع برابر 100 قرار داده ایم pwm_led.start(100) #یک حلقه بی نهایت می باشد while True: #در این خط یک مقدار بین 0 تا 100 از کاربر دریافت می کند تا دیوتی سایکل مدولاسیون را تغییر دهد duty_s = input("Enter brightness (0 to 100):") # دیوتی سایکل را مساوی عدد دیوتی سایکل قرار داده ایم duty = int(duty_s) # تغییرات دیوتی سایکل led را نشان می دهد pwm_led.ChangeDutyCycle(duty)
[hot_posts]
پروژه راه اندازی روشنایی LED با pwm به کمک رزبری پای:
وسایل مورد نیازکنترل روشنایی LED RGB و ربات رزبری پای:
یک برد رزبری پای
یک عدد برد برد
یک عدد کابل LAN
کابل POWER
سه عدد مقاومت 3.3کیلو اهم
یک عدد LED RGB
توجه داشته باشید که برد رزبری را پایه اش را به سمت پایین نگه داشته و خواندن پایه ها از سمت راست به چپ می باشد
توجه داشته باشید که led استفاده شده در این پروژه آند مشترک است(5v)
توجه داشته باشید که برای اتصال پایه های پروژه به رزبری پای باید از شمای فنی برد رزبری پای در بالای صفحه کمک بگیرید.
در تصویر بالا با نحوه متصل کردن پایه های پروژه به برد رزبری پای آشنا می شویم و در جدول پایین به توضیح خط به خط اتصالات می پردازیم.
جدول اتصالات:
پایه های رزبری | پایه های متصل به برد |
17 | متصل به مقاومت و LED |
27 | متصل به مقاومت و LED |
22 | متصل به مقاومت و LED |
پایه مشترکLED | 5V |
حالا با دستورات راه اندازی پروژه آشنا می شویم:
در این خط توجه داشته باشید که حرف اول کتابخانه ما با حروف کوچک نوشته شده است.
*from tkinter import
این خط برای اضافه کردن کل کتابخانه takinter است
مانند کد زیر:
from tkinter import*
import RPi.GPIO as GPIO
اضافه کردن کتابخانهRpiونام گذاری (GPIO)
مانند کد زیر:
import RPi.GPIO as GPIO
import time
اضافه کردن کتابخانه زمان
مانند کد زیر:
import time
(GPIO.setmode(GPIO.BCM
در این دستور ما کتابخانه مورد نظرمان را وارد کرده ایم
مانند کد زیر:
GPIO.setmode(GPIO.BCM)
(GPIO.setup(17, GPIO.OUT
این خط برای توابع ما می باشد که پایه 17 را خروجی قرار داده ایم
مانند کد زیر:
GPIO.setup(17, GPIO.OUT)
(pwmRed = GPIO.PWM(17, 200
این خط pwm رنگ led قرمز ما است که خروجی و زمان pwm رامعیین می کند
مانند کد زیر:
pwmRed = GPIO.PWM(17, 200)
(pwmRed.start(0
استارت شروع pwm رنگ قرمز led را از صفر شروع می کند
مانند کد زیر:
pwmRed.start(0)
:class App
نام کلاسی که توابع را در آن نوشته ایم
مانند کد زیر:
class App:
:(def __init__(self, master
در این خط ما توابعی را تعریف می کنیم
مانند کد زیر:
def __init__(self, master):
(frame = Frame(master
در این خط ما یک محیط گرافیکی به نام frame ایجاد کرده ایم که مساوی محیط گرافیکی master قرار داده ایم
مانند کد زیر:
frame = Frame(master)
()frame.pack
یک پنل گرافیکی برای ما ایجاد می کند
مانند کد زیر:
frame.pack()
(Label(frame, text=’Red’).grid(row=0, column=0
برای آن که تابع به روزرسانی مربوط به مقدار دیوتی سایکل می باشد از این تابع استفاده می کنیم برای led قرمز رنگ
مانند کد زیر:
Label(frame, text='Red').grid(row=0, column=0)
(scaleRed = Scale(frame, from_=100, to=0, orient=HORIZONTAL, command=self.updateRed
برای آن که تابع به روزرسانی مربوط به مقدار دیوتی سایکل می باشد از این تابع استفاده می کنیم led قرمز رنگ
مانند کد زیر:
scaleRed = Scale(frame, from_=100, to=0, orient=HORIZONTAL, command=self.updateRed)
(scaleRed.grid(row=0, column=1
این دستور مشخص می کند که سطر و ستونمان در چه موقعیت می باشد
مانند کد زیر:
scaleRed.grid(row=0, column=1)
:(def updateRed(self, duty
تابع به روزرسانی led قرمز رنگ
مانند کد زیر:
def updateRed(self, duty):
((pwmRed.ChangeDutyCycle(float(duty
تغییرات دیوتی سایکل led قرمز را نشان می دهد
مانند کد زیر:
pwmRed.ChangeDutyCycle(float(duty))
()root = Tk
در این خط ما تابع هایی که در Tk نوشته ایم مساوی root قرار داده ایم که تابع ها
در root ریخته می شود
مانند کد زیر:
root = Tk()
(‘(root.wm_title(‘RGB LED with PWM (S.H
در این خط ما اسم جدول محیط گرافیکیمان را می نویسیم
مانند کد زیر:
root.wm_title('RGB LED with PWM (S.H)')
(app = App(root
در این خط ما app را مساوی کلاسی که معرفی کرده ایم قرار داده ایم
مانند کد زیر:
app = App(root)
(“root.geometry(“200×150+0+0
در این قسمت ما شکل و اندازه جدول محیط گرافیکی را تعریف کرده ایم
توجه داشته باشید که در قسمت geometry در پرانتز بعد از عدد 200 ما حرف ایکس را گذاشته ایم
مانند کد زیر:
root.geometry("200x150+0+0")
()root.mainloop
تابعی را برایمان فراخوانی می کند
مانند کد زیر:
root.mainloop()
برای دانلود کامل برنامه و فایل های پروژه به صورت رایگان به پایین صفحه مراجعه کنید.
#این خط برای اضافه کردن کل کتابخانه است from tkinter import* #اضافه کردن کتابخانه آر پی آی ونام گذاری(جی پی آی او) import RPi.GPIO as GPIO #اضافه کردن کتابخانه زمان import time #در این دستور ما کتابخانه مورد نظر بردمان را وارد کرده ایم GPIO.setmode(GPIO.BCM) #این خط جز توابع ما است GPIO.setup(17, GPIO.OUT) GPIO.setup(27, GPIO.OUT) GPIO.setup(22, GPIO.OUT) #این خطپی دبلیو ام رنگ ال ای دی قرمز ما استکه خروجی و زمان پی دبلیو ام را معیین می کنیم pwmRed = GPIO.PWM(17, 200) #استارت شروع پی دبلیو ام رنگ قرمزال ای دی از صفر است pwmRed.start(0) pwmGreen = GPIO.PWM(27, 200) pwmGreen.start(0) pwmBlue = GPIO.PWM(22, 200) pwmBlue.start(0) #نام کلاس که توابع را در آن نوشته ایم class App: #در این خط ما توابعی را تعریف می نماییم def __init__(self, master): #در این خط ما یک محیط گرافیکی به نام فریم ایجاد کرده ایم که مساوی محیط گرافیکی مستر قرار داده ایم frame = Frame(master) #یک پنل گرافیکی برای ما ایجاد می کند frame.pack() #برای آن که محیط گرافیکی ال ای دی قرمز ما که پی دبلیو ام برای آن تعریف کرده ایم بتوانیم تغییرش بدهیم Label(frame, text='Red').grid(row=0, column=0) Label(frame, text='Blue').grid(row=1, column=0) Label(frame, text='Green').grid(row=2, column=0) Label(frame, text='Raspberry PI Persian Reference').grid(row=5, column=1) #برای آن که تابع به روزرسانی مربوط به مقدار دیوتی سایکل می باشد از این تابع استفاده می کنیمledقرمز رنگ scaleRed = Scale(frame, from_=100, to=0, orient=HORIZONTAL, command=self.updateRed) #مشخص کردن سطر وستون سایکل led قزمز رنگ می باشد scaleRed.grid(row=0, column=1) scaleGreen = Scale(frame, from_=100, to=0, orient=HORIZONTAL, command=self.updateGreen) #مشخص کردن سطر وستون سایکلال ای دی سبز رنگ می باشد scaleGreen.grid(row=1, column=1) scaleBlue = Scale(frame, from_=100, to=0, orient=HORIZONTAL, command=self.updateBlue) #مشخص کردن سطر وستون سایکل ال ای دی آبی رنگ می باشد scaleBlue.grid(row=2, column=1) #تابع بروز رسانی ال ای دی قرمز رنگ def updateRed(self, duty): #تغیرات دیوتی سایکل ال ای دی قرمز را نشان می دهد pwmRed.ChangeDutyCycle(float(duty)) def updateGreen(self, duty): #تغییرات دیوتی سایکل ال ای دی سبز رنگ را نشان می دهد pwmGreen.ChangeDutyCycle(float(duty)) def updateBlue(self, duty): #تغییرات دیوتی سایکل ال ای دی آبی رنگ را نشان می دهد pwmBlue.ChangeDutyCycle(float(duty)) root = Tk() root.wm_title('RGB LED with PWM (S.H)') app = App(root) root.geometry("200x150+0+0") root.mainloop()
جمع بندی:
در این آموزش چگونه کنترل روشنایی LED RGB و ربات رزبری پای را یاد گرفتیم.
از جمله کاربرد های آن تغییر رنگ چراغ LED ماشین توسط کنترل
درست کردن چراغ راهنمایی و رانندگی و چراغ تزئینی
موفق پیروز باشید
امیدوارم از مطلب لذت برده باشید حتما سر به اینستاگرام و کانال ما بزنید
- در صورت مشکل در لینک دانلود یا خود فایل حتما در بخش خرابی لینک برامون بنویسید تا در سریع ترین زمان رسیدگی کنیم
- توجه فرمایید که اعلام گزارش خربی باعث بهتر شدن خدمات ما به شما خواهد بود
- برای دریافت لینک دانلود یک بار ثبت نام کنید و به صورت مستقیم دانلود کنید
پسورد فایل : robotafzar.com گزارش خرابی لینک

درباره امیرحسین تاراج بر
دانشجوی الکترونیک دانشگاه سراسری تهران و در زمینه ی آردوینو - رزبری پای در حال فعالیت هستم به ساخت رباتیک و کار های فنی علاقه مندم و در ربات افزار مشغول به کار هستم
نوشته های بیشتر از امیرحسین تاراج بر
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.