2017-12-06 4 views
1

Ich habe Probleme mit der Anzeige des seriellen Monitors auf einem LCD. Ich bekomme keinen Fehler und das LCD leuchtet auf, so dass ich glaube, dass ich es falsch verkabelt habe. Ich kann den seriellen Monitor/Plotter öffnen und so meine andere Komponente zu ändern in Informationen siehe auch funktioniert so das Problem in dem Code sein muss ...Benötigen Sie Hilfe Anzeige des seriellen Monitors auf LCD

#include <LiquidCrystal.h> 

/** 
* LIDARLite I2C Example 
* Author: Garmin 
* Modified by: Shawn Hymel (SparkFun Electronics) 
* Date: June 29, 2017 
* 
* Read distance from LIDAR-Lite v3 over I2C 
* 
* See the Operation Manual for wiring diagrams and more information: 
* http://static.garmin.com/pumac/LIDAR_Lite_v3_Operation_Manual_and_Technical_Specifications.pdf 
*/ 

#include <Wire.h> 
#include <LIDARLite.h> 


const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; 
LiquidCrystal lcd(rs, en, d4, d5, d6, d7); 
// Globals 
LIDARLite lidarLite; 
int cal_cnt = 0; 

void setup() 
{ 
    Serial.begin(9600); // Initialize serial connection to display distance readings 

    lidarLite.begin(0, true); // Set configuration to default and I2C to 400 kHz 
    lidarLite.configure(0); // Change this number to try out alternate configurations 


    lcd.begin(16, 2); 
    // initialize the serial communications: 
} 

void loop() 
{ 
    int dist; 

    // At the beginning of every 100 readings, 
    // take a measurement with receiver bias correction 
    if (cal_cnt == 0) { 
    dist = lidarLite.distance();  // With bias correction 
    } else { 
    dist = lidarLite.distance(false); // Without bias correction 
    } 

    // Increment reading counter 
    cal_cnt++; 
    cal_cnt = cal_cnt % 100; 

    // Display distance 
    Serial.print(dist); 
    Serial.println(" cm"); 

    delay(10); 

    // when characters arrive over the serial port... 
    if (Serial.available()) { 
    // wait a bit for the entire message to arrive 
    delay(100); 
    // clear the screen 
    lcd.clear(); 
    // read all the available characters 
    while (Serial.available() > 0) { 
     // display each character to the LCD 
     lcd.write(Serial.read()); 
    } 
    } 
} 

Das LCD sollte die wechselnden Messungen werden Anzeigen

Der LCD beleuchtet ist, und ich kann die Hintergrundbeleuchtung anpassen, aber ich kann nichts zeigen bekommen.

Antwort

2

Nur weil der LCD wird „leuchtet“ bedeutet nicht, es richtig verdrahtet ist. Tatsächlich ist die Hintergrundbeleuchtungsschaltung üblicherweise vollständig von den Daten- und Steuersignalleitungen getrennt. Ich würde durch die Überprüfung der Annahme aus, dass es mit einem einfachen Befehl richtig verdrahtet ist ein bekannter Wert auf das LCD drucken:

lcd.clear(); 
lcd.println("TEST"); 

Wenn das funktioniert, dann wissen Sie, das LCD arbeitet und kann an anderer Stelle für das Problem suchen.

Wenn das nicht funktioniert, würde ich Ihre Annahme in Frage stellen, dass es richtig angeschlossen ist, aber wenn Sie immer noch nichts als "blaue Blöcke" erhalten, könnte es so einfach sein wie Ihr Kontrast nicht korrekt ist. Es kann schwierig sein, den Kontrast und die Helligkeit aus Gründen der Lesbarkeit in eine gute Kombination zu bringen. Sehen Sie, ob Ihr Display ein kleines Potentiometer (normalerweise einstellbar mit einem sehr kleinen Philips-Kopf-Treiber) auf der Rückseite hat und passen Sie den Kontrast sorgfältig an.

Helligkeit ist oft wechsel durch Software-Befehle, aber die meisten LCDs standardmäßig hohe Helligkeit beim Starten zuerst auf.

Wenn dagegen Wechsel nicht funktioniert, können Sie ein echtes Verdrahtungsproblem haben und dann ist es wirklich Wegthema für dieses Forum. In diesem Fall sollten Sie einen Schaltplan skizzieren und auf dem Elektrotechnischen Stapel veröffentlichen.

+0

Es druckt "Test" und was zwei chinesische Symbole zu sein scheint, um das nächste davon. Ich bin nicht sicher, warum es das tut, aber zumindest funktioniert es. Irgendwelche anderen Vorschläge? – User9123