Ich verwende Kraftsensor für die Messung seines Wertes über ADC von Arduino, hier ich 5V auf Kraftsensor und einen 3.3k Widerstand für liefern Pulldown. Nun wandeln Sie diesen rohen adc-Eingabewert (Bereich 0-1023) in eine Codierung um. Jetzt muss ich arduino entfernen und diesen Kraftsensor direkt an ESP8266 12F anschließen und sein adc verwenden, um die Spannung zu messen. Aber das Problem ist seine Reichweite ist nur 0-1V. Ich habe einige Spannungsteiler ausprobiert und 1V von der 5V-Versorgung auf der Rückseite gemacht, jetzt hat der adc-Wert einen Bereich von 0-90, die Kartenfunktion von arduino verwendend, die ich 0-90 zurück zu 0-1023 umwandelte. Hier ist die Codierung für 5V:Konvertieren 0 v-5 V Spannung auf 0-1 V für ADC (für ESP8266 12F)
fsrADC = analogRead(A0);
float fsrV = fsrADC * VCC/1023.0; //VCC = 5
float fsrR = R_DIV * (VCC/fsrV - 1.0); //R_Div = 3300 for 3.3k pulldown
Hier ist die Codierung für 1V:
fsrADC = analogRead(A0);
fsrADC = map(fsrADC,0,90,0,1000);
float fsrV = fsrADC * VCC/1023.0; //VCC = 5
float fsrR = R_DIV * (VCC/fsrV - 1.0); //R_Div = 3300 for 3.3k pulldown
Danach gibt es ein paar mehr Zeilen, die diesen Widerstand zu Gewicht umwandelt. Wie Sie sehen können, brauche ich 0-1023 Bereich der Eingabe Analogwert für die nächste Zeile, um richtig zu funktionieren. Das berechnete Gewicht ist nicht genau. Ich denke, es ist das Problem der Versorgung, weil ich die 5V-Versorgung zu 1V durch eine Spannung geteilt und seine Ausgabe zu einem Sensor umwandelt. Irgendwelche Vorschläge und eine gute Spannung geteilt Schaltung?
Etwas stimmt nicht mit Ihrem ADC; Das sollte von 0-1023 reichen, nicht nur von 90. Sie brauchen auch nicht die zweite Zeile in Ihrer "1V" Version, die insgesamt nur "(adc/1023) * VCC" sein sollte – dandavis