Arduino Mega & Ethernet & OneWire

Odpovědět
PetrB
Příspěvky: 141
Registrován: 20 čer 2018, 13:39
Reputation: 0

Arduino Mega & Ethernet & OneWire

Příspěvek od PetrB » 20 čer 2018, 13:54

Ahoj,
mám tuhle konfiguraci:
Arduino Mega 2560
Ethernet Shield s SD
senzor tlaku, teploty a vlhkosti I2C
hodiny reálného času
OneWire teplotní čidlo.

Vše mi funguje dle očekávání (malý web server, log na SD kartu) a jsou získávány údaje z čidel.
Problém je pouze s OneWire teploměrem a/nebo se síťovou kartou.
Pokud se mi správně inicializuje síťová karta, tak nefunguje OneWire. Když ovšem OneWire inicializuji později než síťovou kartu, tak teploměr funguje, ale pro změnu je nedobytná síťová adresa.

Kód jsem v podstatě poskládal ze vzorových příkladů pro jednotlivé senzory.
Zkoušel jsem různé piny na Mega, parazitní normální připojení a ve finále jsem skončil na pinu 30 a parazitním zapojení, ale už nevím jak dál.

Prohledával jsem internet, co by mohl být problém. Dost se uvádělo, že síťová karta si rezervuje některé digitální piny pro sebe. 30 mezi nimi není a tak jsem připojen k němu.
Kdesi někdo uváděl problémy s rezistorem, který byl použitý v parazitním zapojení. Měřil jsem ho, má 4.7 kOhm, což by mělo být ono, ale můžu ho vyměnit.
Mám pocit, jako kdyby navzájem kolidovaly knihovny Ethernet a DallasTemperature a přepisovaly si všechny digitální piny pro sebe, ale zatím to nemám otestované.

Nemáte někdo tip, co bych měl ještě ověřit?

Díky
Petr

PetrB
Příspěvky: 141
Registrován: 20 čer 2018, 13:39
Reputation: 0

Re: Arduino Mega & Ethernet & OneWire

Příspěvek od PetrB » 21 čer 2018, 11:11

tak se omlouvám všem za vyrušování, byla to (jako obvykle) moje chyba.
V určité fázi jsem překročil rozsah pole a nuloval i paměť za ním. Kompilátor mne sice upozorňoval, že mám cyklus moc dlouhý, ale v té záplavě hlášek jsem si toho nevšimnul.
Takže místo správného for (int i=0;i<počet-1;i++)
jsem měl for (int i=0;i<počet;i++) a bylo vymalováno...
Můj tvrdý návyk na RangeChecking se mi teď vymstil. :oops:
Ale zase to mělo výhodu v tom, že jsem se přinutil znovu přemýšlet nad celým programem a trochu ho překopat. :lol:
Pb

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 8 hostů