Lập trình Arduino không cần viết code - Phần 14: Timer - Millis()

Đây là phần 14 của chuỗi bài viết "Lập trình Arduino không cần viết code"

- Xem lại phần 13 tại đây.

Xin chào các bạn, hôm nay chúng ta sẽ cùng tìm hiểu về timer và cách sử dụng nó trong mBlock cũng như trong Arduino. Xơi luôn

Timer là gì

Về cơ bản nó chính là bộ đếm thời gian trong vi điều khiển Arduino. Nó sẽ bắt đầu đếm khi chương trình bắt đầu chạy và chỉ dừng lại khi ta dừng chạy chương trình. Bạn có thể tìm hiểu hơn về timer qua từ khóa đó trên mục tìm kiếm. Vậy ứng dụng của nó là gì? Đa số nó được ứng dụng để chạy các hàm, lệnh song song nhau. Phần sau mình sẽ chỉ 1 ví dụ. Nhưng ngay bây giờ bạn hãy nghĩ về việc blink 2 led theo 2 khoảng thời gian nháy khác nhau cùng nhau sẽ như thế nào để chuẩn bị cho phần sau.

Thực hành

Chuẩn bị

1 con arduino và chỉ thế thoi.

Lập trình với mBlock

Trước tiên mở khối Serial ra.

Tạo một biến đếm giây để in ra serial, vì nếu dùng timer trực tiếp nóp sẽ đếm liên tục, trong khi mình chỉ cần đếm theo giây.

Lập trình theo sơ đồ sau.

Sửa code một tí, không cần sửa cũng được nhưng thời gian úp hơi lâu nên sửa đi nha.

Sửa lại như hình

Ok, úp code

Lập trình với Arduino IDE

Trong arduino, để kiểm tra xem thời gian hiện tại là bao nhiêu ta dùng hàm millis().

Code đây

int seconds;
int currentTime = 0;
int getLastTime(){
    	return currentTime = millis()/1000.0;
}
void setup(){
    Serial.begin(9600);
}

void loop(){
    if(seconds==getLastTime())
    {
        Serial.println(seconds);
        seconds += 1;
    }
}

Thành quả đây

Kết luận

Như vậy là ta vừa tìm hiểu xong cách sử dụng timer trong arduino. Ở phần sau mình sẽ đưa ra 1 ví dụ về timer. Cảm ơn đã quan tâm theo dõi, Chúc các bạn thành công.

lên
13 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

ST7565 và ESP8266 - Màn hình LCD bự chà bá chưa đến 100k cho thế giới IoT

Mình rất thích LCD ST7565 này, và đã đặt liền 4 con mà mỗi con quá rẻ có 20k. Nhưng khổ một điều, điện áp hoạt động và IO của LCD ST7565 có 3.3V. Bản thân mình lại không thích việc chơi điện trở để chơi LCD này với Arduino. Lý do đơn giản là phải hàn quá nhiều, mình lại lười crying. Hổm nay, mình đang làm loạt bài về ESP8266 và cũng phải gặp vấn đề điện trở để làm cầu phân áp khi giao tiếp giữa ESP8266 và Arduino.

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

Thư viện ST7565 trên Arduino Create - Thử nghiệm đầu tiên: Hoàn hảo!

Mình rất tự hào và hãnh diện, khi thư viện made in Việt Nam đầu tiên của Thái Sơn (Nick Chung) được mình tải lên tại Arduino Create với mục đích thử nghiệm việc biên dịch code online trên Arduino Create đã hoàn thành công việc của nó ngay trong lần thử đầu tiên. Qua bài viết này, mình xin hướng dẫn các bạn lập trình Arduino với Arduino Create thông qua việc làm một ví dụ mẫu về việc cài thư viện và sử dụng nó trên Arduino Create.

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

[Khám phá thế giới IoT với bSmart] Bài 3 - Sử dụng GPS với SIM7600

    Xin chào các bạn, tiếp tục seri bài viết “Khám phá thế giới IoT với bSmart”.  Định vị GPS cũng là một nhu cầu không thể thiếu trong thế giới IoT nhằm giúp theo dõi các loại xe di chuyển trên đường, hay theo dõi vị trí của các trang thiết bị quan trọng, giá trị trong quá trình vận chuyển,… Chính vì vậy, hôm nay, mình sẽ giúp các bạn tiếp tục khai thác sức mạnh của kit bSmart với định vị GPS được tích hợp sẵn cùng với module SIM7600.

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

Lập trình Arduino không cần viết code - Phần 18: Tạo ứng dụng đồ họa để điều khiển Arduino

Đây là phần 18 của chuỗi bài viết “Lập trình Arduino không cần viết code”

- Xem lại phần 17 tại đây

Xin chào các bạn, hôm nay mình xin hướng dẫn các bạn điều khiển Arduino thông qua ứng dụng đồ họa tự tạo trong mBlock. Chúng ta sẽ sử dụng các tab đồ họa mà phần mềm cung cấp để tạo ra ứng dụng bật tắt 3 led.

Mục tiêu: Hướng dẫn các bạn làm ra một ứng dụng đồ họa đơn giản để điều khiển Arduino, mà cụ thể ở đây là điều khiển 3 led.

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