LCD экраны: сиз билишиңиз керек болгон нерселердин бардыгы

LCD экраны

Una LCD экраны чечим болушу мүмкүн сиз ар дайым байланышкан компьютерге көз каранды болбостон, маалыматты көрсөтүшүңүз керек болгон долбоорлор үчүн. Башкача айтканда, Arduino / Raspberry Pi долбоорунда, сенсордук көрсөткүчтөрдү алуу, графикти, эсептерди көрсөтүү, ж.б.у.с. экранда көрсөтүлгөн маалыматты берүү үчүн сериялык портту колдоно аласыз. Бирок сиздин долбоорңуз үзгүлтүксүз иштеп жатса же компьютериңиз бар жерден алыс болсо, LCD экраны сиздин куткарууңуз болот.

Мисалы, сиз автоматташтырылган сугат тутумун орнотуп, жашылча бакчаңызга же бакчаңызга барганда нымдуулукту жана температуранын көрсөткүчтөрүн текшерип көрүүнү элестетип көрүңүз. Arduino тактасын компьютерге туташтыруу үчүн компьютерди ошол жакка алып баруу практикалык чечим эмес. Бул учурда сиз кодуңузду мындайча өзгөртө аласыз маалымат LCD экранда көрсөтүлөт ар кандай маалыматты көрсөтүү үчүн кээ бир баскычтарды же баскычтарды кошуңуз.

LCD панели деген эмне?

Суюк кристалл дисплей же LCD (Суюк Кристалл Дисплей) Бул сүрөттөрдү чагылдырган жука, жалпак панелдин бир түрү. Ар бир панель жарык булагынын алдына коюлган белгилүү бир түстөгү же монохромдуу пикселдерден турат. Алардын керектөөсү аз, ушул себептен DIY аз кубаттуу электроника долбоорлору үчүн идеалдуу.

ЖК экранындагы ар бир пиксел эки тунук электроддун ортосунда жайгашкан молекулалардын катмарынан жана эки поляризация чыпкасынан турат. Арасында суюк кристаллдык дисплей бар поляризация чыпкалары, демек, анын аталышы жана биринчи чыпкадан өткөн жарыкты экинчиси тосуп калбашы мүмкүн.

Ошондой эле, байкаган болсоңуз, ушул экрандардын бирине тийгенде сүрөт басылып калганда кандайдыр бир кара тактар ​​пайда болот, себеби сиз суюк кристаллга басым жасап жатасыз жана антпесеңиз болот ... Экраныңыздын сапаты төмөн болуп, жарыктын бирдей эмес бөлүштүрүлүшү мүмкүн жада калса өлгөн пикселдер (экранда кетпеген кара тактар ​​же жерлер).

Arduino жана Raspberry Pi үчүн LCD экрандары

Сыяктуу LCD экраны электроника же Arduino үчүн бар модулдар, адатта, тамга-цифралык белгилерди же белгилерди көрсөтүү үчүн бир нече тилке жана маалыматты көрсөтүү үчүн бир же эки катар болот. Бул аларды жети сегменттик дисплейге караганда алда канча кызыктуу кылат, анткени бир эле төөнөгүчтү туташтырып, бир гана цифраны, символду же тамганы чагылдыруу керек. Эгер көбүрөөк көрсөтүүнү кааласаңыз, бир нече дисплейлерди жайгаштырышыңыз керек.

Анын ордуна, бир LCD экраны менен сиз дагы көп маалыматты көрсөтө аласыз. Бирок сиз модулдарды туура туташтыруу үчүн алардын моделин жакшы билишиңиз керек. Мен ар дайым көрүп турууну сунуштайм өндүрүүчүнүн маалымат баракчасы жана конкреттүү модели алар сизде ар кандай болушу мүмкүн.

Мисалы, Аны Amazonдагы Adafruit компаниясынан сатып алсаңыз болот, бул клавиатура менен эң популярдуу болуп саналат жана анын эки сабынын ар биринде 16га чейин белгилерди көрсөтүү мүмкүнчүлүгүн камтыйт. Ал тургай, 20 × 4, же бир кыйла өнүккөн жана барӨтө татаал сүрөттөрдү көрсөтүү үчүн көп дюймдук түс.

LCD экраны үчүн Adafruit 16 × 2 баракчасын көрө аласыз...

Arduino үчүн балким ошончолук жөнөкөйү жакшыдыр 16x2 LCD экраны тергичсиз. Бул тактайды карасаңыз, анын артында 16 казык бар. Эгерде сиз досканы алып, аны тескери буруп, анын казыктарын солдон оңго карай берсеңиз, анда сизде pinout бар:

  • Пин 16: Арткы жарык үчүн GND
  • Пин 15: Арткы жарык үчүн Vcc
  • 7-14 төөнөгүч: 8-бит (кийинки 8 пин) экранда көрсөтүлө турган маалыматты өткөрүп берүү үчүн
  • 6-төөнөгүч: синхрондоштуруу жана окуу
  • Pin 5. R / W (маалыматтарды жана буйруктарды жазуу жана окуу)
  • Pin 4: RS (буйруктар менен маалыматтардын ортосундагы селектор)
  • Pin 3: контраст контролу
  • Пин 2: Vcc кубаттуулугу үчүн 5v
  • Пин 1: кубаттуулук үчүн GND (0v)

Аны туура ордуна койгондо, төөнөгүчтөр тескери бурулуп кетээрин унутпаңыз ...

Arduino менен интеграциялоо

16x2 LCD туташуу схемасы Arduino Uno

Para аны arduino менен байланыштырыңыз Анча деле татаал эмес, сизге экрандагы кубаттуулукту жөндөө үчүн 220 ом резисторду жана экрандын карама-каршылыгын модуляциялоо үчүн потенциометрди гана эске алуу керек. Андан кийин ар бир төөнөгүчтү Arduino тактасына ылайыктуу туташтырыңыз, ошондо бүтүрөсүз. Фрицингдин образын көрө аласыз ...

Көрүнүп тургандай, потенциометр ал аркылуу азыктанат LCD экраны жана контраст дагы жөнгө салынат. Демек, ал дисплейдин GND жана Vcc экөөсүнө, ошондой эле жарыкты жөнгө салуу линиясына жана контраст контролуна байланыштуу болот. Балким, бул эң татаалдыр, демек, калган пиндерди сиз өз долбооруңузда колдоно турган киргизүү / чыгаруу менен байланыштыруу маселеси.

Arduino IDE менен программалоо

Программалоо үчүн кээ бир өзгөчөлүктөрдү эске алышың керек, Эсиңизде болсун, сиз маалыматтарды жөнөткөндү гана билбестен, аны жылдырып, экранга жакшы жайгаштырыңыз жана башкалар. Ошондой эле аталган китепкананы колдонуу керек LiquidCrystal.h, сиздин LCD экраныңуз шайкеш Hitachi HD44780 чипсетине ээ болсо. Бул жерде сизде коддун мисалы бар:

#include <LiquidCrystal.h>

// Definimos las constantes
#define COLS 16 // Aqui va el num de columnas del LCD, 16 en nuestro caso
#define ROWS 2 // Aqui las filas x2
#define VELOCIDAD 200 // Velocidad a la que se movera el texto

// Indicamos los pines de la interfaz donde hayas conectado el LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// Para el texto que se muestra
String texto_fila = "Ejemplo LCD";

void setup() {
  // Configura el monitor serie
  Serial.begin(9600);

  // Configurde filas y columnas
  lcd.begin(COLS, ROWS);
}

void loop() {

  // Tamaño del texto a mostrar
  int tam_texto=texto_fila.length();

  // Indicamos que la entrada de texto se hace por la izquierda
  for(int i=tam_texto; i>0 ; i--)
  {
    String texto = texto_fila.substring(i-1);

    // Limpia la pantalla para poder mostrar informacion diferente
    lcd.clear();

    //Situar el cursor en el lugar adecuado, en este caso al inicio
    lcd.setCursor(0, 0);

    // Escribimos el texto "Ejemplo LCD"
    lcd.print(texto);

    // Esperara la cantidad de milisegundos especificada, en este caso 200
    delay(VELOCIDAD);
  }

  // Desplazar el texto a la izquierda en primera fila
  for(int i=1; i<=16;i++) { 
    lcd.clear();
    lcd.setCursor(i, 0); 
    lcd.print(texto_fila); 
    delay(VELOCIDAD); } 
  // Desplazar el texto a izquierda en la segunda fila 
    for(int i=16;i>=1;i--)
  {
    lcd.clear();
    lcd.setCursor(i, 1);
    lcd.print(texto_fila);
    delay(VELOCIDAD);
  }
  for(int i=1; i<=tam_texto ; i++)
  {
    String texto = texto_fila.substring(i-1);
    lcd.clear();
    lcd.setCursor(0, 1);
    lcd.print(texto);
    delay(VELOCIDAD);
  }
}

Кошумча маалымат - Arduino программалоо боюнча колдонмо (Акысыз PDF)


Макаланын мазмуну биздин принциптерге карманат редакциялык этика. Ката жөнүндө кабарлоо үчүн чыкылдатыңыз бул жерде.

Комментарий биринчи болуп

Комментарий калтырыңыз

Сиздин электрондук почта дареги жарыяланбайт. Милдеттүү талаалар менен белгиленет *

*

*

  1. Маалыматтар үчүн жооптуу: Мигель Анхель Гатан
  2. Маалыматтын максаты: СПАМды көзөмөлдөө, комментарийлерди башкаруу.
  3. Мыйзамдуулук: Сиздин макулдугуңуз
  4. Маалыматтарды берүү: Маалыматтар үчүнчү жактарга юридикалык милдеттенмелерден тышкары билдирилбейт.
  5. Маалыматтарды сактоо: Occentus Networks (ЕС) тарабынан уюштурулган маалыматтар базасы
  6. Укуктар: Каалаган убакта маалыматыңызды чектеп, калыбына келтирип жана жок кыла аласыз.