کنترل روشنایی LED RGB و ربات با PWM و با رزبری پای
مقدمه
سلام امیدوارم حالتون خوب باشه و تا اینجا از آموزش های ما استفاده های خوبی کرده باشید 😉
امروز با هم به آموزش کنترل روشنایی LED RGB و ربات با PWM و با رزبری پای می پردازیم.
وسایل مورد نیاز برای راه اندازی:
[icon name=”check-circle” class=”” unprefixed_class=””] یک عدد برد رزبری پای
[icon name=”check-circle” class=”” unprefixed_class=””] یک عدد برد برد
[icon name=”check-circle” class=”” unprefixed_class=””] یک عدد کابل LAN
[icon name=”check-circle” class=”” unprefixed_class=””] کابل عدد POWER
[icon name=”check-circle” class=”” unprefixed_class=””] یک عدد مقاومت 3.3کیلو اهم
[icon name=”check-circle” class=”” unprefixed_class=””] یک عدد LED
[icon name=”check-circle” class=”” unprefixed_class=””] یک عدد LED RGB
[icon name=”check-circle” class=”” unprefixed_class=””] یک عدد micro sd
[icon name=”star-half-o” class=”” unprefixed_class=””] برای راه اندازی برنامه برد رزبری به لینک مراجعه کنید.
شمای فنی برد رزبری پای:
[icon name=”star-half-o” class=”” unprefixed_class=””] توجه داشته باشید که برد رزبری را پایه اش را به سمت پایین نگه داشته و خواندن پایه ها از سمت راست به چپ می باشد
در شکل بالا با نحوه متصل کردن پایه ها با رزبری پای آشنا شده ایم حالا نوبت به توضیح تک به تک اتصالات در جدول زیر میرسیم.
جدول اتصالات:
یایه های رزبری |
پایه های متصل به برد |
17 | مثبت LED |
GROUND | متصل به مقاومت ومنفی LED |
کدهای دستور راه اندازی:
[icon name=”circle-o” class=”” unprefixed_class=””] import RPi.GPIO as GPIO
این دستور برای اضافه کردن کتابخانه RPi است و ما GPIO را برای نام گذاری گذاشته ایم
مانند کد زیر:
import RPi.GPIO as GPIO
[icon name=”circle-o” class=”” unprefixed_class=””] led_pin = 17
در این دستور ما پایه 17را به عنوان خروجی رزبری به led متصل کرده ایم
مانند کد زیر:
led_pin = 17
[icon name=”circle-o” class=”” unprefixed_class=””] (GPIO.setmode(GPIO.BCM
در این دستور ما کتابخانه مورد نظر بردمان را وارد کرده ایم
مانند کد زیر:
GPIO.setmode(GPIO.BCM)
[icon name=”circle-o” class=”” unprefixed_class=””] (GPIO.setup(led_pin, GPIO.OUT
در این خط ما توابع مورد نظرمان را معرفی کرده ایم
مانند کد زیر:
GPIO.setup(led_pin, GPIO.OUT)
[icon name=”circle-o” class=”” unprefixed_class=””] (pwm_led = GPIO.PWM(led_pin, 500
در این خط ما پین انتخاب کرده را به شکل pwm پیکر بندی کرده ایم و فرکانس 500 هرتز را برایش در نظر می گیریم
مانند کد زیر:
pwm_led = GPIO.PWM(led_pin, 500)
[icon name=”circle-o” class=”” unprefixed_class=””] (pwm_led.start(100
در این خط ما دیوتی سابکل مدولاسیون هنگام شروع برابر 100 قرار داده ایم
مانند کد زیر:
pwm_led.start(100)
[icon name=”circle-o” class=”” unprefixed_class=””] while True:
یک حلقه بی نهایت می باشد
مانند کد زیر:
while True:
[icon name=”circle-o” class=”” unprefixed_class=””] (“: (duty_s = input(“Enter brightness(0 to 100
در این خط یک مقدار بین 0 تا 100 از کاربر دریافت می کند تا دیوتی سایکل مدولاسیون را تغییر دهد
مانند کد زیر:
duty_s = input("Enter brightness (0 to 100):")
[icon name=”circle-o” class=”” unprefixed_class=””] (duty = int(duty_s
دیوتی سایکل را مساوی عدد دیوتی سایکل قرار داده ایم
مانند کد زیر:
duty = int(duty_s)
[icon name=”circle-o” class=”” unprefixed_class=””] (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 و ربات رزبری پای:
[icon name=”check-circle” class=”” unprefixed_class=””] یک برد رزبری پای
[icon name=”check-circle” class=”” unprefixed_class=””] یک عدد برد برد
[icon name=”check-circle” class=”” unprefixed_class=””] یک عدد کابل LAN
[icon name=”check-circle” class=”” unprefixed_class=””] کابل POWER
[icon name=”check-circle” class=”” unprefixed_class=””] سه عدد مقاومت 3.3کیلو اهم
[icon name=”check-circle” class=”” unprefixed_class=””] یک عدد LED RGB
[icon name=”star-half-o” class=”” unprefixed_class=””] توجه داشته باشید که برد رزبری را پایه اش را به سمت پایین نگه داشته و خواندن پایه ها از سمت راست به چپ می باشد
[icon name=”star-half-o” class=”” unprefixed_class=””] توجه داشته باشید که led استفاده شده در این پروژه آند مشترک است(5v)
[icon name=”star-half-o” class=”” unprefixed_class=””] توجه داشته باشید که برای اتصال پایه های پروژه به رزبری پای باید از شمای فنی برد رزبری پای در بالای صفحه کمک بگیرید.
در تصویر بالا با نحوه متصل کردن پایه های پروژه به برد رزبری پای آشنا می شویم و در جدول پایین به توضیح خط به خط اتصالات می پردازیم.
جدول اتصالات:
پایه های رزبری | پایه های متصل به برد |
17 | متصل به مقاومت و LED |
27 | متصل به مقاومت و LED |
22 | متصل به مقاومت و LED |
پایه مشترکLED | 5V |
حالا با دستورات راه اندازی پروژه آشنا می شویم:
[icon name=”star-half-o” class=”” unprefixed_class=””] در این خط توجه داشته باشید که حرف اول کتابخانه ما با حروف کوچک نوشته شده است.
[icon name=”circle-o” class=”” unprefixed_class=””] *from tkinter import
این خط برای اضافه کردن کل کتابخانه takinter است
مانند کد زیر:
from tkinter import*
[icon name=”circle-o” class=”” unprefixed_class=””] import RPi.GPIO as GPIO
اضافه کردن کتابخانهRpiونام گذاری (GPIO)
مانند کد زیر:
import RPi.GPIO as GPIO
[icon name=”circle-o” class=”” unprefixed_class=””] import time
اضافه کردن کتابخانه زمان
مانند کد زیر:
import time
[icon name=”circle-o” class=”” unprefixed_class=””] (GPIO.setmode(GPIO.BCM
در این دستور ما کتابخانه مورد نظرمان را وارد کرده ایم
مانند کد زیر:
GPIO.setmode(GPIO.BCM)
[icon name=”circle-o” class=”” unprefixed_class=””] (GPIO.setup(17, GPIO.OUT
این خط برای توابع ما می باشد که پایه 17 را خروجی قرار داده ایم
مانند کد زیر:
GPIO.setup(17, GPIO.OUT)
[icon name=”circle-o” class=”” unprefixed_class=””] (pwmRed = GPIO.PWM(17, 200
این خط pwm رنگ led قرمز ما است که خروجی و زمان pwm رامعیین می کند
مانند کد زیر:
pwmRed = GPIO.PWM(17, 200)
[icon name=”circle-o” class=”” unprefixed_class=””] (pwmRed.start(0
استارت شروع pwm رنگ قرمز led را از صفر شروع می کند
مانند کد زیر:
pwmRed.start(0)
[icon name=”circle-o” class=”” unprefixed_class=””] :class App
نام کلاسی که توابع را در آن نوشته ایم
مانند کد زیر:
class App:
[icon name=”circle-o” class=”” unprefixed_class=””] :(def __init__(self, master
در این خط ما توابعی را تعریف می کنیم
مانند کد زیر:
def __init__(self, master):
[icon name=”circle-o” class=”” unprefixed_class=””] (frame = Frame(master
در این خط ما یک محیط گرافیکی به نام frame ایجاد کرده ایم که مساوی محیط گرافیکی master قرار داده ایم
مانند کد زیر:
frame = Frame(master)
[icon name=”circle-o” class=”” unprefixed_class=””] ()frame.pack
یک پنل گرافیکی برای ما ایجاد می کند
مانند کد زیر:
frame.pack()
[icon name=”circle-o” class=”” unprefixed_class=””] (Label(frame, text=’Red’).grid(row=0, column=0
برای آن که تابع به روزرسانی مربوط به مقدار دیوتی سایکل می باشد از این تابع استفاده می کنیم برای led قرمز رنگ
مانند کد زیر:
Label(frame, text='Red').grid(row=0, column=0)
[icon name=”circle-o” class=”” unprefixed_class=””] (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)
[icon name=”circle-o” class=”” unprefixed_class=””] (scaleRed.grid(row=0, column=1
این دستور مشخص می کند که سطر و ستونمان در چه موقعیت می باشد
مانند کد زیر:
scaleRed.grid(row=0, column=1)
[icon name=”circle-o” class=”” unprefixed_class=””] :(def updateRed(self, duty
تابع به روزرسانی led قرمز رنگ
مانند کد زیر:
def updateRed(self, duty):
[icon name=”circle-o” class=”” unprefixed_class=””] ((pwmRed.ChangeDutyCycle(float(duty
تغییرات دیوتی سایکل led قرمز را نشان می دهد
مانند کد زیر:
pwmRed.ChangeDutyCycle(float(duty))
[icon name=”circle-o” class=”” unprefixed_class=””] ()root = Tk
در این خط ما تابع هایی که در Tk نوشته ایم مساوی root قرار داده ایم که تابع ها
در root ریخته می شود
مانند کد زیر:
root = Tk()
[icon name=”circle-o” class=”” unprefixed_class=””] (‘(root.wm_title(‘RGB LED with PWM (S.H
در این خط ما اسم جدول محیط گرافیکیمان را می نویسیم
مانند کد زیر:
root.wm_title('RGB LED with PWM (S.H)')
[icon name=”circle-o” class=”” unprefixed_class=””] (app = App(root
در این خط ما app را مساوی کلاسی که معرفی کرده ایم قرار داده ایم
مانند کد زیر:
app = App(root)
[icon name=”circle-o” class=”” unprefixed_class=””] (“root.geometry(“200×150+0+0
در این قسمت ما شکل و اندازه جدول محیط گرافیکی را تعریف کرده ایم
[icon name=”star-half-o” class=”” unprefixed_class=””] توجه داشته باشید که در قسمت geometry در پرانتز بعد از عدد 200 ما حرف ایکس را گذاشته ایم
مانند کد زیر:
root.geometry("200x150+0+0")
[icon name=”circle-o” class=”” unprefixed_class=””] ()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 گزارش خرابی لینک
Oops! We could not locate your form.
درباره امیرحسین تاراج بر
دانشجوی الکترونیک دانشگاه سراسری تهران و در زمینه ی آردوینو - رزبری پای در حال فعالیت هستم به ساخت رباتیک و کار های فنی علاقه مندم و در ربات افزار مشغول به کار هستم
نوشته های بیشتر از امیرحسین تاراج بر
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.