Wie behebt man das verstümmelte Hitachi HD44780 16x2 LCD-Display im 4-Bit-Modus?

Es kommt oft vor, dass ein HD44780 16x2 LCD während der Verwendung verstümmelte Zeichen anzeigt. Die meisten Hilfen im Internet raten zur Verwendung von Snubbing-Techniken, um Spannungsrauschen wie Induktionsspitzen zu verhindern. Das habe ich alles gemacht, aber das Problem besteht weiterhin. Was kann ich machen ?

Antworten (1)

Dieses Problem tritt im 4-Bit-Modus auf, dem LCD-Bildschirm fehlt ein Datennibble (ein Zeichen besteht aus zwei 4-Bit-Nibbles) und dann werden alle nachfolgenden Zeichen um 4 Bit versetzt. Sie können überprüfen, ob dies Ihr Problem ist, indem Sie überprüfen, ob der angezeigte Müll für eine bekannte Zeichenfolge, die angezeigt werden soll, immer wiederholt wird, zum Beispiel zeigt "Stop" immer "7Fπ ...".

Dies kann aus mehreren Gründen auftreten, aber der Hauptgrund in meinem Fall war die geringe Stromversorgung der MCU, die das Display steuert. Die MCU kann immer noch mit niedrigerer Spannung arbeiten, aber wenn sie den "EN" (Enable)-Pin des LCD auf HIGH setzt, wenn er unter dem Mindestwert für dieses LCD liegt (z. B. 2,2 V), wird das 4-Bit-Nibble nicht aufgezeichnet wenn die "EN" wird wieder auf niedrig gesetzt, wodurch die Anzeige verstümmelt wird, bis dieser Fehler erneut auftritt und die Anzeige wiederhergestellt wird.

Um dies zu beheben, wartet die MCU am besten, bis ihre Versorgungsspannung auf einen Wert über dem Mindestwert der LCD-Mindesteingangsspannung zuzüglich einer Sicherheitsspanne zurückkehrt. Zum Beispiel lcd.printwürden Sie bei MSP430 energia oder arduino vor dem Anruf immer so etwas anrufen:

setup(){  
   analogReference(INTERNAL2V5);   
}  

void waitVoltage(){  
  while(true){  
    // 3v(what we want)/2.5 (reference) x1024/2=614  
    //we read VSS/2 on port 11, we want more than 2.5v to write on the lcd  
    if(analogRead(0x1011)>613){  
      break;  
    }  
    delay(50);   
  }   
} 
Oder Sie könnten einen starken (1k) Pullup zur positiven Versorgung des LCD verwenden und das E-Signal im Open-Collector-Modus treiben (um ein Low auszugeben, setzen Sie es auf Output + Low, um ein High auszugeben, setzen Sie es wie in Input ) ... das würde sicherstellen, dass ein E vom LCD als hoch angesehen wird. Ehrlich gesagt, wenn dies Ihr Problem ist, möchten Sie vielleicht das eigentliche Problem angehen, anstatt zu versuchen, es zu beheben, da es wahrscheinlich ist, dass auch Ihre Datensignale beschädigt werden.
Ich habe Kondensatoren und Dioden überall platziert, um das Induktionsrauschen zu unterdrücken. Aber sogar die Lichter (Netz) im Zimmer flackern, wenn ich die Pumpe ein-/ausschalte. Also scheint Pflaster im Moment das Beste zu sein.