Stap 9: Batterij Voltage Sensor
De AnalogRead-functie kunt u gemakkelijk een spanning meten. Helaas, het kan alleen meten spanningen tot 5V. Dus wilt u aanbrengen van een spanning scheidingslijn om de spanning tot iets dat kan worden gemeten. Als u wilt maken, moet u twee weerstanden. Een van hen moet tweemaal de waarde van de andere. Een voorsprong van de grotere weerstand verbinden met de lijn 12V + van de accu. Steek de andere stekker van de grotere weerstand aan één van de analoge pinnen in de invoermodus. Ook verbinden met een van de leads van de kleinere weerstand deze dezelfde analoge pin. Vervolgens steek de andere stekker van de kleinere weerstand in de negatieve aansluitklem van de accu of de GND pin van de Arduino. Vervolgens kunt u de functie AnalogRead om te meten een spanning als een geheel getal tussen 0 en 1023. Dit omzetten in volt kunt u de formule: V = AnalogRead * 0.0049 * Rgroter/rkleiner. Hier is een voorbeeld van hoe u deze opstelling gebruiken kan om te controleren van de batterij spanning en de fontein uitschakelen zodra de batterij bijna leeg is. De gekozen weerstanden zijn 10K en 4.7K.
int RelayPin = 13; relay driver aangesloten op digital pin 13
int analogPin = 3; Centrum van spanning verdeeld aangesloten op analoge pin 3
int val = 0; variabele de waarde op te slaan lees
VOID Setup
{
pinMode (RelayPin, uitvoer); Hiermee stelt u de digitale pen als uitvoer
}
void loop
{
Val = analogRead(analogPin); Lees de invoer pin
Als (val < 720) //if voltage van de batterij is minder dan 11
met de gekozen weerstanden van 10K en 4.7K verandert de spanning divider 11V in 3.5167V
Dit wordt door de functie analogRead gelezen als 720
{
digitalWrite (RelayPin, laag); de fontein uitgeschakeld als de spanning van de batterij hieronder 11V is
}
Als (val > 785) //if voltage van de batterij groter dan 12 is
met de gekozen weerstanden van 10K en 4.7K verandert de scheidingslijn voltage 12V in 3.8364V
Dit wordt gelezen door de analogRead functie als 785
{
digitalWrite (RelayPin, hoge); de fontein wordt ingeschakeld als de spanning van de batterij groter dan 12V is
}
delay(60000); wacht een minuut
}