آموزش رزبری پایپروژه رزبری پای

راه اندازی شیفت رجیستر 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 استفاده می کنیم. در قسمت های قبل، در مورد کلیه نیازهای اولیه سخت افزار و نرم افزار بحث کرده ایم. تصویر زیر شماتیک مدار پروژه شیفت رجیستر با رزبری پای را نشان میدهد.

شماتیک راه اندازی شیفت رجیستر

قطعات مورد نیاز

  1. IC شیفت رجیستر 74HC595
  2. مقاومت 220 اهم یا 1 کیلو اهم – شش عدد
  3. ال ای دی – هشت عدد
  4. خازن 0.01uF
قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

همچنین پروژه شیفت رجیستر با آردوینو را نیز مشاهده کنید.

توضیحات شیفت رجیستر 74HC595

بگذارید کمی در مورد پین های شیفت رجیستر 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

5 (5 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

برای ارسال تصاویر از انجمن سایت استفاده کنید.

سوالات فنی را در انجمن سایت مطرح کنید تا در مسابقه شرکت کنید. ورود به انجمن

2 نظر

  1. سلام مهندس جان
    از این آیسی شیفت رجیستر 74HC595 فقط برای روشن کردن ال ای دی استفاده می شود؟ یا می توانیم چیزهای دیگر را هم کنترل کنیم///// مثلا با استفاده از این آیسی شیفت رجیستر 74HC595 و اتصال به برد آردوینو، بیایم و دستور روشن شدن یک فن و ارسال اطلاعات به ال سی دی کاراکتری و همزمان خاموش کردن بازر را بدهیم؟

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

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