پروژه الکترونیکپروژه تاریخ و ساعتپروژه های پایتونپروژه های رزبری پای

پروژه ساعت دیجیتال سون سگمنت با رزبری پای

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

آموزش ساخت ساعت با سون سگمنت 4 تایی

می دانیم که Raspberry Pi یک پلتفرم توسعه فوق العاده مبتنی بر ریزپردازنده ARM است. رزبری پای با داشتن توان محاسباتی زیاد، می تواند شگفتی هایی را در اختیار علاقمندان یا دانشجویان الکترونیک قرار دهد. در این پروژه رزبری پای یک ساعت دیجیتالی را با صفحه نمایش سون سگمنت چهار تایی را میسازیم. اگر چه راه اندازی ال سی دی کاراکتری بسیار راحت تر از 7 سگمنت است، اما به دلایل مختلف ممکن است علاقمند باشید ساعت خود را با سون سگمنت طراحی کنید. ال سی دی کاراکتری میتواند علاوه بر اعداد، حروف و کاراکتر های خاص را نیز نمایش دهد. سون سگمنت اما زاویه دید و روشنایی بیشتری دارد.

آموزش ساخت ساعت با سون سگمنت 4 تایی

فیلم عملکرد پروژه در انتهای صفحه قرار داده شده است.

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

ماژول سون سگمنت چهار تایی

نمایش عدد در سون سگمنت

سون سگمنت نمایشگری است که دارای 7 بخش است و در هر بخش یک ال ای دی قرار دارد تا با روشن کردن آن اعداد مختلف نمایش داده شوند. مثلا اگر میخواهید عدد 5 را با سون سگمنت نشان دهید باید LED های بخش های a , f , g , c و d را روشن کنید. به طور کلی دو نوع 7 سگمنت وجود دارد. آند مشترک و کاتد مشترک. در این پروژه ما از نمایشگر سون سگمنت کاتد مشترک استفاده میکنیم.

در مورد سون سگمنت ها قبلا به طور مفصل صحبت کردیم : نمایشگر سون سگمنت چیست ؟ آموزش کامل 7 Segment

اکنون می دانیم که چگونه شخصیت عددی مورد نظر خود را در یک صفحه نمایش 7 قسمتی نمایش دهیم. اما کاملاً مشهود است که برای انتقال اطلاعاتی که بیش از یک رقم باشد ، به بیش از یک صفحه نمایش 7 قسمتی نیاز داریم. بنابراین ، در این آموزش ما از یک ماژول نمایشگر 4 رقمی سون سگمنت مانند تصویر زیر استفاده خواهیم کرد.

پروژه سون سگمنت چهار تایی با رزبری پای

اگر میخواهید آردوینو را به صورت اصولی و پروژه محور (ساخت ربات، ارتباط با اندروید، اینترنت اشیا، برنامه نویسی حرفه ای) یاد بگیرید، حتما دوره آموزش آردوینو را مشاهده کنید.

همانطور که می بینیم چهار نمایشگر Seven Segment وجود دارد که به هم وصل شده اند. می دانیم که در هر ماژول سون سگمنت 10 پین وجود دارد و برای 4 نمایشگر 7 سگمنت 40 پین در کل وجود خواهد داشت بنابراین بجای خرید چهار سون سگمنت تکی، یک سون سگمنت چهار تایی استفاده کنید.

شماتیک سون سگمنت چهار تایی

به تصویر بالا نگاه کنید، در تصویر بالا تمامی a ها به هم متصل هستند و بنابراین با روشن کردن a، قسمت a در تمامی چهار سون سگمنت روشن میشود. بنابراین ما باید طوری تنظیم کنیم که قسمت a فقط در سون سگمنت مورد نظر ما روشن شود. برای این کار باید همزمان با روشن کردن a، فقط به سون سگمنت مورد نظر خود نیرو بدهیم. بعنوان مثال برای نمایش عدد 1 در سون سگمنت سمت راست، باید f و e را متصل کرده و فقط پین D3 را فعال کنیم.

توضیحات مدار ساعت دییجتالی

شماتیک مدار پروژه در تصویر زیر نشان داده شده است.

مدار ساعت دییجتالی رزبری پای

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

جدول زیر به شما در درک نحوه اتصال سون سگمنت 4 تایی به Raspberry pi کمک میکند.

شماره پین GPIO رزبری پای پین رزبری پای نام سون سگمنت پین سون سگنت
1 GPIO 26 پین 37 a 1
2 GPIO 19 پین 35 b 2
3 GPIO 13 پین 33 c 3
4 GPIO 6 پین 31 d 4
5 GPIO 5 پین 29 e 5
6 GPIO 11 پین 23 f 6
7 GPIO 9 پین 21 g 7
8 GPIO 10 پین 19 DP 8
9 GPIO 7 پین 26 رقم 1 13
10 GPIO 8 پین 24 رقم 2 14
11 GPIO 25 پین 22 رقم 3 15
12 GPIO 24 پین 18 رقم 4 16
13 زمین زمین زمین 11

تصویر زیر به شما در درک مکان پین GPIO برد Raspberry pi کمک میکند.

پین های GPIO رزبری پای

برنامه نویسی ساعت سون سگمنت رزبری پای

وقتی همه چیز را مانند شماتیک مدار متصل کردید، می توانیم 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)

سپس باید پین های سون سگمنت را تعریف کنیم.

segment8 = (26,19,13,6,5,11,9,10)
for segment in segment8:
    GPIO.setup(segment, GPIO.OUT)
    GPIO.output(segment, 0)

پین های رقم را به عنوان پین های خروجی اعلام می کنیم و به طور پیش فرض آنها را “0” می کنیم

    #Digit 1
    GPIO.setup(7, GPIO.OUT)
    GPIO.output(7, 0) # در ابتدا خاموش
    #Digit 2
    GPIO.setup(8, GPIO.OUT)
    GPIO.output(8, 0) # در ابتدا خاموش
    #Digit 3
    GPIO.setup(25, GPIO.OUT)
    GPIO.output(25, 0) # در ابتدا خاموش
    #Digit 4
    GPIO.setup(24, GPIO.OUT)
    GPIO.output(24, 0) # در ابتدا خاموش

برای نمایش اعداد در سوت سگمنت باید آرایه هایی تشکیل دهیم. و برای نمایش یک عدد، باید بتوانیم همه پین های سون سگمنت را کنترل کنیم. یعنی باید یا خاموش باشند یا روشن. به طور مثال برای نمایش عدد پنج داریم :

شماره پین GPIO رزبری پای قسمت سون سگمنت وضعیت
1 GPIO 26 a روشن
2 GPIO 19 b روشن
3 GPIO 13 c خاموش
4 GPIO 6 d روشن
5 GPIO 5 e روشن
6 GPIO 11 f خاموش
7 GPIO 9 g روشن

به همین ترتیب برای تمام اعداد باید آرایه ای تشکیل دهیم. کد های زیر آرایه های تمام اعداد را نشان میدهند.

null = [0,0,0,0,0,0,0]
zero = [1,1,1,1,1,1,0]
one = [0,1,1,0,0,0,0]
two = [1,1,0,1,1,0,1]
three = [1,1,1,1,0,0,1]
four = [0,1,1,0,0,1,1]
five = [1,0,1,1,0,1,1]
six = [1,0,1,1,1,1,1]
seven = [1,1,1,0,0,0,0]
eight = [1,1,1,1,1,1,1]
nine = [1,1,1,1,0,1,1]

ما سپس زمان را به چهار متغیر تقسیم میکنیم. به عنوان مثال اگر زمان 10.45 باشد متغیر h1 دارای 1 ، h2 0 خواهد بود ، m1 4 و 5 m2 خواهد شد 5.

    now = datetime.datetime.now()
    hour = now.hour
    minute = now.minute
    h1 = hour/10
    h2 = hour % 10
    m1 = minute /10
    m2 = minute % 10
    print (h1,h2,m1,m2)

ما باید این چهار مقدار متغیر را به ترتیب در چهار رقم خود نمایش دهیم. برای نوشتن مقدار متغیر به رقم می توان از خطوط زیر استفاده کرد. شاید تعجب کنید که چرا پس از آن تأخیر داریم و چرا این رقم را خاموش می کنیم.

GPIO.output(7, 1) #روشن کردن رقم اول
print_segment (h1) #نمایش h1 روی آن
time.sleep(delay_time)
GPIO.output(7, 0) #خاموش کردن عدد اول

دلیل این کار این است که ما فقط میتوانیم یک رقم را نشان دهیم. اما چهار رقم داریم و در صورتی که چهار سون سگمنت را روشن کنیم تمامشان یک عدد نشان میدهد.

بنابراین ، چگونه تمام 4 رقم به طور همزمان نمایش داده می شود؟

خوشبختانه برد رزبری پای سریع تر از چشم انسان فعالیت میکند. بنابراین ما در برنامه به طور پی در پی و سریع، اعداد را یک رقم یک رقم روی سون سگمنت چهای تایی خود نمایش میدهیم و چشم ما آن را طوری میبیند که گویی تمام سون سگمنت ها همزمان روشن هستند.

ما یک رقم را انتخاب می کنیم که 2ms فعال است و Raspberry pi قسمت های مورد نیاز آن را روشن میکند و سپس به رقم بعدی رفته و عدد مورد نظر را نشان میدهد. این تاخیر 2ms توسط یک چشم انسان مشاهده نمی شود و به نظر می رسد که هر چهار رقم به طور همزمان روشن هستند.

فیلم عملکرد پروژه

اطمینان حاصل کنید که Raspberry Pi خود را با زمان واقعی تنظیم کرده اید. سپس رزبری پای را روشن کنید و ساعت را در سون سگمنت ها مشاهده کنید. فیلم زیر به شما در درک نحوه کار این پروژه کمک میکند.

دانلود فیلم عملکرد ساعت دیجیتالی رزبری پای

موارد موجود در فایل : شماتیک کامل مدار ، سورس کامل

برای دانلود فایل ها باید عضو آیرنکس باشید، تنها چند ثانیه زمان لازم است.

ورود / ثبت نام

[lrm_form default_tab=”register” logged_in_message=””]

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

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. مالکیتی بر مطالب ارائه شده ندارم. اکثر فعالیت بنده در زمینه ترجمه است. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

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

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