I2C komunikace mezi arduiny
-
- Příspěvky: 62
- Registrován: 05 led 2020, 20:05
Re: I2C komunikace mezi arduiny
No já ten kód mám z těch arduino stránek ale upraveny pro to čidlo DHT11
Mám je hnedka vedle sebe, takže by to pak na 50 m nestačilo?
Jinak to DHT11 na sériové lince funguje normálně
Mám je hnedka vedle sebe, takže by to pak na 50 m nestačilo?
Jinak to DHT11 na sériové lince funguje normálně
Re: I2C komunikace mezi arduiny
Na 50m asi určitě ne.
Pokud chceš 50m levně a spolehlivě, kup si převodníky na 485.
IIC jsem zprovozňoval asi na 8m, ale dle tohoto
https://hackaday.com/2017/02/08/taking- ... ong-wires/
Pokud chceš 50m levně a spolehlivě, kup si převodníky na 485.
IIC jsem zprovozňoval asi na 8m, ale dle tohoto
https://hackaday.com/2017/02/08/taking- ... ong-wires/
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
-
- Příspěvky: 62
- Registrován: 05 led 2020, 20:05
Re: I2C komunikace mezi arduiny
A k čemu mi budou ty převodníky?
Co to je?
A nešlo by to třeba po TX a RX?
Co to je?
A nešlo by to třeba po TX a RX?
Re: I2C komunikace mezi arduiny
Ano, RS845 funguje na principu RX, TX, je to specifikace pro sériovou komunikaci, využívanou i v průmyslu, odolnou na delší vedení.
-
- Příspěvky: 62
- Registrován: 05 led 2020, 20:05
Re: I2C komunikace mezi arduiny
A jde po tom posílat více číselných dat ze senzorů ?
Případně jak se pak v tom programově vyznat?
Případně jak se pak v tom programově vyznat?
Re: I2C komunikace mezi arduiny
Ano, funguje stejně jako 232, jen 485 funguje "elektricky" na jiném principu - opravdu laicky řečeno.
Tím odolává lépe rušení a lze ho provozovat na delší vzdálenosti.
https://arduinoinfo.mywikis.net/wiki/So ... 485Example
https://ipc2u.cz/articles/simple-decisi ... -a-rs-485/
Tím odolává lépe rušení a lze ho provozovat na delší vzdálenosti.
https://arduinoinfo.mywikis.net/wiki/So ... 485Example
https://ipc2u.cz/articles/simple-decisi ... -a-rs-485/
Naposledy upravil(a) pavel1tu dne 22 lis 2020, 21:31, celkem upraveno 1 x.
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Re: I2C komunikace mezi arduiny
Ano jde. Dělá se to např. fixní délkou datového rámce.
Stále jsi ale velmi tajemný, kdybys napsal co přesně chceš posílat, jak velké hodnoty, mohly by být rady přesnější.
"Více číselných dat" je nicneříkající. Stačí Ti např. byte? Máš 10 zařízení? Ok, pak posílej blok 10 byte a na příjímači budeš vědět, že 1. byte je od prvního zařízení, 2. byte od 2. zařízení... poslední byte od posledního zařízení.
Na velmi podobném principu funguje např. protokol DMX512, který je nad RS845 postaven.
Podobně také fungují LED pásky, kde se pošle blok barev a každá LEDka si "ukousne" RGB pro sebe a zbytek pošle v pásku dalším ledkám...
Stále jsi ale velmi tajemný, kdybys napsal co přesně chceš posílat, jak velké hodnoty, mohly by být rady přesnější.
"Více číselných dat" je nicneříkající. Stačí Ti např. byte? Máš 10 zařízení? Ok, pak posílej blok 10 byte a na příjímači budeš vědět, že 1. byte je od prvního zařízení, 2. byte od 2. zařízení... poslední byte od posledního zařízení.
Na velmi podobném principu funguje např. protokol DMX512, který je nad RS845 postaven.
Podobně také fungují LED pásky, kde se pošle blok barev a každá LEDka si "ukousne" RGB pro sebe a zbytek pošle v pásku dalším ledkám...
-
- Příspěvky: 62
- Registrován: 05 led 2020, 20:05
Re: I2C komunikace mezi arduiny
No chtěl bych posílat hodnoty teplotu, vlhkost, tlak a možná ještě něco
Re: I2C komunikace mezi arduiny
Pak bych kazdou tu vec posilal (a cetl) zvlast jako balik se dvema polozkama: popis a hodnota.
napriklad jako 4 byty, kde prvni dva jsou ten popis, druhe dva ta hodnota. Prijemce to prijme a podle (napriklad) prvnich dvou bytu se rozhodne jak nalozi s tim zbytkem.
Dalsi mozna varianta je, ze pouzijes "adresovani" v ramci komunikace, kde ridici arduino posle pozadavek a snimaci odpovi hodnotou ramci jedne te I2C relace. Takze ridici se pta jen kdyz ma zrovna cas a naladu to zpracovavat a snimane odpovida, co ma za posledni zmerenou hodnotu (a pripadne kdy).
napriklad jako 4 byty, kde prvni dva jsou ten popis, druhe dva ta hodnota. Prijemce to prijme a podle (napriklad) prvnich dvou bytu se rozhodne jak nalozi s tim zbytkem.
Kód: Vybrat vše
snimaci vysle
TE25
ridici si rekne TE je teplota, takze do teploty si zapisu 25 C
VL50
ridici si rekne VL je vlhkost, takze do vlhkosti si zapisu 50%
Dalsi mozna varianta je, ze pouzijes "adresovani" v ramci komunikace, kde ridici arduino posle pozadavek a snimaci odpovi hodnotou ramci jedne te I2C relace. Takze ridici se pta jen kdyz ma zrovna cas a naladu to zpracovavat a snimane odpovida, co ma za posledni zmerenou hodnotu (a pripadne kdy).
Kód: Vybrat vše
ridici vysle
TE
a cte do teploty odpoved ve stupnich Celsia
prijimaci posle
25
ridici vysle
VL
a cte do vlhkosti odpoved v procentech
prijimaci posle
50
Re: I2C komunikace mezi arduiny
No, já bych to odesílal mým oblíbeným STRUCT (jojo, jsem s tím už trapnej),
pro mne neprogramátora je to jednodušší.
Co na jedný straně nasypu, na druhé straně vypadne roztříděné.
pro mne neprogramátora je to jednodušší.
Co na jedný straně nasypu, na druhé straně vypadne roztříděné.
Kód: Vybrat vše
typedef struct WEATHERDATA { //data jak odesílaná, tak přijímaná
float temp;
float hum;
float windSpeed;
char windDir[2];
};
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 6 hostů