Page
Doteraz sme sa veľmi netrápili nad tým, či sa prenos podaril alebo nie. Ale v reálnom svete kadečo môže prestať fungovať. V tejto kapitole budeme skúmať, ako rieši výpadky spojenia knižnica Wire, ktorú používane v Arduine na I2C komunikáciu.
Základom je zapojiť Arduina podľa nasledovného obrázku. Treba prepojiť na oboch Arduinach SDA na pine A4 a SLC na pine A5. Obe linky treba pomocou pull-up rezistora prepojiť na +5 V. Okrem toho sa prepojí napájanie a GND.
Keďže ale budeme predpokladať, že sa s tým budete hrať na počítači a oba Arduina máte napojené cez USB, nie je potrebné napájanie a GND spájať, pretože sú už takto prepojené krížom cez PC. Okrem toho ich v takomto prípade asi prepojíte cez USB šnúru, ktorú si kupujeme k Arduinu a teda oba Arduina budú blízko pri sebe.
Počas experimentov môžete vynechať aj oba pull-up rezistory, pretože knižnica, ktorú používame v Arduine používa interné pull-up rezistory v Arduine, ktoré na túto komunikáciu stačia. To ale používajte iba počas experimentov. V reálnom nasadení použite vždy externé pull-up rezistory s hodnotami 10k alebo 4k7.
Príklad je v priloženom súbore. Obe Arduina vypisujú svoje kontrolné výpisy. Na slave je pomocou cyklu a niekoľkých nop inštrukcií assembleru vytvorený interval o dĺžke približne 3 sekundy, počas ktorého je zakázané prerušenie. Master odosiela každú sekundu, takže môžeme skúmať, čo sa bude diať.
01.09.2015