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

راه اندازی سنسور فلکس Flex با رزبری پای

سلام. راه اندازی سنسور فلکس Flex با رزبری پای را آماده کردیم.

آموزش استفاده از سنسور فلکس با Raspberry pi

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

پیشنهاد میشود قبل از استفاده از این پروژه، آموزش آنالوگ به دیجیتال در رزبری پای را بخوانید.

ADC0804 چیست؟

ADC0804 تراشه ای است که برای تبدیل سیگنال آنالوگ به داده های دیجیتالی 8 بیتی طراحی شده است. این تراشه یکی از تراشه های محبوب ADC است. این یک واحد تبدیل 8bit است، بنابراین به ما مقادیری بین 0 تا 255 میدهد. به طور کلی این تراشه میتواند حداکثر 5 ولت را اندازه بگیرد و آن را به عددی بین 0 تا 255 تبدیل کند. بنابراین تغییر هر واحد با تغییر 19.5 میلی ولت تغییر میکند.

دیتاشیت پین های ADC0804 :

دیتاشیت پین های ADC0804

حال نکته مهم دیگر اینجاست که ADC0804 با 5 ولت کار می کند و بنابراین خروجی را در سیگنال منطقی 5 ولت فراهم می کند. در خروجی 8 پین (به عنوان 8 بیت)، هر پین +5 ولت خروجی را ارائه می دهد. مشکل اینجا شروع میشود که رزبری پای تحمل 3.3 ولت را دارد بنابراین نمیتواند خروجی ADC را دریافت کند زیرا در این صورت برد Raspberry Pi شما آسیب میبیند.

بنابراین برای کم کردن ولتاژ ما از مدار تقسیم ولتاژ استفاده میکنیم. ما با استفاده از مقاومت، 5 ولت را به دو ولتاژ 2.5 تبدیل میکنیم. بنابراین هر وقت منطق در تراشه 1 شود، 5 ولت ارائه میشود و با تقسیم ولتاژ ، 2.5 ولت به رزبری پای میرسد.

توضیحات مدار پروژه

شماتیک مدار برای راه اندازی Flex Sensor با Raspberry Pi در زیر نشان داده شده است.

راه اندازی مدار سنسور فلکس Raspberry Pi

با مشاهده تصویر بالا فکر میکنید چقدر مدار این پروژه پیچیده است. در صورتی که اینطور نیست و مدار بسیار آسان است فقط بدیل استفاده از مقاومت ها مدار پیچیده بنظر میرسد. جدول زیر به شما در اتصال صحیح قطعات کمک میکند.

نام پین

شماره پین رزبری پای

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

LCD Vss

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

Pin 4

Ground

LCD Vdd

Pin 6

Vcc (+5V)

LCD Vee

Pin 4

Ground

LCD Rs

Pin 38

GPIO 20

LCD RW

Pin 39

Ground

LCD E

Pin 40

GPIO 21

LCD D4

Pin 3

GPIO 2

LCD D5

Pin 5

GPIO 3

LCD D6

Pin 7

GPIO 4

LCD  D7

Pin 11

GPIO 17

ADC0804 Vcc

Pin 2

Vcc (+5V)

ADC0804 B0

Pin 19 (through 5.1K)

GPIO 10

ADC0804 B1

Pin 21 (through 5.1K)

GPIO 9

ADC0804 B2

Pin 23 (through 5.1K)

GPIO 11

ADC0804 B3

Pin 29 (through 5.1K)

GPIO 5

ADC0804 B4

Pin 31 (through 5.1K)

GPIO 6

ADC0804 B5

Pin 33 (through 5.1K)

GPIO 13

ADC0804 B6

Pin 35 (through 5.1K)

GPIO 19

ADC0804 B7

Pin 37 (through 5.1K)

GPIO 26

ADC0804 WR/INTR

Pin 15

GPIO 22

حتما ببینید :  ارتباط سریال بین آردوینو و رزبری پای با Rs-485

از آن زمان می توانید از تصویر زیر برای تعیین شماره پین ​​روی تمشک استفاده کنید.

مانند همه ماژول های آنالوگ به دیجیتال، ADC0804 IC برای کارکردن به یک سیگنال ساعت نیاز دارد، خوشبختانه این آی سی دارای منبع ساعت داخلی است ، بنابراین ما فقط باید مدار RC را به پین ​​های CLK in و CLK R اضافه کنیم همانطور که در مدار نشان داده شده است. ما از مقدار 10K و 105pf استفاده کرده ایم ، اما می توانیم از هر مقدار نزدیک مانند 1uf ، 0.1uf ، 0.01uf نیز استفاده کنیم.

سپس برای اتصال سنسور Flex از مدار تقسیم کننده با استفاده از مقاومت 100K استفاده کرده ایم. هرچه سنسور Flex خم شود مقاومت در برابر آن متفاوت خواهد بود و به همین ترتیب پتانسیل در مقاومت نیز افت خواهد کرد. این افت توسط ADC0804 IC اندازه گیری می شود و داده های 8 بیتی نیز بر این اساس تولید می شوند.

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

  1. برد رزبری پای
  2. IC آنالوگ به دیجیتال ADC0804
  3. ال سی دی کاراکتری 16*2
  4. سنسور فلکس
  5. مقاومت 100 کیلو اهم
  6. مقاومت 11 کیلو اهم – 8 عدد
  7. مقاومت 5.1 کیلو اهم – 8 عدد
  8. خازن 150pf

برنامه نویسی Raspberry Pi برای سنسور فلکس

پس از انجام اتصالات ، باید وضعیت این 8 بیت را با استفاده از Raspberry Pi بخوانیم و آنها را به Decimal تبدیل کنیم تا بتوانیم از آنها استفاده کنیم. کد کامل پروژه در انتهای صفحه قرار داده شده است. در اینجا بعضی از قسمت های کد را بررسی میکنیم.

برای ایجاد ارتباط LCD با رزبری پای به یک کتابخانه LCD نیاز داریم. برای این کار ما از کتابخانه ای ساخته شده توسط shubham استفاده می کنیم که به ما کمک می کند تا یک نمایشگر LCD 16 * 2 را با یک Raspberry pi در حالت چهار بیت متصل کنیم.

توجه: lcd.py را باید از فایل دانودی خارج کرده و در همان جایی که این برنامه ذخیره شده است، قرار دهید. فقط در این صورت کد کامپایل می شود.

import lcd #وارد کردن کتابخانه ال سی دی
import time #وارد کردن کتابخانه تاخیر
import RPi.GPIO as GPIO #استفاده از شماره پین های GPIO

تعاریف پین ال سی دی همانند جدول زیر به متغیرها اختصاص داده شده است. توجه داشته باشید که این اعداد اعداد پین GPIO هستند و نه اعداد پین واقعی هستند. برای مقایسه اعداد GPIO با شماره پین ​​می توانید از جدول بالا استفاده کنید. دودویی آرایه شامل تمام شماره های پین داده ها می شود و بیت های آرایه مقدار حاصل از همه پین ​​های GPIO را ذخیره می کنند.

#تعریف پین های ال سی دی 
D4=2
D5=3
D6=4
D7=17
RS=20
EN=21

binarys = (10,9,11,5,6,13,19,26) #آرایه برای پین های LCD

سپس پین های ورودی و خروجی را تعریف میکنیم. 7 پین ورودی خواهند بود و پین ماشه (RST و INTR) خروجی خواهد بود. ما میتوانیم مقادیر داده 8 بیتی را از پین های ورودی بخوانیم فقط در صورتی که آن را مطابق با دیتاشیت IC تحریک کنیم.

for binary in binarys:
    GPIO.setup(binary, GPIO.IN) #تمامی پین های باینری به عنوان ورودی

  #Trigger pin
    GPIO.setup(22, GPIO.OUT) #WR و INTR خروجی

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

mylcd=lcd.lcd()
mylcd.begin(D4,D5,D6,D7,RS,EN)

#پیام
mylcd.Print("Flex Sensor with")
mylcd.setCursor(2,1)
mylcd.Print("Raspberry Pi")
time.sleep(2)
mylcd.clear()

در داخل حلقه بینهایت، مقادیر باینری را خوانده و آنها را به اعشار تبدیل می کنیم و نتیجه را بر روی LCD نمایش میدهیم. همانطور که قبلاً قبل از خواندن مقادیر ADC گفته شد باید پین ماشه را برای مدت زمان خاصی بالا ببریم تا تبدیل ADC فعال شود. این کار با استفاده از خطوط زیر انجام می شود.

  GPIO.output(22, 1) #فعال شدن ماشه
    time.sleep(0.1)
    GPIO.output(22, 0) #غیرفعال شدن ماشه

حال باید داده های 8 پین را بخوانیم و نتیجه را در آرایه بیت به روز کنیم. برای این کار از یک حلقه for برای مقایسه هر پین ورودی با True و False استفاده می کنیم. اگر درست باشد آرایه بیت های مربوطه 1 می شود. در غیر اینصورت 0 میشود

#خواندن ورودی ها و بروز کردن آرایه بیت
    for i in range(8):
        if(GPIO.input(binarys[i]) == True):
            bits[i] = 1
        if(GPIO.input(binarys[i]) == False):
            bits[i] = 0

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

کار پروژه بسیار ساده است. مطمئن شوید که فایل سربرگ lcd.py را بارگیری کرده اید و آن را در همان دایرکتوری که برنامه فعلی شما در آن قرار دارد قرار داده اید. سپس اتصالات را مطابق با شماتیک مدار انجام دهید و سپس کد را اجرا کنید. فیلم زیر به شما در درک نحوه کار پروژه کمک میکند.

برای دانلود فایل های پروژه ثبت نام کنید، تنها چند ثانیه زمان لازم است. از طریق فرم زیر اقدام کنید.

ایمیل خود را وارد کنید

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

محمد رحیمی

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

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

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

دکمه بازگشت به بالا
بستن
بستن