Wire.h не найден

lcd

Среда 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 Ошибка компиляции.

В этом отчете будет больше информации, если будет указано «Показать подробный вывод». во время компиляции» включен в меню «Файл» > «Настройки».

, 👍0

Обсуждение

Я закрываю этот вопрос, потому что эта пара вопросов и ответов устарела., @Juraj


2 ответа


Лучший ответ:

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


-2

Не знаю, сможете ли вы решить проблему. Я использую PlatformIo и импортирую LiquidCrystal (я использовал li. При этом я получил ошибку при поиске библиотеки Wire.h, но добавил эту строку в файл Platformio.ini: (после фреймворка = arduino)

lib_deps = Wire
,

Он использует Arduino IDE, а не PlatformIO IDE., @gre_gor