Delprojekt 37 - Göra en batterimätare med PCF8591 och spänningsdelare
Ska göra en voltregulator för batterierna som är kopplade till gräsklipparen som sedan kopplas in till PCF8591 som kan printa ut exakt värde på volt och då har jag indikation på när gräsklipparen behöver åka in och laddas.
Jag funderar just nu på om jag ska utöka batterierna och köra med 5S istället för 4S - så jag tänker göra två uträkningar för både 5S och 4S för voltregulatorn så jag har resistorer till båda. Jag har tänkt att spänningsdelaren kommer använda sig av dividerare 7 - då kan jag använda samma motstånd till både 4S och 5S. Det är bara en liten del av programsnutten som behöver modifieras för att det ska bli rätt.
Har även lärt mig att I2C kretsen på RPI kan seriekopplas upp till 8 enheter så nu kör jag HMC5883L och PCF8591 båda på I2C som är seriekopplade. Fungerar bra och får upp adresserna i I2CDETECT i Pajen.
Så vad behöver jag för motstånd för att detta ska fungera:
4S - 4.2*4=16.8V nominell spänning 3.7x4=14.8V
5S - 4.2*5=21V nominell spänning 3.7x5=18.5V
Så det är den nominella spännningen på 3.7V jag ska utgå ifrån, samtidigt är det MAX-spänningen jag måste ta hänsyn till så jag inte bränner kör sönder komponenterna för att det får för hög spänning.
Jag har inte något lager på motstånd och liknande hemma utan brukar köpa det jag ska ha vid tillfälle. Så nu när jag skulle göra min spänningsregulator så vad jag hade hemma var följande: 1st 10kOhms, 5st 2,61kOhm, 5st 4,7kOhm, 3st 0.47kOhm.
Det jag vill ha är att divisionen blir nära 7. Så jag kommer få seriekoppla 3 st 0,47kOhms motstånd. Då får vi följande formel och beräkning enligt nedan.
Ref.voltage = 3.3
Ratio (R1/R2) = 7isch
Vout mindre än 3.3
Vin max 21
R2/R1=3.3/(21-3.3)
R2/R1=3.3/17.7
R2/R1=0.186
Vo= Vin*R2/(R1+R2)
R2/R1= Vo/(Vin-Vo)
1,43/(10+1,43)=0.125=1/8 - Spänningsdelare på 8.
Kommer koppla A0 till GND.
Har köpt ett motstånd på 1.43kOm så jag kan använda det tillsammans med 10kOhm motståndet för att köra en spänningsdelare.
Det blir då 1.43/(10+1.43) = 0.125=1/8 som kommer användas i formeln. Då kommer jag kunna använda mig av spänning som går upp till 21V utan att jag bränner sönder någon komponent.
Har just nu testat min spänningsdelare och kommit fram till att 8 är talet som ska användas för formeln i beräkningen.
Kommer använda mig av quick2wire för RPI och i2clibraries, precis som jag gjorde i Delprojekt 2 för compassometern. Detta innebär att jag inte behöver installera mer program utan allt är redan förinstallerat och färdigt. Så det är egentligen bara att skriva programmet nu som ska läsa utdatan från PCF8591 analog in.
Nu ska jag även få in lite kod i Node.js så jag kan använda detta för att bestämma när gräsklipparen behöver gå in och ladda sig för spänningen är för låg. Finns visst ett bibliotek för pcf8591 från npm så ska se om jag kan få det att fungera.
Hade visst hoppat över lite viktig information från databladet i PCF8591 när jag skulle göra ett program som kommunicerade med modulen. Och det vara att Enabla Analog Ut läsning detta skulle visst göras med en BIT så här 01000000 och det är lika med 0x40 i HEX sedan skulle man välja kanal efter att den varit enablad så vill jag ha kanal 0 är det 0x40+0x00 som ska skickas, alltså 0x40 för att läsa analog ut från Kanal 0.
Datablad för kretsen
http://www.nxp.com/documents/data_sheet/PCF8591.pdf
https://www.enigma14.eu/wiki/AD_Convert ... spberry_Pi