Помогите новичку с циклом.

tarh
Offline
Зарегистрирован: 10.07.2016
Подключено 3 светодиода, соответственно к 11, 10 и 9 пину.
 
int brightness = 0;
int fade = 5;
void setup() {
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
}
 
void loop() {
  for (int i=9; i<=11; i++) {
    do {
      analogWrite(i, brightness);      
      brightness = brightness + fade;
      if (brightness == 0 or brightness == 255) {
        fade = -fade;
      }
      delay(30);
    }
    while (brightness == 0);
  }
}
 
Кто подскажет, почему все 3 светодиода мигают?
Если убрать for и вместо i подставить конкретный пин - нормально мигает один из светодиодов.
DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Потому что у вас в цикле do/while висит только один раз, пока brightness == 0, т.е. можете смело выкидывать do/while - эффект будет тот же.

tarh
Offline
Зарегистрирован: 10.07.2016

Блин спасибо :(

Постоянно Do...While путаю с Do...Until :(