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 về Raspberry Pi này, bạn sẽ có thể tìm hiểu Raspberry Pi và tự mình thực hiện các dự án tốt. 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
- Raspberry Pi thế hệ PWM
- Giao diện LCD với Raspberry Pi
- Đ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 ta sẽ thực hiện giao diện hiển thị phân đoạn Raspberry Pi 7. Màn hình Seven Segment là loại màn hình rẻ nhất cho một đơn vị màn hình. Một vài phân đoạn này xếp chồng lên nhau có thể được sử dụng để hiển thị nhiệt độ, giá trị bộ đếm, v.v. Chúng tôi sẽ kết nối đơn vị hiển thị 7 phân đoạn với GPIO của PI và điều khiển chúng để hiển thị các chữ số tương ứng. Sau đó, chúng tôi sẽ viết một chương trình trong PYTHON để hiển thị bảy đoạn để đếm từ 0-9 và tự đặt lại về số không.
Hiển thị bảy phân đoạn:
Có nhiều loại và kích thước khác nhau của 7 Màn hình Phân đoạn. Chúng tôi đã trình bày chi tiết về Seven Segment hoạt động ở đây. Về cơ bản có hai loại 7 Segment, loại Anode chung (Cực dương chung hoặc VCC chung) và loại Cathode chung (Cực âm chung hoặc Nối đất chung).
Cực dương chung (CA): Trong trường hợp này tất cả các cực Âm (cực âm) của tất cả 8 đèn LED được kết nối với nhau (xem sơ đồ bên dưới), được đặt tên là COM. Và tất cả các thiết bị đầu cuối tích cực được để lại một mình.
Cathode chung (CC): Trong trường hợp này tất cả các cực dương (Anode) của tất cả 8 đèn LED được kết nối với nhau, được đặt tên là COM. Và tất cả các nhiệt âm được để yên.
Các màn hình CC và CA bảy đoạn này rất tiện dụng trong khi ghép nhiều ô với nhau. Trong hướng dẫn của chúng tôi, chúng tôi sẽ sử dụng CC hoặc Hiển thị bảy phân đoạn Cathode chung.
Chúng ta đã có Interfaced 7 đoạn với 8051, với Arduino và với AVR. Chúng tôi cũng đã sử dụng hiển thị 7 đoạn trong nhiều Dự án của mình.
Chúng ta sẽ thảo luận một chút về Raspberry 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, xem hình bên dưới. 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.
Tín hiệu GPIO (chân 1 hoặc 17) + 3.3V đủ để điều khiển Màn hình 7 phân đoạn. Để cung cấp giới hạn hiện tại, chúng tôi sẽ sử dụng điện trở 1KΩ cho mỗi đoạn như được hiển thị trong Sơ đồ mạch.
Để 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àn hình 7 đoạn Cathode chung (LT543)
- 1KΩresistor (8 miếng)
- Breadboard
Giải thích mạch và làm việc:
Các kết nối được thực hiện để hiển thị phân đoạn Interfacing 7 với Raspberry Pi, được đưa ra bên dưới. Chúng tôi đã sử dụng Phân đoạn Cathode 7 chung ở đây:
PIN1 hoặc e ------------------ GPIO21
PIN2 hoặc d ------------------ GPIO20
PIN4 hoặc c ------------------ GPIO16
PIN5 hoặc h hoặc DP ---------- GPIO 12 // không bắt buộc vì chúng tôi không sử dụng dấu thập phân
PIN6 hoặc b ------------------ GPIO6
PIN7 hoặc a ------------------ GPIO13
PIN9 hoặc f ------------------ GPIO19
PIN10 hoặc g ---------------- GPIO26
PIN3 hoặc PIN8 ------------- được kết nối với đất
Vì vậy, chúng tôi sẽ sử dụng 8 chân GPIO của PI làm CỔNG 8bit. Ở đây GPIO13 là LSB (Bit quan trọng nhất) và GPIO 12 là MSB (Bit quan trọng nhất).
Bây giờ, nếu chúng ta muốn hiển thị số “1”, chúng ta cần phải phân khúc điện B và C. Để cấp nguồn cho phân đoạn B và C, chúng ta cần cấp nguồn cho GPIO6 và GPIO16. Vì vậy, byte cho hàm 'PORT' sẽ là 0b00000110 và giá trị hex của 'PORT' sẽ là 0x06. Với cả hai chân cao, chúng tôi nhận được "1" trên màn hình.
Chúng tôi đã viết các giá trị cho mỗi chữ số sẽ được hiển thị và lưu trữ các giá trị đó trong Chuỗi ký tự có tên 'DISPLAY' (Kiểm tra phần Mã bên dưới). Sau đó, chúng tôi đã gọi lần lượt các giá trị đó để hiển thị chữ số tương ứng trên màn hình, sử dụng Hàm 'PORT'.
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 8 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 (13, IO.OUT) IO.setup (6, IO.OUT) IO.setup (16, IO.OUT) IO.setup (20, IO.OUT) IO.setup (21, IO.OUT) IO.setup (19, IO.OUT) IO.setup (26, IO.OUT) IO.setup (12, IO.OUT)
Trong trường hợp điều kiện trong dấu ngoặc nhọn là true, các câu lệnh bên trong vòng lặp sẽ được thực hiện một lần. Vì vậy, nếu bit0 của 'chân' 8bit là true, PIN13 sẽ CAO, ngược lại PIN13 sẽ THẤP. Chúng ta có tám điều kiện 'nếu khác' cho bit0 đến bit7, để đèn LED thích hợp, bên trong màn hình 7 đoạn, có thể được đặt Cao hoặc Thấp, để hiển thị Số tương ứng.
if (pin & 0x01 == 0x01): IO.output (13,1) else: IO.output (13,0)
Lệnh này thực hiện vòng lặp 10 lần, x được tăng từ 0 đến 9.
cho x trong phạm vi (10):
Lệnh dưới đây được dùng làm vòng lặp vĩnh viễn, 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.
Trong khi 1:
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 kích hoạt các GPIO tương ứng để hiển thị chữ số trên Màn hình 7 phân đoạn. Chương trình được viết để hiển thị đếm liên tục từ 0-9.