Obsah:

Menej známe vlastnosti Arduina: 9 krokov
Menej známe vlastnosti Arduina: 9 krokov

Video: Menej známe vlastnosti Arduina: 9 krokov

Video: Menej známe vlastnosti Arduina: 9 krokov
Video: Размен ЗАЭС и миф НАСТУПЛЕНИЯ - Чаплыга. Бахмут: слив Пригожина реален! В Украине склад инфляции США 2024, November
Anonim
Menej známe funkcie Arduina
Menej známe funkcie Arduina

Toto je skôr zoznam nie tak často spomínaných funkcií platforiem Arduino, ktoré sa bežne používajú (napr. Uno, Nano). Tento zoznam by mal slúžiť ako referencia vždy, keď potrebujete vyhľadať tieto funkcie a šíriť informácie.

Pozrite sa na kód, aby ste videli príklady všetkých týchto funkcií, pretože som ich použil v niekoľkých mojich projektoch tu na pokynoch (napr. 1-vodičový displej Arduino (144 znakov)). Nasledujúce kroky vysvetľujú každú jednu funkciu.

Krok 1: Napájacie napätie

Arduino môže nepriamo merať vlastné napájacie napätie. Meraním vnútornej referencie s napájacím napätím ako hornou hraničnou referenciou môžete získať pomer medzi vnútornou referenciou a napájacím napätím (napájacie napätie funguje ako horná hranica pre čítanie analógového/ADC). Keď poznáte presnú hodnotu referencie vnútorného napätia, môžete potom vypočítať napájacie napätie.

Presné podrobnosti o tom, ako to urobiť, vrátane ukážkového kódu, nájdete v:

  • Tajný voltmetr Arduino-zmerajte napätie batérie:
  • Môže Arduino merať svoje vlastné Vin?:

Krok 2: Vnútorná teplota

Niektoré Arduino sú vybavené vnútorným snímačom teploty, a preto môžu merať svoju vnútornú (polovodičovú) teplotu.

Presné podrobnosti o tom, ako to urobiť, vrátane ukážkového kódu, nájdete v:

Snímač vnútornej teploty:

Môže Arduino merať svoje vlastné Vin?:

Krok 3: Analógový komparátor (prerušenie)

Arduino môže nastaviť analógový komparátor medzi kolíky A0 a A1. Jeden teda udáva úroveň napätia a druhý sa kontroluje na prekročenie tohto napätia. Prerušenie sa zvýši v závislosti od toho, či je prechod stúpajúcou alebo klesajúcou hranou (alebo oboma). Prerušenie potom môže softvér zachytiť a podľa toho konať.

Presné podrobnosti o tom, ako to urobiť, vrátane ukážkového kódu, nájdete v:

Prerušenie analógového komparátora:

Krok 4: Počítadlo

AVR má samozrejme niekoľko počítadiel. Obvykle sa používajú na nastavenie časovača rôznych frekvencií a v prípade potreby vyvolávajú prerušenia. Ďalším veľmi staromódnym použitím je použiť ich ako počítadlá bez ďalšej kúzla, stačí si prečítať hodnotu, keď ju potrebujete (hlasovanie). Ich zaujímavým využitím by mohlo byť odrazenie tlačidiel napr. Ukážte napríklad tento príspevok: Počítadlo AVR Príklad T1

Krok 5: Preddefinované konštanty

Existuje niekoľko preddefinovaných premenných, ktoré je možné použiť na pridanie informácií o verzii a kompilácii do vášho projektu.

Presné podrobnosti o tom, ako to urobiť, vrátane ukážkového kódu, nájdete v:

Serial.println (_ DATE_); // dátum kompilácie

Serial.println (_ TIME_); // čas kompilácie

Reťazec stringOne = Reťazec (ARDUINO, DEC);

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

Serial.println (_ VERZIA_); // verzia gcc

Serial.println (_ FILE_); // súbor zostavený

tieto útržky kódu prenesú tieto údaje do sériovej konzoly.

Krok 6: Ponechajte premennú v RAM resetovaním

Je dobre známe, že Arduino Uno (ATmega328) má vnútornú EEPROM, ktorá vám umožňuje zachovať hodnoty a nastavenia pri vypnutí a obnoviť ich pri ďalšom zapnutí. Nie príliš známym faktom môže byť, že je skutočne možné zachovať hodnotu počas resetovania aj v RAM - hodnoty sa však počas cyklu napájania stratia - so syntaxou:

dlhá premenná bez znamienka_, ktorá je zachovaná _attribute_ ((sekcia (".noinit")));

To vám napríklad umožňuje spočítať počet RESETOV a pomocou EEPROM aj počet zapnutí.

Presné podrobnosti o tom, ako to urobiť, vrátane ukážkového kódu, nájdete v:

  • Ponechať premennú v RAM pomocou resetovania:
  • Knižnica EEPROM:

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

Arduinos a ďalšie AVR (ako ATtiny) majú vnútorné hodiny, ktoré vám umožňujú ich spustenie bez použitia externého kryštálového oscilátora. Okrem toho sú súčasne schopní tiež pripojiť tento signál k vonkajšiemu prostrediu umiestnením na kolík (napr. PB4). Zložité je, že musíte vymeniť poistkové bity čipov, aby ste túto funkciu povolili, a zmena poistkových bitov vždy nesie riziko zamurovania čipu.

Musíte povoliť poistku CKOUT a najľahšie to urobíte podľa pokynov v časti Ako zmeniť poistkové bity mikrokontroléra AVR Atmega328p - 8bit pomocou mikrokontroléra Arduino.

Presné podrobnosti o tom, ako to urobiť, vrátane ukážkového kódu, nájdete v:

  • Ladenie interného oscilátora ATtiny:
  • Ako zmeniť poistkové bity AVR Atmega328p-8bitového mikrokontroléra pomocou Arduina:

Krok 8: Vnútorná štruktúra portu ATmega328P

Poznanie vnútornej štruktúry portov ATmega328P nám umožňuje prekročiť štandardné limity použitia. Podrobnejšie informácie a schému vnútorného obvodu nájdete v časti o kapacitnom merači pre rozsah 20 pF až 1000 nF.

Jednoduchým príkladom je použitie tlačidiel s digitálnymi portami, ktoré nepotrebujú žiadny odpor, pretože sa používa vnútorný výsuvný odpor, ako ukazuje sériový príklad Input Pullup alebo inštruovateľné tlačidlo Arduino bez odporu.

Pokročilejšie je použitie týchto znalostí, ako je uvedené pre meranie kondenzátorov s veľkosťou až 20 pF a navyše bez akéhokoľvek ďalšieho zapojenia! Aby sa dosiahol tento výkon, príklad využíva vnútornú/vstupnú impedanciu, vnútorný výsuvný odpor a rozptylový kondenzátor. Porovnajte s výukovým programom Arduino CapacitanceMeter, ktorý nemôže ísť nižšie ako niekoľko nF.

Krok 9: Palubná (vstavaná) LED ako fotodetektor

Mnoho dosiek Arduino má vstavané alebo vstavané diódy LED, ktoré je možné ovládať z kódu, napr. dosky Uno alebo Nano na pine 13. Pridaním jedného vodiča z tohto kolíka na analógový vstupný kolík (napr. A0) môžeme túto diódu LED použiť aj ako fotodetektor. Toto môže byť použité rôznymi spôsobmi, ako napríklad; použiť na meranie osvetlenia prostredia, použiť LED ako tlačidlo, použiť LED na obojsmernú komunikáciu (PJON AnalogSampling) atď.

Odporúča: