#1 2022-05-09 12:26:44

Malyhin
Учасник
Зареєстрований: 2022-05-06
Повідомлень: 48

функція не працює я потрібно

я захотів поекперемотнувати, моя мігалка працює то  через 1 секунду то через 7

ось код:
unsigned long last_time1;
unsigned long last_time2;
void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
if (millis()- last_time1 > 1000){
 
  last_time1 = millis();
  digitalWrite(13, HIGH);
}
if (millis()- last_time2 > 1000){
  last_time2 = millis();
  digitalWrite(13, LOW);
}

Неактивний

#2 2022-05-09 12:41:42

г0сть
Гість

Re: функція не працює я потрібно

І? Екперемотн пройшов вдало? У чому питанння?

#3 2022-05-09 13:26:58

Malyhin
Учасник
Зареєстрований: 2022-05-06
Повідомлень: 48

Re: функція не працює я потрібно

та ділов тому що він мигає не з інтеравлом 1 секунду, а через 1, потім починає до 10 секунд не мигати

Неактивний

#4 2022-05-09 14:13:33

г0сть
Гість

Re: функція не працює я потрібно

Malyhin пише:

він мигає не з інтеравлом 1 секунду, а через 1, потім починає до 10 секунд не мигати

А повинен?  Вын мИгає рівно так як задано автором коду.

#5 2022-05-10 13:48:17

anon
Гість

Re: функція не працює я потрібно

Тут помілка в тому що два if-и нияк не залежать один від одного.
Як я розумію, задача була зробити блималку без застосування delay.
зробити це можно наступним чином:

unsigned long last_time1;
int ledState=LOW;
void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
    if (millis()- last_time1 > 1000){
    
      last_time1 = millis();
      ledState=!ledState;
      digitalWrite(13, ledState);
    }
   
}

Таким чином значення ledState кожної секунди буде змінюватись на протележне

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму