Stránka 5 z 6

Napsal: 25 kvě 2021, 12:07
od FHonza
Dovolil bych si tvrdit, že s RTC si pomůžeš. Už jenom kvůli tomu, že na knoflíkovou baterku poběží několik let. Taky proto ho vyrábí …
Jestli trváš na Arduinu, tak příkladů na internetu jsou mraky i v češtině. Ale myslím si, že obecně Arduino není vhodný framework pro aplikace, kde záleží na spotřebě.

Napsal: 25 kvě 2021, 13:26
od buchar
Ne ne FHonza, arduino mě už leze krkem. Právě proto, že je toho všude plno. Zapojení arduino+ ds1307 a ds3231 jsem viděl a ze zvědavosti vyzkoušel mnoho. Chtěl bych to vyřešit s tím RTC a proto prolézám net křížem krážem. Když narazím na nějaký kód, který propojuje atmegu8 a ds1307 tak ho nejdřív pročítám, abych ho trochu pochopil a pak ho zkouším použít. Samozřejmě ho musím upravit podle mého zapojení. Jenže jak už jsem psal, neumím programovat avr jako většina z vás tady a nikdy se mi nepodaří upravit vše tak, aby mi to fungovalo i když při kompilaci nevyskočí žádná chybová hláška.
Proto se obracím na toto fórum jestli by mi někdo nepomohl.

Napsal: 25 kvě 2021, 20:06
od FHonza
Mnohem lepší je dát sem kus kódu a diskutovat nad ním. V té knížce, co jsem odkazoval, je pěkný příklad. Použitá knihovna (v textu je odkaz ke stažení) je pěkně okomentovaná. I²C není nic složitého, obzvlášť když bude jeden master a jeden slave.

Edit: případně pěkný popis s příklady je zde.

Napsal: 25 kvě 2021, 21:11
od buchar
No jo, pro tebe to není nic složitého, ale co já "Céčkový panic"?
Já jsem zatím zvládnul přehodit segment displeje 1 a 2 z pinů 27 a 28 (SDA, SCL) atmegy na piny 23 a 24, abych mohl připojit ds1307 na SDA a SCL procesoru. Chvilku mi trvalo než jsem přišel na to jakou adresu mám zapsat, aby se segmenty zase rozsvítily, ale přišel jsem na to. No a teď už jen upravit původní kód. Na tu knihu jsem se díval. Obzvláště na článek "TWI", ale nejsem z toho dvakrát moudrý.
Ten odkaz na knihovnu jsem nějak přehlédl. Stáhnu a budu zkoušet s popsaným kódem.

Napsal: 26 kvě 2021, 08:21
od Mahoney
"TWI" je to samé co I²C, ale to asi víš.. Já neznám ATmega8, tak nevím jestli má HW I²C (a nechce se mi to zjišťovat), ale pokud má, tak v podstatě ani nemusíš moc studovat, jak to pracuje. Ale SPI je (alespoň dle mého názoru) příjemnější než I²C.

Navíc to řešíš zbytečně, když to máš do auta. Píchni napájení displeje (přes patřičné obvody, samozřejmě) na spínačku a MCU nech běžet na autobaterku, a je po problému.

Proto jsem psal to co jsem psal, mám z toho pocit, že sis toho chtěl naložit víc, než uneseš. Škoda času, elektronika není zas tak fajn věc, jak to vypadá, ale to je na tobě. Život umí překvapit.

Napsal: 26 kvě 2021, 09:10
od buchar
Mahoney, něco podobného mě už taky napadlo. Hodiny bych napájel normálně přes spínací skříňku a autobaterii bych přímo napojil na místo cr2032 ( vše samozřejmě přes stabilizátory). Tak bych mohl nechat tu úpravu co jsem udělal, že zhasne displej při odpojení napájení.
S tím ds1307 jsem to chtěl udělat, že se mi to zdá jednodušší, ale vidím, že je to složité na úpravu kódu, když tady nikdo nenabídne konkrétnější řešení.

Napsal: 26 kvě 2021, 16:48
od FHonza
ATmega 8 má hardwarové I²C (TWI). TWI tomu museli v Atmelu říkat, protože název I²C měl chráněn tuším Philips.

Případně použij (nebo alespoň nakoukni) nějakou hotovou knihovnu. Namátkou třeba: ds1307. Tam je to i s příklady.

Napsal: 26 kvě 2021, 16:55
od buchar
Já už jsem zkoušel několik knihoven, ale mrknu i na tuhle. Já jsem totiž takový, že dokud nějaký problém nevyřeším tak nemůžu klidně spát 😁.

Napsal: 26 kvě 2021, 17:04
od FHonza
Fakt to jenom složitě vypadá :) Je dobrý mít ponětí o tom, jak I²C funguje. Jak jsem psal, kdyby Ti nějaký kód nefungoval, tak ho dej sem.

Napsal: 26 kvě 2021, 17:27
od buchar
A není to knihovna pro použití s arduinem? Možná se ptám hloupě.
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"

Napsal: 26 kvě 2021, 18:38
od FHonza
Sorry, je to tak. Dá se použít i mimo Arduino, ale musel bys mít projekt v C++. Na tuhle radši zapomeň. :)

Napsal: 26 kvě 2021, 19:12
od buchar
To je v poho.

Napsal: 04 čer 2021, 06:25
od buchar
Tak jsem zkoušel tu DS1307 rozchodit a pořád se mi to nedaří. Shlédl jsem spoustu videí, prošel spoustu webů a zkoušel a zkoušel a zkoušel, ale nic. Prostě to neumím. A vím, že neumím správně nastavit adresy.
A tak mě napadlo, než upravovat původní program, nebude jednodušší udělat na toto zapojení nový?
Troufnul by si někdo z vás na to? Samozřejmě bych to nechtěl zadarmo. Každá práce má být odměněna.

Napsal: 08 čer 2021, 17:27
od FHonza
Adresu má DS1307 jedinou a nedá se měnit. 7 bitová adresa je 0b1101000,
tj. pro zápis do RTC bude 0b11010000, pro čtení z RTC 0b11010001. Nejnižší bit se mění podle toho, zda chceš číst nebo zapisovat.

Napsal: 08 čer 2021, 17:58
od buchar
FHonza díky za nápovědu. Teď zrovna laboruji s jedním kódem. Myslíš, že by jsi se na něj mohl podívat? Je to kód ze zapojení hodin ze strany 1. tohoto vlákna.