Я делаю проект, требующий 5 датчиков силы. У меня нет проблем отображать показания на серийном мониторе, но у меня возникают проблемы с тем же, что и на ЖК-дисплее. Может ли кто-нибудь помочь мне с кодом для показа показаний от 5 датчиков силы на ЖК-дисплее 16x2? Edit: Я разместил мой код благодаряКак отобразить 5 датчиков силы, читающих на LCD с Arduino Uno
int fsrVoltage; // the analog reading converted to voltage
int fsrVoltage1;
unsigned long fsrResistance; // The voltage converted to resistance, can be very big so make "long"
unsigned long fsrResistance1;
unsigned long fsrConductance;
unsigned long fsrConductance1;
long fsrForce; // Finally, the resistance converted to force
long fsrForce1;
#include <Wire.h>
#include <Adafruit_MCP23017.h>
#include <Adafruit_RGBLCDShield.h>
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();
void setup()
{
lcd.begin(16, 2);
Serial.begin(9600);
}
void loop()
{
int force = analogRead(A0);
int force1 = analogRead(A1);
fsrVoltage = map(force, 0, 1023, 0, 5000);
// The voltage = Vcc * R/(R + FSR) where R = 10K and Vcc = 5V
// so FSR = ((Vcc - V) * R)/V yay math!
fsrResistance = 5000 - fsrVoltage; // fsrVoltage is in millivolts so 5V = 5000mV
fsrResistance *= 10000; // 10K resistor
fsrResistance /= fsrVoltage;
fsrConductance = 1000000; // we measure in micromhos so
fsrConductance /= fsrResistance;
fsrVoltage1 = map(force1, 0, 1023, 0, 5000);
// The voltage = Vcc * R/(R + FSR) where R = 10K and Vcc = 5V
// so FSR = ((Vcc - V) * R)/V yay math!
fsrResistance1 = 5000 - fsrVoltage1; // fsrVoltage is in millivolts so 5V = 5000mV
fsrResistance1 *= 10000; // 10K resistor
fsrResistance1 /= fsrVoltage1;
fsrConductance1 = 1000000; // we measure in micromhos so
fsrConductance1 /= fsrResistance1;
// Use the two FSR guide graphs to approximate the force
if (fsrConductance <= 1000)
{
fsrForce = fsrConductance/80;
lcd.setCursor(0, 0);
lcd.print("Force for 1st FSR: ");
lcd.setCursor(0, 1);
lcd.print(fsrForce,DEC);
} else
{
fsrForce = fsrConductance - 1000;
fsrForce /= 30;
lcd.setCursor(0, 0);
lcd.print("Force for 1st FSR: ");
lcd.setCursor(0, 1);
lcd.print(fsrForce,DEC);
}
delay(5000);
if (fsrConductance1 <= 1000)
{
fsrForce1 = fsrConductance1/80;
lcd.setCursor(0, 0);
lcd.print("Force for 2nd FSR: ");
lcd.setCursor(0, 1);
lcd.print(fsrForce1,DEC);
}
else
{
fsrForce1 = fsrConductance1 - 1000;
fsrForce1 /= 30;
lcd.setCursor(0, 0);
lcd.print("Force for 2nd FSR: ");
lcd.setCursor(0, 1);
lcd.print(fsrForce1,DEC);
}
delay(200);
}
Опубликуйте свой код и выделите переменные, которые необходимо распечатать, иначе мы не знаем, с чего начать вас поддерживать. – FeliceM