Fórum | MyPower.CZ | Obnovitelné zdroje energie - energetická soběstačnost | Právě je pát kvě 24, 2019 11:16 pm


ATtiny85 + Uno komunikácia

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
PředchozíDalší

Re: ATtiny85 + Uno komunikácia

Příspěvekod kodl69 » ned led 27, 2019 7:18 pm

na tohle jsi se díval? https://forum.arduino.cc/index.php?topic=26299.0
mělo by ot snad být u všech AVR stejný... přepočet by měl být: temp=(raw-336)/1.17
akorát potom uves ad převodník do původního stavu.
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 3513
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 258

Re: ATtiny85 + Uno komunikácia

Příspěvekod pete » ned led 27, 2019 8:56 pm

Teplota naměřená na vstupu ADC4 při použití interní reference 1.1V odpovídá -40C pro hodnotu 230, +25C pro hodnotu 300 a +85C pro hodnotu 370. To jsou typické hodnoty, ale je třeba to kalibrovat. Při kalibraci jednim bodem se dosahuje přesnost +-10C. Dvoubodova kalibrace dává lepší přesnost. Je to popsané v datasheetu na straně 133.
pete
 
Příspěvky: 58
Registrován: úte srp 04, 2015 8:19 pm
Reputation: 3

Re: ATtiny85 + Uno komunikácia

Příspěvekod rottenkiwi » ned led 27, 2019 9:41 pm

Pri pripojení na Lion sú tie hodnoty vyčítané z prevodníka stabilné, od 3.7 do 4.32 V
s chybou cca. 5 až 10 mV.
Skúsim to teraz nakalibrovať na LiFePO, ako sa to bude správať tam + pridám to meranie
teploty.

.
.
.
Tak na LiFePO to skáče viac ako na Lion, až o -10 až +10 mV.
https://www.youtube.com/watch?v=d-NeRHDPBso
Only God & bank can create something from nothing. LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Hoverbike Carbon Pb
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2330
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 117

Re: ATtiny85 + Uno komunikácia

Příspěvekod kodl69 » ned led 27, 2019 11:08 pm

Já jsem začal řešit "probouzení attiny" přes pcint a zároveň přes watchdog, ale je to na mě moc...
našel jsem tohle: https://github.com/SlashDevin/NeoSWSerial ale nějak nevím jak dál, aby přerušení fungovalo i pro RX data i pro probuzení procesoru. Nějakej nástřel kódu by mě dost pomohl...
Další problém je asi použití watchdog timeru pro probuzení attiny (třeba po 4s) a zároveň jako watchdog reset, třeba po 8s, je to vůbec u AVR možný takhle použít?
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 3513
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 258

Re: ATtiny85 + Uno komunikácia

Příspěvekod rottenkiwi » ned led 27, 2019 11:43 pm

Ja to uspávam podľa tohoto:
https://www.re-innovation.co.uk/docs/sl ... -attiny85/

Len tú teplotu mi nečíta správne.
Only God & bank can create something from nothing. LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Hoverbike Carbon Pb
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2330
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 117

Re: ATtiny85 + Uno komunikácia

Příspěvekod pete » pon led 28, 2019 10:46 am

Watchdog timer můžeš použít současně pro probuzení ze spánku přerušením a současně i pro reset. Je třeba po každém probuzení v hlavní smyčce před dalším usnutím nastavit bit WDIE (Watchdog Timeout Interupt Enable) v registru WDTCR. Tento bit se totiž hardwarově nuluje hned po probuzení watchdogem a pokud ho nenastavíš tak po dalším timeoutu watchdogu následuje reset. To je přesně to co potřebuješ.
Datasheet strana 45.
pete
 
Příspěvky: 58
Registrován: úte srp 04, 2015 8:19 pm
Reputation: 3

Re: ATtiny85 + Uno komunikácia

Příspěvekod rottenkiwi » pon led 28, 2019 4:46 pm

Doprogramoval som spánok na 2x4 sec, vtedy je spotreba 110 uA.

Ak to zlomok sekundy berie 9 mA a potom 8 sec. 110 uA, aká bude spotreba
za 24 hod ?


Ešte naprogramovať tú teplotu a zobudenie, ak prídu dáta.
https://www.youtube.com/watch?v=HSlbnj-nbzw

Stačí v tomto kóde zmeniť PCINT3 na PCINT0 ?
Potom, ak za zobudia Attiny, zakázať spánok na 1 sec.,
preposlať BMS info string a znova povoliť spánok ?


Kód: Vybrat vše
void sleep() {

    GIMSK |= _BV(PCIE);                     // Enable Pin Change Interrupts
    PCMSK |= _BV(PCINT3);                   // Use PB3 as interrupt pin
    ADCSRA &= ~_BV(ADEN);                   // ADC off
    set_sleep_mode(SLEEP_MODE_PWR_DOWN);    // replaces above statement

    sleep_enable();                         // Sets the Sleep Enable bit in the MCUCR Register (SE BIT)
    sei();                                  // Enable interrupts
    sleep_cpu();                            // sleep

    cli();                                  // Disable interrupts
    PCMSK &= ~_BV(PCINT3);                  // Turn off PB3 as interrupt pin
    sleep_disable();                        // Clear SE bit
    ADCSRA |= _BV(ADEN);                    // ADC on

    sei();                                  // Enable interrupts
    } // sleep

ISR(PCINT0_vect) {
    // This is called when the interrupt occurs, but I don't need to do anything in it
    }
Only God & bank can create something from nothing. LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Hoverbike Carbon Pb
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2330
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 117

Re: ATtiny85 + Uno komunikácia

Příspěvekod mypower.cz » pon led 28, 2019 5:24 pm

rottenkiwi píše:Ak to zlomok sekundy berie 9 mA a potom 8 sec. 110 uA, aká bude spotreba
za 24 hod ?


7.9 s x 110 uA = 7.9 x 0.11 mA = 0.869 mAs
0.1 s x 9 mA = 0.9 mAs
8 s = 0.869 mAs + 0.9 mAs = 1.769 mAs /1000 = 0.001769 As
1 den = 86400 sekund
Za den: 86400 / 8 = 10800 * 0.001769 As = 19.1052 As / 3600 = 0.005307 Ah ?
Podpořte MyPower.CZ | 2.24kWp FVE | MyPower MicroLog2 | III. Sraz příznivců FV u Brna 8.6. 2019 | Sraz 2018
BTC support 37uvSpUKTCmcJZD9bs8ZWhdrubxBxRZSuT | LTC support LPYitoWPn3k5PqWBWmuzbcwj344THtZ7q2
Uživatelský avatar
mypower.cz
Site Admin
 
Příspěvky: 3554
Registrován: pát bře 04, 2011 11:36 am
Reputation: 227

Re: ATtiny85 + Uno komunikácia

Příspěvekod rottenkiwi » pon led 28, 2019 5:45 pm

Takže:
0.0053 x 13.5 V = 0.07155 Wh denne pre 12 V systém,
0.0053 x 27 V = 0.1431 Wh denne pre 24 V systém,
0.0053 x 54 V = 0.2862 Wh denne pre 48 V systém,

ergo ročne: 26 Wh, resp. 52 Wh, resp. 104 Wh.

Lenže potom treba aj riadiacu jednotu uspávať, lebo Uno či Mega má podstatne vačšie nároky.
Only God & bank can create something from nothing. LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Hoverbike Carbon Pb
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2330
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 117

Re: ATtiny85 + Uno komunikácia

Příspěvekod mypower.cz » pon led 28, 2019 5:57 pm

rottenkiwi píše:Takže:
0.0053 x 13.5 V = 0.07155 Wh denne pre 12 V systém,
0.0053 x 27 V = 0.1431 Wh denne pre 24 V systém,
0.0053 x 54 V = 0.2862 Wh denne pre 48 V systém,

ergo ročne: 26 Wh, resp. 52 Wh, resp. 104 Wh.

Lenže potom treba aj riadiacu jednotu uspávať, lebo Uno či Mega má podstatne vačšie nároky.


spis myslim ze to bude 0.0053Ah x 5V = 0.0265 Wh denne pokud to bude napajeno 5V a proud pri 5V je vyse uvedeny nebo 0.0053Ah x 3.3V = 0.01749 Wh denne a proud pri 3.3V je vyse uvedeny (9mA a 110uA).
Podpořte MyPower.CZ | 2.24kWp FVE | MyPower MicroLog2 | III. Sraz příznivců FV u Brna 8.6. 2019 | Sraz 2018
BTC support 37uvSpUKTCmcJZD9bs8ZWhdrubxBxRZSuT | LTC support LPYitoWPn3k5PqWBWmuzbcwj344THtZ7q2
Uživatelský avatar
mypower.cz
Site Admin
 
Příspěvky: 3554
Registrován: pát bře 04, 2011 11:36 am
Reputation: 227

Re: ATtiny85 + Uno komunikácia

Příspěvekod rottenkiwi » pon led 28, 2019 6:04 pm

To bude napajane priamo z článku, takže pre LiFePO to bude 3.375 V x počet článkov, ergo
4, 8, 16 atď. Pre Lion je počet článkov pre daný nominál nižší, ale celkové napatie ostáva.

Záleží na tom, koľko času budú články pod či nad 3.375 V. U mňa z databázy vychádza 3.375,
ako priemer za deń, keď svieti a sú baterky naplno dobité.
Only God & bank can create something from nothing. LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Hoverbike Carbon Pb
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2330
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 117

Re: ATtiny85 + Uno komunikácia

Příspěvekod kodl69 » pon led 28, 2019 8:39 pm

Napájení řídící jednotky je z energetickýho hlediska trochu problém, jedna z možností je, že řídící jednotka bude třeba SDS, Rbpi, Microlog a pod, tj něco, co stejně v systému je. Pokud budu dělat step down konvertor z 30V/5V, příp. z 50V/5v, tak vlastní spotřeba takovýho aparátu bude dost značná, pokud bude komunikační rozhraní LAN, tak V5500 jsou pěkný kamna, se spotřebou cca 1-2W, udržet sepnutý nějaký relátka asi taky nějakou elektriku spotřebuje, a pokud na tom bude jinej displej než LCD z N5110 tak to taky nějakou elektriku sežere.
Buck regulátor s vlastní spotřebou cca 1mW není problém: https://www.analog.com/en/products/lt8619.html
ale nejsem si jist, že je to to správný řešení. Možná by bylo fajn udělat nějakou knihovnu, příp vzorovej sḱetch pro vyčtení dat z balanceru, a ať si to každej vyřeší, jak je mu libo. Dělat nějaký univerzální řešení vidím jako problém.
Samozřejmě v případě použití LAN s W5100(5500 prej je úspornější) zcela dehonestuje snahu o úsporný napájení. Pak může býtbuck obyč z aliexpresu za 1.5USD, arduino mega a ethernet shield a jede se. Momentálně testuju moduly s převodníkem UART/USB, takže by to klidně mohlo být i nějaký zařízení s androidem, pokud to někdo dokáže naprogramovat...
Samozřejmě že by šla udělat i low power varianta, třeba s atmega328, využívat sleep mode, relátka dát bistabilní, displej z N5110, a komunikaci galvanicky oddělenej UART (RS485 modbus?, RS232 modbus pro midnite?) a low question buck, ale kolik lidí bude chtít tuhle variantu? možná si to udělám takhle pro sebe.
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 3513
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 258

Re: ATtiny85 + Uno komunikácia

Příspěvekod rottenkiwi » pon led 28, 2019 10:57 pm

Tak, zdá sa, že to robí čo chcem, len tu teplotu neviem nakalibrovať.
Len ešte treba nejako synchronizovať spánok Attiny85 aj Una.

https://www.youtube.com/watch?v=VQ1egNJi8MA
Přílohy
life_bms_with_sleep_PCINT0.png
Only God & bank can create something from nothing. LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Hoverbike Carbon Pb
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2330
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 117

Re: ATtiny85 + Uno komunikácia

Příspěvekod mypower.cz » úte led 29, 2019 12:15 am

kodl69 píše:Možná by bylo fajn udělat nějakou knihovnu, příp vzorovej sḱetch pro vyčtení dat z balanceru, a ať si to každej vyřeší, jak je mu libo.


Za to bych se taky primlouval. I zapis nastaveni. Jednak pro univerzalni pouziti kdekoliv a taky bych pridal tuhle podporu do micrologu. Treba moznost nastaveni a zobrazeni zivych dat pekne graficky pres www rozhrani, programovatelny LCD display, moznost archivace dat na mypower.cz, grafy. Prave se mi jen tak z hecu po letech povedla uspesna kompilace rozpracovane verze 2.06 uz i s podporou logovani na SD kartu v nejnovejsim Arduino IDE 1.8.8. Coz znamena ze by se to dalo jednoduse pridat.

:))
Podpořte MyPower.CZ | 2.24kWp FVE | MyPower MicroLog2 | III. Sraz příznivců FV u Brna 8.6. 2019 | Sraz 2018
BTC support 37uvSpUKTCmcJZD9bs8ZWhdrubxBxRZSuT | LTC support LPYitoWPn3k5PqWBWmuzbcwj344THtZ7q2
Uživatelský avatar
mypower.cz
Site Admin
 
Příspěvky: 3554
Registrován: pát bře 04, 2011 11:36 am
Reputation: 227

Re: ATtiny85 + Uno komunikácia

Příspěvekod kodl69 » pát úno 01, 2019 1:35 am

při testu probouzení ze spánku jsem měl dílčí úspěch, podle tohoto: http://blog.onlinux.fr/interruption-and ... -attiny85/
LEdky krásně blikaly po 8s nebo po příchodu log. 0 na vstup 0,
ale hned v další minutě konec, už při doplnění jenom #include <SoftwareSerial.h> , bez dalšího, to nejde zkompilovat a vyhrožuje to:
libraries/SoftwareSerial/SoftwareSerial.cpp.o (symbol from plugin): In function `SoftwareSerial::read()':
(.text+0x0): multiple definition of `__vector_2'
sketch/sleep_test.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2: error: ld returned 1 exit status
exit status 1
Nastala chyba při kompilaci u desky ATtiny25/45/85.


Co to jako je? Já si dycky myslel, že knihoven můžu mít v záhlaví třeba dvacet, a překladač na ně bude "sahat" až ve chvíli, kdy na danou knihovnu najde odkaz v programu. A ty, co se nepoužijí, výsledný HEX vůbec neovlivní. Nebo je všecko jinak?
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 3513
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 258

Re: ATtiny85 + Uno komunikácia

Příspěvekod DanoP » pát úno 01, 2019 8:13 am

Pokusas sa dvakrat definovat vektor prerusenia na to iste. Prvy raz ho mas zadefinovany v prebudzani na zmenu pinu, a druhy krat ho definuje SoftwareSerial. Takze treba ponechat len definiciu v SoftwareSerial.
1770Wp monokryštál + PIP4048MS + 10kWh LiFePO4
DanoP
 
Příspěvky: 127
Registrován: stř črc 06, 2016 11:27 am
Bydliště: Trnava, Slovensko
Reputation: 9

Re: ATtiny85 + Uno komunikácia

Příspěvekod kodl69 » pát úno 01, 2019 8:24 am

A jak to teda probudím?
předpokládám, že je potřeba nějaká změna kódu v téhle oblasti:
Kód: Vybrat vše
void setup()
{
  setup_watchdog(9);
  pinMode(wakeUpPin, INPUT);        // Set the pin to input
  PCMSK  |= bit (PCINT0);  //                                   Pin Change Mask Register
  GIFR   |= bit (PCIF);    // clear any outstanding interrupts  General Interrupt Flag Register
  GIMSK  |= bit (PCIE);    // enable pin change interrupts      General Interrupt Mask Register
  sei();                   // enable interrupts
}
 
ISR (PCINT0_vect){}


Jinak se mě to dost líbilo, jak za 8s zablikala jedna LED a když jsem poslal nějaký data , tak zablikala druhá a když se mi to povedlo trefit, tak obě :D
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 3513
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 258

Re: ATtiny85 + Uno komunikácia

Příspěvekod DanoP » pát úno 01, 2019 10:15 am

SoftwareSerial to zobudi samo na pin change (lebo ma nadefinovanu vlastnu registraciu na on pin change), dokonca pri rychlosti 4800 mam odskusane ze ani nestraca prvy znak (ja ale pouzivam negovane urovne, 0 ma pri 0V, 1 pri Vcc).
Ak by bolo treba nieco vlastne nastavovat (flag?) v obsluhe interruptu, potom treba modifikovat SoftwareLibray.cpp tak ze zakomentujes r. 225 az 242 (definicia ISR(...), spravi sa vlastna registracia ISR (ako si mal) a z nej okrem vlastnych veci volas staticku metodu SoftwareSerial::handle_interrupt();
Zvycajne ale staci pocitat s tym ze SoftwareSerial to zobudi, zavolat spracovanie while (mySerial.available()>0)...., spravit vlastne veci, ak treba, a uspat.
1770Wp monokryštál + PIP4048MS + 10kWh LiFePO4
DanoP
 
Příspěvky: 127
Registrován: stř črc 06, 2016 11:27 am
Bydliště: Trnava, Slovensko
Reputation: 9

Re: ATtiny85 + Uno komunikácia

Příspěvekod kodl69 » pát úno 01, 2019 2:04 pm

až tak jednoduše? Odpoledne vyzkouším, dík. Já tam zkusím poslat 1ms LOW, aby se to mělo čas probrat, a 1ms než pošlu data, v těch skoro 2ms by to mohlo stihnout naměřit napětí, netuším, jak rychlej ten ad převodník je, bez nějakýho dalšího nastavování. a nebo naopak, napřed data a pak měření, co na tom, že se budou posílat pár sekund starý data, na baterce se nic zas tak rychle nemění.
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 3513
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 258

Re: ATtiny85 + Uno komunikácia

Příspěvekod DanoP » pát úno 01, 2019 3:03 pm

Daj pozor aby sa to hned neuspalo ked sa to zobudi na signal na RX porte. Prevod ADC ak bolo ADC vypnute trva 25 cyklov hodin ADC prevodniku (cize ak mas hodiny ADC 50kHz tak 20 us). Mozes bud cakat na ukoncenie prevodu, alebo nechas bezat loop s tym ze testujes ci uz je hotovo (nesmie zaspat) a zatial robis nieco ine. Pouzit prerusenie spustene ukoncenim prevodu ADC zoberie viac strojoveho casu ako testovanie flagu v loop-e.
1770Wp monokryštál + PIP4048MS + 10kWh LiFePO4
DanoP
 
Příspěvky: 127
Registrován: stř črc 06, 2016 11:27 am
Bydliště: Trnava, Slovensko
Reputation: 9

PředchozíDalší

Zpět na Arduino

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků

cron
Reputation System ©'