Яркость/цвет символов на LCD 1602A
- Войдите на сайт для отправки комментариев
Вс, 09/01/2022 - 12:48
Доброго времени! Я не разбираюсь в программировании и ардуино. Но при сборке проекта столкнулся с проблемой что на LCD не видно выводимые символы. Т.е. их видно под, если смотреть под острым углом(как на старых мониторах, когда искажался цвет). Возможно это из-за Arduino IDE(была проблема с неполным отображением написанного), или может библиотеки какие-то не подтянуть. Плата ArduinoUNO. Подскажите знающие, а то не могу найти в этих интернетах подобных случаев.
Контрастность взади подкрути
ах да, не уточнил
дисплей подключен через I2C
Arduino IDE 1.8.19
01
//#include <LiquidCrystal_PCF8574.h>
02
#include <LiquidCrystal_I2C.h>//бибблиотека для дисплея
03
#include <Wire.h> //библиотека для I2C
04
#include <DHT.h>
05
#include <DHT_U.h>
06
#define DHTPIN 2
07
#define DHTTYPE DHT11
08
LiquidCrystal_I2C lcd(0x27,16,2);
// Указываем I2C адрес (наиболее распространенное значение), а также параметры экрана (в случае LCD 1602 - 2 строки по 16 символов в каждой
09
DHT dht(DHTPIN, DHTTYPE);
10
11
byte
degree[8] =
// |
12
{
// |
13
B00110,
// |
14
B01001,
// |
15
B01001,
// |кодируем символ градуса
16
B00110,
// |
17
B00000,
// |
18
B00000,
// |
19
B00000,
// |
20
B00000,
// |
21
};
// |
22
23
void
setup
() {
24
lcd.init();
// Инициализация lcd
25
lcd.backlight();
// Включаем подсветку
26
Serial
.begin(9600);
27
dht.begin();
28
}
29
// |
30
inline size_t LiquidCrystal_I2C::write(uint8_t value) {
// |Среда Arduino IDE выше 1.6.5 некорректно работает с библиотекой LiquidCrystal_I2C и всеми её клонами
31
send(value, Rs);
// |у метода inline size_t LiquidCrystal_I2C::write(uint8_t value) прописать возврат результата return 1
32
return
1;
// |
33
}
// |
34
35
void
loop
() {
36
delay(2000);
37
int
h = dht.readHumidity();
38
int
t = dht.readTemperature();
39
if
(isnan(h) || isnan(t)) {
40
Serial
.println(
"Ошибка чтения датчика"
);
41
return
;
42
}
43
lcd.createChar(1, degree);
//значёк градуса |
44
lcd.setCursor(0, 0);
// |
45
//lcd. print("Температура: ");// |
46
lcd. print(t);
// |
47
lcd. print(
"\1C"
);
// | выводим полученные данные на LCD
48
lcd. setCursor(0,1);
// |
49
//lcd. print("Влажность: ");// |
50
lcd. print(h);
// |
51
lcd. print(
"%"
);
// |
52
53
Serial
.print(
"Влажность: "
);
// |
54
Serial
.print(h);
// |
55
Serial
.println(
"%, "
);
// | выводим полученные данные в консоль
56
Serial
.print(
"Температура: "
);
// |
57
Serial
.print(t);
// |
58
Serial
.println(
"*C, "
);
// |
59
60
61
}
Котрастность покрути. Включенный не инициированный дисплей должен показывать первый ряд квадратиков. Контрасность крутить пока квадратики первого ряда буду явно отличаться от ровного второго.
Так а где крутить? На дисплее одна крутилка, она вроде как адрес меняет. И джампер, он полностью подсветку отключает.
Так а где крутить? На дисплее одна крутилка, она вроде как адрес меняет.
откуда данные про "меняет адрес"?
Вообще, вам подсказали - теперь сделайте хоть что-то сами. скажем найдите в гугле как поменять констрастность у дисплея ардуино. Уверяю вас, там это есть, ибо больная тема, вопрсы про это задает каждый второй новичок
Вам не кажется, что без фото дисплея, ответить на этот вопрос можно только так, как Вам уже ответили - у виска? Покажите фото, Вас ткнут носом в то место, которое надо крутить.
Всё чудесатее и чудесатее.
Извиняюсь если задел чьи-то ардуно-професиональные чувства. Потенциометр действительно регулирует яркость, только яркость сильно меняется при малом угле поворота потенциометра. Я же крутил больше нормы, поэтому казалось что дисплей просто ничего не выводит. Решение действительно банальное, хоть и потратил вчера весь день на формулировку вопроса и поиски ответа. Ещё раз извиняюсь за беспокойство ардуино-гуру своим неблагоразумием.
Опять неправильно помогли :-(