Làm mô hình đèn giao thông cực kì đơn giản với ATTiny13

Để làm được bài này, bạn cần chuẩn bị Arduino IDE Classic, các bản Arduino 1.5.x, 1.6.x phải chỉnh sửa nhiều hơn thì mới làm được!

Giới thiệu

Đèn giao thông đã quá quen thuộc với các bạn phải không nào. Với những ánh đèn đầy màu sắc này, bạn có tạo thành một cột đèn giao thông cực kì đơn giản cho sa bàn của bạn. Hôm nay, chúng ta sẽ dành ra khoảng 20 phút để làm mạch đèn đầy sáng tạo này nhé. Qua bài viết này, mình hi vọng bạn sẽ học cách sử dụng bé ATTiny13 để lập trình những ứng dụng yêu cầu kích thước bé nhé.

Kiến thức cần biết

  1. Lập trình vi điều khiển ATTiny13 bằng Arduino

Phần cứng

Lắp mạch

Lập trình và giải thích

Mục đích của tớ khi viết bài này là giúp các cậu thực hành với vi điều khiển ATTiny13, vì vậy phần lập trình vô cùng đơn giản, và chỉ bao gồm các hàm pinMode, delaydigitalWrite! Ngoài ra, cuối bài viết này là một file proteus giúp các bạn làm quen hơn với phần mềm này, nếu các bạn chưa biết về proteus xin 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

int greenled = 0;
int yellowled = 1;
int redled = 4;

void setup()
{
  //pinMode các đèn led
  
  pinMode(greenled, OUTPUT);
  pinMode(yellowled, OUTPUT);
  pinMode(redled, OUTPUT);
  // cài đặt timer
  TCCR0B |=  _BV(CS02)  ; 
}

void _delay(word time = 1) { // Xây dựng lại hàm delay
  for (word i = 1; i<=time;i++) {
    delayMicroseconds(150);
  }
}

void loop()
{
  digitalWrite(greenled, HIGH); //Bật đèn xanh trong 5 giây
  _delay(5000);
  digitalWrite(greenled, LOW); //Tắt đèn xanh, bật đèn vàng trong 1 giây
  digitalWrite(yellowled, HIGH);
  _delay(1000);
  digitalWrite(yellowled, LOW); //tắt đèn vàng bật đèn đỏ trong 5 giây
  digitalWrite(redled, HIGH);
  _delay(5000);
  digitalWrite(redled,LOW);//Tắt đèn đỏ
}

Khi bạn "lên mạch" thì nó đơn giản như thế này nè :D

Bạn có thể download file Proteus này tại đây (nhớ chỉnh lại đường dẫn Program file nhé, và nếu bạn muốn file hex ngay thì nó đây).

Kết luận

Con mèo nó kêu meo meo, đó là điều hiển nhiên phải không nào? Vì vậy, đừng lo lắng, bạn đã có mục tiêu là làm được ngay thôi, hi vọng qua bài viết này, bạn sẽ càng hoàn thiện các kĩ năng của mình và hoàn thiện các dự án táo bạo hơn!

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

Shortcut02 - Điều khiển Servo từ xa thông qua biến trở

Đây là loạt bài vắn tắt chia sẻ kinh nghiệm giúp các bạn có thể sử dụng các mudule cũng như tiếp cận code một cách ngắn gọn và dễ hiểu hơn smiley

Mục đích bài viết: Hướng dẫn điều khiển một Servo trong các dự án robot từ xa thông qua module NRF24 bằng biến trở cool

lên
14 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ả

Lấy từng bit trong một thanh ghi của iNut PLC - Lấy từng bit trong một luồng cảm biến của iNut cảm biến

Làm thế nào để lấy từng bit của một thanh ghi? Bạn lưu trạng thái của INPUT/OUTPUT hoặc cảm biến digital vào một bit của thanh ghi và bạn muốn đọc nó để thiết kế giao diện? Đừng lo lắng. Giải pháp cực kỳ đơn giản, nó chỉ là một khối lệnh kéo thả thôi mà! Nào, cùng khám phá!

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

Vietnam Maker Contest with Intel Galileo lần 2 năm 2016 - VMIG2016 - Cuộc thi sáng tạo với Edision dành cho Sinh viên Việt Nam

Hôm nay là một ngày vui, 30/5/2016. Vì chỉ còn 1 ngày nữa (31/5/2016), cuộc thi Sáng tạo với Intel Edison lần 2 dành cho sinh viên sẽ được chính sức khởi động. Giải thưởng của cuộc thi rất lớn trên 15 triệu đồng, đồng thời chúng ta được hỗ trợ mạch Intel Edison và 02 triệu động để làm dự án nữa,... còn chần chừ gì mà không tìm hiểu ngay.

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