Stap 3: Spanning sensoren
De belangrijkste sensoren in de heffing controller is spanning sensoren die kunnen eenvoudig worden geïmplementeerd met behulp van een circuit spanning divider. We hebben zin voltage uit zonnepaneel en de accuspanning.
Als de ARDUINO analoge pin ingangsspanning beperkt tot 5V is, ontwierp ik de scheidingslijn van de spanning op zodanige wijze dat de uitgangsspanning hieruit minder dan 5V moet. Ik gebruikte een 5W (Voc = 10v) zonnepaneel en een 6v and5.5Ah SLA batterij voor het opslaan van de macht. Ik moet dus zowel de spanning te verlagen dan 5V aftreden. Ik gebruikte R1 = 10k en R2 = 4.7K in zowel de spanningen (zonnepaneel spanning en accuspanning) sensing. De waarde van de R1 en R2 kan lager maar het probleem is dat wanneer de weerstand laag hogere stroom vloeien door het daardoor grote hoeveelheid stroom (P = I ^ 2R) afgevoerd in de vorm van warmte. Zo verschillend weerstandswaarde kan worden gekozen, maar moet worden gezorgd om te minimaliseren van het verlies van de macht over de weerstand.
Deze heffing controller heb voor mijn eis (6V accu en 5w, 6V zonnepaneel), ik ontworpen voor hogere spanning hebt u de scheidingslijn weerstanden waarde te wijzigen. Voor het kiezen van de juiste weerstanden kunt u ook een online calculator
Ik heb in de code de variabele "solar_volt " genoemd voor de spanning van de zonnepanelen en de "bat_volt "voor de batterijspanning van de.
Vout R2 = /(R1+R2) * V
deelvenster spanning laat 9V = bij fel zonlicht
R1 = 10k en R2 = 4.7 k
solar_volt = 4.7 / (10 + 4,7) * 9.0 = 2.877v
Laat de accuspanning is 7V
bat_volt = 4.7 / (10 + 4,7) * 7.0 = 2.238v
Zowel de spanningen van spanning dividers zijn lager dan 5v en geschikt voor analoge pin van de ARDUINO
ADC calibratie:
laat een voorbeeld nemen:
werkelijke volt/scheidingslijn output = 3.127
2.43 V is eqv 520 ADC
1 is eqv te .004673V
Gebruik deze methode om de sensor kalibreren.
ARDUINO CODE:
for (int i = 0; ik < 150; i ++)
{sample1 += analogRead(A0); //read de ingangsspanning van zonnepaneel
sample2 += analogRead(A1); Lees de accuspanning
delay(2);
}
sample1 = sample1/150;
sample2 = sample2/150;
solar_volt =(sample1*4.673* 3.127)/1000;
bat_volt =(sample2*4.673* 3.127)/1000;
Voor ADC kalibratie verwijzen mijn vorige instructables waar ik heb uitgelegd in de diepte.