Не компилируется код, причину не пойму

Здравствуйте. Только начал изучать Ардуино и программирование вообще. Стандартное задание №7 “Бегающий огонек” от Амперки для Arduino Uno. Код один-в-один из книжки и сайта. Но не компилируется в Arduino IDE. Не могу понять, где накосячил.

#define FIRST_LED_PIN 2
#define LAST_LED_PIN 11

void setup() {
  for (int pin = FIRST_LED_PIN; pin <= LAST_LED_PIN; ++pin);
  pinMode(pin, OUTPUT);
}

void loop() {
  unsigned int ms = millis();
  int pin = FIRST_LED_PIN + (ms / 120) % 10;
  digitalWrite(pin, HIGH);
  delay(10);
  digitalWrite(pin, LOW);
}

> И журнал ошибок:
C:\Users\MSI-PC\Documents\Arduino\runfire7\runfire7.ino: In function 'void setup()':
C:\Users\MSI-PC\Documents\Arduino\runfire7\runfire7.ino:6:11: error: 'pin' was not declared in this scope
   pinMode(pin, OUTPUT);
           ^~~
C:\Users\MSI-PC\Documents\Arduino\runfire7\runfire7.ino:6:11: note: suggested alternative: 'sin'
   pinMode(pin, OUTPUT);
           ^~~
           sin
exit status 1

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

Это что, у амперки такие хреновые примеры?
Или всё-таки ты накосячил? :wink:

На, вот так должно работать:


#define FIRST_LED_PIN 2
#define LAST_LED_PIN 11

void setup() {
  for (int pin = FIRST_LED_PIN; pin <= LAST_LED_PIN; ++pin)
    pinMode(pin, OUTPUT);
}

void loop() {
  unsigned int ms = millis();
  int pin = FIRST_LED_PIN + (ms / 120) % 10;
  digitalWrite(pin, HIGH);
  delay(10);
  digitalWrite(pin, LOW);
}

И запомни - точка с запятой это оператор, его нужно в нужном месте ставить, а ни абы где))

Н - “невнимательность”. Я прощелкал и не смог разобраться. Спасибо большое!

Бывает ))

отсюда совет, ВСЕГДА после if, for, else и т.д. открывать скобку {
пусть там даже одна строчка.

не настаиваю))

5 лайков

Я всегда так и делаю, это уже привычка. Не важно сколько в операционных скобках будет, хоть просто точка с запятой ))
И использовать форматирование - тоже сильно помогает подобные «косяки» находить.

1 лайк

Сообщения компилятора ВСЕГДА приводите полностью. Там много информации, которая нужна (хотя Вам и непонятна).

3 лайка