Wire.h не найден
Среда arduino IDE не может найти файл Wire.h, когда я использую новый жидкий кристалл библиотека. Кто-нибудь знает, как это решить? вот код, который я использую, и сообщение об ошибке:
/*-----( Import needed libraries )-----*/
#include <Wire.h> // Поставляется с Arduino IDE
#include <LiquidCrystal_I2C.h>
/*-----( Declare Constants )-----*/ /*-----( Declare objects )-----*/ // установить адрес ЖК-дисплея на 0x27 для 2-строчной строки из 16 символов display // НЕСКОЛЬКО используйте адрес 0x3F // Установите контакты на чипе I2C, используемые для соединений ЖК-дисплея: // addr, en,rw,rs,d4,d5,d6,d7,bl,blpol LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, ПОЛОЖИТЕЛЬНЫЙ); // Устанавливаем адрес I2C ЖК-дисплея
/*-----( Declare Variables )-----*/ //НЕТ
void setup() /*----( SETUP: RUNS ONCE )----*/ { Serial.begin(9600); // Используется для ввода символов
lcd.begin(16,2); // инициализируем ЖК на 16 символов 2 строки, включаем подсветку
// ------- Три быстрых мигания подсветки ------------- for(int i = 0; i< 3; i++) {
lcd.backlight();
delay(250);
lcd.noBacklight();
delay(250); } lcd.backlight(); // заканчиваем с включенной подсветкой
//-------- Запись символов на дисплей ------------------ // ПРИМЕЧАНИЕ. Позиция курсора: (CHAR, LINE) начинается с 0 ЖК. установитьКурсор (0,0); //Начинаем с символа 4 в строке 0 lcd.print("Привет, мир!"); задержка(1000); lcd.setCursor(0,1); lcd.print("Привет!YourDuino.com"); задержка(8000);
// Подождите, а затем сообщите пользователю, что он может запустить Serial Monitor и ввести символы для // отображения. (Установите для параметра Serial Monitor значение «Без окончания строки») lcd.clear(); lcd.setCursor(0,0); //Начинаем с символа 0 в строке 0 lcd.print("Use Serial Mon"); lcd.setCursor(0,1); lcd.print("Тип для отображения");
}/*--(end setup )---*/
void loop() /*----( LOOP: RUNS CONSTANTLY )----*/ { {
// когда символы поступают через последовательный порт...
if (Serial.available()) {
// немного подождем, пока придет все сообщение
delay(100);
// очищаем экран
lcd.clear();
// читаем все доступные символы
while (Serial.available() > 0) {
// отображаем каждый символ на ЖК-дисплее
lcd.write(Serial.read());
}
} }
}/* --(end main loop )-- */
Вот результат компилятора
Arduino: 1.6.7 (Windows 10), плата: «Arduino Nano, ATmega328»
C:\Users\martin\Documents\Arduino\libraries\LiquidCrystal\I2CIO.cpp:35:26: фатальная ошибка: ../Wire/Wire.h: такого файла или каталога нет
#include <../Wire/Wire.h>
^
компиляция прекращена.
статус выхода 1 Ошибка компиляции.
В этом отчете будет больше информации, если будет указано «Показать подробный вывод». во время компиляции» включен в меню «Файл» > «Настройки».
@Pownyan, 👍0
Обсуждение2 ответа
Лучший ответ:
Библиотека жидких кристаллов должна быть установлена в ту же папку, что и библиотека проводов:
libraries/Wire/Wire.h (etc)
libraries/LiquidCrystal/LiquidCrystal_I2C.h (etc)
В библиотеке жидких кристаллов есть жестко запрограммированный путь, указывающий на проводную библиотеку, относящуюся к тому, где находится библиотека жидких кристаллов, что сделано, чтобы обойти проблему, заключающуюся в том, что библиотека Arduino не использует рекурсивные библиотеки. На самом деле в этом нет необходимости, поскольку включения библиотеки Wire в IDE достаточно, чтобы указать, где найти ее для библиотеки жидких кристаллов, поэтому я действительно не знаю, почему они сделали это именно так.
Спасибо! я скопировал всю папку Wire из C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries и поместил ее в папку документов/arduino/libraries, и это сработало! Есть ли какие-либо минусы в таком решении?, @Pownyan
Обновление ядра IDE или Arduino может привести к тому, что ваши две копии библиотеки Wire не будут идти в ногу. Пока вы обновляете свою копию, все будет в порядке., @Majenko
Не знаю, сможете ли вы решить проблему. Я использую PlatformIo и импортирую LiquidCrystal (я использовал li. При этом я получил ошибку при поиске библиотеки Wire.h, но добавил эту строку в файл Platformio.ini: (после фреймворка = arduino)
lib_deps = Wire
Он использует Arduino IDE, а не PlatformIO IDE., @gre_gor
- Печать string and integer LCD
- Как отобразить символ º на ЖК-дисплее?
- Отправка значения с одного Arduino на другой
- Черные квадраты дисплея Arduino 16x2
- NodeMCU с RFID RC522 и LCD-модулем интерфейса I2C вместе
- ЖК-дисплей I2C отображает странные символы
- Экран LCD 16*02 I2C показывает только первый напечатанный символ
- Потенциометр 10 кОм против резистора 10 кОм на ЖК-дисплее
Я закрываю этот вопрос, потому что эта пара вопросов и ответов устарела., @Juraj