Вот пример
unsigned long time;
void setup(){
Serial.begin(9600);
}
void loop(){
Serial.print("Time: ");
time = millis();
//выводит количество миллисекунд с момента начала выполнения программы
Serial.println(time);
// ждет секунду, перед следующей итерацией цикла.
delay(1000);
}
Вот еще один пример
const int ledPin = 13; // номер выхода, подключенного к светодиоду
// Variables will change:
int ledState = LOW; // этой переменной устанавливаем состояние светодиода
long previousMillis = 0; // храним время последнего переключения светодиода
long interval = 1000; // интервал между включение/выключением светодиода (1 секунда)
void setup() {
// задаем режим выхода для порта, подключенного к светодиоду
pinMode(ledPin, OUTPUT);
}
void loop()
{
// здесь будет код, который будет работать постоянно
// и который не должен останавливаться на время между переключениями свето
unsigned long currentMillis = millis();
//проверяем не прошел ли нужный интервал, если прошел то
if(currentMillis - previousMillis > interval) {
// сохраняем время последнего переключения
previousMillis = currentMillis;
// если светодиод не горит, то зажигаем, и наоборот
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
// устанавливаем состояния выхода, чтобы включить или выключить светодиод
digitalWrite(ledPin, ledState);
}
}
Вот пример unsigned long time; void setup(){ Serial.begin(9600); } void loop(){ Serial.print("Time: "); time = millis(); //выводит количество миллисекунд с момента начала выполнения программы Serial.println(time); // ждет секунду, перед следующей итерацией цикла. delay(1000); }Вот еще один пример
const int ledPin = 13; // номер выхода, подключенного к светодиоду // Variables will change: int ledState = LOW; // этой переменной устанавливаем состояние светодиода long previousMillis = 0; // храним время последнего переключения светодиода long interval = 1000; // интервал между включение/выключением светодиода (1 секунда) void setup() { // задаем режим выхода для порта, подключенного к светодиоду pinMode(ledPin, OUTPUT); } void loop() { // здесь будет код, который будет работать постоянно // и который не должен останавливаться на время между переключениями свето unsigned long currentMillis = millis(); //проверяем не прошел ли нужный интервал, если прошел то if(currentMillis - previousMillis > interval) { // сохраняем время последнего переключения previousMillis = currentMillis; // если светодиод не горит, то зажигаем, и наоборот if (ledState == LOW) ledState = HIGH; else ledState = LOW; // устанавливаем состояния выхода, чтобы включить или выключить светодиод digitalWrite(ledPin, ledState); } }Благодарю. Вопрос где привязывается именно светодиод к millis ?
Я правильно понимаю? Строка 20 и 25 ?
Штирлиц поднял глаза. Это были глаза mag155...
Доброго времени суток. Разбираюсь с вашим скетчем с диодом все понятно, пытаюсь привязать кнопку.
void loop() { unsigned long currentMillis = millis(); buttonState = digitalRead(buttonPin); if (buttonState == HIGH) //если кнопка нажата if(currentMillis - previousMillis > interval) {// и прошел интервал previousMillis = currentMillis;// сохраняем время if (ledState == LOW)// если диод не горит ledState = HIGH; else ledState = LOW; digitalWrite(ledPin, ledState);Но при нажатии кнопки диод загорается сразу, без выдержки времени подскажите где ошибка ?
Разобрался, нужно было добавить .
Все получилось, но есть зависимость если interval больше чем interval1 диод не гаснит .Вчем причина? Подскажите если не сложно.
const int ledPin = 13; const int buttonPin = 4; int ledState = 0; long previousMillis = 0; long previousMillis1 = 0; long interval = 2000; long interval1 = 2000; int buttonState = 0; void setup() { pinMode (ledPin,OUTPUT); pinMode(buttonPin, INPUT); } void loop() { unsigned long currentMillis = millis(); unsigned long currentMillis1 = millis(); buttonState = digitalRead(buttonPin); if (buttonState == HIGH); //если кнопка нажата if(currentMillis1 - previousMillis > interval) {// и прошел интервал previousMillis = currentMillis;// сохраняем время if (ledState == LOW)// если диод не горит ledState = HIGH; digitalWrite(ledPin,ledState ); } { if (buttonState == LOW) if(currentMillis - previousMillis >= interval1) { previousMillis = currentMillis; if (ledState == HIGH)// если диод горит ledState = LOW; digitalWrite (buttonPin,buttonState); digitalWrite(ledPin,ledState ); } } }Штирлиц прям вдохновил БЛАГОДАРНОСТЬ ему !!! Разобрался сам.
Бывает если долго не нажимать кнопку диод загорается без выдержки.Укажите на косяки кому не сложно?
Братья!!!! Выручайте.