2013-11-24 1 views
0

Я делаю проект, требующий 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); 
     } 
+0

Опубликуйте свой код и выделите переменные, которые необходимо распечатать, иначе мы не знаем, с чего начать вас поддерживать. – FeliceM

ответ

0

Я думаю, ваша проблема связана с LCD. Вы можете начать здесь: http://arduino.cc/en/Tutorial/LiquidCrystal

Если вам нужна дополнительная помощь, вам следует добавить дополнительную информацию.