Жалуется на переменную

Возникла проблема. Сижу, делаю вот что: по кнопке включаются светодиоды. Если 3 отгорели, то “счет” сбрасывается. Есть 2 кнопки и соответственно 2 группы. Код ниже:

// 2, 4, 6 - первая тройка светодиодов
// 8, 10, 12 - вторая тройка светодиодов
// 13 - кнопка 1 группа
// 7 - кнопка 2 группа
void setup() {
  pinMode(2, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, INPUT);
  pinMode(7, INPUT);

  int clicked1 = 0;
  int clicked2 = 6;
}

void loop() {
  if (digitalRead(13) == HIGH) {
    if (clicked1 = 6) {
      clicked1 = 0;
      digitalWrite(2, LOW);
      digitalWrite(4, LOW);
      digitalWrite(6, LOW);
    }
    else {
      clicked1 = clicked1 + 2;
      digitalWrite(clicked1, HIGH);
    }
  }
  if (digitalRead(7) == HIGH) {
    if (clicked2 = 12) {
      clicked2 = 6;
      digitalWrite(8, LOW);
      digitalWrite(10, LOW);
      digitalWrite(12, LOW);
    }
    else {
      clicked2 = clicked2 + 2;
      digitalWrite(clicked2, HIGH);
    }
  }
}

(код вручную писал)

Выводит ошибку:

C:\Users\kiril\AppData\Local\Temp\.arduinoIDE-unsaved20241029-13816-1k68b2n.0v81\sketch_nov29b\sketch_nov29b.ino: In function 'void loop()':
C:\Users\kiril\AppData\Local\Temp\.arduinoIDE-unsaved20241029-13816-1k68b2n.0v81\sketch_nov29b\sketch_nov29b.ino:21:9: error: 'clicked1' was not declared in this scope
     if (clicked1 = 6) {
         ^~~~~~~~
C:\Users\kiril\AppData\Local\Temp\.arduinoIDE-unsaved20241029-13816-1k68b2n.0v81\sketch_nov29b\sketch_nov29b.ino:33:9: error: 'clicked2' was not declared in this scope
     if (clicked2 = 12) {
         ^~~~~~~~

exit status 1

Compilation error: 'clicked1' was not declared in this scope

Как исправлять? Помогите
P. S. Возможно я просто где-то не так код написал. Укажите, где. Спасибо

if (clicked1 == 6) {

увидел. не помогает

Он же тебе говорит:

Типа - Что это еще за хрень такая эта ваша “clicked1”? Где Вы её ранее объявили? Нигде? Вот и получайте!…))

перенеси
int clicked1 = 0;
int clicked2 = 6;
перед
void setup() {

1 лайк

Типа - Что это еще за хрень такая эта ваша “clicked1”? Где Вы её ранее объявили? Нигде? Вот и получайте!…))

Дорогой товарищ, определена! в setup определена!

щас проверим

Вот в setup и не ругается. Изучи область определения.

2 лайка

Спасибо! помогло!

Предновогоднее чудо :rofl:

На долго ли?))

int clicked2 = 6;
void setup() { Serial.begin(9600); }

void loop() {
Serial.println(clicked2);
clicked2 = clicked2 + 2;
delay(1000);
Serial.println(clicked2);
digitalWrite(clicked2, HIGH);
delay(1000);
}

а этот код нормальный ?))) в нем точно нет аномалий ? все работает как и должно ? в моем понимании просто clicked2 должен был периодически равняться 1… или 0, не помню уже)))

Нахуа?

мне то это не надо, просто по моей извращенной логике

digitalWrite(clicked2, HIGH);

вот это строка должна переменной присвоить значение 0 или 1…))) а она не присваивает… вот я и спрашиваю это нормально ?)))

она должна включать и “предыдущие” св-диоды. То есть если clicked2 = 4, то должны включ. 2 и 4 порты

почитал бы уж