Я работал над проектом и получил ошибку компиляции для платы arduino uno. пожалуйста, помогите

##include <jm_LiquidCrystal_I2C.h>

#include <LiquidCrystal.h>

#include <Wire.h> // For I2C
//Установите контакты на микросхеме I2C, используемой для подключения ЖК-дисплеев
//ADDR,EN,R/W,RS,D4,D5,D6,D7
LiquidCrystal_I2C lcd(0x3f, 2, 1, 0, 4, 5, 6, 7); // 0x27 is the default I2C bus address of the backpack-see article

#define echoPin 3 // Echo Pin (выходной pin в RB URF02)
#define trigPin 2 // Триггер (входной контакт в RB URF02)

int led = 5;
int maximumRange = 350; // Maximum range needed
int minimumRange = 0; // Minimum range needed
long duration, distance; // Duration used to calculate distance
int brightness;

void setup() {
  lcd.begin (16, 2); // 16 x 2 LCD модуль
  lcd.setBacklightPin(3, POSITIVE); // BL, BL_POL
  lcd.setBacklight(HIGH);
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(led, OUTPUT);
}

void loop() {
  // Следующий цикл тригПин / эхопин используется для определения расстояния до ближайшего объекта путем отражения от него звуковых волн.
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration / 58, 2; //Вычислить расстояние (в см) на основе скорости звука.
  lcd.home (); // Set cursor to 0,0
  lcd.print("The Water Level is");
  lcd.setCursor (0, 1);
  lcd.print(distance); // Custom text
  lcd.print("cm");
  Serial.println(distance); // distance in cm
  brightness = map(distance, 1, 100, 0, 255);
  analogWrite(led, brightness);
  delay(1000); //Delay 50 ms

, 👍1

Обсуждение

При ошибках компиляции вам абсолютно необходимо всегда предоставлять полный код (ваш не полный, отсутствует хотя бы окончание}), а также полное сообщение об ошибке, включая информацию, где именно произошла ошибка во время компиляции, @chrisl

Кроме того, у вас есть двойной # прямо в начале скетча. И странная запятая при вычислении расстояния в `loop ()'. И использование как жидкокристаллической библиотеки I2C, так и обычной жидкокристаллической библиотеки, вероятно, также неправильно. Вы копировали части этого кода откуда-то еще?, @chrisl

Я изменил библиотеку, и она компилируется, @ENOCK


1 ответ


-2
#include <LcdKeypad.h>


#include <LiquidCrystal.h>

#include <Wire.h> // For I2C
//Установите контакты на микросхеме I2C, используемой для подключения ЖК-дисплеев
//ADDR,EN,R/W,RS,D4,D5,D6,D7
LcdKeypad lcd(0x3f, 2, 1, 0, 4, 5, 6, 7); // 0x27 is the default I2C bus address of the backpack-see article

#define echoPin 3 // Echo Pin (выходной pin в RB URF02)
#define trigPin 2 // Триггер (входной штифт в RB URF02)

int led = 5;
int maximumRange = 350; // Maximum range needed
int minimumRange = 0; // Minimum range needed
long duration, distance; // Duration used to calculate distance
int brightness;

void setup() {
  lcd.begin (16, 2); // 16 x 2 LCD модуль
  lcd.setBackLightOn(3); // BL, BL_POL
  lcd.setBacklight(HIGH);
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(led, OUTPUT);
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration / 58, 2; //Вычислить расстояние (в см) на основе скорости звука.
  lcd.home ();
  lcd.print("The Water Level is");
  lcd.setCursor (0, 1);
  lcd.print(distance); 
  lcd.print("cm");
  Serial.println(distance); 
  brightness = map(distance, 1, 100, 0, 255);
  analogWrite(led, brightness);
  delay(1000); 
}
,

пожалуйста, отформатируйте список кодов, @jsotola

Если это ответ, так или иначе, в нем должно быть что-то еще, кроме кода., @timemage

ИМО, полезный ответ должен быть. по крайней мере, объясните, что нужно было исправить и как это в конечном итоге было исправлено., @StarCat