IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 19 - Arduino - Využití I2C sběrnice

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Jirka Vavřík:13.2.2016 21:14

Nebylo by možná lepší do toho IO expaneru posílat číslo v binární podobě?

Wire.write(B10000100);

Vidíš tak přímo logické hodnoty, které tam posíláš... ;-)

 
Odpovědět
13.2.2016 21:14
Avatar
Odpovídá na Jirka Vavřík
Michal Žůrek - misaz:13.2.2016 21:20

podle mě je to také lepší, ale z nějakého (mě neznámého) důvodu se to moc nedělá.

 
Odpovědět
13.2.2016 21:20
Avatar
Odpovídá na Michal Žůrek - misaz
Drahomír Hanák:13.2.2016 21:55

Nedělá se to, protože je to dost nepraktické pro větší data. Už třeba jen 32 bitové číslo by bylo dost dlouhé, ale i třeba jen 1 byte je otrava zapisovat po bitech. Stejné číslo (32 bitů) můžeš zapsat v šestnáctkové soustavě jen 8 znaky. Navíc je jednoduché z číslic zjistit, na kterých pozicích jsou 1 a 0 ve dvojkovém zápisu čísla. Každá cifra v šestnáctkové soustavě totiž reprezentuje 4 cifry ve dvojkové zápisu, a proto je takový zápis mnohem kompaktnější. Navíc snad každý programovací jazyk podporuje zápis čísel v šestnáctkové soustavě. Céčkovité jazyky mají 0xFFFFFFFF (kde 0x je prefix a pak následuje zápis čísla), v Pascalu je to třeba $FFFFFFFF. Ale asi je to pořád lepší, než zapisovat hodnoty v desítkové soustavě (pokud teda nechci všechny bity interpretovat jako 1 číslo)

 
Odpovědět
13.2.2016 21:55
Avatar
Odpovídá na Drahomír Hanák
Michal Žůrek - misaz:13.2.2016 23:11

to mě taky napadlo, ale myslím si že minimálně v tutoriálech nebo obecně článcích na internetu by bylo dobré to vypsat celé.

 
Odpovědět
13.2.2016 23:11
Avatar
ostrozan
Tvůrce
Avatar
Odpovídá na Drahomír Hanák
ostrozan:14.2.2016 0:16

On ale má na mysli posílání jednoho jediného bajtu na expander, jinak máš samozřejmě pravdu.

 
Odpovědět
14.2.2016 0:16
Avatar
ostrozan
Tvůrce
Avatar
ostrozan:14.2.2016 13:03

jen bych upřesni/doplnil/u­pravil toto tvrzení:

Na sběrnici jich můžeme připojit až 8, což je 8*8=64 pinů (jelikož skoro všechny jsou vyráběny se stejnou adresou, pokud budete mít štěstí, může se vám podařit sehnat i jiné rozsahy).

I2C součástky mají 7,8, nebo 10ti bitovou slave adresu - ale držme se PCF8574

ten ji má 7mi bitovou

adresa se skládá ze tří částí :
bit 7 : 4 - pevná adresa určující typ součástky
bit 3 : 1 - volitelná část adresy realizovaná vývody A0,A1,A2 na samotné součástce
bit 0 - R/W - určuje, jestli se na té adrese bude provádět zápis nebo čtení

konkrétně adresa typu PCF8574 je 0 1 0 0 A2 A1 A0 R/W

počty adresovacích pinů se ale typ od typu liší - a je to dáno použitím - většinou jsou tři - A0 - A2 a to dokonce i tam kde zaberou skoro polovinu všech vývodů - paměti EEPROM,FLASH

naproti tomu RTC (hodiny) PCF8563 nemají adresovací pin žádný - na co taky že?

jen pro doplnění - slave adresa PCF8563 je 1 0 1 0 0 0 1 R/W

od tohohle všeho vás odstiňuje milosrdné arduino, ale když už tady Adam ten I2C bus tak rozpitval, tak ať je to kompletní :-)

 
Odpovědět
14.2.2016 13:03
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.