آموزش رزبری پایآموزش رزبری پای پیکو Pico

اتصال ال سی دی کاراکتری به پیکو و میکروپایتون

در این آموزش ما می خواهیم یک ماژول نمایشگر کریستال مایع (LCD) را با Raspberry Pi Pico با استفاده از Micropython راه اندازی کنیم. در پایان این آموزش، شما می توانید رشته ها و کاراکترها را با استفاده از Micropython روی LCD نمایش دهید.

مدار اتصال LCD به رزبری پای Pico

شماتیک مدار زیر نشان دهنده نحوه اتصال LCD به رزبری پای پیکو است. ما از یک پتانسیومتر برای کنترل کنتراست صفحه نمایش LCD استفاده میکنیم. پین های داده 4 بیتی (یعنی D4 تا D7) به ترتیب به GPIO 18،19،20،21 متصل می شوند. پایه Rs LCD به GPIO 16 و پایه E به GPIO 17 وصل می شود. خروجی پتانسیومتر به پایه V0 LCD و پایه VBUS به ترمینال ورودی پتانسیومتر متصل می شود. این پایه VBUS برد pico برای تغذیه LCD از طریق پین VDD LCD استفاده می شود. پایه شماره 15 ال سی دی به پین ​​VDD ال سی دی وصل می شود تا برق 5 ولت را تامین کند و پین شماره 16 ال سی دی به ​​Ground متصل می شود.

پیشنهاد میکنم مقاله راه اندازی LCD کاراکتری با رزبری پای را نیز ببینید.

مدار اتصال LCD به رزبری پای Pico

قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

برنامه نویسی LCD با رزبری پای پیکو

برای برنامه‌ریزی LCD با Raspberry Pi Pico با استفاده از Micropython، باید کتابخانه و فایل‌های کد مربوطه را انتهای صفحه دانلود کنید. فایل “lcd_pico” را می توان به عنوان یک کتابخانه برای برنامه ریزی صفحه نمایش LCD با Raspberry Pi Pico با استفاده از Micropython استفاده کرد. در فایل “main.py” من از برخی توابع از فایل “lcd_pico.py” برای نمایش برخی رشته ها روی LCD استفاده کرده ام. بیایید هر دو فایل پایتون را یکی یکی بحث کنیم.

فایل Lcd_pico.py

در فایل “lcd_pico.py” دو کتابخانه “machine.py” و “utime.py” وارد کرده ایم. کتابخانه ماشین شامل توابع داخلی برای تعریف پین‌ها، GPIO و … است. کتابخانه “utime” برای ارائه تاخیر در کد استفاده می‌شود. سپس پین های GPIO را برای پین های داده 4 بیتی ال سی دی و پین های RS و E ال سی دی تعریف کرده ایم. machine.Pin(16,machine.Pin.OUT) برای تنظیم GPIO21 به عنوان OUTPUT و اختصاص آن در متغیر “rs” استفاده میشود. به طور مشابه، GPIO های 17 تا 21 به عنوان پایه های OUTPUT تنظیم می شوند و به ترتیب به متغیرهای “e”، “d4″، “d5″، “d6” و “d7” اختصاص داده می شوند.

import machine
import utime
rs= machine.Pin(16,machine.Pin.OUT)
e = machine.Pin(17,machine.Pin.OUT)
d4 = machine.Pin(18,machine.Pin.OUT)
d5 = machine.Pin(19,machine.Pin.OUT)
d6 = machine.Pin(20,machine.Pin.OUT)
d7 = machine.Pin(21,machine.Pin.OUT)

تابع “setCursor(line,pos)” در زیر برای تنظیم موقعیت نشانگر ال سی دی استفاده می شود. ما باید دو پارامتر “line” و “pos” را تعیین کنیم. من از LCD 16×2 استفاده می کنم که دارای 2 ردیف است. از “pos” برای تعیین موقعیت ستونی که می خواهیم داده ها را چاپ کنیم استفاده می شود.

def setCursor(line, pos):
    b = 0
    if line==1:
        b=0
    elif line==2:
        b=40
    returnHome()
    for i in range(0, b+pos):
        moveCursorRight()

تابع clearScreen() برای پاک کردن صفحه نمایش و تابع setupLCD() برای مقداردهی اولیه LCD استفاده می شود. ما باید از تابع setupLCD() در شروع کد اصلی خود استفاده کنیم. displayString() برای نمایش داده های رشته استفاده می شود. این تابع سه پارامتر را می گیرد که عبارتند از “row”، “col” و “input_string”. پارامتر “row” و “col” برای تنظیم موقعیت و از “input_string” برای تنظیم رشته ای که باید روی LCD چاپ شود استفاده می شود.

def clearScreen():
    rs.value(0)
    send2LCD8(0b00000001)#clear screen
    longDelay(2)#clear screen needs a long delay
    rs.value(1)
def setupLCD():
    rs.value(0)
    send2LCD4(0b0011)
    send2LCD4(0b0011)
    send2LCD4(0b0011)
    send2LCD4(0b0010)
    send2LCD8(0b00101000)
    send2LCD8(0b00001100)#lcd on, blink off, cursor off.
    send2LCD8(0b00000110)#increment cursor, no display shift
    send2LCD8(0b00000001)#clear screen
    longDelay(2)#clear screen needs a long delay
    rs.value(1)
def displayString(row, col, input_string):
    setCursor(row,col)
    for x in input_string:
        send2LCD8(ord(x))
        longDelay(10)

فایل main.py

در فایل main.py، کتابخانه “lcd_pico” را وارد کرده و سپس تابع “setupLCD()” را فراخوانی کرده ایم. سپس از تابع “displayString()” برای چاپ رشته های زیر استفاده میکنیم. در این تابع، برای تنظیم موقعیت مکان نما، “row” و “col” را تنظیم کرده و سپس رشته هایی را برای نمایش روی LCD تنظیم میکنیم. تابع longDelay() برای ارائه تاخیر میکروثانیه ای استفاده می شود.

from lcd_pico import *
setupLCD()
displayString(1,0,"WELCOME")
displayString(2,0,"TO")
longDelay(4000)
displayString(1,0,"CIRCUIT")
displayString(2,0,"DIGEST")
longDelay(4000)

در حلقه while زیر از displayString() برای نمایش “IRENX.IR” و “Mohammad” با فاصله 1.5 ثانیه استفاده کرده ایم. ()clearScreen برای پاک کردن صفحه نمایش در هر 1.5 ثانیه استفاده می شود.

while(True):
    displayString(1,0,"CIRCUIT")
    displayString(2,0,"DIGEST")
    longDelay(1000)
    clearScreen()
    longDelay(500)

اکنون، در Thonny IDE، فایل‌های «main.py» و «lcd_pico.py» را باز کنید. برای شروع، فایل “lcd_pico.py” را روی برد Pico با فشار دادن کلیدهای “ctrl+shift+s” روی صفحه کلید خود ذخیره کنید. قبل از ذخیره فایل ها، مطمئن شوید که برد Pico به لپ تاپ شما متصل است. هنگامی که کد را ذخیره می کنید، یک پنجره بازشو ظاهر می شود، همانطور که در تصویر زیر نشان داده شده است. ابتدا باید Raspberry Pi Pico را انتخاب کنید، سپس نام فایل را “lcd_pico.py” بگذارید و آن را ذخیره کنید. سپس این فرآیند را برای فایل “main.py” تکرار کنید. این روش به شما امکان می دهد تا زمانی که Pico روشن است، برنامه را اجرا کنید.

آپلود کد در رزبری پای پیکو

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

4.8 (5 نفر)

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

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

محمد رحیمی

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

2 نظر

    1. سلام عزیز
      فایل دانلود در انتهای صفحه قرار گرفت

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

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