Cuprins:

Caracteristici Arduino mai puțin cunoscute: 9 pași
Caracteristici Arduino mai puțin cunoscute: 9 pași

Video: Caracteristici Arduino mai puțin cunoscute: 9 pași

Video: Caracteristici Arduino mai puțin cunoscute: 9 pași
Video: TOP 3 companii mai putin cunoscute la bursa cu potential ridicat 2024, Iulie
Anonim
Caracteristici Arduino mai puțin cunoscute
Caracteristici Arduino mai puțin cunoscute

Aceasta este mai mult o listă cu caracteristicile nu atât de des menționate ale platformelor Arduino utilizate în mod obișnuit (de exemplu, Uno, Nano). Această listă ar trebui să acționeze ca referință ori de câte ori trebuie să căutați aceste caracteristici și să răspândiți vestea.

Uitați-vă la cod pentru a vedea exemple pentru toate aceste caracteristici, așa cum le-am folosit în mai multe dintre proiectele mele aici, pe instructable (de exemplu, Arduino 1-wire Display (144 Chars)). Pașii care urmează explică fiecare câte o caracteristică.

Pasul 1: Tensiunea de alimentare

Arduino poate măsura propria tensiune de alimentare într-un mod indirect. Măsurând referința internă cu tensiunea de alimentare ca referință de limită superioară puteți obține raportul dintre referința internă și tensiunea de alimentare (tensiunea de alimentare acționând ca limita superioară pentru citirea analogică / ADC). După cum știți valoarea exactă a referinței de tensiune internă, puteți calcula apoi tensiunea de alimentare.

Pentru detalii exacte despre cum se face acest lucru, inclusiv un exemplu de cod, a se vedea:

  • Voltmetru secret Arduino - Măsurați tensiunea bateriei:
  • Poate Arduino să-și măsoare propriul Vin ?:

Pasul 2: Temperatura internă

Unele Arduino sunt echipate cu un senzor de temperatură intern și, prin urmare, pot măsura temperatura lor internă (semicoductoare).

Pentru detalii exacte despre cum se face acest lucru, inclusiv un exemplu de cod, a se vedea:

Senzor de temperatură internă:

Poate Arduino să-și măsoare propriul Vin ?:

Pasul 3: Comparator analogic (întrerupere)

Arduino poate configura un comparator analogic între pinul A0 și A1. Deci, unul dă nivelul de tensiune, iar celălalt este verificat pentru trecerea acestei tensiuni. O întrerupere se ridică în funcție de faptul dacă traversarea este o margine ascendentă sau descendentă (sau ambele). Întreruperea poate fi apoi capturată de software și acționată în consecință.

Pentru detalii exacte despre cum se face acest lucru, inclusiv un exemplu de cod, a se vedea:

Întreruperea comparatorului analogic:

Pasul 4: Contor

Desigur, AVR-urile au mai multe contoare incluse. De obicei, acestea sunt utilizate pentru a seta temporizatorul de frecvențe variate și pentru a ridica întreruperile la nevoie. O altă utilizare foarte veche este să le folosiți doar ca contoare fără nici o magie suplimentară, citiți doar valoarea când aveți nevoie (sondaj). O utilizare intresantă a acestui lucru ar putea fi decuplarea butoanelor de ex. Conferiți, de exemplu, această postare: contorul Exemplului T1 AVR

Pasul 5: constante predefinite

Există câteva variabile predefinite care pot fi utilizate pentru a adăuga informații despre versiune și compilație în proiectul dvs.

Pentru detalii exacte despre cum se face acest lucru, inclusiv un exemplu de cod, a se vedea:

Serial.println (_ DATA_); // data compilării

Serial.println (_ TIME_); // timpul de compilare

String stringOne = String (ARDUINO, DEC);

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

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

Serial.println (_ FILE_); // fișier compilat

aceste fragmente de cod vor transmite aceste date către consola serială.

Pasul 6: Păstrați variabila în RAM prin resetare

Este bine cunoscut faptul că Arduino Uno (ATmega328) are EEPROM internă care vă permite să păstrați valorile și setările în timpul opririi și să le restaurați la următoarea pornire. Un fapt nu atât de cunoscut ar putea fi faptul că este de fapt posibil să se păstreze valoarea în timpul resetării chiar și în RAM - cu toate acestea valorile se pierd în timpul ciclului de alimentare - cu sintaxa:

variabila lungă nesemnată_care_este_prezervată _ atribut_ ((secțiunea (".noinit")));

Acest lucru vă permite, de exemplu, să numărați numărul de RESET-uri și utilizând EEPROM și numărul de power-up-uri.

Pentru detalii exacte despre cum se face acest lucru, inclusiv un exemplu de cod, a se vedea:

  • Păstrați variabila în Ram prin resetare:
  • Biblioteca EEPROM:

Pasul 7: Accesați semnalul de ceas

Arduinos și alte AVR (cum ar fi ATtiny) au un ceas intern care vă permite să le rulați fără a utiliza un oscilator de cristal extern. Mai mult, în același timp, ei sunt capabili să conecteze acest semnal la exterior, punându-l pe un pin (de exemplu, PB4). Partea dificilă de aici este că trebuie să schimbați biții de siguranță a jetoanelor pentru a activa această caracteristică și schimbarea biților de siguranțe prezintă în permanență riscul de a face cărămizi.

Trebuie să activați siguranța CKOUT și cel mai simplu mod de a face acest lucru este urmând instrucțiunile din Cum să schimbați bițele de siguranță ale microcontrolerului AVR Atmega328p - 8 biți folosind Arduino.

Pentru detalii exacte despre cum se face acest lucru, inclusiv un exemplu de cod, a se vedea:

  • Reglarea oscilatorului intern ATtiny: https://becomingmaker.com/tuning-attiny-oscillator …
  • Cum să schimbați fuzibili ai microcontrolerului AVR Atmega328p - 8 biți folosind Arduino:

Pasul 8: Structura internă a portului ATmega328P

Cunoașterea structurii interne a porturilor ATmega328P ne permite să depășim limitele standard de utilizare. Conferiți secțiunea despre Contor de capacitate pentru intervalul 20 pF la 1000 nF pentru mai multe detalii și o schemă a circuitului intern.

Exemplul simplu este acela de a utiliza butoane cu porturi digitale care nu au nevoie de rezistență datorită utilizării rezistenței interne pull-up, așa cum se arată în Exemplul serial de intrare pullup sau în butonul Arduino, fără rezistență, care poate fi instruit.

Mai avansată este utilizarea acestor cunoștințe menționate pentru măsurarea capactoarelor de până la 20 pF și, în plus, fără cabluri suplimentare! Pentru a obține această performanță, exemplul folosește impedanța internă / de intrare, rezistența de tracțiune internă și condensatorul rătăcit. Comparați-vă cu Tutorialul Arduino CapacitanceMeter, care nu poate coborî mai puțin de câțiva nF.

Pasul 9: LED la bord (încorporat) ca fotodetector

O mulțime de plăci Arduino au LED-uri integrate sau încorporate care pot fi controlate din cod, de ex. plăcile Uno sau Nano de pe pinul 13. Prin adăugarea unui singur fir de la acest pin la un pin de intrare analogic (de ex. A0) putem folosi și acest LED ca fotodetector. Acest lucru poate fi folosit într-o varietate de moduri diferite, cum ar fi; utilizați pentru a măsura iluminarea mediului, utilizați LED-ul ca buton, utilizați LED-ul pentru comunicarea bidirecțională (PJON AnalogSampling) etc.

Recomandat: