Ошибка компиляции для ΠΏΠ»Π°Ρ‚Ρ‹ Arduino Uno: ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство ΠΏΠΎ ΡƒΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ

Π‘Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с красной строкой Β«Compilation ErrorΒ» Π² Arduino IDE β€” это, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, самый распространСнный ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ самый ΠΏΡƒΠ³Π°ΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ° Π² ΠΌΠΈΡ€Π΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². ВмСсто ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ скСтча Π½Π° ΠΏΠ»Π°Ρ‚Ρƒ Arduino Uno, консоль Π²Ρ‹Π΄Π°Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ нСпонятных символов ΠΈ сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, блокируя Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. ΠŸΠ°Π½ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ стоит, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ 99% ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π²Ρ‹Π·Π²Π°Π½Ρ‹ Π±Π°Π½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ настройками срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π° Π½Π΅ ΠΏΠΎΠ»ΠΎΠΌΠΊΠΎΠΉ оборудования.

ПониманиС ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹ ошибок компиляции критичСски Π²Π°ΠΆΠ½ΠΎ, вСдь компилятор ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ваш ΠΊΠΎΠ΄ Π½Π° язык, понятный ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ ATmega328P, ΠΈ малСйшСС Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ синтаксиса останавливаСт этот процСсс. Часто ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° кроСтся Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ скобку, ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Π»ΠΈ рСгистр Π±ΡƒΠΊΠ² Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ основныС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ сбоСв ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΡ… устранСния.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ошибок Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΡƒΠΆΠ΅ послС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ компиляции, ошибки компиляции ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Π΄Π°ΠΆΠ΅ Π½Π΅ Π½Π°Ρ‡Π°Π» ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ Π½ΠΎΠ²ΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ваша ΠΏΠ»Π°Ρ‚Π° Arduino Uno физичСски Ρ†Π΅Π»Π°, Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° носит ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€. Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся, ΠΊΠ°ΠΊ привСсти ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² порядок ΠΈ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ свСтодиод ΠΌΠΈΠ³Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ синтаксичСскиС ошибки Π² ΠΊΠΎΠ΄Π΅

Бамая частая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка компиляции, β€” это Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ» написания ΠΊΠΎΠ΄Π°, извСстных ΠΊΠ°ΠΊ синтаксис. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ строгий Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€: Ссли Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Π»ΠΈ ΠΊΡ€ΡƒΠ³Π»ΡƒΡŽ скобку с Ρ„ΠΈΠ³ΡƒΡ€Π½ΠΎΠΉ, ΠΎΠ½ просто откаТСтся ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ языков программирования для ПК, Π³Π΄Π΅ ошибки ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ запускС, здСсь ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° происходит ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ стоит ΡƒΠ΄Π΅Π»ΡΡ‚ΡŒ рСгистру Π±ΡƒΠΊΠ², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ язык C++, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ базируСтся Arduino IDE, чувствитСлСн ΠΊ Π½Π΅ΠΌΡƒ. Команда digitalWrite ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° digitalwrite для компилятора β€” это Π΄Π²Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ, ΠΈ вторая Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ сущСствуСт Π² стандартном ядрС. Π’Π°ΠΊΠΆΠ΅ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ часто ΠΏΡƒΡ‚Π°ΡŽΡ‚ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ‹Ρ‚Π°ΡΡΡŒ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ строку Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΡƒΡŽ для Ρ†Π΅Π»Ρ‹Ρ… чисСл.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹, всСгда провСряйтС баланс скобок. Если Π²Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½ΡƒΡŽ скобку { Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ void loop(), Π²Ρ‹ обязаны Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Ρ‘ } Π² ΠΊΠΎΠ½Ρ†Π΅. ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ этой структуры ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ каскадным ошибкам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ компилятор ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚Π½ΠΎ, указывая Π½Π° строки, Π³Π΄Π΅ ΠΊΠΎΠ΄Π° Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅Ρ‚.

  • πŸ”΄ Забытая Ρ‚ΠΎΡ‡ΠΊΠ° с запятой ; Π² ΠΊΠΎΠ½Ρ†Π΅ строки ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ являСтся самой популярной ΠΎΠΏΠ»ΠΎΡˆΠ½ΠΎΡΡ‚ΡŒΡŽ.
  • πŸ”΄ НСсоотвСтствиС количСства ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… скобок Π² Ρ‚Π΅Π»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
  • πŸ”΄ ИспользованиС Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… слов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, int, void) Π² качСствС ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….
  • πŸ”΄ ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ рСгистр Π±ΡƒΠΊΠ² Π² названиях Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ языка.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если компилятор ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² строкС, Π³Π΄Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ всё ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ строку. Часто пропущСнная Ρ‚ΠΎΡ‡ΠΊΠ° с запятой ΠΈΠ»ΠΈ скобка «прячутся» ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΌ, сбивая парсСр с Ρ‚ΠΎΠ»ΠΊΡƒ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ ΠΈ ΠΈΡ… установка

Когда Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сторонний ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, дисплСй ΠΈΠ»ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, Π²Π°ΠΌ ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда потрСбуСтся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ. Если Π² ΠΊΠΎΠ΄Π΅ присутствуСт Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #include, Π½ΠΎ сама Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π΅ установлСна Π² срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ»ΠΈ установлСна Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, компилятор выдаст Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ Β«fatal error: ...: No such file or directoryΒ». Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ просто Π½Π΅ Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ.

Иногда Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ вСрсий: Π²Ρ‹ скачали Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для Π½ΠΎΠ²ΠΎΠΉ вСрсии Arduino IDE, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ староС ядро, ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Π’Π°ΠΊΠΆΠ΅ частой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ являСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… вСрсий ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ°ΠΏΠΊΠ°Ρ…, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’ этом случаС компилятор Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ„Π°ΠΉΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅Ρ‚ процСсс.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π² вашСм скСтчС. Имя Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ #include Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Если Π²Ρ‹ скачали Π°Ρ€Ρ…ΠΈΠ² с GitHub, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ помСстили ΠΏΠ°ΠΏΠΊΡƒ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ libraries вашСго профиля ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π° Π½Π΅ просто Π·Π°ΠΊΠΈΠ½ΡƒΠ»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΠ°ΠΏΠΊΡƒ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ.

#include <LiquidCrystal.h>  // ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

#include "MySensor.h" // ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ локальной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π“Π΄Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΡƒΡ‚ΠΈ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ?

Π’ Windows ΠΏΡƒΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выглядит Ρ‚Π°ΠΊ: C:\Users\Π˜ΠΌΡΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ\Documents\Arduino\libraries. Π’ macOS: /Users/Π˜ΠΌΡΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ/Documents/Arduino/libraries. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΏΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π΅ содСрТит Π»ΠΈΡˆΠ½ΠΈΡ… символов Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Β«-masterΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ скачивании с GitHub.

Настройки ΠΏΠ»Π°Ρ‚Ρ‹ ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΠΎΡ€Ρ‚ΠΎΠ²

Π”Π°ΠΆΠ΅ Ссли ΠΊΠΎΠ΄ написан идСально, ошибка компиляции ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΈΠ·-Π·Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ устройства Π² мСню инструмСнтов. Arduino Uno базируСтся Π½Π° процСссорС ATmega328P, ΠΈ Ссли Π² настройках Π²Ρ‹Π±Ρ€Π°Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ устройство (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Arduino Nano с Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠΌ ΠΈΠ»ΠΈ Leonardo), компилятор попытаСтся ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ нСсовмСстимости ΠΊΠΎΠΌΠ°Π½Π΄.

ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π²Π°ΠΆΠ½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ являСтся Π²Ρ‹Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π°. Π₯отя отсутствиС Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π° Ρ‡Π°Ρ‰Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… конфигурациях IDE ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€ΡƒΠ³Π°Ρ‚ΡŒΡΡ Π½Π° отсутствиС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ устройства ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ компиляции с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ„Π»Π°Π³Π°ΠΌΠΈ. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π² мСню Tools β†’ Board Π²Ρ‹Π±Ρ€Π°Π½Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ваша модСль, Π° Π² мСню Tools β†’ Processor (Ссли доступно) ΡƒΠΊΠ°Π·Π°Π½ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‡ΠΈΠΏ.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ настройки компиляции. Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ слишком большого количСства ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ (warnings) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ воспринято ΠΊΠ°ΠΊ ошибка, Ссли Π² настройках IDE стоит опция Β«Treat warnings as errorsΒ». Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌ старыС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с Π½Π΅ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Uno Частая ошибка
Board Arduino Uno Arduino Nano / Mega
Processor ATmega328P ATmega328P (Old Bootloader)
Port COM3 (Windows) / ttyUSB0 (Linux) НС Π²Ρ‹Π±Ρ€Π°Π½ ΠΈΠ»ΠΈ COM1
Programmer AVRISP mkII (ΠΈΠ»ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) USBasp (Π±Π΅Π· внСшнСго ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π°)
πŸ“Š Какая ошибка встрСчаСтся Ρƒ вас Ρ‡Π°Ρ‰Π΅ всСго?
БинтаксичСская (Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой)
ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
НСвСрно Π²Ρ‹Π±Ρ€Π°Π½Π° ΠΏΠ»Π°Ρ‚Π°
ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ USB

ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Π―Π·Ρ‹ΠΊ программирования Π½Π΅ позволяСт Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΉ области видимости. Если Π²Ρ‹ Π½Π°Π·ΠΎΠ²Π΅Ρ‚Π΅ свою ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ delay ΠΈΠ»ΠΈ micros, компилятор выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ эти ΠΈΠΌΠ΅Π½Π° ΡƒΠΆΠ΅ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ встроСнными функциями ядра Arduino. Π­Ρ‚ΠΎ классичСская ошибка, которая ставит Π² Ρ‚ΡƒΠΏΠΈΠΊ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ выглядит Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ, Π½ΠΎ систСма отказываСтся Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ.

Аналогичная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ объявлСнии Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Если Π²Ρ‹ Π΄Π²Π°ΠΆΠ΄Ρ‹ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ void setup() ΠΈΠ»ΠΈ создадитС Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π½Π΅ смоТСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π΅Ρ€ΡΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ прСфиксы для своих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. НапримСр, вмСсто time Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ myTime ΠΈΠ»ΠΈ sensorTime. Π­Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ ΠΎΡ‚ пСрСсСчСния с Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ словами. ВсСгда провСряйтС список Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов ΠΏΠ΅Ρ€Π΅Π΄ Π²Π²ΠΎΠ΄ΠΎΠΌ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

  • 🟑 ИспользованиС ΠΈΠΌΠ΅Π½ встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, pinMode) для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….
  • 🟑 Π”ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Ρ€Π°Π·Π½Ρ‹Ρ… Π²ΠΊΠ»Π°Π΄ΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
  • 🟑 ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ глобально.
  • 🟑 ΠžΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ Π² ΠΈΠΌΠ΅Π½Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ случайно ΡΠΎΠ·Π΄Π°ΡŽΡ‚ совпадСния с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ нСсколько Π²ΠΊΠ»Π°Π΄ΠΎΠΊ (Ρ„Π°ΠΉΠ»ΠΎΠ²) Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΈΠ· основного Ρ„Π°ΠΉΠ»Π°, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈΠ»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅Π΄ void setup().

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ATmega328P, установлСнный Π½Π° ΠΏΠ»Π°Ρ‚Π΅ Arduino Uno, ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ рСсурсы: всСго 32 ΠšΠ‘ Ρ„Π»Π΅Ρˆ-памяти для ΠΊΠΎΠ΄Π° ΠΈ 2 ΠšΠ‘ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. Если ваш скСтч слишком Π²Π΅Π»ΠΈΠΊ ΠΈΠ»ΠΈ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ тяТСлыС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, компилятор выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ пСрСполнСния памяти. Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Β«Sketch too bigΒ» ΠΈΠ»ΠΈ Β«section .text overflowΒ» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ физичСски Π½Π΅ помСщаСтся Π² Ρ‡ΠΈΠΏ.

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ динамичСской памяти (RAM) происходит, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ создаСтС слишком ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ большиС массивы. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ пСрСполнСния Ρ„Π»Π΅Ρˆ-памяти, эту ΠΎΡˆΠΈΠ±ΠΊΡƒ компилятор ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ сразу, Π½ΠΎ ΠΎΠ½Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΏΠ»Π°Ρ‚Ρ‹. Однако, Ссли Π²Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ массив слишком большим статичСски, ошибка ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π΅Ρ‰Π΅ Π½Π° этапС компиляции.

Для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… мСньшСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ‚Π°ΠΌ, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. НапримСр, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ byte вмСсто int, Ссли ваши числа Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‚ 255. Π’Π°ΠΊΠΆΠ΅ удаляйтС Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ Π² Serial.print, Ссли ΠΎΠ½ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ Π² Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ вСрсии, хотя это влияСт скорСС Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, Ρ‡Π΅ΠΌ Π½Π° RAM.

ЧастыС вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ (FAQ)

ΠŸΠΎΡ‡Π΅ΠΌΡƒ компилятор ΠΏΠΈΡˆΠ΅Ρ‚ Β«exit status 1Β», Π½ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ?

Π­Ρ‚ΠΎ сообщСниС ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ процСсс компиляции Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΡΡ Π½Π΅ΡƒΠ΄Π°Ρ‡Π΅ΠΉ, Π½ΠΎ само описаниС ошибки ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ находится Π²Ρ‹ΡˆΠ΅ Π² Ρ‡Π΅Ρ€Π½ΠΎΠΉ консоли. ΠŸΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚Π΅ ΠΎΠΊΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° Π²Π²Π΅Ρ€Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΊΡ€Π°ΡΠ½ΡƒΡŽ строку с описаниСм ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«error: 'led' was not declared in this scopeΒ».

ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ антивирус Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ компиляции?

Π”Π°, Π² Ρ€Π΅Π΄ΠΊΠΈΡ… случаях антивирусноС ПО ΠΌΠΎΠΆΠ΅Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ доступ Arduino IDE ΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ компилятора (avr-gcc), считая ΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ с Arduino IDE Π² ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρƒ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ?

Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° нСсовмСстима с вашСй вСрсиСй IDE ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ вСрсии компилятора.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ кэш компилятора, Ссли ошибка каТСтся случайной?

Иногда Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ компиляции ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π°ΡŽΡ‚ΡΡ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ IDE, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ находится Π² систСмном Temp) ΠΈΠ»ΠΈ просто ΠΏΠ΅Ρ€Π΅ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ скСтч ΠΏΠΎΠ΄ Π½ΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ.