Timer với milis() 1.Giới thiệu Để tính thời gian ngồi hàm delay arduino hỗ trợ milis() để tiện cho việc tính tốn lập trình Bộ có tác dụng đếm thời gian mili s tăng biến đếm lên lần 2.Hàm milis() millis() có nhiệm vụ trả số - thời gian (tính theo mili giây) kể từ lúc mạch Arduino bắt đầu chương trình bạn Nó tràn số quay số (sau tiếp tục tăng) sau 50 ngày Trả số nguyên kiểu unsigned long thời gian kể từ lúc thương trình Arduino khởi động 3.Lưu ý hàm thời gian Arduino gồm millis() micros() bị tràn số sau thời gian sử dụng Với hàm millis() khoảng 50 ngày Tuy nhiên, kiểu số nguyên không âm (unsigned long) nên ta dễ dàng khắc phục điều cách sử dụng hình thức ép kiểu VD 1:Test milis() unsigned long time; void setup(){ Serial.begin(9600); } void loop(){ Serial.print("Time: "); time = millis(); // in thời gian kể từ lúc chương trình bắt đầu Serial.println(time); // đợi giây trước tiếp tục in delay(1000); } VD2.Dùng hàm milis()chớp tắt LED 1s unsigned long time; byte ledPin = 10; void setup() { // khởi tạo giá trị biến time giá trị // hàm millis(); time = millis(); pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); } void loop() { // Lưu ý dấu ngoặc ép kiểu // đoạn chương trình có nghĩa sau 1000 mili giây // đèn Led chân số 10 thay đổi trạng thái if ( (unsigned long) (millis() - time) > 1000) { // Thay đổi trạng thái đèn led if (digitalRead(ledPin) == LOW) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } // cập nhật lại biến time time = millis(); } }