LCD ekran: bilmeniz gereken her şey

LCD ekran

bir LCD ekran çözüm olabilir sürekli bağlı bir bilgisayara bağlı kalmak zorunda kalmadan bilgileri görüntülemeniz gereken projeler için. Yani, bir Arduino / Raspberry Pi projesinde, sensör okumalarını almak, bir grafik göstermek, hesaplar vb. İçin ekranda görüntülenen bilgileri iletmek için seri portu kullanabilirsiniz. Ancak projeniz sürekli çalışıyorsa veya bir bilgisayara sahip olabileceğiniz yerden uzaktaysa, LCD ekran sizin kurtuluşunuzdur.

Örneğin, otomatik bir sulama sistemi kurduğunuzu ve sebze bahçenize veya bahçenize gittiğinizde nem ve sıcaklık okumalarını kontrol etmek istediğinizi hayal edin. Arduino kartını bilgisayara bağlamak için bilgisayarı oraya götürmek zorunda kalmak pratik bir çözüm değildir. Bu durumda, kodunuzu şu şekilde değiştirebilirsiniz: bilgi LCD ekranda görüntülenir ve hatta farklı bilgileri gösterebilmek için bazı tuşlar veya düğmeler ekleyin.

LCD panel nedir?

Sıvı kristal ekran veya LCD (Sıvı Kristal Ekran) Görüntüleri gösterebilen bir tür ince, düz paneldir. Her panel, bir ışık kaynağının önüne yerleştirilmiş belirli sayıda renkli veya tek renkli pikselden oluşur. Tüketimleri düşüktür, bu nedenle bu tür DIY düşük güçlü elektronik projeleri için idealdirler.

LCD ekrandaki her piksel, iki şeffaf elektrot ve iki polarizasyon filtresi arasında hizalanmış bir molekül katmanından oluşur. Arasında polarize filtreler bir likit kristal ekran var, dolayısıyla adı ve birinci filtreden geçen ışığın ikincisi tarafından engellenmesini engeller.

Ayrıca, fark ettiyseniz, bu ekranlardan birine dokunduğunuzda görüntü deforme olur ve basıldığında bir tür siyah leke belirir, bunun nedeni likit kristale baskı uygulamanızdır ve bunu yapmanız önerilmez ... Daha düşük kaliteli ekran renkleri, eşit olmayan aydınlatma dağılımı ile karşılaşabilirsiniz. hatta ölü pikseller (ekrandaki siyah noktalar veya kaybolmayan alanlar).

Arduino ve Raspberry Pi için LCD ekranlar

Gibi bir LCD ekran elektronik veya Arduino için var olan modüller, genellikle alfasayısal karakterleri veya sembolleri görüntülemek için birden çok sütun ve bilgileri görüntülemek için bir veya iki satır içerir. Bu, onları yalnızca tek bir sayı, sembol veya harfi görüntüleyebilmek için birkaç pimi bağlamaları gereken yedi segmentli bir ekrandan çok daha ilginç kılar. Daha fazlasını göstermek istiyorsanız, birkaç ekran yerleştirmelisiniz.

Bunun yerine tek bir LCD ekranla çok daha fazla bilgi görüntüleyebilirsiniz. Ancak, bu tür modüllerin doğru şekilde bağlanabilmesi için pin çıkışını iyi bilmeniz gerekir. Her zaman görmeni tavsiye ederim belirli üreticinin ve modelin veri sayfası değişebilecekleri gibi sahip olduğunuzu.

Örnek Bunu Amazon'da Adafruit'den satın alabilirsiniz.Klavye ile en popüler olanlardan biri olan ve iki satırının her birinde 16 karaktere kadar görüntüleme imkanı barındırıyor. Ve hatta 20 × 4 veya daha gelişmiş bir şey var veDaha karmaşık görüntüleri görüntülemek için çok inç renkli.

LCD ekranı için Adafruit 16 × 2 bu veri sayfasını görebilirsiniz...

Arduino için belki daha basit biri daha iyidir Klavye olmadan 16x2 LCD ekran. Bu panele bakarsanız, arkasında 16 pimi vardır. Tahtayı alıp ters çevirir ve soldan sağa pimlerine bakarsanız, bir pinout'unuz olur:

  • Pin 16: Arka ışık için GND
  • Pin 15: Arka ışık için Vcc
  • Pim 7-14: Ekranda görüntülenecek bilgileri iletmek için 8 bit (sonraki 8 pim)
  • Pin 6: Okuma ve yazma senkronizasyonu
  • Pin 5. R / W (veri ve komutlar için yazın ve okuyun)
  • Pin 4: RS (komutlar ve veriler arasında seçici)
  • Pin 3: kontrast kontrolü
  • Pin 2: Güç için 5V Vcc
  • Pin 1: Güç için GND (0v)

Doğru konumuna yerleştirdiğinizde pimlerin tersine döndüğünü unutmayın ...

Arduino ile entegrasyon

16x2 LCD bağlantı şeması Arduino Uno

Daha arduino'ya bağla Çok karmaşık değil, sadece ekran gücü için giriş voltajını düzenlemek için 220 ohm'luk bir direnç ve ekran kontrastını modüle etmek için bir potansiyometre eklemeyi düşünmelisiniz. Ardından pimlerin her birini Arduino kartına uygun şekilde bağlayın ve bitirdiniz. Fritzing'in görüntüsüne bakabilirsiniz ...

Gördüğünüz gibi, potansiyometre içinden beslenecek LCD ekran ve kontrast da ayarlanacaktır. Bu nedenle, ekranın hem GND hem de Vcc'sine ve ayrıca arka ışık kontrol hattı ve kontrast kontrolüne bağlanacaktır. Belki de en karmaşık olanı budur, o zaman kalan pimleri projenizde kullanacağınız giriş / çıkışlara bağlamak meselesidir.

Arduino IDE ile Programlama

Programlama için bazı özellikleri hesaba katmalısınız, Yalnızca verileri nasıl göndereceğinizi bilmekle kalmayıp, aynı zamanda hareket ettirmeniz, ekrana iyi bir şekilde yerleştirmeniz vb. Gerektiğini de unutmayın. Ayrıca adlı bir kitaplık kullanmalısınız. LiquidCrystal.hLCD ekranınız uyumlu bir Hitachi HD44780 yonga setine sahip olduğu sürece. Burada bir kod örneğiniz var:

#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);
  }
}

Daha fazla bilgi - Arduino Programlama Kılavuzu (Ücretsiz PDF)


İlk yorumu siz

Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.