2013-11-24 62 views
0

我正在做一個需要5個力傳感器的項目。我沒有問題在串口監視器上顯示讀數,但我在LCD上執行相同的操作時遇到了問題。任何人都可以幫助我在16x2 LCD上連續顯示來自5個力傳感器的讀數的代碼嗎? 編輯:我已經發布我的代碼感謝如何使用Arduino Uno顯示讀取到液晶顯示器的5個力傳感器

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); 
     } 
+0

發佈您的代碼並突出顯示您需要打印的變量,否則我們不知道從哪裏開始支持您。 – FeliceM

回答

相關問題