Frage:
Seriell aktiviertes LCD
mad_z
2009-11-03 05:20:57 UTC
view on stackexchange narkive permalink

Welche Art von LCD sollte ich für mein Arduino verwenden?

Ich habe in der Vergangenheit das HD44780-kompatible LCD verwendet, aber gehört, dass die seriell aktivierten LCDs das Leben viel einfacher machen.

Sechs antworten:
#1
+5
Craig Trader
2009-11-03 05:51:52 UTC
view on stackexchange narkive permalink

Es hängt wirklich davon ab, was Sie mit dem Arduino machen möchten, außer dass Informationen auf dem LCD angezeigt werden. Wie Sie habe ich für mein erstes Projekt ein HD44780-kompatibles LCD verwendet, und obwohl es einwandfrei funktioniert hat, hat es die Hälfte meiner digitalen E / A-Pins verbraucht und meine Möglichkeiten für mein Projekt erheblich eingeschränkt. Wenn Sie nicht wirklich viel E / A benötigen, kann das in Ordnung sein.

Wenn Sie dagegen mehr tun möchten, ist eine serielle LCD-Schnittstelle möglicherweise sinnvoller. Sie kosten doppelt so viel, aber wie Sie in diesem Beispiel sehen können, können Sie eine Verkettung mit I2C durchführen.

  / * Schnelles Beispiel für die Verwendung des seriellen FunGizmos-LCD in I2C Modus ** Verbindungen zwischen LCD & Arduino * LCD P2 * Pin1 nicht angeschlossen * Pin2 nicht angeschlossen * Pin3 SCL -> Analog in 5 (Arduino hat internen Pullup-Widerstand) * Pin4 SDA -> Analog in 4 (Arduino hat internen Pullup-Widerstand) * Pin5 VSS -> gnd * Pin6 VDD -> + 5V ** Um den I2C-Modus des LCD zu aktivieren, müssen die Pads von R1 auf der Rückseite des LCD überbrückt werden * (zwischen R6 & R14 direkt unter dem schwarzen IC-Glob) ** / # <Wire einschließen. h>int lcd_addr = 0x50; // Standard-I2C-Hex-Adresse von Datenblattint Blink; void setup () {delay (1000); // lcd aufwachen lassen. Wire.begin (); // Drahtbibliothek initialisieren // Drahtbibliothek erwartet 7-Bit-Wert für Adresse und verschiebt sich nach links und fügt 0 oder 1 zum Lesen / Schreiben hinzu // Passen wir unsere Adresse an die Erwartungen an, die Wire erwartet (um ein Bit nach rechts verschieben) lcd_addr = lcd_addr >> 1; // lcd clear Befehl senden Wire.beginTransmission (lcd_addr); Wire.send (0xFE); // Cmd char Wire.send (0x51); // Home und clear Wire.endTransmission (); Wire.beginTransmission (lcd_addr); Wire.send (0xFE); // Cmd char Wire.send (0x70); // LCD-Firmware-Version anzeigen Wire.endTransmission (); Verzögerung (2000); // lcd clear Befehl senden Wire.beginTransmission (lcd_addr); Wire.send (0xFE); // Cmd char Wire.send (0x51); // Home und clear Wire.endTransmission ();
Wire.beginTransmission (lcd_addr); Wire.send ("Hallo, ich benutze I2C"); Wire.endTransmission (); Wire.beginTransmission (lcd_addr); Wire.send (0xFE); // Cmd char Wire.send (0x45); // Setze Cursor pos Wire.send (0x40); // Zeile 2 Wire.endTransmission (); Wire.beginTransmission (lcd_addr); Wire.send ("FunGizmos.com"); Wire.endTransmission ();} void loop () {Wire.beginTransmission (lcd_addr); Wire.send (0xFE); // Cmd char Wire.send (0x45); // Setze Cursor pos Wire.send (0x40 + 15); // Zeile 2 letztes Zeichen Wire.endTransmission (); Wire.beginTransmission (lcd_addr); if (blink) Wire.send ('*'); sonst Wire.send (''); Wire.endTransmission (); blinken =! blinken; Verzögerung (500);}  
#2
+5
JohnC
2009-11-03 14:29:23 UTC
view on stackexchange narkive permalink

Ich verwende eine parallele LCD-Anzeigeeinheit, die ich mithilfe des I2C-LCD-Controller-Chips BV4208 von ByVac auf I2C konvertiert habe, oder erwäge deren neuen Ersatz den BV4638.

Hier ist eine Bibliothek zur Verwendung mit diesem Gerät: http://john.crouchley.com/blog/archives/264.

I2C verwendet nur zwei Drähte - Analog 4 und Analog 5 können Sie eine Reihe von Geräten über diese Kabel mit jeweils einer eigenen I2C-Adresse verbinden. Dies ist eine sehr einfache Möglichkeit, das Arduino zu erweitern.

#3
+3
Amir Gonnen
2011-02-25 13:07:01 UTC
view on stackexchange narkive permalink

Wenn Sie ein HD44780-kompatibles LCD haben und es verwenden möchten, ohne zu viele Ausgangspins zu verbrauchen, können Sie ein Schieberegister (z. B. 74VHC164 oder 74HC595) verwenden.
Hier ist ein Link zu einem Beispielprojekt.
Dies ähnelt praktisch einem seriell aktivierten LCD.

#4
+2
zklapow
2009-11-03 06:42:46 UTC
view on stackexchange narkive permalink

Ich verwende serielle LCDs und sie sind sehr einfach zu bedienen und hilfreich, aber wenn Sie kein Arduino Mega verwenden, haben Sie nur eine serielle Schnittstelle. Dies kann durch die Verwendung von serieller Software gelöst werden, solange Sie nur Anzeigen benötigen schreibe nicht lese. Eine gute serielle Softwarebibliothek finden Sie hier

#5
+2
thisismyrobot
2009-11-03 10:47:13 UTC
view on stackexchange narkive permalink

Ich habe zuvor ein serielles LCD verwendet, das 20x4 Schwarz auf Grün von SparkFun. Die 3-Draht-Schnittstelle ist sehr einfach zu bedienen, aber seien Sie gewarnt, die Hintergrundbeleuchtung verbraucht viel Strom.

Wenn Sie sie an eine PICAXE anschließen, wird die serielle Schnittstelle verwendet 1/0 vs hoch / niedrig ist ungefähr falsch und Sie müssen einen logischen Wechselrichter inline schalten.

#6
  0
Craig
2011-02-25 18:02:01 UTC
view on stackexchange narkive permalink

Sie können den adafruit LCD-Rucksack verwenden. Es unterstützt entweder I2C oder SPI. Im SPI-Modus wird wirklich nur ein 74HC595-Schieberegister verwendet.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 2.0-Lizenz, unter der er vertrieben wird.
Loading...