简体   繁体   中英

How to display 5 force sensors reading to LCD with Arduino Uno

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM