Chúng tôi sẽ sử dụng RPi. Mô-đun GPIO là động lực đằng sau các ví dụ Python của chúng tôi. Tập hợp các tệp và nguồn Python này được bao gồm trong Raspbian, vì vậy, giả sử bạn đang chạy bản phân phối Linux phổ biến nhất đó, bạn không cần tải xuống bất kỳ thứ gì để bắt đầu
Trên trang này, chúng tôi sẽ cung cấp tổng quan về các lệnh gọi hàm cơ bản mà bạn có thể thực hiện bằng cách sử dụng mô-đun này
Công cụ thiết lập
Để chúng tôi RPi. GPIO trong suốt phần còn lại của tập lệnh Python của bạn, bạn cần đặt câu lệnh này ở đầu tệp của mình
language:Python
import RPi.GPIO as GPIO
Tuyên bố đó "bao gồm" RPi. mô-đun GPIO và tiến thêm một bước bằng cách cung cấp tên cục bộ --
language:Python
GPIO.setmode[GPIO.BCM]
0 -- mà chúng tôi sẽ gọi để tham chiếu mô-đun từ đây trở điTuyên bố đánh số pin
Sau khi bạn đã bao gồm RPi. GPIO, bước tiếp theo là xác định bạn muốn sử dụng sơ đồ nào trong hai sơ đồ đánh số pin
1 -- Sơ đồ đánh số bảng. Số pin theo số pin trên tiêu đề P1language:Python GPIO.setmode[GPIO.BCM]
2 -- Số pin dành riêng cho chip Broadcom. Các số pin này tuân theo hệ thống đánh số cấp thấp hơn được xác định bởi bộ não chip Broadcom của Raspberry Pilanguage:Python GPIO.setmode[GPIO.BCM]
Nếu bạn đang sử dụng Pi Wedge, chúng tôi khuyên bạn nên sử dụng định nghĩa
language:Python
GPIO.setmode[GPIO.BCM]
2 -- đó là những con số được in lụa trên PCB. language:Python
GPIO.setmode[GPIO.BCM]
1 có thể dễ dàng hơn nếu bạn đấu dây trực tiếp vào tiêu đềĐể chỉ định trong mã của bạn hệ thống số nào đang được sử dụng, hãy sử dụng hàm
language:Python
GPIO.setmode[GPIO.BCM]
5. Ví dụlanguage:Python
GPIO.setmode[GPIO.BCM]
sẽ kích hoạt số pin cụ thể của chip Broadcom
Cần có cả hai dòng mã
language:Python
GPIO.setmode[GPIO.BCM]
6 và language:Python
GPIO.setmode[GPIO.BCM]
7 nếu bạn muốn sử dụng PythonĐặt chế độ ghim
Nếu bạn đã sử dụng Arduino, có lẽ bạn đã quen thuộc với thực tế là bạn phải khai báo một "pin mode" trước khi có thể sử dụng nó làm đầu vào hoặc đầu ra. Để đặt chế độ ghim, hãy sử dụng chức năng
language:Python
GPIO.setmode[GPIO.BCM]
8. Vì vậy, nếu bạn muốn đặt chân 18 làm đầu ra, chẳng hạn, hãy viếtlanguage:Python
GPIO.setup[18, GPIO.OUT]
Hãy nhớ rằng số pin sẽ thay đổi nếu bạn đang sử dụng hệ thống đánh số bảng [thay vì 18, nó sẽ là 12]
đầu ra
Đầu ra kỹ thuật số
Để ghi pin cao hoặc thấp, hãy sử dụng hàm
language:Python
GPIO.setmode[GPIO.BCM]
9. Ví dụ: nếu bạn muốn đặt chân 18 ở mức cao, hãy viếtlanguage:Python
GPIO.output[18, GPIO.HIGH]
Ghi mã pin vào
language:Python
GPIO.setup[18, GPIO.OUT]
0 sẽ đẩy nó lên 3. 3V và language:Python
GPIO.setup[18, GPIO.OUT]
1 sẽ đặt thành 0V. Đối với những người lười biếng, thay thế cho language:Python
GPIO.setup[18, GPIO.OUT]
0 và language:Python
GPIO.setup[18, GPIO.OUT]
1, bạn có thể sử dụng language:Python
GPIO.setup[18, GPIO.OUT]
4, language:Python
GPIO.setup[18, GPIO.OUT]
5, language:Python
GPIO.setup[18, GPIO.OUT]
6 hoặc language:Python
GPIO.setup[18, GPIO.OUT]
7 để đặt giá trị pinĐầu ra PWM ["Tương tự"]
PWM trên Raspberry Pi ở mức giới hạn nhất có thể - một, một chân duy nhất có khả năng đó. 18 [tôi. e. chân bảng 12]
Để khởi tạo PWM, sử dụng chức năng
language:Python
GPIO.setup[18, GPIO.OUT]
8. Để làm cho phần còn lại của việc viết kịch bản của bạn dễ dàng hơn, bạn có thể gán thể hiện đó cho một biến. Sau đó sử dụng hàm language:Python
GPIO.setup[18, GPIO.OUT]
9 để đặt giá trị ban đầu. Ví dụlanguage:Python
pwm = GPIO.PWM[18, 1000]
pwm.start[50]
sẽ thiết lập chân PWM của chúng tôi với tần số 1kHz và đặt đầu ra đó thành chu kỳ nhiệm vụ 50%
Để điều chỉnh giá trị của đầu ra PWM, hãy sử dụng chức năng
language:Python
GPIO.output[18, GPIO.HIGH]
0. language:Python
GPIO.output[18, GPIO.HIGH]
1 có thể là bất kỳ giá trị nào trong khoảng từ 0 [i. e 0%/THẤP] và 100 [tức là. e 100%/CAO]. Vì vậy, để đặt mã pin thành 75%, chẳng hạn, bạn có thể viếtlanguage:Python
pwm.ChangeDutyCycle[75]
Để tắt PWM trên chân đó, hãy sử dụng lệnh
language:Python
GPIO.output[18, GPIO.HIGH]
2Đủ đơn giản. Chỉ cần đừng quên đặt chân làm đầu ra trước khi bạn sử dụng nó cho PWM
đầu vào
Nếu một chân được định cấu hình làm đầu vào, bạn có thể sử dụng hàm
language:Python
GPIO.output[18, GPIO.HIGH]
3 để đọc giá trị của nó. Hàm language:Python
GPIO.output[18, GPIO.HIGH]
4 sẽ trả về một trong hai giá trị là language:Python
GPIO.setup[18, GPIO.OUT]
5 hoặc language:Python
GPIO.setup[18, GPIO.OUT]
7 cho biết chân ở mức CAO hay THẤP. Bạn có thể sử dụng một câu lệnh language:Python
GPIO.output[18, GPIO.HIGH]
7 để kiểm tra điều này, ví dụlanguage:Python
if GPIO.input[17]:
print["Pin 11 is HIGH"]
else:
print["Pin 11 is LOW"]
sẽ đọc chân 17 và in xem nó đang được đọc ở mức CAO hay THẤP
Điện trở kéo lên/xuống
Hãy nhớ lại chức năng
language:Python
GPIO.output[18, GPIO.HIGH]
8 nơi chúng tôi đã khai báo liệu một chân là đầu vào hay đầu ra? . Để sử dụng điện trở kéo lên trên chân cắm, hãy thêm language:Python
GPIO.output[18, GPIO.HIGH]
9 làm tham số thứ ba trong language:Python
pwm = GPIO.PWM[18, 1000]
pwm.start[50]
0. Hoặc, nếu bạn cần một điện trở kéo xuống, thay vào đó hãy sử dụng language:Python
pwm = GPIO.PWM[18, 1000]
pwm.start[50]
1Ví dụ: để sử dụng điện trở kéo lên trên GPIO 17, hãy viết phần này vào phần thiết lập của bạn
language:Python
GPIO.setup[17, GPIO.IN, pull_up_down=GPIO.PUD_UP]
Nếu không có gì được khai báo trong giá trị thứ ba đó, cả hai điện trở kéo sẽ bị vô hiệu hóa
Vân vân
Sự chậm trễ
Nếu bạn cần làm chậm tập lệnh Python của mình, bạn có thể thêm độ trễ. Để kết hợp sự chậm trễ vào tập lệnh của bạn, bạn sẽ cần bao gồm một mô-đun khác.
language:Python
pwm = GPIO.PWM[18, 1000]
pwm.start[50]
2. Dòng này, ở đầu kịch bản của bạn, sẽ làm điều đó cho bạnlanguage:Python
import time
Sau đó, trong suốt phần còn lại của tập lệnh, bạn có thể sử dụng
language:Python
pwm = GPIO.PWM[18, 1000]
pwm.start[50]
3 để tạm dừng tập lệnh của mình. Bạn có thể sử dụng số thập phân để đặt chính xác độ trễ của mình. Ví dụ: để trì hoãn 250 mili giây, hãy viếtlanguage:Python
time.sleep[0.25]
Mô-đun thời gian bao gồm tất cả các loại chức năng hữu ích, ngoài
language:Python
pwm = GPIO.PWM[18, 1000]
pwm.start[50]
4. Xem tham khảo tại đâythu gom rác
Khi tập lệnh của bạn đã chạy theo lộ trình của nó, hãy tử tế với quy trình tiếp theo có thể sử dụng GPIO của bạn bằng cách tự dọn dẹp. Sử dụng lệnh
language:Python
pwm = GPIO.PWM[18, 1000]
pwm.start[50]
5 ở cuối tập lệnh của bạn để giải phóng bất kỳ tài nguyên nào mà tập lệnh của bạn có thể đang sử dụngPi của bạn sẽ tồn tại nếu bạn quên thêm lệnh này, nhưng bạn nên thêm lệnh này vào bất cứ nơi nào bạn có thể