Ошибка: "'lcd' does not name a type" при использовании библиотеки LiquidCrystal.

Я следую онлайн-руководству/курсу по Arduino и пытаюсь создать простой движущийся символ на ЖК-экране, но по какой-то причине получаю следующую ошибку: "ошибка: 'lcd' не указывает тип". Я использую симулятор Tinkercad, потому что USB-порты моего ПК недавно вышли из строя. Вот мой код:

#include <LiquidCrystal.h>

byte character[8] {
   B01111,
   B01111,
   B01111,
   B00110,
   B01111,
   B01111,
   B01001,

} ;

  LiquidCrystal lcd(12, 11, 2, 3, 4, 5);

  lcd.createChar(0, character); // ошибка в этой строке

const int Lbtnpin = 6;
const int Rbtnpin = 7;
int Lbtnprev = HIGH;
int Rbtnprev = HIGH;
int pos = 0;

void setup(){
  lcd.begin(16, 2);
  lcd.clear();
  pinMode(6, INPUT_PULLUP);
  pinMode(7, INPUT_PULLUP);
}

void loop(){
  lcd.clear();
  int Lbtnstate;
  Lbtnstate = digitalRead(6);
  int Rbtnstate;
  Rbtnstate = digitalRead(7);

  if ((Lbtnprev == HIGH) && (Lbtnstate == LOW) && (pos > 0)) {
     pos--;
  }
  if ((Rbtnprev == HIGH) && (Rbtnstate == LOW) && (pos < 16)) {
     pos++;
  }
  lcd.setCursor(pos, 1);
  lcd.write(byte(0));
  Lbtnprev = Lbtnstate;
  Rbtnprev = Rbtnstate;
}

, 👍0


1 ответ


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

1

Вы не можете вызывать методы вне функции.
Переместите lcd.createChar(0, символ); в setup.

,