2012-04-18 4 views
2

내 LCD에 "Voltage = (sensorValue)"라고 표시하고 싶지만 현재 루프에 넣으면 전위차계를 돌려 프로그램에서 값을 인식 할 수있는 유일한 방법입니다. 그러나 루프에 넣으면 전위차계가 설정된 위치에 따라 전체 화면이 1, 2, 3, 4 또는 5로 채워집니다.Arduino로 LCD 프로그래밍

루프에없는 경우 전위차계가 설정되어있는 것은 무엇이 화면에 나타나며 전위차계를 돌리면 변경되지 않습니다.

"(Voltage = sensoreValue)"를 가질 수 있도록 어떻게 루프 밖에서 루프의 결과를 넣을 수 있습니까?

여기 내 프로그램입니다 :

#include <Wire.h> 
#include <LiquidCrystal_I2C.h> 

LiquidCrystal_I2C lcd(0x27,16,2); 

void setup() 
{ 
    lcd.init();      
    lcd.backlight(); 
    int sensorPin = A0; 
    int sensorValue = 0; 
    sensorValue = 0.004882812 * analogRead(sensorPin) + 1; 
    lcd.print("Voltage="); 
} 

void loop() 
{ 
    int sensorPin = A0; 
    int sensorValue = 0; 
    sensorValue = 0.004882812 * analogRead(sensorPin) + 1; 
    lcd.print(sensorValue); 
} 

답변

1

당신은 독서를 인쇄 할 물어 그것을하고있다 - 각 읽고 인쇄입니다!

나는 디스플레이 액정 경우 새로운 값이 예전의 맨 위에 인쇄되어 있으므로 값이 'N'인쇄 백 스페이스 수 또는

int sensorValue = 0; 
int prevValue = 0; 

void loop() 
{  
    sensorValue = 0.004882812 * analogRead(sensorPin) + 1; 
    if (sensorValue != prevValue) { 
     lcd.print(sensorValue); 
     prevValue == sensorValue; 
    } 
} 

을 변경하는 경우 중 하나가 인쇄에만 원하는 의심 .print 지원

+1

arduino 유전자가 있다는 것을 모릅니다. – karlphillip

+0

@karlphillip - HW를 해본 적이 있습니다. 칠레의 거대한 망원경을 디자인하고 제작하는 데 익숙했습니다. Arduinos는 훌륭합니다. 버스에서 특정 오류 비트 패턴을 감지해야했습니다. 상자 밖에서 대부분의 마이크로 프로세서 용 컴파일러를 설치하는 데 걸리는 시간보다 짧게 작업했습니다. –

+0

+1 소리가 잘 들립니다. 재미있는 일, 좋은 일. – karlphillip

0

해당 문서 및 라이브러리 코드 herehere은 분명하지 않지만 print()은 호출 할 때마다 이전 데이터 화면을 지우고있는 것 같습니다.

센서 값과 함께 루프에 Voltage= 문자열을 인쇄해야합니다. 코드를 다음으로 변경해보십시오.

#include <Wire.h> 
#include <LiquidCrystal_I2C.h> 

LiquidCrystal_I2C lcd(0x27,16,2); 
int sensorPin = A0; 

void setup() 
{ 
    lcd.init();      
    lcd.backlight(); 
} 

void loop() 
{ 
    int sensorValue = 0.004882812 * analogRead(sensorPin) + 1; 
    String display = "Voltage="; 
    display += sensorValue; 
    lcd.print(display); 
} 
관련 문제