به نام خدا
راه اندازی ۷ سگمنت با استفاده از رزبری پای
رزبری پای یک برد با پردازشگر با معماری ARM می باشد که برای مهندسان الکترونیک و علاقمندان طراحی شده است.پای با استفاده از یک پردازنده سرعت بالا و رم ۱ GB در بسیاری از پروژه ها نظیر پردازش تصویر و اینترنت اشیا استفاده میشود.
نمایشگر ۷ سگمنت:
اساسا ۲ نوع نمایشگر ۷ سگمنت موجود است ، مدل آند مشترک(مثبت یا VCC مشترک) و مدل کاتد مشترک(منفی یا زمین مشترک).
آند مشترک : در این مدل تمامی ترمینال های منفی ( کاتد ) LED ها به یکدیگر متصلند که به آنها COM گفته می شود ، تمامی ترمینال های مثبت به حال خود گذاشته شده اند.
کاتد مشترک : در این مدل تمامی ترمینال های مثبت ( آند ) ها به یکدیگر متصلند که به آنها COM گفته می شود ، تمامی ترمینال های منفی به حال خود گذاشته شده اند.
در رسپبری پای ۲ ، ۴۰ پین خروجی GPIO موجود است اما تنها ۲۶ پین (GPIO2 تا GPIO27) قابل برنامه ریزی هستند.بعضی از این پایه ها عملیات های خاصی انجام می دهند.
قطعات مورد نیاز راه اندازی ۷ سگمنت با استفاده از رزبری پای :
در اینجا ما از رزبری پای ۲ مدل B با سیستم عامل رزبین جسی استفاده کرده ایم.
تمامی سخت افزارها و نرم افزارهای موردنیاز از پیش بحث شده اند.
پین های اتصال
نمایشگر ۷ سگمنت کاتد مشترک (LT543)
۸ عدد مقاومت ۱ کیلواهم
بردبورد
اتصالات به صورت زیر آورده شده اند :
PIN1 or e —————— GPIO21
PIN2 or d —————— GPIO20
PIN4 or c —————— GPIO16
PIN5 or h or DP ———- GPIO 12
PIN6 or b ——————GPIO6
PIN7 or a ——————GPIO13
PIN9 or f —————— GPIO19
PIN10 or g —————- GPIO26
PIN3 or PIN8 ————-متصل به زمین
حال اگر بخواهیم “۱” را نمایش دهیم بایستی B و C را تغذیه کنیم.برای تغذیه B و C باید GPIO6 و GPIO16 را تغذیه کنیم.
دانلود کد برنامه ی راه اندازی ۷ سگمنت با استفاده از رزبری پای :
دانلود فایلimport RPi.GPIO as IO # calling for header file which helps us use GPIO’s of PI import time # calling for time to provide delays in program DISPLAY = [0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x67] # string of characters storing PORT values for each digit. IO.setwarnings(False) # do not show any warnings IO.setmode (IO.BCM) # programming the GPIO by BCM pin numbers. (like PIN29 as‘GPIO5’) IO.setup(13,IO.OUT) # initialize GPIO Pins as outputs IO.setup(6,IO.OUT) IO.setup(16,IO.OUT) IO.setup(20,IO.OUT) IO.setup(21,IO.OUT) IO.setup(19,IO.OUT) IO.setup(26,IO.OUT) IO.setup(12,IO.OUT) def PORT(pin): # assigning GPIO logic by taking 'pin' value if(pin&0x01 == 0x01): IO.output(13,1) # if bit0 of 8bit 'pin' is true, pull PIN13 high else: IO.output(13,0) # if bit0 of 8bit 'pin' is false, pull PIN13 low if(pin&0x02 == 0x02): IO.output(6,1) # if bit1 of 8bit 'pin' is true, pull PIN6 high else: IO.output(6,0) #if bit1 of 8bit 'pin' is false, pull PIN6 low if(pin&0x04 == 0x04): IO.output(16,1) else: IO.output(16,0) if(pin&0x08 == 0x08): IO.output(20,1) else: IO.output(20,0) if(pin&0x10 == 0x10): IO.output(21,1) else: IO.output(21,0) if(pin&0x20 == 0x20): IO.output(19,1) else: IO.output(19,0) if(pin&0x40 == 0x40): IO.output(26,1) else: IO.output(26,0) if(pin&0x80 == 0x80): IO.output(12,1) # if bit7 of 8bit 'pin' is true, pull PIN12 high else: IO.output(12,0) # if bit7 of 8bit 'pin' is false, pull PIN12 low while 1: for x in range(10): # execute the loop ten times incrementing x value from zero to nine pin = DISPLAY[x] # assigning value to 'pin' for each digit PORT(pin); # showing each digit on display time.sleep(1)
دیدگاهها (0)