راه اندازی شیفت رجیستر 74HC595 با رزبری پای و پایتون

محتویات
سلام. آموزش راه اندازی شیفت رجیستر 74HC595 با Raspberry Pi (آموزش رزبری پای #9) را آماده کردیم.
چگونه IC شیفت رجیستر را به رزبری پای متصل کنیم ؟
استفاده از آی سی شیفت رجیستر ها همیشه جالب بوده است. ما در قسمت قبل به طور کامل با نحوه کنترل موتور استپر با استفاده از Raspberry pi آشنا شدیم. حتما قسمت های قبلی سری آموزش های رزبری پای را بخوانید.
قسمت قبل : آموزش کنترل سرعت و جهت استپر موتور با Raspberry Pi
در این قسمت، به طور کامل با استفاده از IC SHIFT REGISTER آشنا میشویم. در حالت عادی رزبری پای دارای 26 پین GPIO است. اما وقتی پروژه هایی مانند پرینتر ها سه بعدی را با آن انجام دهیمف پین های خروجی ارائه شده کافی نیستند. بنابراین به پین های خروجی بیشتری نیاز داریم. برای اضافه کردن پین های خروجی به برد رزبری پای ، ما به تراشه شیفت رجیستر نیاز داریم. تراشه ی Shift Register اطلاعات را از Raspberry Pi به صورت سریالی میگیرد و به موازات خارج میکند. بنابراین تراشه 8 بیت داده سریال را از Pi میگیرد و سپس توسط 8 پین خروجی آن ها را ارائه میدهد.
فیلم زیر به شما در درک نحوه عمل این کد و پروژه کمک میکند.
ما قصد داریم از IC 74HC595 استفاده کنیم. این یک تراشه 16 پین است. پیکربندی پین های تراشه در ادامه در این آموزش توضیح داده شده است.
در این آموزش ، ما از سه پین GPIO برای دریافت هشت خروجی از تراشه Shift Register استفاده خواهیم کرد. به یاد داشته باشید که پین های تراشه فقط برای خروجی سهتند، بنابراین ما نمی توانیم هیچ سنسوری را به خروجی تراشه وصل کنیم و انتظار داشته باشیم PI آنها را بخواند. LED ها در خروجی تراشه متصل می شوند تا داده های 8 بیتی ارسال شده از PI را مشاهده کنید.
در مورد پین های GPIO رزبری پای در مقاله کنترل LED با رزبری پای به طور کامل توضیح داده ایم.
شماتیک راه اندازی شیفت رجیستر با رزبری پای
در اینجا ما از رزبری پای 2 Model B با سیستم عامل Raspbian Jessie استفاده می کنیم. در قسمت های قبل، در مورد کلیه نیازهای اولیه سخت افزار و نرم افزار بحث کرده ایم. تصویر زیر شماتیک مدار پروژه شیفت رجیستر با رزبری پای را نشان میدهد.
قطعات مورد نیاز
- IC شیفت رجیستر 74HC595
- مقاومت 220 اهم یا 1 کیلو اهم – شش عدد
- ال ای دی – هشت عدد
- خازن 0.01uF
همچنین پروژه شیفت رجیستر با آردوینو را نیز مشاهده کنید.
توضیحات شیفت رجیستر 74HC595
بگذارید کمی در مورد پین های شیفت رجیستر 74HC595 صحبت کنیم.
نام پبن | توضیحات |
Q0 – Q7 پین خروجی | Q0 – Q7 پین های خروجی (مستطیل قرمز) هستند، که در آن به صورت موازی 8 بیت داده را خروجی می گیریم. ما هشت LED را به آنها وصل خواهیم کرد تا خروجی موازی را ببینیم. |
Data Pin = DS اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید پین داده | اولین داده بیت به بیت به این پین ارسال می شود. برای ارسال 1 ، پین DATA را High کرده و برای ارسال 0 ، پین DATA را Low می کنیم. |
Clock Pin = SHCP پین ساعت | هر پالس مجود در این پین، رجیستر ها را مجبور میکند که یک بیت را از پین داده بگیرند و آن را ذخیره کنند. |
= Shift Output STCP خروجی شیفت | بعد از دریافت 8 بیت، ما خروجی را از این پین ها مشاهده میکنیم. |
کد پروژه شیفت رجیستر با رزبری پای
وقتی همه چیز را مانند شماتیک مدار متصل کردید، می توانیم Raspberry Pi را روشن کنیم تا برنامه را در پایتون (PYHTON) بنویسیم. کد کامل در انتهای صفحه قرار داده شده است. در اینجا در مورد قسمت های مهم کد صحبت میکنیم.
ما میخواهیم پرونده GPIO را از کتابخانه وارد کنیم. کد زیر باعث میشود بتوانیم پین های GPIO برد رزبری پای را برنامه ریزی کنیم. همچنین مانند قسمت قبلی آموزش، نام GPIO را به IO تغییر میدهیم. و هر بار بخواهیم به پین های GPIO مراجعه کنیم از کلمه IO استفاده میکنیم.
import RPi.GPIO as IO
بعضی اوقات، پین های GPIO که سعی در استفاده از آنها داریم، ممکن است عملکردهای دیگری را انجام دهند. در این حالت، هنگام اجرای برنامه، هشدارهایی دریافت خواهیم کرد. دستور زیر به PI می گوید هشدارها را نادیده گرفته و به برنامه ادامه دهد.
IO.setwarnings(False)
ما می توانیم پین های GPIO رزبری پای یا شماره پین آن یا شماره GPIO آن ها وارد کنیم. به طور مثال پین 35 روی برد Raspberry pi، همان پین GPIO 19 است. بنابراین ما میتوانیم آن را با 19 یا 35 معرفی کنیم.
IO.setmode (IO.BCM)
سپس پین های GPIO4 ، GPIO5 و GPIO6 را به عنوان خروجی تنظیم می کنیم.
IO.setup(4,IO.OUT) IO.setup(5,IO.OUT) IO.setup(6,IO.OUT)
این دستور حلقه را 8 بار اجرا می کند.
for y in range(8):
while 1: برای حلقه بی نهایت استفاده می شود.
while 1: for y in range(8): // تکرار پین 8 بار IO.output(4,1) //پین data فعال time.sleep(0.1) IO.output(5,1) // پین CLOCK فعال time.sleep(0.1) IO.output(5,0) // پین CLOCK غیرفعال IO.output(4,0) // پین data غیرفعال IO.output(6,1) // پین SHIFT فعال time.sleep(0.1) IO.output(6,0) //پین SHIFT غیرفعال for y in range(8): IO.output(4,0) // پین data غیرفعال time.sleep(0.1) IO.output(5,1) // پین CLOCK فعال time.sleep(0.1) IO.output(5,0) // پین CLOCK غیرفعال IO.output(4,0) // پین data غیرفعال IO.output(6,1) // پین SHIFT فعال time.sleep(0.1) IO.output(6,0) // پین SHIFT غیرفعال
فیلم عملکرد مدار در پایین را ببینید تا به طور کامل با نحوه کار آشنا شوید.
کد کامل :
import RPi.GPIO as IO import time IO.setwarnings(False) x=1 IO.setmode (IO.BCM) IO.setup(4,IO.OUT) IO.setup(5,IO.OUT) IO.setup(6,IO.OUT) while 1: for y in range(8): IO.output(4,1) time.sleep(0.1) IO.output(5,1) time.sleep(0.1) IO.output(5,0) IO.output(4,0) IO.output(6,1) time.sleep(0.1) IO.output(6,0) for y in range(8): IO.output(4,0) time.sleep(0.1) IO.output(5,1) time.sleep(0.1) IO.output(5,0) IO.output(4,0) IO.output(6,1) time.sleep(0.1) IO.output(6,0)
قسمت بعد : آموزش جامع آنالوگ به دیجیتال در Raspberry Pi
سلام مهندس جان
از این آیسی شیفت رجیستر 74HC595 فقط برای روشن کردن ال ای دی استفاده می شود؟ یا می توانیم چیزهای دیگر را هم کنترل کنیم///// مثلا با استفاده از این آیسی شیفت رجیستر 74HC595 و اتصال به برد آردوینو، بیایم و دستور روشن شدن یک فن و ارسال اطلاعات به ال سی دی کاراکتری و همزمان خاموش کردن بازر را بدهیم؟
سلام عزیز، این مقاله رو مشاهده کنید استفاده از شیفت رجیستر 74HC595 با آردوینو