Яркость/цвет символов на 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

//#include <LiquidCrystal_PCF8574.h>
#include <LiquidCrystal_I2C.h>//бибблиотека для дисплея
#include <Wire.h> //библиотека для I2C
#include <DHT.h>
#include <DHT_U.h>
#define DHTPIN 2
#define DHTTYPE DHT11
LiquidCrystal_I2C lcd(0x27,16,2); // Указываем I2C адрес (наиболее распространенное значение), а также параметры экрана (в случае LCD 1602 - 2 строки по 16 символов в каждой 
DHT dht(DHTPIN, DHTTYPE);

byte degree[8] = // | 
{//                 |
B00110,//           |
B01001,//           |
B01001,//           |кодируем символ градуса
B00110,//           |
B00000,//           |
B00000,//           |
B00000,//           |
B00000,//           |
};//                |

void setup() {
 lcd.init(); // Инициализация lcd
 lcd.backlight(); // Включаем подсветку
 Serial.begin(9600);
 dht.begin();
}
//                                                         |
inline size_t LiquidCrystal_I2C::write(uint8_t value) {//  |Среда Arduino IDE выше 1.6.5 некорректно работает с библиотекой LiquidCrystal_I2C и всеми её клонами
send(value, Rs);//                                         |у метода inline size_t LiquidCrystal_I2C::write(uint8_t value) прописать возврат результата return 1
return 1;//                                                |
}//                                                        |

void loop() {
  delay(2000);
  int h = dht.readHumidity();
  int t = dht.readTemperature();
  if (isnan(h) || isnan(t)) {
    Serial.println("Ошибка чтения датчика");
    return;
}
  lcd.createChar(1, degree);//значёк градуса    |
  lcd.setCursor(0, 0);//                        |
  //lcd. print("Температура: ");//              |
  lcd. print(t);//                              |
  lcd. print("\1C");//                          | выводим полученные данные на LCD
  lcd. setCursor(0,1);//                        |
  //lcd. print("Влажность: ");//                |
  lcd. print(h);//                              |
  lcd. print("%");//                            |
 
  Serial.print("Влажность:   ");//  |
  Serial.print(h);//                |
  Serial.println("%, ");//          | выводим полученные данные в консоль
  Serial.print("Температура: ");//  |
  Serial.print(t);//                |
  Serial.println("*C, ");//         |
 
 
}

 

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

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