آموزش رزبری پای با پایتون - قسمت دوم - GPIO - کنترل چراغ به کمک دکمه

آموزش رزبری پای با پایتون - قسمت دوم - GPIO - کنترل چراغ به کمک دکمه

آموزش رزبری پای با پایتون - قسمت دوم - GPIO - کنترل چراغ به کمک دکمه
آموزش رزبری پای با پایتون - قسمت دوم - GPIO - کنترل چراغ به کمک دکمه

سلام به همه.

امروز میخوایم با هم بررسی کنیم چطوری با GPIO رزبری یه LED رو با استفاده از یه دکمه خاموش و روشن کنیم. 

توی این نوشته دیدین که چطور میشه توی رزبری پای یه LED رو خاموش و روشن کرد. حالا میخوایم بررسی کنیم ببینیم چطور میشه با استفاده از یه دکمه این کار رو کرد.

وسایل مورد نیاز:

۱− رزبری پای (من از رزبری ۴ استفاده کردم)

۲− یدونه LED (رنگش مهم نیست)

۳− یدونه مقاومت ( من از ۲۲۰ استفاده کردم)

۴− دکمه (من از دکمه Push Up استفاده کردم)

۵− سه عدد سیم نر و ماده (ترجیحا با رنگ های متفاوت)

۶− دو عدد سیم دو سر نر

۷− برد بورد (کوچیک و بزرگش فرقی نداره)

اول از همه بیاید تا  این تصویر که نشون دهنده raspberry pi gpio pinout هست رو نگاه کنیم. 

Raspberry pi 4 GPIO Pinoutهمون طور که میبینید پین شماره ۶ میشه Ground یا همون منفی و پین های شماره ۷ و ۱۱ رزبری پای به ترتیب میشه GPIO 4 و GPIO 17 .

یدونه از سیم های نر و ماده را توی پین شماره ۶ که همون Ground میشه میزنیم و سر دیگه او رو توی پورت ردیف منفی یا همون Ground برد بورد وصل میکنیم.

حالا LED رو برمیداریم و سر منفی اون رو به پورت شماره G28 و G24 برد بود وصل میکنیم. بعدش یدونه سیم های دو سر نر رو از ردیف منفی برد بورد به پورت F28 برد بورد وصل میکنیم (ینی یه سر سیم توی ردیف منفی و سر دیگه توی شماره F28). نوبت به مقاومت میرسه. مقاومت رو برمیداریم و یه سر اون رو توی پورت H24 و سر دیگه رو توی پورت H18 وصل میکنیم. 

حالا یدونه دیگه از سیم های نر و ماده رو برمیداریم و توی پین شماره ۷ رزبری وصل میکنیم و سر دیگه اون رو توی پورت شماره G18 برد بورد وصل میکنیم. دیگه نوبت دکمه شده که اون رو روی بردبورد جایگذاری کنیم. به این عکس دقت کنید:

توی گذاشتن دکمه روی برد بورد باید به این نکته دقت داشت که باید طوری دکمه رو توی برد بورد بزاریم که  A و C توی پورت های E6 و E8 برد بورد و B و D توی پورت های شماره F6 و F8 باشه. 

بعد از اینکه دکمه رو توی برد بورد گذاشتیم باید یدونه از سیم های نر و ماده رو به پین شماره ۱۱ و سر دیگه اون رو به پورت شماره H6 وصل میکنیم. بعدش یدونه سیم های دوسر نر رو از ردیف منفی به پورت H8 برد بورد وصل میکنیم. تبریک میگم. سیم کشی ها تموم شد. حالا بیاید با هم بریم کد بزنیم.

توی رزبری یه محیط ویرایشگر متن برای برنامه نویسی نیاز داریم که اینجا من از nano استفاده میکنم. شما میتونید از هر ویرایشگر متنی که خواستید استفاده کنید. یه فایل به نام button.py ایجاد کرده و اون رو باز میکنیم و شروع به کد نویسی توی اون میکنیم.

همون طور که از قبل میدونید توی این دو خط کد کتابخونه یا ماژول مربوط بر برنامه نویسی رزبری و کتابخونه تایم رو وارد رزبری کردیم.

توی این خط اصطلاحا اومدیم و set mode کردیم رزبری رو.

این سه خط هم به ترتیب گفتیم میخوایم  ۰.۱ ثانیه تاخیر داشته باشیم(جلو تر میفهمیم چرا)، LED توی پین شماره ۴ و دکمه توی پین شماره ۱۷ رزبری پای وصله.

خط اول گفتیم اون  که LED بهش وصله (همون پین شماره ۷ که میشد GPIO 4 رزبری) رو میخوایم به عنوان خروجی ازش استفاده کنیم و خط بعدی گفتیم که میخوایم از پین که دکمه رو بهش وصل کردیم (همون پین شماره ۱۱ که میشه GPIO 17 ) به عنوان خروجی استفاده کنیم.

حالا توی یه حلقه اومدیم و هر ۰.۱ ثانیه یکبار چک میکنیم که اگه دکمه فشره شده بود چراغ رو روشن و در غیر این صورت چراغ رو خاموش کن. 

دقت کنید که تا زمانی که دکمه پایین نگه داشته شود چراغ روشن مانده و زمانی که دکمه رها شود، چراغ خاموش میشود.

کد کامل که استفاده کردیم به این صورته:

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

اشکالی که این کد داره اینه که در صورتی که LED روشن باشه و ما برنامه رو از حالت اجرا دربیاریم LED روشن میمونه و اصطلاحا GPIO خالی نمیشه. برای اینکه این مشکل رو حل کنیم کد خودمون رو به صورت زیر تغییر میدیم:

همون طور که ما به سادگی هرچه تمام تر ما LED رو با استفاده از یدونه دکمه خاموش و روشن کردیم.

امیدوارم که خوشتون اومده باشه.

0 نفر

پــــســنــدیـده انـد

توجه

xander karimi
xander karimi

گونه ای از برنامه نویس های نادر و کم یاب. در بر گیرنده انواع و اقسام باگ های ناشناخته. مدافع حقوق این روی سیستم من کار می‌کنه. ابداع کننده انواع روش های سامورایی در برنامه نویسی

دیدگاه ها

0 دیدگاه

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 3 سال پیش
راه اندازی LCD گرافیکی Nokia 1661

راه اندازی LCD گرافیکی Nokia 1661

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش
ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش
همه چیز درباره ریموت کنترل‌های هاپینگ

همه چیز درباره ریموت کنترل‌های هاپینگ

امنیت همیشه و در همه‌ی اعصار، مقوله‌ی مهم و قابل‌توجه‌ ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموت‌های کنترل خواهیم پرداخت....

Zeus ‌ Zeus ‌
  • 5 سال پیش
مسابقه سوم: استخراج داده از رشته ها در زبان C

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش
مسابقه ششم: بزن میکروکنترلر را بسوزون!

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 12 ماه پیش
آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش
کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش
ساخت ماینر با FPGA و ARM

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش
مسابقه چهارم: کدام حلقه سریع‌تر است؟

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 2 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک