Đã được đăng vào 11/12/2019 @ 09:18
Arduino cơ bản 01 – Phần 3: Chớp tắt LED trên Arduino Uno
Xem thêm:
Bài 1: Chớp tắt LED (Phần 3)
Code ví dụ 1-3:
//The first project -- S.O.S signal int ledPin = 10; void setup() { pinMode(ledPin, OUTPUT); } void loop() { // 3 quick blinks to represent “S” digitalWrite(ledPin,HIGH); delay(150); digitalWrite(ledPin,LOW); delay(100); digitalWrite(ledPin,HIGH); delay(150); digitalWrite(ledPin,LOW); delay(100); digitalWrite(ledPin,HIGH); delay(150); digitalWrite(ledPin,LOW); delay(100); delay(100); //100 milliseconds as a break of each letter //3 quick blinks to represent “0” digitalWrite(ledPin,HIGH); delay(400); digitalWrite(ledPin,LOW); delay(100); digitalWrite(ledPin,HIGH); delay(400); digitalWrite(ledPin,LOW); delay(100); digitalWrite(ledPin,HIGH); delay(400); digitalWrite(ledPin,LOW); delay(100); delay(100); // 100 milliseconds delay between each letter //3 quick blinks to represent “S” again digitalWrite(ledPin,HIGH); delay(150); digitalWrite(ledPin,LOW); delay(100); digitalWrite(ledPin,HIGH); delay(150); digitalWrite(ledPin,LOW); delay(100); digitalWrite(ledPin,HIGH); delay(150); digitalWrite(ledPin,LOW); delay(100); delay(5000); // wait 5 seconds to repeat the next S.O.S.Sssigignnaal }
Trong ví dụ 1 mình chia chương trình thành 3 khối để thực hiện nháy LED và chương trình được viết khá dài và không logic, công việc bây giờ là làm sao tối ưu chương trình trên. Mình đã viết thêm một đoạn tối ưu hơn các bạn xem ở ví dụ 2.
Code ví dụ 2-3
/*
SOS Beacon
*/
int ledPin = 10;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
// S (...) three dot represents "S".
for(int x=0;x<3;x++){
digitalWrite(ledPin,HIGH); // turn the LED on (HIGH is the voltage level)
delay(150); // wait for 150ms
digitalWrite(ledPin,LOW); // turn the LED off by making the voltage LOW
delay(100); // wait for 100ms
}
// wait for 100ms
delay(100);
//O(---) three dash represents "O".
for(int x=0;x<3;x++){
digitalWrite(ledPin,HIGH); // turn the LED on (HIGH is the voltage level)
delay(400); // wait for 400ms
digitalWrite(ledPin,LOW); // turn the LED off by making the voltage LOW
delay(100); // wait for 100ms
}
// wait for 100ms
delay(100);
// S (...) three dot represents "S".
for(int x=0;x<3;x++){
digitalWrite(ledPin,HIGH); // turn the LED on (HIGH is the voltage level)
delay(150); // wait for 150ms
digitalWrite(ledPin,LOW); // turn the LED off by making the voltage LOW
delay(100); // wait for 100ms
}
// wait for 5s
delay(5000);
}
Vòng lặp for
Vòng lặp for là một cấu trúc điều khiển lặp đi lặp lại cho phép bạn viết một vòng lặp một cách hiệu quả, khi cần thực hiện trong một khoảng thời gian cụ thể nào đó.
for(int x=0;x<3;x++){
digitalWrite(ledPin,HIGH); // turn the LED on (HIGH is the voltage level)
delay(150); // wait for 150ms
digitalWrite(ledPin,LOW); // turn the LED off by making the voltage LOW
delay(100); // wait for 100ms
}
Cú pháp của vòng lặp for
for(bien ; dieu_kien ; tang_giam){
cac_lenh;}
Quy trình thực hiện
Bước 1: Khởi tạo giá trị biến x = 0
Bước 2: Kiểm tra điều kiện x < 3.
Bước 3: Nếu điều kiện thỏa mãn thì thực hiện các câu lệnh.
Bước 4: Giá trị tăng lên x = 2.
Bước 5: Lặp lại bước 2.
Bước 6: Lặp lại bước 3.
Cho đến khi x = 3, không còn thỏa mãn điều kiện x < 3 thì chương trình sẽ bỏ qua các câu lệnh và thực hiện các đoạn mã tiếp theo.
Ở đây mình đặt điều kiện x < 3 có nghĩa là sẽ lặp lại 3 lần. Tính từ 0 đến 2.
Toán tử so sánh
Các toán tử so sánh thường được sử dụng với các lệnh điều kiện trong chương trình.
== (so sánh bằng)
!= (khác bằng)
< (bé hơn)
> (lớn hơn)
<= (bé hơn hoặc bằng)
>= (lớn hơn hoặc bằng)
Tổng kết
Qua bài 1 – phần 3 chúng ta biết thêm cách thức thực hiện của vòng lặp for và sử dụng các toán tử so sánh trong chương trình. Các bạn nhớ để lại comment góp ý để mình có thể hoàn thiện bài viết tốt hơn.
Nguồn: arduinokit.vn
Để lại một bình luận