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à Internet of Things.
Để 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 loạt bài hướng dẫn, bạn sẽ có thể tự mình thực hiện các dự án cao cấp. Kiểm tra những điều này để Bắt đầu với Raspberry Pi và Cấu hình Raspberry Pi.
Chúng tôi đã thảo luận về giao diện nhấp nháy và nút LED với Raspberry Pi trong các hướng dẫn trước. Trong hướng dẫn PWM Raspberry Pi này, chúng ta sẽ nói về việc nhận đầu ra PWM với Raspberry Pi. PWM là viết tắt của ' Pulse Width Modulation '. PWM là một phương pháp được sử dụng để lấy điện áp thay đổi ra khỏi nguồn điện không đổi. Chúng tôi sẽ tạo tín hiệu PWM từ Raspberry PI và chứng minh PWM bằng cách thay đổi Độ sáng của đèn LED, được kết nối với Pi.
Điều chế độ rộng xung:
Trước đây chúng ta đã nói về PWM nhiều lần trong: Điều chế độ rộng xung với ATmega32, PWM với Arduino Uno, PWM với IC hẹn giờ 555 và PWM với Arduino Due.
Trong hình trên, nếu công tắc được đóng liên tục trong một khoảng thời gian, đèn LED sẽ 'BẬT' liên tục trong thời gian này. Nếu công tắc đóng trong nửa giây và mở trong nửa giây tiếp theo, thì đèn LED sẽ chỉ BẬT trong nửa giây đầu tiên. Bây giờ tỷ lệ mà đèn LED BẬT trong tổng thời gian được gọi là Chu kỳ hoạt động và có thể được tính như sau:
Chu kỳ làm việc = Thời gian BẬT / (Thời gian BẬT + Thời gian TẮT)
Chu kỳ nhiệm vụ = (0,5 / (0,5 + 0,5)) = 50%
Vì vậy điện áp đầu ra trung bình sẽ là 50% điện áp của pin.
Đây là trường hợp trong một giây và chúng ta có thể thấy đèn LED TẮT trong nửa giây và đèn LED BẬT trong nửa giây còn lại. Nếu Tần suất thời gian BẬT và TẮT tăng từ '1 trên giây' lên '50 trên giây'. Mắt người không thể nắm bắt được tần số này. Đối với mắt bình thường, đèn LED sẽ phát sáng với một nửa độ sáng. Vì vậy, với việc giảm thời gian BẬT hơn nữa, đèn LED sẽ sáng hơn nhiều.
Chúng tôi sẽ lập trình PI để nhận PWM và kết nối đèn LED để hiển thị hoạt động của nó.
Có 40 chân đầu ra GPIO trong Raspberry Pi. Nhưng trong số 40, chỉ có 26 chân GPIO (GPIO2 đến GPIO27) có thể được lập trình. Để biết thêm về các chân GPIO, 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
- Điện trở 220Ω hoặc 1KΩ
- Đèn LED
- Bảng bánh mì
Giải thích mạch:
Như được hiển thị trong sơ đồ mạch, chúng tôi sẽ kết nối một đèn LED giữa PIN35 (GPIO19) và PIN39 (mặt đất). Như đã nói trước đó, chúng ta không thể rút nhiều hơn 15mA từ bất kỳ chân nào trong số các chân này, vì vậy để hạn chế dòng điện, chúng ta kết nối điện trở 220Ω hoặc 1KΩ nối tiếp với đèn LED.
Giải thích làm việc:
Khi mọi thứ đã được kết nối, chúng ta có thể BẬT Raspberry Pi để viết chương trình trong PYHTON và thực thi nó.
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. Trong sơ đồ chân, bạn có thể thấy 'PIN 35' trên bảng là 'GPIO19'. 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 '35' hoặc '19'.
IO.setmode (IO.BCM)
Chúng tôi đang đặt GPIO19 (hoặc PIN35) làm chân đầu ra. Chúng ta sẽ nhận được đầu ra PWM từ chân này.
IO.setup (19, IO.IN)
Sau khi đặt chân làm đầu ra, chúng ta cần thiết lập chân làm chân đầu ra PWM, p = IO.PWM (kênh đầu ra, tần số của tín hiệu PWM)
Lệnh trên dùng để thiết lập kênh và cũng để thiết lập tần số của tín hiệu PWM. 'p' ở đây là một biến, nó có thể là bất cứ thứ gì. Chúng tôi đang sử dụng GPIO19 làm kênh đầu ra PWM. ' tần số của tín hiệu PWM ' đã được chọn 100, vì chúng tôi không muốn thấy đèn LED nhấp nháy.
Lệnh dưới đây được sử dụng để bắt đầu tạo tín hiệu PWM, ' DUTYCYCLE ' là để thiết lập tỷ lệ Bật, 0 có nghĩa là đèn LED sẽ BẬT trong 0% thời gian, 30 nghĩa là đèn LED sẽ BẬT trong 30% thời gian và 100 nghĩa là BẬT hoàn toàn.
p.start (DUTYCYCLE)
Lệnh này thực hiện vòng lặp 50 lần, x được tăng từ 0 đến 49.
cho x trong phạm vi (50):
While 1: được sử dụng cho vòng lặp vô cực. 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 thi liên tục.
Với chương trình đang được thực thi, chu kỳ nhiệm vụ của tín hiệu PWM tăng lên. Và sau đó giảm dần sau khi đạt 100%. Với một đèn LED được gắn vào mã PIN này, độ sáng của đèn LED tăng lên trước rồi mới giảm.