2017-12-06 15 views
1

lcd에 직렬 모니터를 표시하는 데 문제가 있습니다. 나는 어떤 오류도 발생하지 않고 LCD가 켜지므로 잘못 연결했다고 생각하지 않습니다. 나는 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()); 
    } 
    } 
} 

가 LCD에 변화 측정

를 표시해야 ... 시리얼 모니터/플로터를 열고 그래서 내 다른 구성 요소도 너무 문제가 코드에 있어야 노력하고 변화하는 정보를 볼 수 있어요

LCD가 켜져 있고 백라이트를 조정할 수 있지만 표시 할 항목이 없습니다.

답변

2

LCD가 "켜져"있다고해서 올바르게 배선 된 것은 아닙니다. 사실, 백라이팅 회로는 대개 데이터 및 제어 신호 회로와 완전히 별개입니다. I는 LCD에 알려진 값을 출력하는 간단한 명령을 올바르게 배선 있다는 가정을 선택하여 시작할 것 :

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

이 작동하는 경우에, 당신은 LCD가 작동하고 다른 곳에서 문제를 찾을 수있어.

이것이 작동하지 않는다면 올바르게 연결되었다는 가정에 의문을 제기 할 수 있습니다.하지만 "파란색 블록"이외에 아무것도 얻지 못하면 대조가 올바르지 않은 것처럼 간단 할 수 있습니다. 콘트라스트와 밝기를 읽기 쉽도록 잘 조합하는 것은 까다로울 수 있습니다. 디스플레이에 뒷면에 작은 전위차계 (보통 매우 작은 필립스 헤드 드라이버로 조절 가능)가 있는지 확인하고 조심스럽게 대비를 조정하십시오.

밝기는 소프트웨어 명령을 통해 변경 될 수 있지만 대부분의 LCD는 처음 부팅 할 때 밝기가 기본값입니다.

대비가 바뀌지 않는 경우 실제 배선 문제가있을 수 있으며이 포럼에서는 주제를 벗어났습니다. 이 경우 설계도를 스케치하고 전기 공학 스택에 게시해야합니다.

+0

'test'가 인쇄되고 그 다음에 두 개의 중국어 기호가 나타납니다. 왜 그렇게하고 있는지 잘 모르겠지만 최소한 노력하고 있습니다. 다른 제안? – User9123