Stap 5: Arduino integratie (het draaien op de omvormer)
We willen niet dat onze omvormer altijd aangesloten op de batterij om meerdere redenen. We willen niet een spook lading potentieel aftappen van onze batterij wanneer het niet in gebruik, maar belangrijker nog, we willen niet dat mensen in staat om te stoppen in hun telefoons of laptops en afvoer van de batterij zonder werken voor het. Met behulp van de Arduino te draaien uit en weer aan de omvormer stelt ons in staat om de in- en uitgangen van onze batterij zonder zich het baseren op de eerlijkheid of de technische ervaring van onze gebruikers.
We kunnen de Arduino als de keeper van de poort van de omvormer eenvoudig integreren met behulp van een MOSFET. Een MOSFET is net als een normale transistor maar vereist minder stroom vanaf de gate om in te schakelen, terwijl het leveren van veel grotere stromen (de afweging is dat de poort spanning moet groter zijn dan een normale transistor maar dat is niet een probleem voor een Arduino). We introduceerde de MOSFET in het batterij-omvormer circuit zodat de negatieve einde van de omvormer was verbonden met de afvoer van de MOSFET en het negatieve uiteinde van de batterij was verbonden met de bron van de MOSFET. Een van de Arduino de output pinnen was vervolgens aangesloten op de poort van de MOSFET. Wanneer welke criteria stelde is voldaan (een bepaalde duur van fietsen, spanning geboden, etc.) de Arduino geldt een spanning naar de gate, waardoor het huidige vanaf de positieve einde van de batterij stroom naar de omvormer via de MOSFET en naar de negatieve einde van de batterij (dwz het voltooien van het circuit). Als de Arduino heeft dit signaal uitgeschakeld, het circuit is gebroken en de omvormer wordt uitgeschakeld.
Omdat MOSFET aankan grote stromingen, kunnen ze behoorlijk warm. Net als we met de 5V regelgever, een kleine heat sink zodat warmte toegevoegd.
De Code van de steekproef:
de volledige code vindt u op het einde van dit Instructable
de vette code is wat wij toevoegen aan de code van bovenaf
int mosfet = 7; gebruikt om te schakelen op de omvormer
unsigned long timeOn, timecheck; voor het controleren van de tijd
void loop {}
Als (motorV > 1.0 & &! hasBeenOn) {}
timeOn = millis();
}
inverterControl();
}
de afzonderlijke functie
ongeldig inverterControl() {}
battV = getbattV(); Controleer de accuspanning
TIMECHECK = millis() - timeOn; controleren hoe lang de gebruiker heeft zijn fietsen
/ * We willen de gebruiker voor een bepaalde hoeveelheid tijd heb biked
voordat u toestaat de gebruiker om te laden van de gebruiker elektronica.
We moeten ook om er zeker van te zijn dat de batterij is niet undercharged.
*/
Als (hasBeenOn & & (battV > 10.0) & & (timecheck > 5000) & &! mosfetOn) {}
digitalWrite (mosfet, hoge); de omvormer is ingeschakeld wanneer de Arduino Hiermee schakelt u de MOSFET
mosfetOn = true;
}
anders als ((battV < = 10,0)) {//turns uit omvormer als de batterij te laag is
digitalWrite (mosfet, laag);
mosfetOn = false;
}
anders if(timecheck <5000) {//turns uitschakelen als de gebruiker gestopt/niet heeft gefietst lang genoeg
digitalWrite (mosfet, laag);
mosfetOn = false;
}
}