1

LCD に「Voltage=(sensorValue)」と表示させたいのですが、現時点では、ポテンショメータを回したときにプログラムに値を認識させる唯一の方法は、それをループに入れることです。しかし、ループに入れると、ポテンショメータがどこに設定されているかに応じて、画面全体が 1、2、3、4、または 5 でいっぱいになります。

ループに入っていない場合、ポテンショメータがオンになっている設定が画面に表示され、ポテンショメータがオンになっても変更されません。

"(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);
}
4

3 に答える 3

1

これは私が先週思いついたものです。すべてのアドバイスをありがとう!

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);  

void setup() {}

void loop()
{ lcd.init();                      
lcd.backlight();

int VoltsInput = A0;
int VoltsRange = 0;
int VoltsPercent = 0;

VoltsRange = (5.0/1023.0) * analogRead(VoltsInput);
VoltsPercent = (((5.0/1023.0) * analogRead(VoltsInput)) / 5) * 100;

lcd.print(VoltsRange);
lcd.print("V    ");

lcd.print(VoltsPercent);
lcd.print("%");}
于 2012-04-25T16:02:09.870 に答える
0

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);
}
于 2012-04-21T13:17:07.187 に答える
0

それを loop() に入れ、delay() 関数を使用して、プログラムがポットから値をミリ秒ごとではなく数秒ごとに読み取るようにします。

于 2012-04-19T14:20:33.963 に答える