Сейчас ваша корзина пуста!
millis()
millis() — функция для получения количества миллисекунд, прошедших с момента запуска Arduino. Это один из ключевых инструментов для работы со временем в проектах на Arduino.
Синтаксис
unsigned long millis();
Особенности работы
- Возвращает значение типа unsigned long
- Отсчет начинается с момента включения/перезагрузки
- Максимальное значение: около 50 дней (4,294,967,295 мс)
- После достижения максимума счетчик сбрасывается
Важные особенности
- Функция не останавливается при выполнении других задач
- Позволяет создавать сложные временные схемы
- Требует внимательного учета переполнения счетчика
- Работает параллельно с основным кодом
Рекомендации по использованию
- Сохраняйте предыдущее время в отдельной переменной
- Используйте тип unsigned long для хранения значений
- Учитывайте возможное переполнение счетчика
- Проверяйте разницу между текущим и предыдущим временем
Обработка переполнения
Для надежной работы с большими интервалами времени рекомендуется использовать:
Пример
unsigned long timer1 = 0;
unsigned long timer2 = 0;
const unsigned long interval1 = 500; // 500 мс
const unsigned long interval2 = 1000; // 1000 мс
void setup() {
Serial.begin(9600);
}
void loop() {
unsigned long currentTime = millis();
// Первый таймер
if (currentTime - timer1 >= interval1) {
Serial.println("Таймер 1 сработал");
timer1 = currentTime;
}
// Второй таймер
if (currentTime - timer2 >= interval2) {
Serial.println("Таймер 2 сработал");
timer2 = currentTime;
}
// Другой код программы
}
Примечание
Преимущества перед delay()
- Не блокирует выполнение программы
- Позволяет реализовать несколько временных задач одновременно
- Обеспечивает более гибкое управление временем
Практическое применение
Функция используется для:
- Создания таймеров
- Управления периодическими действиями
- Реализаций задержек без блокировки
- Синхронизации событий
- Измерения интервалов времени

Добавить комментарий