Raspberry Pi là một bo mạch dựa trên bộ xử lý kiến trúc ARM được thiết kế cho các kỹ sư điện tử và những người yêu thích. PI là một trong những nền tảng phát triển dự án đáng tin cậy nhất hiện nay. Với tốc độ xử lý cao hơn và RAM 1 GB, PI có thể được sử dụng cho nhiều dự án cấu hình cao như Xử lý hình ảnh và IoT.
Để thực hiện bất kỳ dự án cao cấp nào, người ta cần hiểu các chức năng cơ bản của PI. Chúng tôi sẽ trình bày tất cả các chức năng cơ bản của Raspberry Pi trong các hướng dẫn này. Trong mỗi hướng dẫn, chúng tôi sẽ thảo luận về một trong các chức năng của PI. Đến cuối Series Hướng dẫn Raspberry Pi này, bạn sẽ có thể tự mình thực hiện các dự án cấu hình cao. Xem qua các hướng dẫn dưới đây:
- Bắt đầu với Raspberry Pi
- Cấu hình Raspberry Pi
- LED nhấp nháy
- Giao diện nút
- Thế hệ PWM
- Điều khiển động cơ DC
- Điều khiển động cơ bước
- Đăng ký Shift Interfacing
- Hướng dẫn sử dụng Raspberry Pi ADC
- Điều khiển động cơ Servo
- Bàn di chuột điện dung
Trong hướng dẫn này, chúng tôi sẽ Điều khiển Màn hình LCD 16x2 bằng Raspberry Pi. Chúng tôi sẽ kết nối LCD với các chân GPIO (General Purpose Input Output) của PI để hiển thị các ký tự trên đó. Chúng tôi sẽ viết một chương trình trong PYTHON để gửi các lệnh thích hợp đến màn hình LCD thông qua GPIO và hiển thị các ký tự cần thiết trên màn hình của nó. Màn hình này sẽ hữu ích để hiển thị các giá trị cảm biến, trạng thái ngắt và cũng để hiển thị thời gian.
Có nhiều loại LCD khác nhau trên thị trường. Graphic LCD phức tạp hơn LCD 16x2. Vì vậy, ở đây chúng tôi sẽ sử dụng màn hình LCD 16x2, bạn thậm chí có thể sử dụng LCD 16x1 nếu muốn. 16x2 LCD có 32 ký tự trong tổng số, 16 trong 1 st dòng và một 16 trong 2 nd dòng. JHD162 là màn hình LCD 16x2 LCD Module ký tự. Chúng tôi đã giao tiếp LCD 16x2 với 8051, AVR, Arduino, v.v. Bạn có thể tìm thấy tất cả dự án liên quan đến LCD 16x2 của chúng tôi bằng cách theo liên kết này.
Chúng ta sẽ thảo luận một chút về PI GPIO trước khi đi sâu hơn.
Có 40 chân đầu ra GPIO trong Raspberry Pi 2. Nhưng trong số 40, chỉ có 26 chân GPIO (GPIO2 đến GPIO27) có thể được lập trình. Một số chân này thực hiện một số chức năng đặc biệt. Với GPIO đặc biệt được đặt sang một bên, chúng tôi còn lại 17 GPIO.
Trên bo mạch có các chân ra nguồn + 5V (Pin 2 hoặc 4) và + 3.3V (Pin 1 hoặc 17), những chân này dùng để kết nối các mô-đun và cảm biến khác. Chúng tôi sẽ cấp nguồn cho LCD 16 * 2 thông qua đường ray + 5V. Chúng ta có thể gửi tín hiệu điều khiển + 3.3v đến LCD nhưng để LCD hoạt động, chúng ta cần cấp nguồn cho nó bằng + 5V. Màn hình LCD sẽ không hoạt động với + 3.3V.
Để biết thêm về các chân GPIO và đầu ra hiện tại của chúng, hãy xem: Đèn LED nhấp nháy với Raspberry Pi
Các thành phần bắt buộc:
Ở đây chúng tôi đang sử dụng Raspberry Pi 2 Model B với Hệ điều hành Raspbian Jessie. Tất cả các yêu cầu cơ bản về Phần cứng và Phần mềm đã được thảo luận trước đó, bạn có thể tra cứu trong phần Giới thiệu Raspberry Pi, ngoài những yêu cầu mà chúng tôi cần:
- Kết nối chân
- Mô-đun LCD 16 * 2
- 1KΩ điện trở (2 miếng)
- 10K nồi
- Tụ điện 1000µF
- Breadboard
Giải thích mạch và làm việc:
Như được hiển thị trong Sơ đồ mạch, chúng ta có Raspberry Pi Giao diện với màn hình LCD bằng cách kết nối 10 chân GPIO của PI với Chân điều khiển và Truyền dữ liệu của LCD 16 * 2. Chúng tôi đã sử dụng GPIO Pin 21, 20, 16, 12, 25, 24, 23 và 18 làm BYTE và tạo chức năng 'PORT' để gửi dữ liệu đến LCD. Ở đây GPIO 21 là LSB (Bit quan trọng nhất) và GPIO18 là MSB (Bit quan trọng nhất).
Mô-đun LCD 16x2 có 16 chân, có thể được chia thành năm loại, Chân Nguồn, Chân tương phản, Chân Điều khiển, Chân Dữ liệu và Chân Đèn nền. Đây là mô tả ngắn gọn về chúng:
thể loại |
Ghim KHÔNG. |
Tên ghim |
Chức năng |
Chân điện |
1 |
VSS |
Chân nối đất, kết nối với mặt đất |
2 |
VDD hoặc Vcc |
Pin điện áp + 5V |
|
Pin tương phản |
3 |
V0 hoặc VEE |
Thiết lập độ tương phản, kết nối với Vcc thông qua một biến trở. |
Ghim điều khiển |
4 |
RS |
Đăng ký Chọn ghim, RS = 0 Chế độ lệnh, RS = 1 Chế độ dữ liệu |
5 |
RW |
Ghim Đọc / Ghi, RW = 0 Chế độ ghi, RW = 1 Chế độ đọc |
|
6 |
E |
Kích hoạt, xung cao đến thấp cần kích hoạt màn hình LCD |
|
Ghim dữ liệu |
7-14 |
D0-D7 |
Ghim dữ liệu, Lưu trữ dữ liệu được hiển thị trên màn hình LCD hoặc các lệnh |
Ghim đèn nền |
15 |
LED + hoặc A |
Để cấp nguồn cho Đèn nền + 5V |
16 |
LED- hoặc K |
Đèn nền |
Chúng tôi thực sự khuyên bạn nên xem qua bài viết này để hiểu màn hình LCD hoạt động với các Pins và Hex Commands của nó.
Chúng ta sẽ thảo luận ngắn gọn về quá trình gửi dữ liệu đến LCD:
1. E được đặt ở mức cao (bật mô-đun) và RS được đặt ở mức thấp (cho LCD biết chúng tôi đang đưa ra lệnh)
2. Đưa giá trị 0x01 vào cổng dữ liệu như một lệnh để xóa màn hình.
3. E được đặt ở mức cao (bật mô-đun) và RS được đặt ở mức cao (cho LCD biết chúng tôi đang cung cấp dữ liệu)
4. Chứng minh mã ASCII cho các ký tự cần được hiển thị.
5. E được đặt ở mức thấp (cho LCD biết rằng chúng tôi đã gửi xong dữ liệu)
6. Khi chân E này ở mức thấp, màn hình LCD sẽ xử lý dữ liệu nhận được và hiển thị kết quả tương ứng. Vì vậy, chân này được đặt ở mức cao trước khi gửi dữ liệu và được kéo xuống mặt đất sau khi gửi dữ liệu.
Như đã nói, chúng tôi sẽ gửi các ký tự lần lượt. Các ký tự được cấp cho màn hình LCD bằng mã ASCII (Mã tiêu chuẩn của Mỹ để trao đổi thông tin). Bảng mã ASCII được hiển thị bên dưới. Ví dụ: để hiển thị ký tự “@”, chúng tôi cần gửi mã thập lục phân “40”. Nếu chúng ta cung cấp giá trị 0x73 cho màn hình LCD, nó sẽ hiển thị “s”. Như thế này, chúng tôi sẽ gửi các mã thích hợp đến màn hình LCD để hiển thị chuỗi “ MẠCH ĐIỀU KHIỂN ”.
Giải thích lập trình:
Sau khi mọi thứ được kết nối theo sơ đồ mạch, chúng ta có thể BẬT PI để viết chương trình trong PYHTON.
Chúng ta sẽ nói về một số lệnh mà chúng ta sẽ sử dụng trong chương trình PYHTON, Chúng tôi sẽ nhập tệp GPIO từ thư viện, chức năng bên dưới cho phép chúng tôi lập trình các chân GPIO của PI. Chúng tôi cũng đang đổi tên “GPIO” thành “IO”, vì vậy trong chương trình bất cứ khi nào chúng tôi muốn đề cập đến các chân GPIO, chúng tôi sẽ sử dụng từ 'IO'.
nhập RPi.GPIO dưới dạng IO
Đôi khi, khi các chân GPIO, mà chúng tôi đang cố gắng sử dụng, có thể đang thực hiện một số chức năng khác. Trong trường hợp đó, chúng tôi sẽ nhận được cảnh báo trong khi thực hiện chương trình. Lệnh dưới đây yêu cầu PI bỏ qua các cảnh báo và tiếp tục với chương trình.
IO.setwarnings (Sai)
Chúng ta có thể tham khảo các chân GPIO của PI, theo số chân trên bo mạch hoặc theo số chức năng của chúng. Giống như 'PIN 29' trên bảng là 'GPIO5'. Vì vậy, chúng tôi nói ở đây hoặc chúng tôi sẽ đại diện cho chốt ở đây bằng '29' hoặc '5'.
IO.setmode (IO.BCM)
Chúng tôi đang đặt 10 chân GPIO làm chân đầu ra, cho các chân Dữ liệu và Điều khiển của LCD.
IO.setup (6, IO.OUT) IO.setup (22, IO.OUT) IO.setup (21, IO.OUT) IO.setup (20, IO.OUT) IO.setup (16, IO.OUT) IO.setup (12, IO.OUT) IO.setup (25, IO.OUT) IO.setup (24, IO.OUT) IO.setup (23, IO.OUT) IO.setup (18, IO.OUT)
Lệnh while 1: được sử dụng như vòng lặp forever, với lệnh này các câu lệnh bên trong vòng lặp này sẽ được thực hiện liên tục.
Tất cả các chức năng và lệnh khác đã được giải thích trong phần 'Mã' bên dưới với sự trợ giúp của 'Nhận xét'.
Sau khi viết chương trình và thực thi nó, Raspberry Pi sẽ lần lượt gửi các ký tự lên LCD và LCD sẽ hiển thị các ký tự trên màn hình.