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 bài viết cùng tác giả

Hướng dẫn truyền thông Internet cho PLC bằng iNut Platform - Lập trình kéo thả Internet cho PLC

Điện tử công nghiệp thường chỉ tin tưởng và sử dụng các loại mạch PLC truyền thống vì khả năng đọc được ngược code, độ bền, tính ổn định (Đã được kiểm chứng theo thời gian). PLC đó là chuyên môn của các kỹ sư điện công nghiệp và gần như là kỹ năng bắt buộc phải có của mỗi người. Tuy nhiên, PLC có một điểm dỡ đó là: khó để lập trình kết nối Internet để quản lý (quan sát) từ xa. Phải biết thêm về WinCC (chi phí bản quyền cao) hoặc C# để làm phần mềm điều khiển trên máy tính. Điều đó không phải là dễ dàng đối với một kỹ sư điện tử công nghiệp. Vậy đâu là giải pháp? Đó chính là iNut Platform với dòng sản phẩm iNut - PLC Modbus RTU RS-485. iNut PLC sẽ giúp bạn đồng bộ các thanh ghi D trong PLC qua Internet một cách dễ dàng, an toàn và bảo mật. Cùng khám phá nhé!

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

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.