Хотел сделать эффект как в игрушке из фикспрайса но светодиоды не горят

хотел сделать эффект как в игрушке из фикспрайса но светодиоды не горят

int r = 4;
int g = 5;
int b = 6;
int butt = 9;
int rgb = 0;
void setup() {
pinMode(r, OUTPUT);
pinMode(g, OUTPUT);
pinMode(b, OUTPUT);
pinMode(butt, INPUT_PULLUP);
}
void loop() {
if (rgb == 0 && butt == 1){
digitalWrite(r, 1);
rgb ++;}
if (rgb == 1 && butt == 1){
digitalWrite(g, 1);
rgb ++;}
if (rgb == 2 && butt == 1){
digitalWrite(b, 1);
rgb ++;}
if (rgb == 3 && butt == 1){
digitalWrite(r, 1);
digitalWrite(g, 1);
rgb ++;}
if (rgb == 4 && butt == 1){
digitalWrite(g, 1);
digitalWrite(b, 1);
rgb ++;}
if (rgb == 5 && butt == 1){
digitalWrite(b, 1);
digitalWrite(r, 1);
rgb = rgb + 1;}
if (rgb == 6 && butt == 1){
digitalWrite(r, 1);
digitalWrite(g, 1);
digitalWrite(b, 1);
rgb = 0;}
}

А схема подключения где?

Очень интересно…butt одновременно и номер пина, и результат чтения кнопки?))

А слона я и не приметил))
Могу лишь предположить, что ТС имел ввиду, но даже озвучивать такое не хочу )))
Кстати, подобный стиль подходит под логику MPLAB…

Нет чтения кнопки нигде, butt в условиях как флаг зачем?
…ааааа понял, типа кнопка сама читается, за кадром.

Потому что

Ну на PIC да, макрос сам вызывает чтение.

Виноват, не понял великого замысла, т.к. для PIC на Си ничего не писал, лишь давненько асм немного юзал.))

Так то на PIC, а тут вроде как ардуина и такого поведения быть не должно…

Так и я, пошутил вроде))

Чуть подправил, чтобы стало понятней, как оно работает

Спойлер
int r = 4;
int g = 5;
int b = 6;
int rgb = 0;
int buttpin = 9;
int butt = 0;

void setup() {
  pinMode(r, OUTPUT);
  pinMode(g, OUTPUT);
  pinMode(b, OUTPUT);
  pinMode(buttpin, INPUT_PULLUP);
}

void loop() {
  
  while (!butt)
  butt = !digitalRead(buttpin);

  if (rgb == 0 && butt == 1) {
    digitalWrite(r, 1);
    delay(300);
    rgb ++;
  }
  if (rgb == 1 && butt == 1) {
    digitalWrite(g, 1);
    rgb ++;
  }
  delay(300);
  if (rgb == 2 && butt == 1) {
    digitalWrite(b, 1);
    rgb ++;
  }
  delay(300);
  if (rgb == 3 && butt == 1) {
    digitalWrite(r, 1);
    digitalWrite(g, 1);
    rgb ++;
  }
  if (rgb == 4 && butt == 1) {
    digitalWrite(g, 1);
    digitalWrite(b, 1);
    rgb ++;
  }
  delay(300);
  if (rgb == 5 && butt == 1) {
    digitalWrite(b, 1);
    digitalWrite(r, 1);
    rgb = rgb + 1;
  }
  delay(300);
  if (rgb == 6 && butt == 1) {
    digitalWrite(r, 1);
    digitalWrite(g, 1);
    digitalWrite(b, 1);
    rgb = 0;
  }
  delay(300);
  digitalWrite(r, LOW);
  digitalWrite(g, LOW);
  digitalWrite(b, LOW);
  butt = 0;
}