Cytron Technologies
Giờ làm việc: 8:00 - 17:00
Thứ 2 - Thứ 6 (trừ ngày lễ)
Hotline 0362917357
Màn hình LCD ký tự nối tiếp 3.3V là một công cụ hiển thị tốt để xuất thông tin từ các nền tảng vi điều khiển như Raspberry Pi Pico, microbit, hoặc 3.3V Arduino.
Nó đi kèm với cả cổng kết nối Inter IC (I2C hoặc IIC) và cổng kết nối Serial ngoại vi (SPI). Với hiển thị 2 dòng x 16 ký tự và 5 × 8 chấm chắc chắn là sự lựa chọn tốt nhất cho nhiều nhà sản xuất để hiển thị dữ liệu của họ. Nguồn điện yêu cầu là 3.3V và tương thích với hầu hết các MCU hiện có trên thị trường. Vì vậy, trong hướng dẫn này, chúng mình sẽ trình bày thiết lập và chương trình của Raspberry Pi Pico để hiển thị trên màn hình LCD này.
Video
Mình sử dụng Raspberry Pi 400 để phát triển chương trình cho Pico 🙂 Bạn có thể sử dụng bất ky máy tính hoặc laptop có Thonny Python IDE để làm.
If you are new and have a fresh Pi Pico, you might need this step to help you. You can refer to this tutorial How to Set Up and Program Raspberry Pi Pico to help you set up your new Raspberry Pi Pico. If you confirmed that your Pi Pico is already been installed with MicroPython, you can skip this STEP and go straight to the next step.
Khởi động máy tính để lập trình màn hình. Trong hướng dẫn này, tôi đang sử dụng Raspberry Pi 400 làm máy tính của mình để truy cập Thonny Python IDE Python IDE để viết mã. Bạn có thể sử dụng bất kỳ máy tính hoặc máy tính xách tay nào miễn là nó có Thonny Python IDE để lập trình Pi Pico. Để lập trình màn hình, chúng ta cần thư viện hoặc “trình điều khiển” của màn hình LCD này. Bạn có thể lấy thư viện tại GitHub LCM1602-14_LCD_Librarynày được tạo bởi Bhavithiran. Hình ảnh sau đây sẽ hướng dẫn bạn cách tải xuống tệp từ GitHub:
Nhấp vào liên kết được đưa ra, chế độ xem sẽ như thế này.
Sau đó nhấp chọn‘code’ nút xanh và chọn download ZIP. Tệp này sẽ tự động tải xuống và chúng ta có thể sử dụng nó.
I2C hoặc Inter-Integrated Circuit là giao thức truyền thông chỉ sử dụng hai dây để truyền thông là dữ liệu (SDA) và một dây khác, đồng hồ (SCL). Địa chỉ giao tiếp giữa màn hình LCD này và thiết bị là 62 (DEC) hoặc 0x3E. Đầu tiên, hãy lập trình để hiển thị “Hello World” trên màn hình LCD này với giao thức I2C sử dụng MicroPython. Dưới đây là sơ đồ mạch để thiết lập màn hình LCD với giao thức I2C trên Pi Pico:
Chế độ xem thực tế của thiết lập :
Mở Thonny Python IDE trên máy tính, cắm USB vào máy tính.
Nếu hệ thống không phát hiện nhấp chọn Stop/Restart backened button. Sau đó chúng ta có thể xác định liệu thiết bị kết nối hay không bằng cách xem thiết bị đầu cuối.
Nhấp chuột phải vào vị trí tệp thiết bị MicroPython và nhấp vào Thư mục mới để tạo thư mục thư viện để lưu trữ tệp. Nhập tên bất kỳ và thư mục sẽ được tạo. Đối với tôi, tôi đã sử dụng lib làm tên cho thư mục thư viện.
lib folder đã được tạo
Nhấn lib folder dưới phần MicroPython devices. Tại tệp ‘This computer’ tìm tên LCD_I2C.py sau đó nhấp phải vào nó và nhấp Upload to /lib. Chúng ta sẽ thấy tệp đã được copy dưới dạng MicroPython device .
Thoát lib folder trong phần MicroPython device sau đó nhấn Examples folder trong phần This Computer để tải chương trình trong Pi Pico.
Nhấp chuột phải tệp hello_world_i2c.py trong phần This computer và nhấp chọn Upload to / để tải tệp vào Pi Pico. Chúng ta có thể thấy tệp đã được sao chép dưới trong phần MicroPython device .
Chúng ta đã tải xong chương trình Raspberry Pi Pico. Phần còn lại la thực hiện chương trình
Tìm tệp hello_world_i2c.py trong phần MicroPython device sau đó nhấp chọn:
Chương trình sẽ thực hiện và đầu ra sẽ như thế này:
Việc hình thành chương trình mẫu sẽ làm cho màn hình LCD:
Nếu bạn muốn duy trì hiển thị văn bản LCD trong Pi Pico mà không cần phải luôn thực thi với Thonny Python IDE, bạn cần lưu tên tệp là main.py. Tìm ‘tệp’ ở ngay phía trên của Thonny Python IDE, nhấp vào nó và tìm “lưu dưới dạng“.
Lưu dưới dạng MicroPython device :
Name it as main.py
Xác minh nó bằng cách cắm nó ra và kết nối với bất kỳ nguồn điện nào.
Như vậy là chúng ta đã hoàn thành việc hiển thị văn bản trên màn hình LCD với giao thức truyền thông I2C.
SPI hoặc Giao diện ngoại vi nối tiếp là giao thức truyền thông song công dựa trên bốn dây bao gồm bốn dây cho giao tiếp là MOSI (master out slave in), MISO (master in slave out), SCL (đồng hồ nối tiếp được tạo ra bởi chủ) và SS (dòng chọn phụ dùng để chọn phụ cụ thể trong quá trình giao tiếp). Ở đây, chúng ta sẽ tìm hiểu về cách hiển thị “Hello World” trên màn hình LCD này với giao thức SPI sử dụng MicroPython. Dưới đây là sơ đồ mạch để thiết lập màn hình LCD với giao thức SPI trên Pi Pico:
Hiển thị cài đặt :
Mở Thonny Python IDE, sau đó cắm Pi Pico vào máy tính. Nếu hệ thống không phát hiện, hãy nhấp vào nút Stop / Restart Backened. Đảm bảo rằng thư mục lib đã được tạo. Nếu thư mục lib chưa được tạo, bạn có thể chuyển đến BƯỚC 1 theo các bước giao thức I2C để được hỗ trợ.
Nhập thư mục lib trong phần thiết bị MicroPython. Trong vị trí tệp ‘Máy tính này‘, hãy tìm tên LCD_SPI.py, sau đó nhấp chuột phải vào nó và nhấp vào Tải lên / lib. Chúng ta có thể thấy rằng tệp đã được sao chép trong phần thiết bị MicroPython.
Thoát thư mục lib trong phần thiết bị MicroPython, sau đó nhập thư mục Ví dụ trong phần Máy tính này để chúng tôi tải lên chương trình trong Pi Pico.
Nhấp chuột phải vào tệp hello_world_spi.py tại phần Máy tính này và nhấp vào Tải lên / để tải tệp lên Pi Pico. Chúng ta có thể thấy tệp đã được sao chép trong phần thiết bị MicroPython.
Bây giờ chúng ta đã hoàn tất việc tải chương trình vào Raspberry Pi Pico. Những gì còn lại là thực hiện chương trình.
Như chúng ta đã biết, Pi Pico đã được tích hợp sẵn một cảm biến nhiệt độ. Vì vậy, làm thế nào về việc chúng ta tạo một số ứng dụng với nó và hiển thị nhiệt độ trên màn hình LCD. Điều này có thể giúp chúng ta sửa đổi những gì chúng ta đã học được ở trên. Dưới đây mình đã bao gồm mã cho cả hai giao thức, bạn có thể sửa đổi, cải thiện và rất tốt cho bạn khi tự viết mã. Giải thích về cách mã hoạt động được bao gồm trong mã (xem bình luận).
Hiển thị nhiệt độ cho mã giao thức :
from LCD_I2C import * #import LCD I2C library
import math
import machine
import utime
_tempSensor = machine.ADC(machine.ADC.CORE_TEMP) #initialize temperature sensor in Pi Pico
lcd = LCD(sda=2, scl=3) #I2C communcation
conv = 3.3 / (65535) #convert raw reading from sensor to voltage
lcd.set_cursor(0,0)
lcd.write("Temperature :")
lcd.set_cursor(3,1)
lcd.write("Deg Celcius")
while True:
reading = _tempSensor.read_u16() * conv #analog input read and apply the conversion factor
temperature = 27 - (reading - 0.706)/0.001721 #convert temperature to degree celcius
lcd.set_cursor(0,1)
lcd.write(str(math.trunc(temperature))) #display the temperature and round off it
utime.sleep(1)
Đặt mã code trong main.py
để thực hiện vĩnh viễn :
Temperature display for SPI protocol code :
from LCD_SPI import * #import LCD_SPI library
import math
import machine
import utime
_tempSensor = machine.ADC(machine.ADC.CORE_TEMP) #initialize temperature sensor in Pi Pico
lcd = LCD(sck=2, tx=3, cs=5) #SPI communcation
conv = 3.3 / (65535) #convert raw reading from sensor to voltage
lcd.set_cursor(0,0)
lcd.write("Temperature :")
lcd.set_cursor(3,1)
lcd.write("Deg Celcius")
while True:
reading = _tempSensor.read_u16() * conv #analog input read and apply the conversion factor
temperature = 27 - (reading - 0.706)/0.001721 #convert temperature to degree celcius
lcd.set_cursor(0,1)
lcd.write(str(math.trunc(temperature))) #display the temperature and round off it
utime.sleep(1)
Đặt mã code trong main.py
để thực hiện vĩnh viễn :
Đâu ra cho cả hai mã code :
Kết luận, màn hình LCD ký tự nối tiếp3V3 là một thiết bị hiển thị tuyệt vời vi có sẵn hai loại giao tiếp nối tiếp. Điều này giúp sử dụng giao tiếp SPI đông thời thử nghiệm với I2C. Bảng bên dưới hiển thị sự so sánh đơn giản giữa hai bộ giao thức cho sản phẩm này.
Inter-Integrated Circuit (I2C) | Serial Peripheral Interface (SPI) |
Ít dây kết nối hơn | Nhiều dây kết nối hơn |
Giao tiếp chậm hơn | Giao tiếp nhanh hơn |
hello_world_spi.py and hello_world_i2c.py chỉ là mã code mẫu để bạn thử chạy và xem liệu màn hình có hoạt động hay không. Bạn có thể cải thiện, sửa đổi, cập nhật hoặc tạo mã của riêng mình. Tuy nhiên, hãy luôn bao gồm thư viện vi bộ hướng dẫn phần cứng để màn hình có thể hoạt động.