Как сделать ЖК-экран ярче

Я пытаюсь сделать свой ЖК-экран ярче, может кто-нибудь может помочь?

Это код и соединения:

//ЖК-дисплей
#include <LiquidCrystal.h> 
int Contrast=75;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  

// Светодиод
int LdrPin = A0;   // ячейка и выпадающий список 10K подключены к a0
int LdrValue = 0;  // аналоговое считывание с разделителя датчика
int LedPin = 10;   // подключите красный светодиод к контакту 11 (вывод PWM)
int LedBrightness;

//כתום
int LdrPin2 = A0;  // ячейка и выпадающий список 10K подключены к a0
int LdrValue2 = 0; // аналоговое считывание с делителя датчика
int LedPin2 = 9;   // подключите красный светодиод к контакту 11 (вывод PWM)
int LedBrightness2;

//צהוב
int LdrPin3 = A0;  // ячейка и выпадающий список 10K подключены к a0
int LdrValue3 = 0; // аналоговое считывание с делителя датчика
int LedPin3 = 8;   // подключите красный светодиод к контакту 11 (вывод PWM)
int LedBrightness3;

//
char rx_byte = 0;
//случайное
long randNumber;

void setup()
{
  //אתחול LCD
  analogWrite(6, Contrast);
  lcd.begin(16, 2);

  //אתחול СВЕТОДИОД
  pinMode(LdrPin, INPUT);
  pinMode(LedPin, OUTPUT);
  Serial.begin(9600);
       
  pinMode(LdrPin2, INPUT);
  pinMode(LedPin2, OUTPUT);
  Serial.begin(9600);
       
  pinMode(LdrPin3, INPUT);
  pinMode(LedPin3, OUTPUT);
  Serial.begin(9600);
       
  //последовательный монитор
  Serial.begin(9600);

  //случайный אתחול
  Serial.begin(9600);
  randomSeed(analogRead(0));
} 

void loop()
{ 
  // жк-дисплей.setCursor(2, 0);
  // жк-дисплей.печать ("Доброе утро");

  LdrValue = analogRead(LdrPin); 
  //Serial.print("Чтение LDR = ");
  //Serial.println(LdrValue); // печать необработанных аналоговых показаний
  LedBrightness = map(LdrValue, 679, 6, 255, 0);

  if (Serial.available() > 0) // доступен ли символ?
  {
    rx_byte = Serial.read();       // получаем символ
  }        
  // проверьте, наступило ли утро, и покажите доброе утро на ЖК-дисплее
  if (LdrValue == 679 && rx_byte == '7')
  {
    lcd.setCursor(2, 0);
    lcd.print("Good Morning!");
    // случайный 50% порядок освещения
    randNumber = random(0, 2);
    Serial.print(randNumber);
    if (randNumber == 1)
    {
      //אדום
      for (int i=0; i<8; i++)
      {    
        digitalWrite(LedPin, HIGH);
        delay(1000);
        digitalWrite(LedPin, LOW);
        delay(1000);
        // светодиод начинает гореть красным
        lcd.setCursor(2, 0);
        lcd.print("working on");
        lcd.setCursor(2, 1);
        lcd.print("red");    
      }    
      //כתום
      for (int i=0; i<4; i++)
      {
        digitalWrite(LedPin2, HIGH);
        delay(1000);
        digitalWrite(LedPin2, LOW);
        delay(1000);     
        //светодиод начинает гореть оранжевым цветом
        lcd.setCursor(2, 0);
        lcd.print("working on");
        lcd.setCursor(2, 1);
        lcd.print("orange");
      } 
  
      //צהוב
      for (int i=0; i<5; i++)
      {
        digitalWrite(LedPin3, HIGH);
        delay(1000);
        digitalWrite(LedPin3, LOW);
        delay(1000);
        // светодиод начинает гореть желтым цветом
        lcd.setCursor(2, 0);
        lcd.print("working on");
        lcd.setCursor(2, 1);
        lcd.print("yellow");
      }
    } else
    {
      //צהוב
      for (int i=0; i<5; i++)
      {
        digitalWrite(LedPin3, HIGH);
        delay(1000);
        digitalWrite(LedPin3, LOW);
        delay(1000);
        // светодиод начинает гореть желтым цветом
        lcd.setCursor(2, 0);
        lcd.print("working on");
        lcd.setCursor(2, 1);
        lcd.print("yellow");
      }

      //כתום
      for (int i=0; i<4; i++)
      {
        digitalWrite(LedPin2, HIGH);
        delay(1000);
        digitalWrite(LedPin2, LOW);
        delay(1000);
        // светодиод начинает гореть оранжевым цветом
        lcd.setCursor(2, 0);
        lcd.print("working on");
        lcd.setCursor(2, 1);
        lcd.print("orange");
      }

      //אדום
      for (int i=0; i<8; i++)
      {
        digitalWrite(LedPin, HIGH);
        delay(1000);
        digitalWrite(LedPin, LOW);
        delay(1000);
        // светодиод начинает гореть красным
        lcd.setCursor(2, 0);
        lcd.print("working on");
        lcd.setCursor(2, 1);
        lcd.print("red");
      }
    } 
  } else
  {
    lcd.setCursor(2, 0);
    lcd.print("Good night!");
  }  
}

, 👍1

Обсуждение

Обеспечьте больше мощности для подсветки задней панели, @Majenko

Используйте резистор с меньшим значением, чем 1 Ком, показанный на схеме. Около 100 Ом, если на вашем ЖК-дисплее используется белый светодиод. Некоторые модули уже имеют резистор на плате, чтобы ограничить ток от светодиода подсветки, но вам нужно будет проверить, работает ли ваш., @Gerben


2 ответа


1

Для полного ответа нам понадобится спецификация ЖК-экрана, но, как правило, ЖК-экраны имеют вывод для подсветки или два, один для плюса и один для земли.

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

Для получения дополнительных очков вы можете подключить подсветку с помощью PWM и настроить яркость от Arduino; если вы это сделаете, убедитесь, что вы не потребляете слишком много тока от вывода Arduino; при необходимости добавьте полевой транзистор.

,

1

Для подсветки используйте резистор 220 Ом. Относитесь к нему просто как к светодиоду. Вот что это такое, просто обычный светодиод.

,