13-12-2020, 16:31
3 комментариев
Даже опытные программисты-«ардуинщики» могут столкнуться с ошибками компиляции. Исправить их не сложно, а вот найти порой не так просто. Мы решили рассказать сегодня в деталях, какие системные ошибки чаще возникают на различных платах Ардуино, как их исправить и по возможности избежать.
Для начала рассмотрим базовые, так называемые синтаксические ошибки. Они встречаются чаще всего у новичков, но и опытные электронщики с ними точно знакомы не понаслышке. Искать их обычно супер-просто – в Arduino IDE некорректный синтаксис выделяется построчно (таким образом значительно легче отыскать неточность в кодах). Обычно это: отсутствие скобки в конце команды, пропуск этой самой служебной команды или слова, нехватка важных функций, неправильное их написание и т.д.
Для быстрого поиска ошибки советуем рассмотреть строку-подсказку. Ничего не помогло? Тогда для вас наша подборка наиболее распространенных синтаксических ошибок:
С синтаксисом все понятно – вставляем пропущенные символы, убираем лишние знаки, возвращаем функции по умолчанию.
Напомним, в среде разработки Ардуино IDE можно заливать скетчи для различных микроконтроллеров. По умолчанию обычно указана плата Genuino Uno. Если вы работаете с Mega, следует выбрать именно эту платформу (меню «Сервис»), иначе вас ожидает неприятное предупреждение: “programmer is not responding”.
Ошибка компиляции для платы Arduino Uno чаще всего возникает из-за проблем, связанных с библиотеками, например, неправильно подключили, не то ПО инсталлировали. В этом случае вы увидите напоминание “fatal error: … No such file or directory” (библиотека не перенесена в папку libraries) или “redefinition of void setup”.
Обозначенная на скриншоте ERROR означает, что программирование завершилось некорректно (расшифровываем: внутренние проблемы с компилятором, не обновили версию IDE, сбой в библиотеке, неправильный выбор разрядности операционной системы и др.).
Важно! Не забывайте использовать подсказки приложения – они очень помогают. Включаем тут: Файл -> Настройки -> «Показать подробный вывод во время компиляции».
Что делать, если произошла ошибка при загрузке скетча Arduino Nano. Тут могут быть те же причины, что мы описали выше. Особых отличий в компиляции плат нет, главное, их правильный выбор первоначально. Однако часто пользователи настраивают не те показатели скорости порта: 9600 вместо необходимых 57600 либо не имеют соответствующих драйверов на устройствах – все это нужно проверить и исправить!
-
#26
ОК, спасибо за оо-очень оперативный отзыв!
…вначале убрал запятую в названии папки. Не прошло.
Потом ваще удалил эту папку. компиляция прошла без коментов, а вот загрузка завершилась указанием на ошибку:
Но в настройках вроде ж LOLIN (Wemos) есть…
Куда копать?
Старик Похабыч, заранее Вам благодарен!
-
#27
Прошу прощения, меня тут чуток осенило — освежить версию Wemos. Выбрал версию для нее 2.5.2
И вот загрузка завершена, тока опять «библиотеки..
Или терь можно пробовать подключать к адресной матрице?
-
#28
Причина во всем — бардак при установке библиотек. Чем исправлять мне кажется проще переустановить всю среду и установить нужные библиотеки из файла проекта.
И не надо постить такие картинки — они излишни. Если хочется картинкой — вырежьте только нужную часть с ошибками. А еще лучше скопируйте текст и выложите его как цитату в спойлере.
Но судя по картинкам прошивка прошло. не прошла верификация данных. Такое бывает и при удачной прошивке. Попробуйте подключиться.
-
#29
Доброго времени суток!
К сожалению, не получилось, рано я обрадовался…
Терь выдало оранжевым текстом:
Несколько библиотек найдено для «FastLED.h»
Используется: C:Program Files (x86)ArduinolibrariesFastLED-stm32patch
Не используется: C:Program Files (x86)ArduinolibrariesFastLED-3.2.9
Не используется: C:Program Files (x86)Arduinolibrariessrc
Ошибка компиляции для платы LOLIN(WEMOS) D1 R2 & mini.
Чот чем дальше в лес…
1) Не понял, почему ошибка компиляции для платы LOLIN(WEMOS) D1 R2 & mini, хотя в «Инструменты менеджер плат…» установил ESP8266 LOLIN (Wemos)…
2) Не понял, почему » Не используется: C:Program Files (x86)ArduinolibrariesFastLED-3.2.9″, хотя папка с таким именем имеется в папке
Windows(С) > ProgramFiles (86x)>Arduino
Ну, и дальше белым текстом в логе:
Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariesci: нет заголовочных файлов (.h), найденных в C:Program Files (x86)Arduinolibrariesci
Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariesdocs: нет заголовочных файлов (.h), найденных в C:Program Files (x86)Arduinolibrariesdocs
Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariesexamples: нет заголовочных файлов (.h), найденных в C:Program Files (x86)Arduinolibrariesexamples
Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariesextras: нет заголовочных файлов (.h), найденных в C:Program Files (x86)Arduinolibrariesextras
Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariesschemes: нет заголовочных файлов (.h), найденных в C:Program Files (x86)Arduinolibrariesschemes
Неверная библиотека найдена в C:Program Files (x86)ArduinolibrariesSTM32: нет заголовочных файлов (.h), найденных в C:Program Files (x86)ArduinolibrariesSTM32
Неверная библиотека найдена в C:UsersdosumOneDriveДокументыArduinolibrariesBlink: нет заголовочных файлов (.h), найденных в C:UsersdosumOneDriveДокументыArduinolibrariesBlink
А может просто снести все свои библиотеки в корзину — и заново установить, НО внести только этот проект? (а то у меня с другого проекта библиотека тож висит) — страшновато…
Понимаю, скоко нецензуры в мой адрес, но все-таки Чайник Заранее благодарен!
-
#30
Здравствуйте, попробуйте изменить вызов библиотеки с такого «FastLED.h», на такой <FastLED.h>
-
#31
@Nick_SPb, спасибо за оперативный отзыв ! Да, учел это еще с прошлого раза и сразу меняю апострофы на значки <>.
Снес все библиотеки… Скачал, распаковал и заново установил все папки GyverMatrixBT-master
Терь пишет:
Arduino: 1.8.15 (Windows 10), Плата:»LOLIN(WEMOS) D1 R2 & mini, 80 MHz, Flash, Disabled, All SSL ciphers (most compatible), 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 921600″
GyverMatrixOS_v1.12:138:21: fatal error: FastLED.h: No such file or directory #include <FastLED.h>
^
compilation terminated.
exit status 1
FastLED.h: No such file or directory
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
Мож, это как-то поможет понять, что я не то натворил…
-
#32
Так вы справились с проблемой?
Теперь он не может найти библиотеку, меняйте обратно на кавычки…))) или устанавливайте библиотеку через zip- архив
Кстати, заметил, что если создать в директории с проектом, простым копированием (так я пытался сохранить роботоспособную версию) файл с проектом, то компилятор не смотря на приписку «копия» пытается добавить его в проект, откуда появляется многоразовое подключение библиотек, и конфликт переменных.
P.S. замечено на портабле версии 1.8.2
-
#33
1) с проблемой не справился
2) пробовал менять на кавычки, прога на это не реагирует, просто пишет: No such file or directory «FastLED.h» или No such file or directory #include <FastLED.h>
3) Снова удалил все папки из библиотеки и скачал из zip- архив
Итог после компиляции: No such file or directory «FastLED.h»
Где можно взять этот «FastLED.h» и установить? У меня же установлена папка FastLED-3.2.9, вроде она свежее…
-
#34
судя по всему вы неверно устанавливаете библиотеки.
При правильной установке в правом пункте меню, подпункте примеры должны появиться примеры для библиотеки. Надо открыть любой (если есть!) и попробовать скомпилировать.
А так же попробовать скомпилировать пустой код или блинк для выбранной платы.
-
#35
-
169.7 KB
Просмотры: 5
-
#36
Вот как выглядит папка libraries:
Внутри нет никаких ESP, Arduino, а сразу все библиотеки, в т.ч. FastLED
-
#37
Не понял, почему ошибка компиляции для платы LOLIN(WEMOS) D1 R2 & mini
Наверно, потому, что использовалась библиотека
C:Program Files (x86)ArduinolibrariesFastLED-stm32patch
Wemos и stm32 чувствуете разницу?
Внутри папки ESP,Arduino (запятую ставил не я, она так и скачивается с этой запятой) есть папка FatLED-3.2.9, внутри которой и есть файл FastLED.h
А папку с файлами .h можно обзывать другими именами, отличными от имен заголовочных файлов? По-моему об этом в первом посте написано.
-
#39
@Puma,
Огромное спасибо за подсказку, после завтра Новый Год, а я с такой же проблемой завис и как чайник не додумался, да и сейчас не понимаю, зачем библиотеки лежали в папке ESP, ARDUINO. Так же вынул их оттуда и положил в — диска С, программ файл, Ардуино, библиотеки и все ЗАРАБОТАЛО! Спасибо тебе, Puma, просто спас!
Всех благ в Новом Году!
-
#40
В общем помучился я «немного» с этим скетчем.
1. Скачиваете в папку с библиотеками библиотеку FastLED вот по этой ссылке: https://github.com/FastLED/FastLED
2 В среде Ардуино выбираете меню «Скетч» — «Подключить библиотеку»- «Добавить ZIP библиотеку» выбираете ZIP-архив скачанный в п.1
3. Компилируете, вывалится ошибка в файле runningTEXT.ino заменяете текст процедуры getFont на следующий:
uint8_t getFont(uint8_t font, uint8_t row)
{
uint8_t fontTyp;
font = font — ‘0’ + 16; // перевод код символа из таблицы ASCII в номер согласно нумерации массива
if (font <= 90) fontTyp = pgm_read_byte(&(fontHEX[font][row])); // для английских букв и символов
else if (font >= 112 && font <= 159)
{ // и *****ц ждя русских
fontTyp = pgm_read_byte(&(fontHEX[font — 17][row]));
}
else if (font >= 96 && font <= 111)
{
fontTyp = pgm_read_byte(&(fontHEX[font + 47][row]));
}
return fontTyp;
}
4. Компилируете. У меня копмпиляция закончилась без ошибок. На железе не проверял )
С наступающим Новым годом)
-
#41
Всем доброго времени суток! Столкнулся с уже вышеописанной проблемой. В моём случае все библиотеки установлены из менеджера библиотек и болтаются в стандартной директории. Перемещение библиотеки в локальную папку с заменой треугольных кавычек <…> на обычные «…» в принципе решает проблему, но, имхо, выглядит как костыль. Да и в случае со сложными зависимостями перенос всех библиотек в папку с проектом будет пытке подобно. С данной проблемой столкнулся только когда пересел на ноутбук (Windows 11 и версия IDE 2.хх). Складывается такое ощущение, что IDEшка ставит библиотеки в одну папку, а ищет в другой. Что можете посоветовать? Заранее благодарю )))
-
#42
@Alfaryi, если вы «доросли» до сложный зависимостей, то бросьте Arduino IDE, потратьте 1 день и перейдите на Platformio + VSCode.
-
#43
@vortigont, я с Вами согласен. Моей первоначальной целью была быстрая проверка работоспособности экрана. Далее Arduino мне в принципе и не нужно. Но надо разобраться! Достаточно давно сталкивался с чем-то похожим в Eclipse, но чем всё кончилось, увы, не помню.
СОДЕРЖАНИЕ ►
- FastLED описание библиотеки на русском
- Ошибка скетча ‘fastled h no such file or directory’
- Описание команд библиотеки FastLED.h на русском
- Скетчи с примерами FastLED Arduino и WS2812B
- FastLED скачать библиотеку для Arduino
Библиотека для Arduino FastLED применяется для создания различных эффектов на адресной светодиодной ленте WS2812B. При разработке гирлянды на Ардуино использовалась именно эта библиотека, с помощью которой было сделано множество интересных эффектов. Чтобы разобраться в коде, необходимо отдельно рассмотреть описание библиотеки FastLED.h на русском с примерами программ.
Arduino FastLED описание библиотеки
Скачать библиотеку можно на нашем сайте, на странице — Библиотеки для Ардуино, также ссылку для скачивания Фастлед мы разместили в конце этой записи. В архиве, как и в прочих популярных библиотеках для управления лентой ws2812b Ардуино, имеется несколько примеров скетчей, с помощью которых можно самостоятельно разобраться, как правильно использовать команды библиотеки FastLED.
Ошибка ‘FastLED.h no such file or directory’
Первое, с чем сталкивается каждый начинающий программист и долго не может понять в чем причина — это ошибки компиляции Ардуино при загрузке скетча. Ошибка FastLED.h no such file or directory означает, что на компьютере не установлена библиотека FastLED.h. Проблему достаточно просто устранить, установив FastLED. Это правило действует и при возникновении такой ошибки с другими библиотеками.
Описание команд библиотеки FastLED на русском
Далее пошагово разберем способ работы с библиотекой FastLED. Первым делом необходимо подключить библиотеку в скетче через команду #include. Затем следует задать константы (#define) для удобства программирования — количество пикселей и пин для подключения адресной ленты. В примерах можно встретить вариант, что тип адресной ленты и ее цветовой режим тоже задаются с помощью констант.
#include <FastLED.h> // подключаем библиотеку #define NUM_LEDS 100 // указываем количество светодиодов на ленте #define PIN 4 // указываем пин для подключения ленты CRGB leds[NUM_LEDS]; void setup() { // основные настройки для адресной ленты FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(50); }
Кроме основных настроек в процедуре void setup() еще указывается яркость для светодиодов с помощью команды FastLED.setBrightness() — максимальное значение 255. Яркость можно поменять в любом месте программы, в том числе и в процедуре void loop(). В основном цикле будем включать последовательно пиксели разными цветами, которые задаются с помощью RGB палитры (объединим код для платы).
#include <FastLED.h> // подключаем библиотеку #define NUM_LEDS 100 // указываем количество светодиодов на ленте #define PIN 4 // указываем пин для подключения ленты CRGB leds[NUM_LEDS]; void setup() { // основные настройки для адресной ленты FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(50); } void loop() { leds[0] = CHSV(0, 0, 255); // задаем для первого пикселя синий цвет FastLED.show(); // отправляем информацию на ленту delay(500); leds[1] = CHSV(0, 255, 0); // задаем для второго пикселя зеленый цвет FastLED.show(); // отправляем информацию на ленту delay(500); leds[2] = CRGB::Red; // задаем для третьего пикселя красный цвет FastLED.show(); // отправляем информацию на ленту delay(500); leds[3] = CRGB::White; // задаем для четвертого пикселя белый цвет FastLED.show(); // отправляем информацию на ленту delay(500); }
После загрузки прошивки вы можете поменять цвета пикселей на ленте. Как вы уже поняли из примера, цвета можно задавать двумя способами. А далее мы рассмотрим более сложные эффекты с библиотекой фастлед, которые в основе используют цикл for для быстрой отправки информации на ws2812b. Кроме предложенных вариантов, попробуйте загрузить в Ардуино скетчи из примеров для данной библиотеки.
FastLED примеры эффектов для WS2812B
Скетч для FastLed с эффектом «радуга»
#include "FastLED.h" // подключаем библиотеку фастлед byte bright = 50; // яркость LED светодиодов byte baza = 0; // изменение оттенка LED #define NUM_LEDS 100 #define PIN 4 CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(bright); } void loop() { for (int i = 0; i < NUM_LEDS; i++) { leds[i] = CHSV(baza+ i * 5, 255, 255); } baza++; FastLED.setBrightness(bright); FastLED.show(); delay(20); }
Скетч для FastLed с эффектом «конфетти»
#include "FastLED.h" // подключаем библиотеку фастлед byte bright = 50; // яркость LED светодиодов byte baza = 0; // изменение оттенка LED #define NUM_LEDS 100 #define PIN 4 CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(bright); } void loop() { fadeToBlackBy(leds, NUM_LEDS, 2); int pos = random16(NUM_LEDS); leds[pos] += CHSV(baza++ + random8(64), 200, 255); FastLED.setBrightness(bright); FastLED.show(); }
Скетч для FastLed с эффектом «бегущий огонек»
#include "FastLED.h" // подключаем библиотеку фастлед byte bright = 50; // яркость LED светодиодов byte baza = 0; // изменение оттенка LED #define NUM_LEDS 100 #define PIN 4 CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(bright); } void loop() { fadeToBlackBy(leds, NUM_LEDS, 2); int pos = beatsin16(13, 0, NUM_LEDS - 1); leds[pos] += CHSV(baza++, 255, 192); FastLED.setBrightness(bright); FastLED.show(); }
Скетч для FastLed с эффектом «циклон»
#include "FastLED.h" // подключаем библиотеку фастлед byte bright = 50; // яркость LED светодиодов byte baza = 0; // изменение оттенка LED #define NUM_LEDS 100 #define PIN 4 CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(bright); } void loop() { for (int i = 0; i < NUM_LEDS; i++) { leds[i].nscale8(250); } for (int i = 0; i < NUM_LEDS; i++) { leds[i] = CHSV(baza++, 255, 255); FastLED.setBrightness(bright); FastLED.show(); delay(20); } }
Скетч для FastLed с эффектом «фокус»
#include "FastLED.h" // подключаем библиотеку фастлед byte bright = 50; // яркость LED светодиодов byte baza = 0; // изменение оттенка LED #define NUM_LEDS 100 #define PIN 4 CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(bright); } void loop() { fadeToBlackBy(leds, NUM_LEDS, 2); for (int i = 0; i < 8; i++) { leds[beatsin16(i + 7, 0, NUM_LEDS - 1)] |= CHSV(baza+=16, 200, 255); } FastLED.setBrightness(bright); FastLED.show(); delay(20); }
Скетч для FastLed с эффектом «радуга с мерцанием»
#include "FastLED.h" // подключаем библиотеку фастлед byte bright = 50; // яркость LED светодиодов byte baza = 0; // изменение оттенка LED #define NUM_LEDS 100 #define PIN 4 CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds <WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(bright); } void loop() { fill_rainbow( leds, NUM_LEDS, baza++, 7); if (random8() < 80) { leds[ random16(NUM_LEDS) ] += CRGB::White; } FastLED.setBrightness(bright); FastLED.show(); delay(20); }
Скачать библиотеку FastLED для Ардуино
Скачать библиотеку FastLED Arduino можно по ссылке: скачать FastLED.h. Кроме того, скачать все популярные библиотеки для программирования Arduino Uno или Nano с адресной лентой можно на странице — Библиотеки Ардуино. Если у вас остались вопросы по командам библиотеки Fast LED или вы хотите предложить свои варианты эффектов для адресных светодиодов — оставляйте их в комментариях к записи.
I’m trying to compile FastLED library for my STM32F103C using Arduino 1.8.5 IDE, but getting this error:
In file included from C:Program Files
(x86)ArduinolibrariesFastLED/led_sysdefs.h:32:0,
from C:Program Files
(x86)ArduinolibrariesFastLED/FastLED.h:44,
from
C:ProjectsioSmartHomearduinoColorPalette_stm32ColorPalette_stm32.ino:1:
C:Program Files
(x86)ArduinolibrariesFastLED/platforms/avr/led_sysdefs_avr.h:12:20: fatal
error: avr/io.h: No such file or directory
#include <avr/io.h>
^
compilation terminated.
exit status 1
Error compiling for board Generic STM32F103C series.
I just have no idea why it’s trying to include this file which isn’t existed for this platform. Any idea?
asked Nov 29, 2017 at 7:51
1
More specifically, for a variety of historical reasons, if FastLED can’t determine the hardware platform/board being built for, it falls back to avr — and this particular STM chipset isn’t directly supported in FastLED at the moment — there’s a fork running around that has added support for it, but I haven’t had a chance to pull it back into the main library.
answered Nov 30, 2017 at 3:44
<avr/io.h> is a header file used to interface the IO registers of the AVR micro-controllers. Most Arduinos are AVR-based, and some Arduino libraries assume an AVR core. This seems to bee the case with the FastLED library you are trying to use.
Your microcontroller, however, is an STM32, with an ARM core. It is not an AVR, and it will not work with code that assumes you have an AVR core.
answered Nov 29, 2017 at 8:16
Edgar BonetEdgar Bonet
39.3k4 gold badges35 silver badges72 bronze badges
Библиотека FastLED Ардуино описание на русском
Библиотека для Arduino FastLED применяется для создания различных эффектов на адресной светодиодной ленте WS2812B. При разработке гирлянды на Ардуино использовалась именно эта библиотека, с помощью которой было сделано множество интересных эффектов. Чтобы разобраться в коде, необходимо отдельно рассмотреть описание библиотеки FastLED.h на русском с примерами программ.
Arduino FastLED описание библиотеки
Скачать библиотеку можно на нашем сайте, на странице — Библиотеки для Ардуино, также ссылку для скачивания Фастлед мы разместили в конце этой записи. В архиве, как и в прочих популярных библиотеках для управления лентой ws2812b Ардуино, имеется несколько примеров скетчей, с помощью которых можно самостоятельно разобраться, как правильно использовать команды библиотеки FastLED.
Ошибка ‘FastLED.h no such file or directory’
Первое, с чем сталкивается каждый начинающий программист и долго не может понять в чем причина — это ошибки компиляции Ардуино при загрузке скетча. Ошибка FastLED.h no such file or directory означает, что на компьютере не установлена библиотека FastLED.h. Проблему достаточно просто устранить, установив FastLED. Это правило действует и при возникновении такой ошибки с другими библиотеками.
Описание команд библиотеки FastLED на русском
Далее пошагово разберем способ работы с библиотекой FastLED. Первым делом необходимо подключить библиотеку в скетче через команду #include . Затем следует задать константы ( #define ) для удобства программирования — количество пикселей и пин для подключения адресной ленты. В примерах можно встретить вариант, что тип адресной ленты и ее цветовой режим тоже задаются с помощью констант.
Кроме основных настроек в процедуре void setup() еще указывается яркость для светодиодов с помощью команды FastLED.setBrightness() — максимальное значение 255. Яркость можно поменять в любом месте программы, в том числе и в процедуре void loop(). В основном цикле будем включать последовательно пиксели разными цветами, которые задаются с помощью RGB палитры (объединим код для платы).
После загрузки прошивки вы можете поменять цвета пикселей на ленте. Как вы уже поняли из примера, цвета можно задавать двумя способами. А далее мы рассмотрим более сложные эффекты с библиотекой фастлед, которые в основе используют цикл for для быстрой отправки информации на ws2812b. Кроме предложенных вариантов, попробуйте загрузить в Ардуино скетчи из примеров для данной библиотеки.
Источник
Arduino.ru
exit status 1 Ошибка компиляции для платы Arduino Nano.Задолбало
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
После долгих мучений все заработало . Пришлось несколько раз ардуино иде искать и скачивать , проблемма в ней оказалась .
ну если не в состоянии прочитать текст сообщения #67 — то только и остается по кругу ИДЕ переставлять. Сказано же четко — автор проекта неправильно описал библиотеку. ее нужно не устанавливать средствами Ардуино ИДЕ, а вручную положить в папку со скетчем. Неужели это так трудно понять?
Хотя некоторые и при отстуствии драйверов на флешку первым делом бегут всю винду переставлять.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Какраз в иде проблемма была . весь форум перелопатил , что только не делал и по подсказкам форума и по своему , все равно ни чег не шло . Переставил стал другую ошибку выдавать , пока не нашел нормальную иде . Вссе сделал , как и до переустановки и сразу все пошло и скетч и русский язык и все ,что мне нужно с ним делать.Теперь думаю , как эту ид на флешку или диск сбросить вместе с библиотеками , чтоб потом не искать .
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Может мне кто поможет. Правда у меня Arduino UNO
Есть скетч для Nano, пытаюсь залить в UNO — выдает ошибку при заливке. Я начинающий и только на первых шагах.
Библиотеки лежат в папке со скетчем
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
«fatal error: LiquidCrystal_I2C.h: No such file or directory» — первод требуется?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Да разобрался поставил другие библиотеки и пошло.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
И у меня такая же проблема. Заливаю скетч и он выдаёт ошибку, говоря что ожидается деконструктор, конструктор или ещё что-то, указывая на строку в коде: digitalWrite(CS, HIGH);
Подключал светодиодную плату. (Просто написал, а то мало ли) в начале кода объявил константу, так что не подумайте.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
И у меня такая же проблема. Заливаю скетч и он выдаёт ошибку, говоря что ожидается деконструктор, конструктор или ещё что-то, указывая на строку в коде: digitalWrite(CS, HIGH);
какая же это нафик «такая же проблема», если ошибка совсем другая? Или вы не вникаете и для вас любая ошибка при компиляции — «такая же»?
По делу — приведите текст скетча и скопируйте сюда лог компиляции с ошибками. Только не надо вставлять скриншоты Ардуино ИДЕ или видео компиляции — это никому не интересно.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
извините, если сильно многонаписал
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
И у меня такая же проблема. Заливаю скетч и он выдаёт ошибку, говоря что ожидается деконструктор, конструктор или ещё что-то, указывая на строку в коде: digitalWrite(CS, HIGH);
какая же это нафик «такая же проблема», если ошибка совсем другая? Или вы не вникаете и для вас любая ошибка при компиляции — «такая же»?
По делу — приведите текст скетча и скопируйте сюда лог компиляции с ошибками. Только не надо вставлять скриншоты Ардуино ИДЕ или видео компиляции — это никому не интересно.
на счёт того ,что я писал «такая же проблема», я имел ввиду, что у менятоже в ошибке написано «exit status1». не удивляйтесь, я новичок.
Источник
Ошибка include fastled h на ардуино нано
ZuBaKa
Alex_w0lf
При компиляции выдаёт ошибку (https://github.com/AlexGyver/LEDstairs):
/root/arduino/LEDstairs-master/firmware/LEDstairs_v1.0/LEDstairs_v1.0.ino:184:25: warning: invalid conversion from ‘byte ‘ to ‘ ‘ [-fpermissive]
curEffect = effectCounter;
В чём может быть проблема?
bort707
body747
при компиляции любого скетча (перепробывал несколько )
Arduino: 1.8.13 (Windows 10), Плата:»Arduino Pro or Pro Mini, ATmega328P (5V, 16 MHz)»
ArdBir_2_6_70b10:103:10: fatal error: Pcb_Brauduin original.h: No such file or directory
#include «Pcb_Brauduin original.h»
Pcb_Brauduin original.h: No such file or directory
подскажите пожалуйста в чем проблема ?
Crazy
при компиляции любого скетча (перепробывал несколько )
Arduino: 1.8.13 (Windows 10), Плата:»Arduino Pro or Pro Mini, ATmega328P (5V, 16 MHz)»
ArdBir_2_6_70b10:103:10: fatal error: Pcb_Brauduin original.h: No such file or directory
#include «Pcb_Brauduin original.h»
Pcb_Brauduin original.h: No such file or directory
body747
Crazy
body747
на разных сайтах пишут ,что все работает(мне один раз удалось залить скетч, но появились обновленные ,начал ставить и ошибки)
Crazy
Александр Симонов
при компиляции любого скетча (перепробывал несколько )
Arduino: 1.8.13 (Windows 10), Плата:»Arduino Pro or Pro Mini, ATmega328P (5V, 16 MHz)»
ArdBir_2_6_70b10:103:10: fatal error: Pcb_Brauduin original.h: No such file or directory
#include «Pcb_Brauduin original.h»
Pcb_Brauduin original.h: No such file or directory
подскажите пожалуйста в чем проблема ?
dfv74
Александр Симонов
dfv74
Александр Симонов
anton_b
C:Program Files (x86)ArduinolibrariesLCD_1602_RUS-masterLCD_1602_RUS.cpp: In member function ‘void LCD_1602_RUS: rint(const wchar_t*)’:
C:Program Files (x86)ArduinolibrariesLCD_1602_RUS-masterLCD_1602_RUS.cpp:62:23: warning: NULL used in arithmetic [-Wpointer-arith]
while(_str[size] != NULL)
^
Прошивка после этого загружается, но на дисплейне не выводится текст, только подсвечивается. Вся схема запаяна правильно
Александр Симонов
C:Program Files (x86)ArduinolibrariesLCD_1602_RUS-masterLCD_1602_RUS.cpp: In member function ‘void LCD_1602_RUS: rint(const wchar_t*)’:
C:Program Files (x86)ArduinolibrariesLCD_1602_RUS-masterLCD_1602_RUS.cpp:62:23: warning: NULL used in arithmetic [-Wpointer-arith]
while(_str[size] != NULL)
^
Прошивка после этого загружается, но на дисплейне не выводится текст, только подсвечивается. Вся схема запаяна правильно
lgw250120
Александр Симонов
Arhat109
Старик Похабыч
byters
Arduino ProMicro, IDE 1.8.13
Александр Симонов
Arduino ProMicro, IDE 1.8.13
JUKKIO
Доброго времени суток. Собрал проект гирлянда, залил программу все отлично работает от одной кнопки управляется. Решил подключить IR приемник для управления от пульта, прописал в скетче единичку и все ошибка компиляции. ничего не могу сделать.
При компиляции выдает ошибку
collect2.exe: error: ld returned 1 exit status
exit status 1
Ошибка компиляции для платы Arduino Nano328
Arduino: 1.8.13 (Windows 7), Плата:»Arduino Nano, ATmega328P (Old Bootloader)»
In file included from C:Program FilesArduinolibrariesFastLED-3.2.9/bitswap.h:4:0,
from E:Копия файлов СChristmasLights-masterChristmasLights-masterfirmwarenotamesh4_gyver_naunotamesh4_gyver_nau.ino:1:
C:Program FilesArduinolibrariesFastLED-3.2.9/FastLED.h:14:21: note: #pragma message: FastLED version 3.002.009
# pragma message «FastLED version 3.002.009»
1AppDataLocalTempccWehXug.ltrans0.ltrans.o: In function `global constructors keyed to 65535_0_notamesh4_gyver_nau.ino.cpp.o.3883′:
.text.startup+0x38): undefined reference to `IRrecv::IRrecv(int)’
C:UsersA4F7
1AppDataLocalTempccWehXug.ltrans0.ltrans.o: In function `setup’:
E:Копия файлов СChristmasLights-masterChristmasLights-masterfirmwarenotamesh4_gyver_nau/1main.ino:192: undefined reference to `IRrecv::enableIRIn()’
1AppDataLocalTempccWehXug.ltrans0.ltrans.o: In function `loop’:
E:Копия файлов СChristmasLights-masterChristmasLights-masterfirmwarenotamesh4_gyver_nau/1main.ino:490: undefined reference to `IRrecv::isIdle()’
E:Копия файлов СChristmasLights-masterChristmasLights-masterfirmwarenotamesh4_gyver_nau/1main.ino:492: undefined reference to `IRrecv::decode(decode_results*)’
E:Копия файлов СChristmasLights-masterChristmasLights-masterfirmwarenotamesh4_gyver_nau/1main.ino:506: undefined reference to `IRrecv::resume()’
collect2.exe: error: ld returned 1 exit status
Ошибка компиляции для платы Arduino Nano.
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
Источник
Ошибка include fastled h на ардуино нано
berlingos
Ребят, подскажите, что не так делаю. Плата от Михаила с подсветкой адресными светодиодами. Есть в этой теме в сообщении 219 скетч для ардуинки, для часов с такой подсветкой. Как его правильно прислонить, чтоб заработало?))
Есть все для прошивки Алекса Никсиклок 1.3, ардуинку прошил, все получилось. Пытаюсь открыть этот скетч — при проверке ошибка
(автор библиотек не оставил во вложении)
Arduino: 1.8.10 (Windows 7), Плата:»Arduino Nano, ATmega328P (Old Bootloader)»
timeVersion:43:10: error: Adafruit_NeoPixel.h: No such file or directory
exit status 1
Adafruit_NeoPixel.h: No such file or directory
serg92319
Добрый день!
Сперва при проверке писала, что нет библиотеки, когда подгрузи пишет:
Arduino: 1.8.10 (Windows 10), Плата:»Arduino/Genuino Uno»
In file included from D:sketch_jan28asketch_jan28a.ino:1:0:
Несколько библиотек найдено для «SoftwareServo.h»
C:Users������DocumentsArduinolibrariesSoftwareServo/SoftwareServo.h:4:10: fatal error: WProgram.h: No such file or directory
Используется: C:UsersСергейDocumentsArduinolibrariesSoftwareServo
compilation terminated.
exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno.
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
раиль
Вложения
technotrasher
Вложения
раиль
Вложения
berlingos
san100
cudesnica
Добрый вечер.Подскажите как убрать ошибку. Win 7,32-битная, arduino nano
upd^ нашла решение на другом форуме-«Заходишь в инструменты, где нужно выбрать процессор ATmega 328Р- выбираешь: ATmega 328Р(Old Bootloader) и будет тебе счастье. Расскажи другим.»(c)parikmaher72
Вложения
Настя
При компиляции скетча, видимо, что то пошло не так, и выдаёт мне ошибку » java.io.IOException: Отказано в доступе «
Для полноты картины: вчера переустанавливала ардуино с более старой версии, на новую. Быть может, я сделала что-то не так?
Вложения
Александр Симонов
При компиляции скетча, видимо, что то пошло не так, и выдаёт мне ошибку » java.io.IOException: Отказано в доступе «
Для полноты картины: вчера переустанавливала ардуино с более старой версии, на новую. Быть может, я сделала что-то не так?
Подвох
In file included from C:UsersUserDownloadsStairs_FinalStairs_Final.ino:1:0:
C:UsersUserDocumentsArduinolibrariesUltrasonic/Ultrasonic.h:11:10: fatal error: WProgram.h: No such file or directory
exit status 1
Ошибка компиляции для платы Arduino Nano.
Parovozzzzzzzzz
Первый опыт!
А здеся такое.
Уже мозг кипит((((
:Program FilesArduinofirmwareGyverDrink_v1.3GyverDrink_v1.3.ino:67:0: warning: «COLOR_DEBTH» redefined
#define COLOR_DEBTH 2 // цветовая глубина: 1, 2, 3 (в байтах)
In file included from C:Program FilesArduinolibrariesmicroLED/microLED.h:40:0,
from C:Program FilesArduinofirmwareGyverDrink_v1.3GyverDrink_v1.3.ino:60:
C:Program FilesArduinolibrariesmicroLED/ws2812_send.h:37:0: note: this is the location of the previous definition
#define COLOR_DEBTH 3
In file included from C:Program FilesArduinofirmwareGyverDrink_v1.3GyverDrink_v1.3.ino:60:0:
C:Program FilesArduinolibrariesmicroLED/microLED.h:58:1: warning: ‘typedef’ was ignored in this declaration
typedef struct LEDdata <
Евгений Иркутск
redxxx
@AlexGyver,
Arduino: 1.8.5 (Windows 7), Плата:»Arduino Nano, ATmega328P (Old Bootloader)»
gyverLight_v1.4:39: error: ‘HIGH_PULL’ was not declared in this scope
GButton touch(BTN_PIN, HIGH_PULL, NORM_OPEN);
gyverLight_v1.4:39: error: ‘NORM_OPEN’ was not declared in this scope
GButton touch(BTN_PIN, HIGH_PULL, NORM_OPEN);
In file included from C:UsersRedxxxDesktopGyverLight-masterfirmwaregyverLight_v1.4gyverLight_v1.4.ino:41:0:
C:Program Files (x86)ArduinolibrariesFastLED/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.005
# pragma message «FastLED version 3.001.005»
C:UsersRedxxxDesktopGyverLight-masterfirmwaregyverLight_v1.4gyverLight_v1.4.ino: In function ‘void setup()’:
gyverLight_v1.4:86: error: ‘class GButton’ has no member named ‘setStepTimeout’
C:UsersRedxxxDesktopGyverLight-masterfirmwaregyverLight_v1.4gyverLight_v1.4.ino: In function ‘void loop()’:
gyverLight_v1.4:126: error: ‘class GButton’ has no member named ‘isStep’
Несколько библиотек найдено для «FastLED.h»
Используется: C:Program Files (x86)ArduinolibrariesFastLED
Не используется: C:Program Files (x86)ArduinolibrariesFastLED-stm32patch
Не используется: C:Program Files (x86)ArduinolibrariesFastLED-3.2.9
exit status 1
‘HIGH_PULL’ was not declared in this scope
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
Что это за ошибка?
Источник
Содержание
- Arduino.ru
- Регистрация новых пользователей и создание новых тем теперь только на новом форуме https://forum.arduino.ru
- forum.arduino.ru
- Помогите с библиотекой AccelStepper
- Автоматическая установка
- Arduino.ru
- Регистрация новых пользователей и создание новых тем теперь только на новом форуме https://forum.arduino.ru
- forum.arduino.ru
- выдает ошибку. не пойму в чем дело. подскажите пжл
- Error wprogram h no such file or directory
- berlingos
- serg92319
- раиль
- Вложения
- technotrasher
- Вложения
- раиль
- Вложения
- berlingos
- san100
- cudesnica
- Вложения
- Настя
- Вложения
- Александр Симонов
- Подвох
- Parovozzzzzzzzz
- Евгений Иркутск
- redxxx
- Arduino.ru
- Регистрация новых пользователей и создание новых тем теперь только на новом форуме https://forum.arduino.ru
- forum.arduino.ru
- Ошибка компиляции.Новичок
- cannot open source file «WProgram.h» in VSCode
- The snag
- 3 Answers 3
- The answer
- WProgram.h vs Arduino.h
- The temp fix
- The better fix
- Summary
Arduino.ru
Регистрация новых пользователей и создание новых тем теперь только на новом форуме https://forum.arduino.ru
forum.arduino.ru
Помогите с библиотекой AccelStepper
выхватил из этого ^^ документа:
Автоматическая установка
Начиная с версии 1.0.5, устанавливать сторонние библиотеки можно прямо в среде разработки.
Не распаковывайте скачанный архив с библиотекой — оставьте его, как есть.
В среде разработки Ардуино выберите меню Sketch > Import Library. В самом верху выпадающего списка выберите пункт Add Library (Добавить библиотеку).
Спасибо за ответ, но это не то! Как подключить библиотеку я знаю. Вот при загрузке примера из библиотеки и последующей компиляции ошибка следующая
Нашел вот это, поправил, все равно ошибка и сообщение
В Arduino IDE версии 1.0 , разработчики переименовали файл WProgram.h в Arduino.h , поэтому, чтобы старые библиотеки заработали в новой IDE — нужно просто открыть файлы библиотеки (.h и .cpp) и если в них встречается строчка
, то заменить её на:
Обычно, это нужно делать только в заголовочном h-файле библиотеки.
Возможно, больше ничего делать не придётся и библиотека сразу заработает 🙂
Источник
Arduino.ru
Регистрация новых пользователей и создание новых тем теперь только на новом форуме https://forum.arduino.ru
forum.arduino.ru
выдает ошибку. не пойму в чем дело. подскажите пжл
Только картинку не надо выкладывать.
Во первых, вставьте код, как положено.
Во-вторых, кто выдаёт? Какую ошибку? Если компилятор, так копипастите сюда сообщение. Вообще, объясняйте нормально проблему.
ошибка в компиляции. Wprogram/ знаю что надо меня на Arduino.h/ но ошибок становится еще больше. если сможешь разобраться отблагодарю по человечески
Сделайте так, чтобы тут не было кириллических символов: «C:UsersЗабирDocumentsArduinolibrariesLiquidCrystalLiquidCrystal.cpp»
может дело в библиотеке. использую библиотеку LiquidCrystal как обычно
Больше похоже на то, что взята какая-то очень древняя версия библиотеки LiquidCrystal.
Больше похоже на то, что взята какая-то очень древняя версия библиотеки LiquidCrystal.
Согласен. Поэтому оставил строчку с версией либы, которая компилится.
Но кириллические символы тоже не мешает извести.
библиотеку взял из http://iarduino.ru/file/11.html посмотри. вроде все верно. или скиньте мне ссылку откуда скачать ide и библиотеку
возможно и правда древняя версия. так гдк скачать свежую ? подскажи пжл
возможно и правда древняя версия. так гдк скачать свежую ? подскажи пжл
Первая же ссылка
теперь осталось со схемой додумать и все должно заработать)
еще раз спасибо ребята огромное
Запиши на мой счет, потом выведу по крупняку.
А так, конечно, полагается нам с Томасиной 50/50 заработанное поделить. Не знаю, как ему, а мне проезд на автобусе в одну сторону как раз хватит оплатить ))
Источник
Error wprogram h no such file or directory
berlingos
Ребят, подскажите, что не так делаю. Плата от Михаила с подсветкой адресными светодиодами. Есть в этой теме в сообщении 219 скетч для ардуинки, для часов с такой подсветкой. Как его правильно прислонить, чтоб заработало?))
Есть все для прошивки Алекса Никсиклок 1.3, ардуинку прошил, все получилось. Пытаюсь открыть этот скетч — при проверке ошибка
(автор библиотек не оставил во вложении)
Arduino: 1.8.10 (Windows 7), Плата:»Arduino Nano, ATmega328P (Old Bootloader)»
timeVersion:43:10: error: Adafruit_NeoPixel.h: No such file or directory
exit status 1
Adafruit_NeoPixel.h: No such file or directory
serg92319
Добрый день!
Сперва при проверке писала, что нет библиотеки, когда подгрузи пишет:
Arduino: 1.8.10 (Windows 10), Плата:»Arduino/Genuino Uno»
In file included from D:sketch_jan28asketch_jan28a.ino:1:0:
Несколько библиотек найдено для «SoftwareServo.h»
C:Users������DocumentsArduinolibrariesSoftwareServo/SoftwareServo.h:4:10: fatal error: WProgram.h: No such file or directory
Используется: C:UsersСергейDocumentsArduinolibrariesSoftwareServo
compilation terminated.
exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno.
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
раиль
Вложения
technotrasher
Вложения
раиль
Вложения
berlingos
san100
cudesnica
Добрый вечер.Подскажите как убрать ошибку. Win 7,32-битная, arduino nano
upd^ нашла решение на другом форуме-«Заходишь в инструменты, где нужно выбрать процессор ATmega 328Р- выбираешь: ATmega 328Р(Old Bootloader) и будет тебе счастье. Расскажи другим.»(c)parikmaher72
Вложения
Настя
При компиляции скетча, видимо, что то пошло не так, и выдаёт мне ошибку » java.io.IOException: Отказано в доступе «
Для полноты картины: вчера переустанавливала ардуино с более старой версии, на новую. Быть может, я сделала что-то не так?
Вложения
Александр Симонов
При компиляции скетча, видимо, что то пошло не так, и выдаёт мне ошибку » java.io.IOException: Отказано в доступе «
Для полноты картины: вчера переустанавливала ардуино с более старой версии, на новую. Быть может, я сделала что-то не так?
Подвох
In file included from C:UsersUserDownloadsStairs_FinalStairs_Final.ino:1:0:
C:UsersUserDocumentsArduinolibrariesUltrasonic/Ultrasonic.h:11:10: fatal error: WProgram.h: No such file or directory
exit status 1
Ошибка компиляции для платы Arduino Nano.
Parovozzzzzzzzz
Первый опыт!
А здеся такое.
Уже мозг кипит((((
:Program FilesArduinofirmwareGyverDrink_v1.3GyverDrink_v1.3.ino:67:0: warning: «COLOR_DEBTH» redefined
#define COLOR_DEBTH 2 // цветовая глубина: 1, 2, 3 (в байтах)
In file included from C:Program FilesArduinolibrariesmicroLED/microLED.h:40:0,
from C:Program FilesArduinofirmwareGyverDrink_v1.3GyverDrink_v1.3.ino:60:
C:Program FilesArduinolibrariesmicroLED/ws2812_send.h:37:0: note: this is the location of the previous definition
#define COLOR_DEBTH 3
In file included from C:Program FilesArduinofirmwareGyverDrink_v1.3GyverDrink_v1.3.ino:60:0:
C:Program FilesArduinolibrariesmicroLED/microLED.h:58:1: warning: ‘typedef’ was ignored in this declaration
typedef struct LEDdata <
Евгений Иркутск
redxxx
@AlexGyver,
Arduino: 1.8.5 (Windows 7), Плата:»Arduino Nano, ATmega328P (Old Bootloader)»
gyverLight_v1.4:39: error: ‘HIGH_PULL’ was not declared in this scope
GButton touch(BTN_PIN, HIGH_PULL, NORM_OPEN);
gyverLight_v1.4:39: error: ‘NORM_OPEN’ was not declared in this scope
GButton touch(BTN_PIN, HIGH_PULL, NORM_OPEN);
In file included from C:UsersRedxxxDesktopGyverLight-masterfirmwaregyverLight_v1.4gyverLight_v1.4.ino:41:0:
C:Program Files (x86)ArduinolibrariesFastLED/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.005
# pragma message «FastLED version 3.001.005»
C:UsersRedxxxDesktopGyverLight-masterfirmwaregyverLight_v1.4gyverLight_v1.4.ino: In function ‘void setup()’:
gyverLight_v1.4:86: error: ‘class GButton’ has no member named ‘setStepTimeout’
C:UsersRedxxxDesktopGyverLight-masterfirmwaregyverLight_v1.4gyverLight_v1.4.ino: In function ‘void loop()’:
gyverLight_v1.4:126: error: ‘class GButton’ has no member named ‘isStep’
Несколько библиотек найдено для «FastLED.h»
Используется: C:Program Files (x86)ArduinolibrariesFastLED
Не используется: C:Program Files (x86)ArduinolibrariesFastLED-stm32patch
Не используется: C:Program Files (x86)ArduinolibrariesFastLED-3.2.9
exit status 1
‘HIGH_PULL’ was not declared in this scope
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
Что это за ошибка?
Источник
Arduino.ru
Регистрация новых пользователей и создание новых тем теперь только на новом форуме https://forum.arduino.ru
forum.arduino.ru
Ошибка компиляции.Новичок
Проблема в загрузке скетча:Примеры загружаются а любые другие нет.Пишет что библиотеки или файла такого нет.Пример: Arduino: 1.6.7 (Windows 10), Плата:»Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)»
Только если возможно разжуйте по понятливей пожалуйста.
Отсутствует файл WProgram.h или находится не по нужному пути.
Это то я понял,только где мне его взять или прописать путь?
Нашел на другом сайте, надо изменить на Arduino.h в include
Извините тупого а заменить нужно в скетче или где?
В файле C:UsersHomeDocumentsArduinolibrariesITDB02_Graph16/ITDB02_Graph16.h
#include «WProgram.h» заменить на #include «Arduino.h»
Извините тупого а заменить нужно в скетче или где?
Везде, где встречается.
Спасибо помогло,но зараза пишет уже новое: Arduino: 1.6.7 (Windows 10), Плата:»Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)»
Источник
cannot open source file «WProgram.h» in VSCode
So I started typing out this question, but in the process of taking screenshots and looking up sources for the question I figured out the answer 😛
That said, this problem has been a snag for me for a while and I’ve asked multiple people about it with no solution. Because it seemed kind of daunting for me and I haven’t seen many well explained reasons I figured I’d finish out the post here to help anyone that is running into this or will run into it in the future.
The snag
I’m using vscode for my editor and I’ve had this snag for a while but it’s finally driving me nuts enough to ask for help.
When in include certain libraries I get error squiggles under the include.
In this case the squiggle is popping up because of the error:
cannot open source file «WProgram.h» (dependency of «Adafruit_MPR121.h»)C/C++(1696)
At first I though the snag was because my include path needed my arduino libraries directory so I added that for the project, but I still get the snag.
I did a computer wide search for the WProgram.h file but was not able to find it.
The thing is, all of my sketches still compile and upload fine so for the most part I’m just able to ignore it . but the squiggle. .
Any ideas of how I can resolve this?
3 Answers 3
I landed here in the same position as you, and after researching the comments mentioning -DARDUINO=10813 and some more googling I found: https://github.com/microsoft/vscode-arduino/issues/1148
This led me to adding one more line to defines in my c_cpp_properties.json
and this also removed the squiggly!
The answer
Like I said in the question, I found the answer after doing some searching while typing up the question itself and I want to explain it for future squiggle-haters 🙂
WProgram.h vs Arduino.h
I did a bunch of searching to try to track down what’s going on and I eventually found this helpful (and depending on the veracity of the source, kind of sad) bit of history:
There is history of the arduino project not everyone was aware of or supposed to know. I only this much: this all started with some graduate student(s) that created the wiring platform and IDE, called wiring board and wiring «programming language». This project is still active with active users like the arduino project. Then the arduino folks decide to create the arduino project based on wiring project so they took the wiring IDE (which took from the original Processing IDE), including all the libraries etc. and created the first Arduino board (slightly different than wiring board, cheaper!) called it arduino. Arduino project has not very positively acknowledged the wiring project as the source of their project and wiring folks didn’t take it very well.
Now, that WProgram.h, is a definition file created by and for the wiring project and board. That’s why it has a W on it. It has been in Arduino IDE since its beginning and was replaced by Arduino.h only recently when Arduino 1.0 was released. Now all Arduino 1.0+ IDE will use Arduino.h and not WProgram.h so if you have that plus some other old stuff, you will have to make changes to work with Arduino 1.0+ IDE.
The temp fix
With that in mind I dove into the source file for the Adafruit_MPR121.h library and found where it includes the WProgram.h header file and commented it out.
It’s also worth pointing out that the pre-compiler conditional here supports the renaming of the file in newer versions of Arduino.
I labeled this section of the answer as «The temp fix» because it involves modifying a 3rd party dependency which is normally not a great idea. Yeah it fixes it now, but as soon as I need to update this library that edit is going to get blown away and I’d need to manually do it again. In this case the update is pretty minimal so maybe that’s no big deal, but if the fix was more involved, like a heavy edit, that would be a real big pain in the butt and could cause other unforeseen consequences (and I played half-life as a kid so I know that’s not good).
The better fix
Normally I would say the better fix for this would be to clone the source repository, make the fix there, and do a pull request so the dependency itself gets updated at the source (if someone approves and merges the PR).
But this is a bit different, the conditional in there is actually fine as it adds backwards compatibility. It’s there so that the library can support both pre-1.0 and post-1.0 arduino IDE versions. If we did a PR to cut out the WProgram.h reference we’d add in breaking code for anyone on the older versions.
So, the better solution is to appease my local compiler.
We know that the Arduino.h header for all intents and purposes is the same as the WProgram.h , so a almost-full-proof solution would be to fake out the WProgram.h file on my computer to appease the compiler.
An important part to note here is that to make sure I faked it out correctly I went to the arduino repository, scrolled back through the tags, found the last tag before they switched to 1.0+, and found the WProgram.h file. Once there I grabbed the same pre-compiler check and definition for the WProgram header so I could be sure I did the correct define for the WProgram name.
This feels like a bit of overkill because it protects me from other headers being included with the same string defined, but if that happened it would be because I have the WProgram file anyway, but I figured if I was going to fake it out I’d do it right.
This could backfire if I include a library that only includes WProgram.h and not the Arduino.h in that arduino version check conditional, but this would 100% be the case for a correction and pull request for that library.
Summary
So now I know that the Arduino.h file is the reason I’m able to compile everything correctly even with the red squiggle, I have a faked out WProgram.h so that my compiler can find something when looking for the file and, most importantly, I no longer need to look at those red squiggles under the includes 🙂
Next step, figure out the same thing for Sam.h 😛
Источник






























