All for Joomla All for Webmasters

Bài 1. Led nhấp nháy

Trong bài này, các bạn sẽ học cách lập chương trình điều khiển đèn LED tích hợp trong board Arduino nhấp nháy theo ý muốn.

Linh kiện cần thiết

STTTên linh kiệnSLHình ảnh
1Board Arduino Uno R31
2Dây nguồn USB1

Đèn LED ‘L’

Board Arduino có các hàng connector (cổng kết nối) dọc theo hai bên cạnh dùng để kết nối với các thiết bị điện tử và các bo mạch khác cho phép Arduino có thể thực hiện nhiều chức năng hơn.

Tuy nhiên, Arduino cũng có một LED đơn cho phép bạn điều khiển bằng chương trình. LED này được tích hợp vào bo mạch Arduino và được gọi là LED ‘L’ như nhãn của nó được ghi trên board.

Vị trí của đèn LED được khoanh tròn đỏ trong bo mạch Arduino và Leonardo như bên dưới.

Mở ví dụ đèn nhấp nhay “Blink”

Nếu lần đâu tiên sử dụng board Arduino, bạn có thể thấy rằng đèn LED ‘L’ trên board Arduino đã nhấp nháy khi bạn kết nối bằng cáp USB với nguồn điện. Bởi vì, chương trình nhấp nháy đã được nạp sẵn vào board Arduino khi xuất xưởng.

Trong bài học này, chúng ta sẽ lập trình lại board Arduino với chương trình Blink của riêng mình và thay đổi tần số nháy của LED.

Ở bài mở đầu, bạn đã biết cách thiết lập chương trình Arduino và chắc rằng đã chọn đúng cổng kết nối (Port) ứng với board Arduino của bạn. Nếu không thực hiện được bước này, Arduino IDE sẽ không thể giao tiếp với board Arduino và nạp chương trình thực thi được.

Arduino IDE đã tích hợp rất nhiều ví dụ để bạn tham khảo. Trong đó có bao gồm ví dụ để làm nhấp nháy đèn LED ‘L’.

Mở mã nguồn chương trình ví dụ ‘Blink’ bằng cách nhấp menu File > Example > 01. Basics

Chương trình ‘Blink’ được mở ra, với các đoạn mã lệnh như hình dưới.

Lưu bản sao của chương trình ‘Blink’

Những ví dụ đi kèm với phần mềm Arduino IDE là ‘read-only’ (chỉ đọc). Vì vậy, bạn chỉ có thể nạp vào board Arduino, chứ không thể chỉnh sửa chúng.

Để có thể chỉnh sửa được chương trình này, bản phải lưu nó thành một bản sao khác, rồi từ đó chỉnh sửa theo ý muốn. Thực hiện việc này bằng cách nhấp vào menu File > Save As…, sau đó lưu theo thành một tệp khác, ví dụ ‘MyBlink’.

Bạn đã lưu một bản sao của ‘Blink’ trong sketchbook (sổ phác thảo) của bạn. Nghĩa là nếu bạn muốn mở lại chương trình này, bạn hãy vào mục File > Sketchbook và lựa chọn tên của chương trình.

Nạp chương trình vào board Arduino

Kết nối board Arduino vào máy tính bằng cáp USB và lưu ý rằng các tùy chọn ‘Board Type’ và ‘Serial Port’ đã được chọn phù hợp. Nếu chưa biết, hãy xem lại Bài Mở đầu.

Arduino IDE sẽ hiển thị các cài đặt hiện tại của board ở góc dưới phải của cửa sổ chương trình.

Nhấp vào nút ‘Upload’ để tiến hành nạp chương trình vào board.

Khi IDE đang nạp chương trình, bạn sẽ thấy thanh tiến trình và một chuỗi các thông báo. Đầu tiên là thông báo ‘Compiling Sketch…’, quá trình này sẽ chuyển đổi mã nguồn thành một dạng mã lệnh phù hợp để nạp vào board.

Sau đó, trang thái sẽ thay đổi thành ‘Uploading’. Lúc này, đèn LED trên board Arduino bắt đầu nhấp nháy báo hiệu chương trình đang được nạp vào.

Cuối cùng, trạng thái sẽ thay đổi thành ‘Done uploading.’

Một thông báo khác cho chúng ta biết rằng chương trình nạp vào đã sử dụng 1,084 byte trong tổng số 32,256 bytes của bộ nhớ. Sau bước ‘Comping Sketch…’, bạn có thể sẽ gặp thông báo lỗi như sau:

Nguyên nhân được chỉ ra ở dòng màu đỏ, có nghĩa rằng board Arduino của bạn chưa được kết nối, hoặc các drivers chưa được cài đặt đúng cách hoặc bạn đã lựa chọn không đúng Serial Port.

Nếu bạn gặp điều này, hãy quay lại Bài Mở đầu để kiểm tra lại các bước cài đặt.

Khi quá trình nạp hoàn tất, board sẽ khởi động lại và bắt đầu nhấp nháy.

Chương trình ‘Blink’ hoạt động như thế nào

Dưới đây là code của chương trình ‘Blink’

/*
Blink

Turns on an LED on for one second, then off for one second, repeatedly.

Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to the correct LED pin independent of which board is used.

If you want to know what pin the on-board LED is connected to on your Arduino model, checkthe Technical Specs of your board at https://www.arduino.cc/en/Main/Products

*/

// the setup function runs once when you press reset or power the board
void setup() {

// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);

}

// the loop function runs over and over again forever
void loop() {

digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second

}

Những dòng đầu tiên được gọi là chú thích. Chú thích sẽ không được biên dịch để thực thi, chúng chỉ nhằm mục đích giải thích các dòng lệnh, hoặc ghi chú để dễ kiểm tra lại chương trình sau này. Tất cả nội dung ghi chú được trình bày ở giữa hai kí hiệu /* và */.

Nếu chỉ chú thích trên một dòng, ta có thể sử dụng kí hiệu // để bắt đầu nội dung chú thích đó.

Đầu tiên trong chương trình là hàm ‘setup’. Hàm này sẽ được gọi một lần khi ta nhấn nút reset hoặc cấp nguồn cho board.

Mỗi chương trình Arduino đều phải có hàm ‘setup’, đây là nơi để thêm vào các chỉ dẫn ban đầu của chương trình, các dòng lệnh được đặt trong hai kí tự { và }.

Trong ví dụ này, chỉ có một dòng lệnh, dòng lệnh này khai báo rằng chúng ta sẽ dùng chân LED làm ngõ ra. Đối với các board UNO, MEGA hay ZERO, chân LED là chân 13, trên MKR1000 là chân 6. Vì vậy, thông số LED_BUILTIN sẽ được đặt theo đúng chân phù hợp với board Arduino đã được lựa chọn.

Hàm tiếp theo là hàm ‘loop’. Không giống như hàm ‘setup’ chỉ chạy một lần sau khi được reset, hàm ‘loop’ sẽ lặp lại ngay khi nó thực hiện xong các dòng lệnh bên trong nó.

Bên trong hàm ‘loop’ của ví dụ này, dòng lệnh đầu tiên sẽ bật đèn LED, nghĩa là đặt tín hiệu đầu ra lên mức cao (HIGH), sau đó ‘delay’ (trì hoãn) trong 1000 mili giây (1 giây), rồi đặt tín hiệu chân LED xuống mức thấp (LOW) và lại ngừng 1 giây nữa.

Nhấp nháy nhanh hơn

Bạn muốn làm đèn LED nháy nhanh hơn? Cách thực hiện là thay đổi thông số bên trong dấu ( ) của lệnh ‘delay’

Thời gian ngừng (delay) được tính bằng mili giây, bởi vậy nếu bạn muốn LED nháy nhanh gấp đôi, hãy thay đổi giá trị từ 1000 xuống 500. Nạp lại chương trình vào board và để ý rằng LED nhấp nháy nhanh hơn.

Bài tập làm thêm

Hãy thử thay đổi thời gian delay để làm LED nháy nhanh hơn, bằng cách đổi tham số delay xuống 100.

Trả lời

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.

Theme TF Flatsome Multi-Purpose Responsive WooCommerce Theme