Làm đèn nhấp nháy trên xe cảnh sát

Nội dung chính, cần nắm

Đây là một ví dụ về sự sáng tạo cực kỳ đơn giản với Arduino và LED. Qua bài viết này, tôi muốn chia sẻ cho các bạn rằng, chúng ta chỉ cần biết một ít kiến thức về Arduino là có thể làm được những ứng dụng độc đáo ngay. Cụ thể, là bạn chỉ cần đọc qua bài Bài 2: Cách làm đèn LED nhấp nháy theo yêu cầu là có thể làm được ví dụ trong bài viết này rồi. Khá là hay đấy nhé!

Hôm nay chúng ta sẽ làm được gì

Phần cứng

Lắp mạch

Lập trình

int ledDelay = 50; // delay trong 50 mili giây (ms)
int redPin = 5;
int bluePin = 6;


void setup() {
    pinMode(redPin, OUTPUT); //pinMode đèn đỏ là OUTPUT
    pinMode(bluePin, OUTPUT); //pinMode đèn xanh là OUTPUT

}

void loop() {

    digitalWrite(redPin, HIGH); // bật đèn đỏ
    delay(ledDelay); // đợi 50ms
    
    digitalWrite(redPin, LOW); // tắt đèn đỏ
    delay(ledDelay); // đợi 50ms
    
    digitalWrite(redPin, HIGH); // bật đèn đỏ
    delay(ledDelay); // đợi 50ms
    
    digitalWrite(redPin, LOW); // tắt đèn đỏ
    delay(ledDelay); // đợi 50ms
    
    digitalWrite(redPin, HIGH); // bật đèn đỏ
    delay(ledDelay); // đợi 50ms
    
    digitalWrite(redPin, LOW); // tắt đèn đỏ
    delay(ledDelay); // đợi 50ms
    
    delay(100); // delay midpoint by 100ms
    
    digitalWrite(bluePin, HIGH); // bật đèn xanh
    delay(ledDelay); // đợi 50ms
    
    digitalWrite(bluePin, LOW); // tắt đèn xanh
    delay(ledDelay); // đợi 50ms
    
    digitalWrite(bluePin, HIGH); // bật đèn xanh
    delay(ledDelay); // đợi 50ms
    
    digitalWrite(bluePin, LOW); // tắt đèn xanh
    delay(ledDelay); // đợi 50ms
    
    digitalWrite(bluePin, HIGH); // bật đèn xanh
    delay(ledDelay); // đợi 50ms
    
    digitalWrite(bluePin, LOW); // tắt đèn xanh
    delay(ledDelay); // đợi 50ms


}

Lời kết

Một ứng dụng hay không quá phức tạp như bạn nghĩ đâu, bạn có thể dùng ATTiny13 để lập trình cho nó nhỏ hơn, phù hợp với các dự án làm sa bàn! Ngoài ra, bạn có thể tham khảo bài viết Cách xuất file .HEX từ Arduino IDE và mô phỏng Arduino trên phần mềm Proteus để thử mô phỏng trên Proteus nếu không có điều kiện sở hữu một bé Arduino. Mình xin chia sẻ file Proteus và file hex của nó tại đây.

Chúc các bạn thành công!

lên
9 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Vấn đề của số chấm động và số nguyên trong ngôn ngữ lập trình C++ trên board mạch Arduino

Có bao giờ bạn tự hỏi: "Dự án của mình làm tốt thế này, chạy ngon lành rành rành thế này, chắc không có bugs đâu?". Thực sự, nếu dự án của bạn không có phần xử lý số thực chấm động trong đó thì mình nghĩ phần code của bạn sẽ hoạt động ngon lành theo thời gian. Nhưng mà có số thực thì từ từ, chúng ta cần xét lại code. Trước đây, có một số bạn nhắn tin riêng hỏi mình về code với điểm chung là "code mình chạy ngon lành lúc đầu, sau đó bị lỗi, không rõ nguyên nhân". Loại trừ các phần code logic sai ra, thì hầu hết đều là do lỗi khi xử lý số chấm động mà không quan tâm đến nền tảng lập trình bên dưới! Mà cũng đúng, chúng ta rất dễ bị đánh lừa bởi chính đoạn code chúng ta viết. Vì nó có báo lỗi biên dịch đâu mà, kaka. Qua bài viết này, mình muốn phân tích và cùng các bạn rút kinh nghiệm về số chấm động float, cách hạn chế lỗi sai với số chấm động.

lên
22 thành viên đã đánh giá bài viết này hữu ích.