[英]How to display 5 force sensors reading to LCD with Arduino Uno
I'm doing a project that requires 5 force sensors. 我正在做一个需要5个力传感器的项目。 I have no problem display the readings on the serial monitor but I'm having trouble doing the same on a LCD. 我在串行监视器上显示读数没有问题,但是在LCD上却遇到同样的问题。 Can anyone help me with the code for displaying readings from 5 force sensors consecutively on a 16x2 LCD? 有人可以用代码在16x2 LCD上连续显示5个力传感器的读数来帮助我吗? 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. 我想您的问题与LCD有关。 You can start here: http://arduino.cc/en/Tutorial/LiquidCrystal 您可以从这里开始: http : //arduino.cc/en/Tutorial/LiquidCrystal
If you need more help you should add more information. 如果您需要更多帮助,则应添加更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.