Bài 5. Hướng dẫn sử dụng các chân GPIO

0
404

Giống như Raspberry Pi và Arduino, Banana Pi có thể tương tác với các thiết bị bên ngoài qua chân GPIO (General-Purpose input/output). Bài viết này giới thiệu cách sử dụng các chân GPIO bằng cách tạo một ứng dụng đơn giản. Việc điều khiển sẽ thực hiện qua nút ấn hoặc câu lệnh của ngôn ngữ lập trình C với thư viện WiringPi và ngôn ngữ lập trình Python với thư viện RPi.GPIO.

Các nội dung gồm:

1. Bật đèn LED bằng lệnh gpio

2. Lập trình đèn LED

3. Sử dụng đầu vào GPIO bằng nút bấm

1. Bật đèn LED bằng lệnh gpio

  Kết nối đèn LED với chân GPIO của Banana Pi. Đèn sáng khi chân GPIO ở mức logic cao.

Các thành phần cần có để bật đèn LED trên Banana Pi gồm:

– Một Banana Pi cài đặt sẵn hệ điều hành Linux

– Một đèn LED 5mm

– Một điện trở 470 Ω

– Một bảng mạch

– Dây nối

Lưu ý: Trước khi kết nối hoặc ngắt kết nối bất kỳ bộ phận điện nào, chú ý tắt nguồn Banana Pi và rút nguồn điện.

1. Kết nối dây jumper đầu tiên với chân GPIO 1, đó là chân vật lý 12.

2. Kết nối đầu kia của dây jumper đầu tiên với bo mạch khung.

3. Gắn điện trở vào cùng một hàng trên bo mạch khung.

4. Cắm đèn LED vào bo mạch khung. Chú ý cực của đèn LED: cực dương ở cạnh điện trở và cực âm hướng xuống đất (GND). Sử dụng hàng khác trên bảng mạch điện cho cực âm.

5. Gắn dây jumper thứ hai trên cùng hàng với cực âm của đèn LED và kết nối đầu kia với chân GND trên Banana Pi tạo thành mạch khép kín (có thể sử dụng chân vật lý 14 nằm ngay dưới GPIO 1).

Mạch điện tương tự như sau:

6. Bật nguồn Banana Pi.

Sau khi khởi động Banana Pi, cần xây dựng WiringPi để điều khiển các chân

$ cd ~

8. Tải xuống mã nguồn từ kho lưu trữ GitHub:

$ git clone https://github.com/LeMaker/WiringBP -b bananapi

Nếu sử dụng Banana Pro, dùng lệnh sau để thay thế:

$ git clone https://github.com/LeMaker/WiringBP -b bananapro

9. Cài đặt các công cụ thiết yếu:

$ sudo apt-get install build-essential

10. Thay đổi thư mục mã nguồn đã tải xuống và thực thi cho tập lệnh:

$ cd ~ / WiringBP
$ chmod + x ./build

11. Chạy tập lệnh dưới dạng thư mục gốc:

$ sudo ./build

12. Thư viện WiringPi được biên dịch trong khoảng vài giây đến vài phút.

13. Cuối cùng, xuất hiện thông báo All done. WiringPi đã được cài đặt trên Banana Pi hoặc Banana Pro.

14. Đặt chế độ của chân GPIO 1 thành chế độ output:

$ gpio mode 1 OUTPUT

15. Ghi tín hiệu logic cao (giá trị 1) vào chân GPIO 1:

$ gpio write 1 1

Khi đó, đèn LED sẽ được bật thành công.

6. Để tắt đèn LED, ghi tín hiệu logic thấp (giá trị 0) vào chân GPIO 1:

$ gpio write 1 0

Như vậy, chúng ta vừa xây dựng xong một mạch điện gồm điện trở và đèn LED. Tiếp theo có thể khởi động Banana Pi.

Ở đây sử dụng lệnh gpio (là một phần của WiringPi) để bật đèn LED. Do WiringPi không có trong kho tiêu chuẩn nên cần biên dịch nó từ nguồn.

Trong trường hợp này, việc biên dịch từ nguồn khá đơn giản. Tải mã nguồn từ GitHub, chỉ định quyền điều hành cho tập lệnh và chạy tập lệnh đó. Những đoạn script đã xây dựng chứa các hướng dẫn và cách thức biên dịch các file. Cuối cùng, các thư viện và chương trình đã biên dịch được cài đặt trên hệ thống, bao gồm cả chương trình gpio.

Khi có quyền truy cập vào lệnh gpio, đặt chế độ của chân GPIO số 1 là OUTPUT. Khi đó Banana Pi xử lý chân GPIO 1 như một chân output. Bước tiếp theo là ghi một tín hiệu cao logic vào chân GPIO 1 đó. Thao tác này sẽ hướng dẫn Banana Pi đặt điện áp 3,3V tại chân GPIO 1. Đèn LED sẽ sáng.

Lưu ý: Không kết nối các thiết bị với điện áp logic khác, như Arduino với mức logic 5.0V.

Trên một số hệ điều hành đã đính kèm chương trình gpio. Ví dụ: hệ điều hành Raspbian cho Banana Pi đã đính kèm WiringPi. Tuy nhiên, chỉ được biên dịch cho mẫu Banana Pro trở lên (ít nhất là trên phiên bản phát hành được phát hành ngày 26 tháng 12 năm 2014). Trong bài viết này biên dịch WiringPi từ nguồn để đảm bảo hoạt động thích hợp.

Giá trị của điện trở tính bằng định luật Ohm.

Điện áp 3,3 V được áp dụng trên chân GPIO trừ đi công suất tiêu thụ của đèn LED (thường là 2,0 V). Dòng điện được tính bằng dòng điện tối đa được phép rút ra từ các chân 3,3 V (50 mA) chia cho số chân GPIO có sẵn (17).

Vì không tồn tại điện trở 442 Ω nên sử dụng điện trở 470 Ω.

Layout chân của Banana Pi

 Các hình ảnh sau đây cho thấy các số chân vật lý của Banana Pi:

Khi thực thi chương trình gpio, để dịch từ số chân vật lý sang số WiringPi tương ứng, dựa vào layout chân của Banana Pi trong bảng sau:

WiringPiNamePhysicalPhysicalNameWiringPi
3.3V125.0V
8SDA345.0V
9SCL56GND
7GPIO 778TxD15
GND910RxD16
WiringPiNamePhysicalPhysicalNameWiringPi
0GPIO 01112GPIO 11
2GPIO 21314GND
3GPIO 31516GPIO 44
3.3V1718GPIO 55
12MOSI1920GND
13MISO2122GPIO 66
14SCLK2324CE010
GND2526CE111

Có thể thấy rằng, chân vật lý số 12 là GPIO 1 được nhận dạng bởi WiringPi thông qua số 1. Chân GPIO 5 được nhận dạng bởi WiringPi thông qua số 5 là chân vật lý thứ 18. Các chân cấp nguồn tích cực (1, 2, 4 và 17) và các chân nối đất (6, 9, 14, 20 và 25) không có mã định danh WiringPi.

Layout pin Banana Pro

Số pin vật lý của Banana Pro

Banana Pro mở rộng thêm 14 chân so với Banana Pi, trong đó 26 chân đầu tiên giống với layout chân của Banana Pi.

Bảng sau minh họa 14 chân bổ sung của Banana Pro:

WiringPiNamePhysicalPhysicalNameWiringPi
30SDA.02728SCL.031
21GPIO 212930GND
22GPIO 223132GPIO 2626
23GPIO 233334GND
24GPIO 243536GPIO 2727
25GPIO 253738GPIO 2828
GND3940GPIO 2929

Sử dụng bảng mở rộng GPIO

Việc mở rộng GPIO rất tiện lợi cho bo mạch khung và Banana Pi trong quá trình khai thác.

Từ hình ảnh có thể thấy, mạch điện ở đây giống với mạch đã sử dụng trong với bảng mở rộng GPIO. Điện trở được kết nối qua dây jumper bằng cùng đường dây giống như kết nối P1 của bảng mở rộng. Đầu nối P1 hướng tới GPIO 1. Mặt khác, cực âm của đèn LED kết nối với đường âm (dọc màu xanh lam) hướng xuống đất.

Vì hầu hết các chân của Banana Pi đều tương thích với các chân Raspberry Pi, đặc biệt là các chân cấp nguồn, nên có thể sử dụng bảng mở rộng Raspberry Pi GPIO. Tuy nhiên, một số GPIO khác với Raspberry Pi. Ví dụ: chân GPIO 25 trên Raspberry Pi (chân vật lý 22) là GPIO 6 trên Banana Pi.

Tham số readall rất hữu ích với layout, tên và chế độ của các chân đầu ra và các giá trị cường độ dòng điện.

$ gpio readall.

Trang hướng dẫn sử dụng lệnh gpio từ WiringPi:

$ man gpio

2. Lập trình đèn LED

Bật đèn LED bằng lệnh chỉ là bước đầu tiên, quan trọng hơn là điều khiển đèn LED theo chương trình.

Để viết một chương trình thực bằng C và Python để bật và tắt đèn LED định kỳ, cần có cấu trúc bo mạch khung như sau:

– Một Banana Pi đã cài sẵn Linux

– Một đèn LED 5 mm

– Một điện trở 470 Ω

– Hai dây nối

Xây dựng mạch điện như đã hướng dẫn phía trên.

a. Lập trình đèn LED với C

1. Bật Banana Pi.

2. Mở shell.

3. Tạo một thư mục mã nguồn và thay đổi vị trí của nó:

$ mkdir ~/source
$ cd ~/source

4. Tạo file nguồn bằng nano:

$ nano led_test.c

5. Trình chỉnh sửa nano sẽ mở ra. Viết đoạn mã sau trong C:

#include <wiringPi.h>
int main(void) {
        // setting up WiringPi and the GPIO 1 pin
        wiringPiSetup();
        pinMode(1, OUTPUT);

        // toggle a HIGH/LOW signal on the GPIO 1 pin
        while (1) {
                digitalWrite(1, HIGH);
                delay(1000);
                digitalWrite(1, LOW);
                delay(1000);
        }

        return 0;
}

6. Thoát trình soạn thảo nano và lưu các thay đổi bằng cách nhấn Ctrl + X, tiếp theo là Y và Enter.

7. Biên dịch chương trình:

$ gcc -Wall -l wiringPi -o led_test led_test.c

Trong một số môi trường, có thể cần thêm một số tham số trong lệnh GCC. Nếu quá trình biên dịch trước đó không hoạt động, hãy thử lệnh sau:

 $ gcc –Wall -lwiringPi -lstdc ++-lpthread -o led_test led_test.c.

8. Chạy chương trình với đặc quyền root:

$ sudo ./led_test

Đèn LED sẽ bắt đầu nhấp nháy.

9. Hủy bỏ chương trình bằng cách nhấn Ctrl + C.

Bạn đã lập trình thành công để bật và tắt đèn LED trong khoảng thời gian một giây.

b. Lập trình đèn LED với Python

Ngày nay, rất nhiều ứng dụng được lập trình bằng Python. Chúng ta sẽ chuyển mã C sang ngôn ngữ Python:

1. Bật Banana Pi.

2. Mở shell.

3. Cài đặt các gói Python được yêu cầu:

$ sudo apt-get install python-dev

4. Tải xuống thư viện GPIO cho Python:

$ cd ~
$ git clone https://github.com/LeMaker/RPi.GPIO_BP -b bananapi

Nếu đang sử dụng Banana Pro, hãy thay đoạn lệnh sau:

$ git clone https://github.com/LeMaker/
RPi.GPIO_BP -b bananapro

5. Thay đổi vào file nguồn đã tải xuống và xây dựng thư viện:

$ cd ~/RPi.GPIO_BP
$ python setup.py install
$ sudo python setup.py install

6. Thay đổi thư mục nguồn:

$ cd ~/source

7. Tạo file nguồn bằng nano:

$ nano led_test.py

8. Viết đoạn code Python dưới đây:

import RPi.GPIO as GPIO
import time

PIN=12                    # pin 12 is the physical pin of GPIO 1
GPIO.setmode(GPIO.BOARD)  # setting up GPIO   
GPIO.setup(PIN, GPIO.OUT) # set GPIO 1 to OUTPUT

while True:
        GPIO.output(PIN, GPIO.HIGH)
        time.sleep(1)
        GPIO.output(PIN, GPIO.LOW)
        time.sleep(1)

9. Thoát trình soạn thảo nano và lưu các thay đổi bằng cách nhấn Ctrl + X, tiếp theo là Y và Enter.

10. Chạy chương trình với đặc quyền root:

$ sudo python led_test.py

11. Hủy bỏ chương trình bằng cách nhấn Ctrl + C.

Bạn đã lập trình thành công để bật và tắt đèn LED trong khoảng thời gian một giây.

Trong hướng dẫn này, có hai cách tiếp cận khác nhau để truy cập chân GPIO 1: WiringPi và RPi.GPIO sử dụng hằng số BOARD. Thư viện WiringPi được sử dụng trong code C trong khi thư viện RPi.GPIO được sử dụng trong code Python.

Thư viện RPi.GPIO gán các chân bằng số vật lý của nó trên bảng Banana Pi (do đó là hằng số BOARD). WiringPi xác định các chân có thể lập trình chủ yếu bằng số GPIO. Để dịch số GPIO thành số chân vật lý và ngược lại, tham khảo layout chân trong bảng phía trên      .

Giải thích code C

Khi lập trình bằng C, chúng ta thường sử dụng các thư viện bên ngoài để tận dụng các tính năng bổ sung. Trong ví dụ này sử dụng thư viện WiringPi để lập trình giao diện GPIO. Đây là lý do tại sao cần file tiêu đề WiringPi xác định các chức năng cần thiết trong code:

#include <wiringPi.h>

Mọi chương trình C đều bắt đầu với chức năng main bắt buộc:

int main (void){

Một hàm có kiểu trả về (int) và các tham số tùy chọn (void).

Hai dòng đầu tiên của hàm chính để thiết lập môi trường WiringPi.

Hàm wiringPiSetup () khởi tạo WiringPi trong chương trình và hàm pinMode (1, OUTPUT) đặt chân GPIO 1 ở chế độ output. Chú ý dấu chấm phẩy (;) ở cuối mỗi lệnh.

Lệnh tiếp theo bắt đầu vòng lặp vô hạn:

while(1) {

Cũng giống như đối với một hàm, tất cả code bên trong dấu ngoặc nhọn đều thuộc về vòng lặp while. Với vòng lặp While, lệnh vẫn thực hiện miễn là điều kiện trong ngoặc có trạng thái đúng (số 1), do đó đây là vòng lặp vô hạn.

Lệnh tiếp theo là digitalWrite (1, HIGH). Lệnh này hướng dẫn cách ghi một tín hiệu cao logic vào chân GPIO 1 làm bật đèn LED. Sau đó, thực thi lệnh delay (1000), cho phép chương trình đợi trong 1000 ms (tương đương với 1 giây) cho đến khi lệnh tiếp theo được thực thi. Hai dòng tiếp theo cũng tương tự, nhưng ghi tín hiệu mức thấp logic vào chân GPIO để tắt đèn LED. Dấu ngoặc nhọn đóng kết thúc vòng lặp while.

Dòng cuối cùng của hàm main trả về 0. Vì chúng ta đã xác định hàm main có kiểu trả về số nguyên, nên sẽ trả về 0 ở cuối chương trình, số 0 là mã thoát chương trình.

Giải thích code Python

Code Python hoạt động chính xác như C. Cần một thư viện để truy cập các chân GPIO (nghĩa là RPi.GPIO). Vì RPi.GPIO không cung cấp hàm chờ như delay () trong C, nên phải nhập một thư viện cho phép chương trình đợi trong một khoảng thời gian nhờ sử dụng thư viện thời gian.

Nhập các gói RPi.GPIO và thời gian:

import RPi.GPIO as GPIO
import time

Trong Python, không nhất thiết phải có hàm main, do đó, bắt đầu bằng cách xác định chân GPIO 1 được sử dụng -PIN = 12.

Khác với WiringPi sử dụng số của chân GPIO, trong code Python cần truy cập chân bằng số vật lý (trong ví dụ này là số 12). Khai báo biến PIN bằng 12 và chỉ sử dụng biến PIN trong các lệnh gọi hàm sắp tới để tham chiếu đến chân GPIO 1.

Hai dòng tiếp theo khởi tạo môi trường GPIO. Sử dụng định nghĩa BOARD (để truy cập mã pin theo vị trí thực của nó):

GPIO.setmode (GPIO.BOARD)

Đặt chân GPIO ở chế độ output:

GPIO.setup (PIN, GPIO.OUT)

Hướng dẫn tiếp theo là một vòng lặp while vô hạn:

while True:

Giống như C, không có điều kiện có thể sai (vì luôn sử dụng True). Trong Python, không sử dụng dấu ngoặc nhọn để xác định các phần của mã như trong C mà sử dụng các tab để quy định bốn dòng tiếp theo nằm trong vòng lặp while.

 Trong ví dụ chỉ áp dụng tín hiệu cao tại chân GPIO, còn gọi là biến PIN:

GPIO.output (PIN, GPIO.HIGH)

Lệnh sẽ bật đèn LED. Để tạm dừng ứng dụng trong 1 giây, sử dụng chức năng sleep của thư viện thời gian đã nhập:

time.sleep (1)

Hai dòng tiếp theo tương tự, chỉ khác là ghi tín hiệu thấp vào chân GPIO để tắt đèn LED.

3. Sử dụng đầu vào GPIO bằng nút bấm

Hai ví dụ trên đã điều khiển đèn LED bằng chế độ đầu ra GPIO. Bước tiếp theo là sử dụng các chân GPIO làm chân đầu vào. Có một thành phần điện tử cơ bản để thể hiện chế độ đầu vào GPIO một cách dễ dàng là nút bấm.

Trong ví dụ này sẽ thực hiện bật đèn LED trong khi nhấn một nút bấm. Sau khi thả nút nhấn, đèn LED lại tắt.

Các thành phần cần có gồm:

– Một hệ thống Linux trên Banana Pi

– Một đèn LED 5 mm (điện áp chuyển tiếp 2.0 V)

– Một nút bấm

– Một điện trở 470 Ω

– Một điện trở 10K Ω

– Một bảng mạch

– Dây nối

Sau đó, xây dựng mạch điện và lập trình Banana Pi.

a. Chuẩn bị mạch điện

Trước khi kết nối hoặc ngắt kết nối bất kỳ bộ phận điện nào, chú ý tắt nguồn Banana Pi và rút nguồn điện.

1. Kết nối jumper, điện trở, đèn LED và nút bấm theo hình sau:

2. Đảm bảo rằng chân nối đất (chân vật lý 14) được kết nối với cực âm (màu xanh lam) của bảng mạch chính.

3. Kết nối chân GPIO 1 (chân vật lý 12) vào cùng hàng khi kết nối điện trở 470 Ω và cực dương của đèn LED.

4. Cực âm của đèn LED kết nối với mặt âm của bảng mạch thông qua một dây jumper.

5. Kết nối điện trở 10 kΩ với mặt âm của bo mạch khung và cùng hàng với nút bấm.

6. Gắn một dây jumper giữa nút bấm và điện trở, đồng thời kết nối với chân GPIO 6 (chân vật lý 22).

7. Cuối cùng, kết nối đầu còn lại của nút với chân cấp nguồn 5.0 V (chân vật lý 2).

Đến đây, mạch điện đã hoàn thành.

b. Lập trình phần mềm

Bước cuối cùng là lập trình phần mềm để bật đèn LED khi nhấn nút và khi nhả nút ra thì đèn LED tắt.

1. Bật Banana Pi.

2. Mở shell.

3. Thay đổi thư mục nguồn đã tạo:

$ cd ~/source

4. Tạo file nguồn bằng nano:

$ nano button_test.c

5. Trình chỉnh sửa nano sẽ mở ra. Viết đoạn mã sau trong C:

#include <wiringPi.h>
int main(void) {
    // define constants
    static int const PIN_LED = 1;
    static int const PIN_BUTTON = 6;
    static int const TRUE = 1;
    // setting up WiringPi and the GPIO 1 and 6 pin
    wiringPiSetup();
    pinMode(PIN_LED, OUTPUT);
    pinMode(PIN_BUTTON, INPUT);
    // in this integer, we store the
    // status of the pushbutton
    int buttonStatus;
    // loop forever
    while (TRUE) {
        // read the status of the PIN_BUTTON
        buttonStatus = digitalRead(PIN_BUTTON);
        if (buttonStatus == HIGH) {
            // status of PIN_BUTTON is a HIGH signal
            // switch on the LED
            digitalWrite(PIN_LED, HIGH);
        } else {
            // status of PIN_BUTTON is a LOW signal
  // switch off the LED
            digitalWrite(PIN_LED, LOW);
        }
    }
    return 0;
}

6. Thoát trình soạn thảo nano và lưu các thay đổi bằng cách nhấn Ctrl + X, sau đó nhấn Yand Enter.

7. Biên dịch chương trình:

$ gcc -Wall -l wiringPi -o button_test button_test.c

Nếu gặp lỗi, hãy thêm -lstdc ++ -lpthread trước –o.

8. Chạy chương trình với đặc quyền root:

$ sudo ./button_test

9. Trong khi chương trình đang chạy, hãy nhấn nút. Đèn LED sẽ được bật. Nếu nhả nút, đèn LED sẽ tắt trở lại.

Hình ảnh sau đây cho thấy mạch được gắn vào Banana Pro và đèn LED được bật trong khi nhấn nút:

10. Hủy chương trình bằng cách nhấn Ctrl + C.

Trong ví dụ này sử dụng điện trở pull-down 10 kΩ, được kết nối giữa nút bấm và nguồn điện tích cực để xác định trạng thái đầu vào khi không kết nối với nguồn tín hiệu. Nếu không có điện trở pull-down, hoạt động của mạch đầu vào sẽ phụ thuộc vào các tín hiệu nhiễu như độ ẩm hoặc năng lượng tĩnh trong môi trường gây mất ổn định cho mạch. Sử dụng điện trở pull-down để xác định giá trị thấp logic khi không nhấn nút giúp tránh được các các tín hiệu nhiễu này. Điện trở pull-down nhằm đảm bảo chương trình phân biệt được tín hiệu cao logic chỉ khi nhấn nút.

Giải thích code C cũng giống như trong hướng dẫn trước, gồm thư viện WiringPi, xác định hàm main. Bên trong hàm main, xác định ba hằng số nguyên PIN_LED giá trị 1, PIN_BUTTON giá trị 6 và TRUE giá trị 1. PIN_LED và PIN_BUTTON là chân GPIO 1 và 6. Lưu ý: đèn LED đã kết nối với chân GPIO 1 và nút bấm kết nối với chân GPIO 6. Hằng số TRUE để tăng khả năng đọc của điều kiện vòng lặp while. (Hằng số tương tự như biến và lưu trữ một giá trị nhưng khác là các giá trị của hằng số không thể thay đổi sau khi khởi tạo)

Sau đó, thiết lập môi trường WiringPi bằng cách sử dụng hàm wiringPiSetup () và đặt chế độ của chân 1 thành OUTPUT, chân 6 thành INPUT. Thay vì viết trực tiếp các số chân thì sử dụng các hằng số được đã xác định trước giúp đã tăng khả năng đọc code một lần nữa.

Trong ví dụ có khai báo biến số nguyên buttonStatus, biến này lưu trữ trạng thái hiện tại của nút bấm. Trong vòng lặp while vô hạn, hướng dẫn đầu tiên là đặt biến buttonStatus bằng cách đọc đầu vào GPIO của nút nhấn bằng cách sử dụng hàm digitalRead () như một tham số. Nó trả về một tín hiệu cao logic (trong trường hợp nhấn nút) hoặc tín hiệu thấp logic (trạng thái mặc định được xác định bởi điện trở pull-down).

Sử dụng lệnh if để bật đèn LED khi nhấn nút. Dòng if (buttonStatus == HIGH) {nghĩa là nếu giá trị của biến buttonStatus bằng HIGH (được đẩy), thì hãy thực hiện lệnh trong dấu ngoặc nhọn (đang bật đèn LED bằng cách sử dụng digitalWrite ()), nếu không tắt đèn LED.

Chú ý: Khi so sánh hai giá trị phải sử dụng dấu bằng hai lần (buttonStatus == HIGH). Nếu sử dụng một dấu “=”, viết if (buttonStatus = HIGH), chương trình sẽ hoạt động, nhưng không đúng như mình mong muốn mà nó sẽ đặt biến buttonStatus thành giá trị HIGH. Khi đó, cài đặt biến thành công thì toàn bộ câu lệnh sẽ đúng làm cho đèn LED luôn được bật.

Như trong mã C, cuối cùng cần giá trị trả về là 0.

 Mã Python như sau:

import RPi.GPIO as GPIO
PIN_LED=12                  # pin 12 is the physical pin of GPIO 1
PIN_BUTTON=22               # pin 22 is the physical pin of GPIO 6
GPIO.setmode(GPIO.BOARD)        # setting up GPIO   
GPIO.setup(PIN_LED, GPIO.OUT)   # set GPIO 1 to OUTPUT
GPIO.setup(PIN_BUTTON, GPIO.IN) # set GPIO 6 to INPUT
while True:
        buttonStatus = GPIO.input(PIN_BUTTON)
        if buttonStatus == GPIO.HIGH:
                GPIO.output(PIN_LED, GPIO.HIGH)
        else:
                GPIO.output(PIN_LED, GPIO.LOW)

Mã Python ít mở rộng ít hơn C nhưng Python có ưu điểm là dễ đọc và dễ hiểu. Khả năng hoạt động chính xác của hai mã là tương được. Do đó, việc sử dụng ngôn ngữ lập trình nào phụ thuộc vào sở thích cá nhân.

Biên dịch: Bắc Đặng

Để cập nhật tin tức công nghệ mới nhất và các sản phẩm của công ty AIoT JSC, vui lòng truy cập link: http://aiots.vn hoặc linhkienaiot.com

0 0 Phiếu bầu
Article Rating
Subscribe
Notify of
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả các bình luận