I2C komunikace mezi arduiny

zacatecnik1
Příspěvky: 62
Registrován: 05 led 2020, 20:05
Reputation: 0

I2C komunikace mezi arduiny

Příspěvek od zacatecnik1 » 21 lis 2020, 22:04

Dobrý den, mám takový problém chci posílat data z DHT11 senzoru do druhého pomoci I2C, potřeboval bych poradit jak posílat 2 a více dat z jednoho(z jedné adresy) do druhého arduina pomoci I2C a za druhé - když jsem zkoušel posílat hodnotu z ultrazvukové čidla tak mi druhé arduino ukazovalo jen -1 i když jsem tam zkoušel posílat data z DHT11 tak nic
Program bohužel nemohu přiložit protože jsem zapoměl heslo na forum a mám hi uložené jen v telefonu

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: I2C komunikace mezi arduiny

Příspěvek od KamilV » 21 lis 2020, 22:20

Buď jsem to nepochopil správně, nebo se ptáš na nemožné. DHT11 přece nemá podporu I2C. Dále nerozumím, proč bys chtěl mít více "klientů" na jedné adrese. Nemáš k tomu schema?

zacatecnik1
Příspěvky: 62
Registrován: 05 led 2020, 20:05
Reputation: 0

Re: I2C komunikace mezi arduiny

Příspěvek od zacatecnik1 » 21 lis 2020, 22:41

Bohužel nemám tak se ho pokusím nacrtnout
DHT11+ Arduino1 posílá data do Arduina 2 pomoci I2C a to zobrazuje pouze -1 nevim proč
A taky se ptám zda jde z prvního arduina posílat třeba 5 dat do druhého arduina pomoci I2C

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: I2C komunikace mezi arduiny

Příspěvek od KamilV » 21 lis 2020, 22:45

Aha, teď už je to jasnější. Tedy DHT11 tam nehraje žádnou roli, jde čistě o I2C komunikaci mezi Arduiny. Jak je máš propojené? A jaký kód používáš pro komunikaci?

Ano, můžeš si poslat třeba struct a v něm mít 5 "dat".
Zatím je to vše hodně obecné. Zkus to přiblížit, zkonkretizovat.

zacatecnik1
Příspěvky: 62
Registrován: 05 led 2020, 20:05
Reputation: 0

Re: I2C komunikace mezi arduiny

Příspěvek od zacatecnik1 » 21 lis 2020, 22:52

Mám to propojené pin A4 s A4 a pin A5 s A5 a GND s GND
Používám Wire.write a Wire.read
Nějak se ta komunikace ještě zahajuje a ukoncuje ale to si nepamatuji protože to dělám poprvé a mám to upravené z internetu

BigSandy
Příspěvky: 219
Registrován: 23 zář 2017, 07:09
Reputation: 0

Re: I2C komunikace mezi arduiny

Příspěvek od BigSandy » 22 lis 2020, 08:23


zacatecnik1
Příspěvky: 62
Registrován: 05 led 2020, 20:05
Reputation: 0

Re: I2C komunikace mezi arduiny

Příspěvek od zacatecnik1 » 22 lis 2020, 09:22

No já to dělám podle toho a nedaří se

RomanB
Příspěvky: 90
Registrován: 04 zář 2017, 14:28
Reputation: 0
Bydliště: Havířov

Re: I2C komunikace mezi arduiny

Příspěvek od RomanB » 22 lis 2020, 11:49

Přidej na jedno Arduino na A5 a A4 10k rezistory k +5V nebo definuj v Setup() tyto piny jako INPUT_PULLUP

zacatecnik1
Příspěvky: 62
Registrován: 05 led 2020, 20:05
Reputation: 0

Re: I2C komunikace mezi arduiny

Příspěvek od zacatecnik1 » 22 lis 2020, 15:44

Ani jedno nepomohlo

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: I2C komunikace mezi arduiny

Příspěvek od AstroMiK » 22 lis 2020, 17:29

Takže ten příklad, co tu na něj hodil odkaz BigSandy, ti vůbec nefunguje?
V tom případě máš chybu v hardwéru - zlámaný dráty, propojený špatný vývody, vadné Arduino, špatné napájení ....

Jestli ti ten příklad funguje, tak si zprovozni samostatné čidlo DHT11 - s výstupem do obyčejné sériové linky.
Příklad třeba tady:
https://www.hwkitchen.cz/navody-hwkitch ... no-navody/

A když budou obě dvě části fungovat, tak se musí na vysílací straně (MASTER) napasovat výstup čidla do správného formátu, aby to prošlo přes tu I2C sběrnici.
A na přijímací straně (SLAVE) se z toho zase musí složit zpátky desetinné číslo.
Tyhle převody ale z hlavy neporadím - musel bych si to vyzkoušet.

Mimochodem, jak daleko od sebe máš ty Arduina?
I2C komunikace je navržená pro přenos dat v rámci jedné krabice. Na nějaké dlouhé vzdálenosti není určena.
V tom případě už by bylo lepší tahat dlouhým kabelem samostané čidlo DHT11.

Odpovědět

Kdo je online

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