Obsah:

Arduino Méně známé funkce: 9 kroků
Arduino Méně známé funkce: 9 kroků

Video: Arduino Méně známé funkce: 9 kroků

Video: Arduino Méně známé funkce: 9 kroků
Video: ANDROID MÁ JEDNO SKRYTÉ NASTAVENÍ 🤖 2024, Červenec
Anonim
Arduino Méně známé funkce
Arduino Méně známé funkce

Toto je spíše výčet ne tak často zmiňovaných funkcí obvykle používaných platforem Arduino (např. Uno, Nano). Tento seznam by měl sloužit jako reference, kdykoli potřebujete vyhledat tyto funkce a šířit informace.

Podívejte se na kód, abyste viděli příklady všech těchto funkcí, protože jsem je použil v několika mých projektech zde na instructable (např. Arduino 1-wire Display (144 Chars)). Následující kroky vysvětlují vždy jednu funkci.

Krok 1: Napájecí napětí

Arduino může měřit vlastní napájecí napětí nepřímým způsobem. Měřením vnitřní reference s napájecím napětím jako horní mezní referencí můžete získat poměr mezi vnitřní referencí a napájecím napětím (napájecí napětí funguje jako horní hranice pro analogový/ADC odečet). Jak znáte přesnou hodnotu reference vnitřního napětí, můžete vypočítat napájecí napětí.

Přesné podrobnosti o tom, jak to udělat, včetně ukázkového kódu, najdete v:

  • Tajný voltmetr Arduino-změřte napětí baterie:
  • Může Arduino změřit vlastní Vin?:

Krok 2: Vnitřní teplota

Některá zařízení Arduino jsou vybavena interním snímačem teploty, a proto mohou měřit svou vnitřní (polovodičovou) teplotu.

Přesné podrobnosti o tom, jak to udělat, včetně ukázkového kódu, najdete v:

Senzor vnitřní teploty:

Může Arduino změřit vlastní Vin?:

Krok 3: Analogový komparátor (přerušení)

Arduino může nastavit analogový komparátor mezi piny A0 a A1. Jeden tedy udává úroveň napětí a druhý je zkontrolován na překročení tohoto napětí. Přerušení se zvýší v závislosti na tom, zda je přechod stoupající nebo sestupnou hranou (nebo obojí). Přerušení pak může software zachytit a podle toho se chovat.

Přesné podrobnosti o tom, jak to udělat, včetně ukázkového kódu, najdete v:

Přerušení analogového komparátoru:

Krok 4: Počitadlo

AVR má samozřejmě několik čítačů. Obvykle se používají k nastavení časovače různých frekvencí a vyvolání přerušení podle potřeby. Dalším velmi staromódním použitím je použít je jako čítače bez jakéhokoli dalšího kouzla, stačí si přečíst hodnotu, když ji potřebujete (hlasování). Zajímavé využití by mohlo být k odražení tlačítek, např. Uveďte například tento příspěvek: Počítadlo příkladu AVR T1

Krok 5: Předdefinované konstanty

Existuje několik předdefinovaných proměnných, které lze použít k přidání informací o verzi a kompilaci do vašeho projektu.

Přesné podrobnosti o tom, jak to udělat, včetně ukázkového kódu, najdete v:

Serial.println (_ DATE_); // datum kompilace

Serial.println (_ TIME_); // čas kompilace

Řetězec stringOne = String (ARDUINO, DEC);

Serial.println (stringOne); // verze arduino ide

Serial.println (_ VERSION_); // verze gcc

Serial.println (_ FILE_); // soubor zkompilován

tyto fragmenty kódu vyvedou tato data do sériové konzoly.

Krok 6: Ponechejte proměnnou v paměti RAM resetováním

Je dobře známo, že Arduino Uno (ATmega328) má interní EEPROM, která vám umožňuje zachovat hodnoty a nastavení při vypnutí a obnovit je při příštím zapnutí. Ne tak dobře známou skutečností může být, že ve skutečnosti je možné zachovat hodnotu během resetu i v paměti RAM - nicméně hodnoty se během cyklu napájení ztratí - se syntaxí:

unsigned long variable_that_is_preserved _attribute_ ((section (".noinit")));

To vám například umožňuje spočítat počet RESETŮ a pomocí EEPROM také počet zapnutí.

Přesné podrobnosti o tom, jak to udělat, včetně ukázkového kódu, najdete v:

  • Ponechat proměnnou v RAM pomocí resetování:
  • Knihovna EEPROM:

Krok 7: Přístup k hodinovému signálu

Arduinos a další AVR (jako ATtiny) mají vnitřní hodiny, které vám umožňují spustit je bez použití externího krystalového oscilátoru. Kromě toho jsou současně schopni také připojit tento signál k externímu zařízení umístěním na pin (např. BB4). Nejzásadnější na tom je, že musíte vyměnit pojistkové bity čipů, abyste tuto funkci povolili, a výměna pojistkových bitů vždy nese riziko cihly čipu.

Musíte povolit pojistku CKOUT a nejjednodušší způsob, jak toho dosáhnout, je postupovat podle pokynů v části Jak změnit pojistkové bity mikrokontroléru AVR Atmega328p - 8bit pomocí Arduina.

Přesné podrobnosti o tom, jak to udělat, včetně ukázkového kódu, najdete v článku:

  • Ladění interního oscilátoru ATtiny:
  • Jak změnit pojistkové bity AVR Atmega328p-8bitový mikrokontrolér pomocí Arduina:

Krok 8: Interní struktura portu ATmega328P

Znalost vnitřní struktury portů ATmega328P nám umožňuje překročit standardní limity využití. Další podrobnosti a schéma vnitřního obvodu získáte v části o kapacitním měřiči pro rozsah 20 pF až 1000 nF.

Jednoduchým příkladem je použití tlačítek s digitálními porty, které nepotřebují žádný odpor kvůli použití vnitřního výsuvného odporu, jak ukazuje sériový příklad Input Pullup nebo instrukovatelné tlačítko Arduino bez odporu.

Pokročilejší je použití těchto znalostí, jak je uvedeno pro měření kondenzátorů již od 20 pF a navíc bez dalšího zapojení! Aby se dosáhlo tohoto výkonu, příklad využívá vnitřní/vstupní impedanci, vnitřní výsuvný odpor a rozptylový kondenzátor. Porovnejte s výukovým programem Arduino CapacitanceMeter, který nemůže jít níže než několik nF.

Krok 9: Integrovaná (vestavěná) LED jako fotodetektor

Mnoho desek Arduino má integrované nebo vestavěné LED diody, které lze ovládat z kódu, např. desky Uno nebo Nano na pinu 13. Přidáním jednoho jediného vodiče z tohoto kolíku na analogový vstupní kolík (např. A0) můžeme tuto LED použít také jako fotodetektor. Toho lze využít různými způsoby, například; použijte k měření osvětlení prostředí, použijte LED jako tlačítko, použijte LED pro obousměrnou komunikaci (PJON AnalogSampling) atd.

Doporučuje: