FSR Tutorial! (6 / 7 steg)
Steg 6: Fördjupad kod för analoga FSR mätningar
Denna Arduino skiss som förutsätter att du har de FSR trådbunden upp som ovan, med en 10Kohm pull down motstånd och sensorn läses på Analog 0 stift. Det är ganska avancerad och kommer att mäta den ungefärliga Newton kraft mätt av FSR. Det kan vara ganska användbart för att kalibrera vad krafter du tror FSR kommer att uppleva
/ * FSR testning skiss.
Anslut ena änden av FSR att driva, den andra änden till Analog 0.
Sedan ansluta ena änden av en 10K motstånd från Analog 0 till marken
För mer information se www.ladyada.net/learn/sensors/fsr.html * /
int fsrPin = 0; FSR och 10K pulldown är anslutna till a0
int fsrReading; analog läsning från FSR resistor avdelare
int fsrVoltage; den analoga behandlingen omvandlas till spänning
osignerade långa fsrResistance; Spänningen till motstånd, kan vara mycket stor så gör "lång"
osignerade långa fsrConductance;
lång fsrForce; Slutligen, motståndet omvandlas till styrka
void setup(void) {
Serial.BEGIN(9600); Vi skickar avlusningsinformation via seriell bildskärmen
}
void loop(void) {
fsrReading = analogRead(fsrPin);
Serial.Print ("Analog läsning =");
Serial.println(fsrReading);
analog spänning läsande spänner från ca 0 till 1023 som mappar till 0V till 5V (= 5000mV)
fsrVoltage = karta (fsrReading, 0, 1023, 0, 5000);
Serial.Print ("spänning läsning i mV =");
Serial.println(fsrVoltage);
om (fsrVoltage == 0) {
Serial.println ("ingen press");
} annat {
Spänning = Vcc * R / (R + FSR) där R = 10K och Vcc = 5V
så FSR = ((Vcc-V) * R) / V yay matematik!
fsrResistance = 5000 - fsrVoltage; fsrVoltage är i millivolt så 5V = 5000mV
fsrResistance * = 10000; 10K resistor
fsrResistance = fsrVoltage;
Serial.Print ("FSR motstånd i ohm =");
Serial.println(fsrResistance);
fsrConductance = 1000000; Vi mäter i micromhos så
fsrConductance = fsrResistance;
Serial.Print ("Conductance i microMhos:");
Serial.println(fsrConductance);
Använd de två FSR guide diagrammen för att approximera kraften
om (fsrConductance < = 1000) {
fsrForce = fsrConductance / 80;
Serial.Print ("kraft i Newton:");
Serial.println(fsrForce);
} annat {
fsrForce = fsrConductance - 1000;
fsrForce = 30.
Serial.Print ("kraft i Newton:");
Serial.println(fsrForce);
}
}
Serial.println("---");
Delay(1000);
}