I'm doing a project that requires 5 force sensors. I have no problem display the readings on the serial monitor but I'm having trouble doing the same on a LCD. Can anyone help me with the code for displaying readings from 5 force sensors consecutively on a 16x2 LCD? Edit: I have posted my code thanks
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);
}
I guess your issue is related with the LCD. You can start here: http://arduino.cc/en/Tutorial/LiquidCrystal
If you need more help you should add more information.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.