Giỏ hàng hiện tại chưa có sản phẩm nào!
Giỏ hàng hiện tại chưa có sản phẩm nào!
Vòng lặp for trong lập trình arduino là một trong những vòng lặp quan trọng trong lập trình. Để điều khiển nhiều biến và nhiều chân tín hiệu cùng lúc thì việc sử dụng vòng lặp là bắt buộc. Khi sử dụng tốt những vòng lặp thì công việc của bạn trở nên dễ dàng và hiệu quả hơn rất nhiều. Tuy nhiên, để sử dụng hiệu quả và không bị sai thì các bạn cần phải hiểu rõ từng thành phần của vòng lặp.
Bài viết này sẽ hướng dẫn cho các bạn về cấu trúc, ý nghĩa và cách thực hiện vòng lặp for trong lập trình arduino.
NỘI DUNG BÀI VIẾT
|
1. CẤU TRÚC VÒNG LẶP FOR
Chức năng: vòng lặp for được sử dụng để thực hiện những công việc lặp lại khi biến điều kiện vẫn đúng. Vòng lặp chỉ dừng lại khi biến điều kiện bị sai.
Cú pháp:
for (<Giá trị khởi tạo biến>;<Biểu thức điều kiện>;<Biểu thức điều khiển>) { Khối lệnh; }
Trong đó:
2. ỨNG DỤNG CỦA VÒNG LẶP FOR
Trong một số ví dụ, khi chúng ta cần phải điều khiển nhiều bóng đèn led, để thực hiện định nghĩa chức năng các chân điều khiển là OUTPUT. Thì điều đầu tiên là chúng ta phải thực hiện lệnh pinMode để định nghĩa. Tuy nhiên để điều kiển 8 led thì phải ghi 8 dòng lệnh khai báo như bên dưới.
void setup(){ //Doan khai bao cac chan nhan du lieu pinMode(2, INPUT); pinMode(3, INPUT); pinMode(4, INPUT); //Doan khai bao cac chan xuat du lieu pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT); }
Như vậy, khi chúng ta thực hiện bằng vòng lặp for thì đơn giản hơn rất nhiều. Với biến điều khiển chính là số thứ tự của chân cần định nghĩa.
void setup(){ //Khai bao chan nhan du lieu for( int i=2; i<=4; i++) pinMode(i, INPUT); //Khai bao chan xuat du lieu for( int i=6; i<=13; i++) pinMode(i, OUTPUT); }
So sánh 2 đoạn chương trình, các bạn thấy rằng khi sử dụng vòng lặp for thì đoạn chương trình đơn giản và ngắn gọn hơn rất nhiều. Và hiển nhiên khi thực hiện các đoạn chương trình lớn thì cũng sẽ đơn giản và dễ hiểu hơn rất nhiều.
3. ỨNG DỤNG VIẾT CHƯƠNG TRÌNH ĐIỀU KHIỂN 8 LED ĐƠN
Ví dụ: Viết chương trình sử dụng 3 nút nhấn để điều khiển 8 led đơn. Khi cấp nguồn thì tất cả 8 led đều tắt, nhấn nút ON thì sáng dần 8 led, nhấn nút INV thì tắt dần, nhấn nút OFF thì tất cả các led đều tắt.
Sơ đồ mạch được thiết kế như hình bên dưới. Trong đó các bóng đèn led được thiết kế dưới dạng tích cực mức cao. Nghĩa là khi xuất ra tín hiệu 5V thì đèn led sẽ sáng. Mỗi đèn led sẽ sử dụng 1 điện trở 1K ohm để hạn dòng. Có 3 nút nhấn, mỗi nút nhấn sẽ sử dụng điện trở để chống ngắn mạch khi nhấn. Ngoài ra tại các nút nhấn có gắn thêm các bóng đèn để kiểm tra khi nhấn nút.
Để hiểu rõ về nguyên lý hoạt động của nút nhấn, các bạn hãy xem lại bài viết số 5 và bài viết số 6 của chương trình arduino.
Các linh kiện được sử dụng
Linh kiện | Số lượng |
Arduino Uno R3 | 1 |
Điện trở 1k ohm | 11 |
Led đơn | 11 |
Nút nhấn | 3 |
Điện trở 100 ohm | 3 |
Đoạn chương trình được viết như sau
int ON; // Nut ON int OFF; //Nut OFF int INV; //nut INV int tt=0; void setup(){ for(int i=2; i<=4; i++) pinMode(i, INPUT); for(int i=6; i<=13; i++) pinMode(i, OUTPUT); //Tat tat ca cac led for(int i=6; i<=13; i++) digitalWrite(i, LOW); } void loop(){ //Nhan nut ON ON = digitalRead(2); if(ON == 0) { //Sang dan for(int i=6; i<=13; i++) { digitalWrite(i, HIGH); delay(200); } tt=1; } //Nhan nut INV INV = digitalRead(3); if ((INV == 0) && (tt == 1)) { //Tat dan for (int i=13; i>=6; i--) { digitalWrite(i, LOW); delay(200); } tt = 0; } //Nhan nut OFF OFF = digitalRead(4); if(OFF == 0) { for (int i=6; i<=13; i++) digitalWrite(i, LOW); delay(200); tt =0; } }
Để lại một bình luận