ATtiny85 + Uno komunikácia

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
Odpovědět
Uživatelský avatar
rottenkiwi
Příspěvky: 5451
Registrován: pát úno 13, 2015 2:24 pm
Reputace: 285
Lokalita: SO, SK
Bydliště: SO, SK

Re: ATtiny85 + Uno komunikácia

Příspěvek od rottenkiwi »

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

Len tú teplotu mi nečíta správne.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
pete
Příspěvky: 72
Registrován: úte srp 04, 2015 9:19 pm
Reputace: 5

Re: ATtiny85 + Uno komunikácia

Příspěvek od pete »

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.
Uživatelský avatar
rottenkiwi
Příspěvky: 5451
Registrován: pát úno 13, 2015 2:24 pm
Reputace: 285
Lokalita: SO, SK
Bydliště: SO, SK

Re: ATtiny85 + Uno komunikácia

Příspěvek od rottenkiwi »

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
    }
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Uživatelský avatar
mypower.cz
R.I.P.
Příspěvky: 4927
Registrován: pát bře 04, 2011 11:36 am
Reputace: 521

Re: ATtiny85 + Uno komunikácia

Příspěvek od mypower.cz »

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 ?
Uživatelský avatar
rottenkiwi
Příspěvky: 5451
Registrován: pát úno 13, 2015 2:24 pm
Reputace: 285
Lokalita: SO, SK
Bydliště: SO, SK

Re: ATtiny85 + Uno komunikácia

Příspěvek od rottenkiwi »

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.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Uživatelský avatar
mypower.cz
R.I.P.
Příspěvky: 4927
Registrován: pát bře 04, 2011 11:36 am
Reputace: 521

Re: ATtiny85 + Uno komunikácia

Příspěvek od mypower.cz »

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).
Uživatelský avatar
rottenkiwi
Příspěvky: 5451
Registrován: pát úno 13, 2015 2:24 pm
Reputace: 285
Lokalita: SO, SK
Bydliště: SO, SK

Re: ATtiny85 + Uno komunikácia

Příspěvek od rottenkiwi »

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é.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
kodl69
Příspěvky: 7377
Registrován: sob črc 19, 2014 8:56 pm
Reputace: 866
Lokalita: severně od Brna
Systémové napětí: 48V
Výkon panelů [Wp]: 8kWp
Kapacita baterie [kWh]: 12kWh
Chci prodávat energii: NE
Chci/Mám dotaci: NE

Re: ATtiny85 + Uno komunikácia

Příspěvek od kodl69 »

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 skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
Uživatelský avatar
rottenkiwi
Příspěvky: 5451
Registrován: pát úno 13, 2015 2:24 pm
Reputace: 285
Lokalita: SO, SK
Bydliště: SO, SK

Re: ATtiny85 + Uno komunikácia

Příspěvek od rottenkiwi »

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
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Uživatelský avatar
mypower.cz
R.I.P.
Příspěvky: 4927
Registrován: pát bře 04, 2011 11:36 am
Reputace: 521

Re: ATtiny85 + Uno komunikácia

Příspěvek od mypower.cz »

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.

:))
kodl69
Příspěvky: 7377
Registrován: sob črc 19, 2014 8:56 pm
Reputace: 866
Lokalita: severně od Brna
Systémové napětí: 48V
Výkon panelů [Wp]: 8kWp
Kapacita baterie [kWh]: 12kWh
Chci prodávat energii: NE
Chci/Mám dotaci: NE

Re: ATtiny85 + Uno komunikácia

Příspěvek od kodl69 »

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 skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
DanoP
Příspěvky: 938
Registrován: stř črc 06, 2016 12:27 pm
Reputace: 211
Bydliště: Trnava, Slovensko

Re: ATtiny85 + Uno komunikácia

Příspěvek od DanoP »

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.
1,77kWp monokryštál + Fangpusun MPPT 150/45, 1,6kWp +Victron MPPT 250/60, 2xStuder XTM4048 + 25kWh LiFePO4, vlastny monitoring na https://www.mms-softec.sk/pip/
kodl69
Příspěvky: 7377
Registrován: sob črc 19, 2014 8:56 pm
Reputace: 866
Lokalita: severně od Brna
Systémové napětí: 48V
Výkon panelů [Wp]: 8kWp
Kapacita baterie [kWh]: 12kWh
Chci prodávat energii: NE
Chci/Mám dotaci: NE

Re: ATtiny85 + Uno komunikácia

Příspěvek od kodl69 »

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 skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
DanoP
Příspěvky: 938
Registrován: stř črc 06, 2016 12:27 pm
Reputace: 211
Bydliště: Trnava, Slovensko

Re: ATtiny85 + Uno komunikácia

Příspěvek od DanoP »

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.
1,77kWp monokryštál + Fangpusun MPPT 150/45, 1,6kWp +Victron MPPT 250/60, 2xStuder XTM4048 + 25kWh LiFePO4, vlastny monitoring na https://www.mms-softec.sk/pip/
kodl69
Příspěvky: 7377
Registrován: sob črc 19, 2014 8:56 pm
Reputace: 866
Lokalita: severně od Brna
Systémové napětí: 48V
Výkon panelů [Wp]: 8kWp
Kapacita baterie [kWh]: 12kWh
Chci prodávat energii: NE
Chci/Mám dotaci: NE

Re: ATtiny85 + Uno komunikácia

Příspěvek od kodl69 »

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 skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
DanoP
Příspěvky: 938
Registrován: stř črc 06, 2016 12:27 pm
Reputace: 211
Bydliště: Trnava, Slovensko

Re: ATtiny85 + Uno komunikácia

Příspěvek od DanoP »

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.
1,77kWp monokryštál + Fangpusun MPPT 150/45, 1,6kWp +Victron MPPT 250/60, 2xStuder XTM4048 + 25kWh LiFePO4, vlastny monitoring na https://www.mms-softec.sk/pip/
kodl69
Příspěvky: 7377
Registrován: sob črc 19, 2014 8:56 pm
Reputace: 866
Lokalita: severně od Brna
Systémové napětí: 48V
Výkon panelů [Wp]: 8kWp
Kapacita baterie [kWh]: 12kWh
Chci prodávat energii: NE
Chci/Mám dotaci: NE

Re: ATtiny85 + Uno komunikácia

Příspěvek od kodl69 »

Konec akce. Nefunguje mi nic normálně. tenhle pokus má probudit attiny a data beze změny přeposlat. To se stane jednou, a pak už ne, nebo přepošle 36znaků, jeden znak nebo taky nic nic... Strávil jsem na tom příliš mnoho času bez toho, že by se nějak blížil výsledek.

POKUD TO NIKDO NENAPROGRAMUJETE tak ty DESKY HODÍM DO KOŠE a budu se raděj věnovat něčemu rozumnějšímu. Zatím je to cca 100 hodin a prakticky bez výsledku.
attiny_sleep_serial_bad.ino
(2.65 KiB) Staženo 96 x
Zhruba týden čekám, komu to mám poslat a když nikdo, tak to vyhodím. Jednodušší bude si koupit na e-skutru hotový funkční moduly.
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
dub042
Příspěvky: 272
Registrován: pát kvě 09, 2014 8:11 pm
Reputace: 14

Re: ATtiny85 + Uno komunikácia

Příspěvek od dub042 »

Čaute chlapi, sleduju toto vlákno a připadá mi to velice složité řešení. Dělám na něčem podobném. Attiny85, ADS1115, na 1 pwm attiny mám RC filtr který pak přes optočlen otvírám jeden tranzistor, který zkratuje baterku( pálím to do chladiče tranzistoru ), tedy jedná se o klasickou BMS, ale oproti komerčním si můžu nastavit programově horní hranici BMS. Kód je jednoduchej, pokud jenapětí větší než 3.48, pomalu otvírej tranzistor a naopak. DPS si udělám přímo na rozměry baterky.
Oproti vám tam nemám UART, ale to ani nepotřebuju.
No třeba někoho inspiruju, tak hodně zdaru
Uživatelský avatar
rottenkiwi
Příspěvky: 5451
Registrován: pát úno 13, 2015 2:24 pm
Reputace: 285
Lokalita: SO, SK
Bydliště: SO, SK

Re: ATtiny85 + Uno komunikácia

Příspěvek od rottenkiwi »

JA zas potrebujem po HW stánke, 4 funkčné moduly, aby som sa pustil do testovania. :)
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
kodl69
Příspěvky: 7377
Registrován: sob črc 19, 2014 8:56 pm
Reputace: 866
Lokalita: severně od Brna
Systémové napětí: 48V
Výkon panelů [Wp]: 8kWp
Kapacita baterie [kWh]: 12kWh
Chci prodávat energii: NE
Chci/Mám dotaci: NE

Re: ATtiny85 + Uno komunikácia

Příspěvek od kodl69 »

máš je mít. V průběhu týdne ti to pošlu.

To Dub042: moc složitý a drahý řešení, co toho málo umí. BMS to jistě není, to je zkratka Battery Management System
a ty máš jenom balancer. Pozor na zavádějící pojmenování, podobně jako autopilot u tesly...
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.

Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek