Jistě, zde je struktura článku o tom, jak používat I2C skener s Arduinem.
Protokol I2C neboli Inter-Integrated Circuit je důležitý komunikační protokol, který mikrokontroléry Arduino používají ke komunikaci s různými senzory, zobrazovacími zařízeními a dalšími mikrokontroléry. Pochopení a využití protokolu I2C může výrazně rozšířit možnosti vašich projektů Arduino.
Někdy může nastat potřeba zjistit nebo potvrdit I2C adresu zařízení (jako je senzor nebo displej) připojeného k vašemu Arduinu. V tomto případě přijde vhod I2C skener. Dokáže identifikovat adresy všech připojených I2C zařízení – zásadní první krok k efektivnímu využívání I2C komunikace.
Pomocí I2C skeneru
Nejpopulárnější dostupný I2C skener napsal Tod E. Kurt, nadšenec pro arduino. Poskytuje rychlou a jednoduchou zpětnou vazbu o připojených I2C zařízeních k vašemu arduinu.
#include
neplatné nastavení ()
{
Wire.begin ();
Serial.begin (9600);
Serial.println(“Skener nI2C”);
}
neplatná smyčka ()
{
chyba bajtu, adresa;
int nDevices;
Serial.println(“Skenování…”);
nZařízení = 0;
for(adresa = 1; adresa < 127; adresa++ ) { // Začněte s adresou zařízení, abyste zjistili, zda existuje odpověď Wire.beginTransmission(address); error = Wire.endTransmission(); if (chyba == 0) { Serial.print("Zařízení I2C nalezeno na adrese 0x"); if (adresa<16) Serial.print(""); Serial.print(adresa,HEX); Serial.println(" !"); nDevices++; } } if (nDevices == 0) Serial.println("Nenalezena žádná I2C zařízení"); else Serial.println("donen"); zpoždění (2000); } [/kód]
Vysvětlení kódu
Kód začíná zahrnutím knihovny Wire, která je vestavěnou knihovnou Arduina navrženou pro komunikaci I2C. Poskytuje funkce, které pomáhají číst a zapisovat data na sběrnici I2C.
Ve funkci nastavení Wire.begin() inicializuje I2C sběrnici a sériová komunikace se spustí s přenosovou rychlostí 9600.
Ve funkci smyčky kód skenuje každou adresu na sběrnici I2C, pokouší se navázat komunikaci pomocí Wire.beginTransmission() a dokončuje komunikaci s Wire.endTransmission().
Pokud je zařízení nalezeno na určité adrese, kód skeneru I2C vytiskne tuto adresu na sériovém monitoru. Pokud nejsou nalezena žádná zařízení, skener vytiskne příslušnou zprávu. Proces skenování se opakuje každé dvě sekundy.
I2C v knihovnách Arduino
Knihovna Wire je nezbytná pro komunikaci I2C v Arduinu. Tato knihovna abstrahuje složité operace spojené s I2C a usnadňuje začátečníkům i zkušeným kodérům používání tohoto komunikačního protokolu. Knihovna Wire je postavena na dvou hlavních funkcích: Wire.begin() používaná pro inicializaci sběrnice I2C a Wire.beginTransmission(addr), která zahajuje přenos do zařízení na adrese 'addr'.
Poznání knihoven Arduino, jako je Wire, může výrazně vylepšit vaše projekty I2C zařízení. To platí zejména s tím, jak se vyvíjí stále více uživatelsky přívětivých, open-source knihoven, které dále zjednodušují používání složitých periferních rozhraní, jako je I2C.
Každý projekt Arduino prosperuje z efektivního využití dostupných knihoven. Pro I2C zařízení je pochopení knihovny Wire klíčové. Doufám, že tento přehled a podrobný pohled na skenovací kód I2C zlepšil vaši odbornost v protokolu I2C a Arduinu.