Функция millis 0_0

noob
Offline
Зарегистрирован: 27.01.2019

Подскажите  как реализуется функция millis на простом примере:

есть кнопка (пин 3) . при нажатии - загорается светодиод (пин 13) , горит 1 секунду ,затем - гаснет .

самый простой вариант - это конечно использовать delay, но я хочу понять как в этом случае работает millis.

как заменить delay?

const int buttonPin =3;     // номер входа, подключенный к кнопке
const int ledPin =  13;      // номер выхода светодиода
 
int buttonState = 0;         // переменная для хранения состояния кнопки
 
void setup() {
  // инициализируем пин, подключенный к светодиоду, как выход
  pinMode(ledPin, OUTPUT);     
  // инициализируем пин, подключенный к кнопке, как вход
  pinMode(buttonPin, INPUT);   
}
 
void loop(){
  // считываем значения с входа кнопки
  buttonState = digitalRead(buttonPin);
 
  // проверяем нажата ли кнопка
  // если нажата, то buttonState будет HIGH:
  if (buttonState == HIGH) {   
    // включаем светодиод   
    digitalWrite(ledPin, HIGH); 
    delay(1000);
  }
  else {
    // выключаем светодиод
    digitalWrite(ledPin, LOW);
  }
}

 

 

 

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Функция millis - это часы. Вот Вы посмотрели на часы и узнали, который час. Точно так же и с muillis - вызвали ее и узнали время на текущий момент.

Чтобы понять, как использовать millis в своих программах для формирования временных интервалов, проще увсего подробно разобрать, чем отличаются два примера: "blink" и "blink without delay".

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

noob, зачем вам millis(). Вы сейчас даже толком не умеете работать с !!! кнопками.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

noob пишет:

Подскажите  как реализуется функция millis на простом примере:

Простые примеры:

http://arduino.ru/tutorials/BlinkWithoutDelay

http://robocraft.ru/blog/arduino/385.html