Ультразвуковой датчик Arduino и ЖК-дисплей - Нужна помощь -

Недавно я купил Arduino Uno 3 и хотел сделать ультразвуковой датчик расстояния, который выводит показания на ЖК-дисплей 16x2. Я следовал этому руководству: http://www. .mertarduino.com/using-ultrasonic-distance-sensor-hc-sr04-with-lcd-display-and-arduino/2018/11/22/, но при загрузке кода выдается ошибка. Ошибка заключалась в следующем: здесь не допускается определение функции перед токеном '{'. Я не слишком много знаю об ардуино, поэтому мне нужна помощь. Спасибо всем, кто откликнется!

Вот код:

// поместите сюда код установки для однократного запуска:
#include <LiquidCrystal.h> //Пожалуйста, замените символы одинарной кавычки ('') символом скобки (<>)

LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Создает ЖК-объект. Параметры:
(rs, enable, d4, d5, d6, d7)

const int trigPin = 9;
const int echoPin = 10;
long duration;
int distanceCm, distanceInch;

void setup() {

lcd.begin(16,2); // Инициализирует интерфейс для ЖК-экрана и
specifies the dimensions (width and height) of the display
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

}

void loop() {

digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);
distanceCm= duration*0.034/2;
distanceInch = duration*0.0133/2;

lcd.setCursor(0,0); // Устанавливает место, в которое будет записываться последующий текст
the LCD will be displayed
lcd.print("Distance: "); // Печатает строку «Расстояние» на ЖК-дисплее
lcd.print(distanceCm); // Печатает значение расстояния от датчика
lcd.print("  cm");
delay(10);
lcd.setCursor(0,1);
lcd.print("Distance: ");
lcd.print(distanceInch);
lcd.print("inch");
delay(10);
}

, 👍0

Обсуждение

ваши комментарии сломаны. Пожалуйста, пройдите курс кодирования, @Juraj


1 ответ


-1

Корень вашей проблемы вот в чем:

LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Создает ЖК-объект. Параметры:
(rs, enable, d4, d5, d6, d7)

Я думаю, что при копировании и вставке вы получили строку, разделенную на две, что привело к ошибке. Следует читать:

LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Создает LCD-объект. Параметры: (rs, enable, d4, d5, d6, d7)

У вас похожая проблема:

lcd.begin(16,2); // Инициализирует интерфейс для LCD экрана и
specifies the dimensions (width and height) of the display

Опять же, оно разделено на две строки и должно читаться так:

lcd.begin(16,2); // Инициализирует интерфейс ЖК-экрана и указывает размеры (ширину и высоту) дисплея

И третье:

lcd.setCursor(0,0); // Устанавливает место, в которое будет записываться последующий текст
the LCD will be displayed

что должно быть:

lcd.setCursor(0,0); // Устанавливает место, в котором будет отображаться последующий текст, записанный на ЖК-дисплей

Когда эти три исправления исправлены, код компилируется правильно.

,

Почему минус? Что-то *не так* с этим ответом?, @Majenko

Спасибо за ответ! код теперь работает, и я не знаю, кто поставил отрицательный голос, поскольку на самом деле у меня нет учетной записи., @PiGuy01

Проголосовал за; ничего плохого в ответе (как обычно)., @Michel Keijzers