Почему ЖК-дисплей не работает с этим оператором if?
#include <LiquidCrystal.h>
LiquidCrystal lcd(1, 2, 4, 5, 6, 7);
int greenLedPin = 12;
int blueLedPin = 11;
int redLedPin = 8;
int yellowLEdPin = 9;
int lightSensorPin = A0;
int analogValue = 0;
void setup() {
// поместите сюда свой код установки для однократного запуска:
lcd.begin(16, 2);
pinMode(greenLedPin, OUTPUT);
pinMode(blueLedPin, OUTPUT);
pinMode(redLedPin, OUTPUT);
pinMode(yellowLEdPin, OUTPUT);
Serial.begin(9600);
while (! Serial);
}
void loop() {
// поместите сюда свой основной код для многократного запуска:
Serial.println(analogRead(lightSensorPin));
analogValue = analogRead(lightSensorPin);
if (analogValue < 50) {
digitalWrite(redLedPin, HIGH);
}
else if (analogValue >= 50 && analogValue <= 99) {
digitalWrite(yellowLEdPin, HIGH);
}
else if (analogValue >= 100 && analogValue <= 300) {
digitalWrite(blueLedPin, HIGH);
lcd.print("its bright");
}
else {
digitalWrite(greenLedPin, HIGH);
lcd.print("its bright");
}
delay(3000);
digitalWrite(greenLedPin, LOW);
digitalWrite(blueLedPin, LOW);
digitalWrite(redLedPin, LOW);
digitalWrite(yellowLEdPin, LOW);
lcd.clear();
}
Я новичок в этом деле, поэтому извините, если это глупая ошибка, и я знаю, что мой ЖК-дисплей работает правильно, поскольку я проверил его и убедился, что все контакты в порядке.
1 ответ
Лучший ответ:
▲ 1
В Uno контакты 0 и 1 используются для последовательного порта. Вы не можете использовать контакт 1 для последовательного порта в дополнение к ЖК-дисплею. В общем, лучше избегать использования контактов 0 и 1.
Вам необходимо изменить проводку ЖК-дисплея, чтобы использовать другой контакт, и соответствующим образом обновить код. Например, если вы переместили разъем RS ЖК-дисплея с контакта 1 на Arduino на контакт 13, вы обновите эту строку:
LiquidCrystal lcd(1, 2, 4, 5, 6, 7);
кому:
LiquidCrystal lcd(13, 2, 4, 5, 6, 7);
После этого ваш ЖК-дисплей должен работать правильно.
,
@per1234
Смотрите также:
- Печать string and integer LCD
- Отправка значения с одного Arduino на другой
- ЖК-дисплей I2C отображает странные символы
- Экран LCD 16*02 I2C показывает только первый напечатанный символ
- Запрограммируйте Arduino Uno как цифровые часы
- Чтение SMS с помощью Arduino Uno и SIM800L и печать на LCD (16x2 буквенно-цифровых) с использованием последовательного соединения
- ЖК-дисплей странные символы
- 16*2 1602A LCD дисплей не отображает никаких символов или контрастности, несмотря на правильное подключение
В Uno контакты 0 и 1 используются для последовательного порта. Вы не можете использовать контакт 1 для последовательного порта в дополнение к ЖК-дисплею. Что произойдет, если вы измените проводку, чтобы использовать другой контакт, и соответствующим образом обновите код?, @per1234
большое спасибо, кажется, это сработало для меня, @PHANTOM NightCore
Пожалуйста. Я очень рад это слышать! Я написал формальный ответ, чтобы система Stack Exchange могла считать ответом на этот вопрос. Если вы считаете это правильным ответом, вы можете «[принять](https://stackoverflow.com/help/accepted-answer)»., @per1234