Яркость/цвет символов на LCD 1602A

pesego
Offline
Зарегистрирован: 09.01.2022

Доброго времени! Я не разбираюсь в программировании и ардуино. Но при сборке проекта столкнулся с проблемой что на LCD не видно выводимые символы. Т.е. их видно под, если смотреть под острым углом(как на старых мониторах, когда искажался цвет). Возможно это из-за Arduino IDE(была проблема с неполным отображением написанного), или может библиотеки какие-то не подтянуть. Плата ArduinoUNO. Подскажите знающие, а то не могу найти в этих интернетах подобных случаев.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Контрастность взади подкрути

pesego
Offline
Зарегистрирован: 09.01.2022

ах да, не уточнил

дисплей подключен через 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
08LiquidCrystal_I2C lcd(0x27,16,2); // Указываем I2C адрес (наиболее распространенное значение), а также параметры экрана (в случае LCD 1602 - 2 строки по 16 символов в каждой
09DHT dht(DHTPIN, DHTTYPE);
10 
11byte degree[8] = // |
12{//                 |
13B00110,//           |
14B01001,//           |
15B01001,//           |кодируем символ градуса
16B00110,//           |
17B00000,//           |
18B00000,//           |
19B00000,//           |
20B00000,//           |
21};//                |
22 
23void setup() {
24 lcd.init(); // Инициализация lcd
25 lcd.backlight(); // Включаем подсветку
26 Serial.begin(9600);
27 dht.begin();
28}
29//                                                         |
30inline size_t LiquidCrystal_I2C::write(uint8_t value) {//  |Среда Arduino IDE выше 1.6.5 некорректно работает с библиотекой LiquidCrystal_I2C и всеми её клонами
31send(value, Rs);//                                         |у метода inline size_t LiquidCrystal_I2C::write(uint8_t value) прописать возврат результата return 1
32return 1;//                                                |
33}//                                                        |
34 
35void 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}

 

nik182
Offline
Зарегистрирован: 04.05.2015

Котрастность покрути. Включенный не инициированный дисплей должен показывать первый ряд квадратиков. Контрасность крутить пока квадратики первого ряда буду явно отличаться от ровного второго.

pesego
Offline
Зарегистрирован: 09.01.2022

Так а где крутить? На дисплее одна крутилка, она вроде как адрес меняет. И джампер, он полностью подсветку отключает.

b707
Offline
Зарегистрирован: 26.05.2017

pesego пишет:

Так а где крутить? На дисплее одна крутилка, она вроде как адрес меняет.

откуда данные про "меняет адрес"?

Вообще, вам подсказали - теперь сделайте хоть что-то сами. скажем найдите в гугле как поменять констрастность у дисплея ардуино. Уверяю вас, там это есть, ибо больная тема, вопрсы про это задает каждый второй новичок

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

pesego пишет:
Так а где крутить?

Вам не кажется, что без фото дисплея, ответить на этот вопрос можно только так, как Вам уже ответили - у виска? Покажите фото, Вас ткнут носом в то место, которое надо крутить.

pesego пишет:
На дисплее одна крутилка, она вроде как адрес меняет.

Всё чудесатее и чудесатее.

pesego
Offline
Зарегистрирован: 09.01.2022

Извиняюсь если задел чьи-то ардуно-професиональные чувства. Потенциометр действительно регулирует яркость, только яркость сильно меняется при малом угле поворота потенциометра. Я же крутил больше нормы, поэтому казалось что дисплей просто ничего не выводит. Решение действительно банальное, хоть и потратил вчера весь день на формулировку вопроса и поиски ответа. Ещё раз извиняюсь за беспокойство ардуино-гуру своим неблагоразумием.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Опять неправильно помогли :-(