Turinys:

Mažiau žinomos „Arduino“savybės: 9 žingsniai
Mažiau žinomos „Arduino“savybės: 9 žingsniai

Video: Mažiau žinomos „Arduino“savybės: 9 žingsniai

Video: Mažiau žinomos „Arduino“savybės: 9 žingsniai
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Liepa
Anonim
Mažiau žinomos „Arduino“funkcijos
Mažiau žinomos „Arduino“funkcijos

Tai daugiau dažniausiai naudojamų „Arduino“platformų (pvz., „Uno“, „Nano“) funkcijų sąrašas. Šis sąrašas turėtų veikti kaip nuoroda, kai reikia ieškoti šių funkcijų ir skleisti žinią.

Pažvelkite į kodą, kad pamatytumėte visų šių funkcijų pavyzdžius, nes juos naudoju keliuose mano projektuose pagal instrukcijas (pvz., „Arduino“1 laidų ekranas (144 simboliai)). Tolesni veiksmai paaiškina vieną funkciją.

1 žingsnis: maitinimo įtampa

„Arduino“gali netiesiogiai išmatuoti savo maitinimo įtampą. Išmatuodami vidinę atskaitos vertę su maitinimo įtampa kaip viršutine riba, galite gauti santykį tarp vidinės atskaitos ir maitinimo įtampos (maitinimo įtampa veikia kaip viršutinė analoginio/ADC rodmens riba). Kaip žinote tikslią vidinės įtampos atskaitos vertę, galite apskaičiuoti maitinimo įtampą.

Tikslią informaciją, kaip tai padaryti, įskaitant kodo pavyzdį, rasite:

  • Slaptas „Arduino“voltmetras-išmatuokite akumuliatoriaus įtampą:
  • Ar „Arduino“gali išmatuoti savo „Vin“?:

2 žingsnis: vidinė temperatūra

Kai kuriuose „Arduino“yra vidinis temperatūros jutiklis, todėl jie gali išmatuoti vidinę (puslaidininkio) temperatūrą.

Tikslią informaciją, kaip tai padaryti, įskaitant kodo pavyzdį, rasite:

Vidinis temperatūros jutiklis:

Ar „Arduino“gali išmatuoti savo „Vin“?:

3 žingsnis: analoginis palyginimas (pertraukimas)

„Arduino“gali nustatyti analoginį lygintuvą tarp kaiščio A0 ir A1. Taigi vienas nurodo įtampos lygį, o kitas patikrina, ar nėra šios įtampos kirtimo. Nutraukimas pakeliamas priklausomai nuo to, ar sankryža yra kylantys ar krintantys kraštai (ar abu). Tada pertraukimą gali užfiksuoti programinė įranga ir atitinkamai veikti.

Tikslią informaciją, kaip tai padaryti, įskaitant kodo pavyzdį, rasite:

Analoginio palyginiklio pertraukimas:

4 žingsnis: skaitiklis

Žinoma, AVR yra keletas skaitiklių. Paprastai jie naudojami įvairių dažnių laikmačiui nustatyti ir prireikus padidinti pertraukas. Kitas gali būti labai senamadiškas naudojimas-naudoti juos kaip skaitiklius be jokios papildomos magijos, tiesiog perskaitykite vertę, kai jums to reikia (apklausa). Intensyviai tai galima panaudoti, jei norite atmušti mygtukus, pvz. Pateikite, pavyzdžiui, šį įrašą: AVR pavyzdys T1 skaitiklis

5 žingsnis: iš anksto nustatytos konstantos

Yra keletas iš anksto nustatytų kintamųjų, kuriuos galima naudoti norint pridėti projekto versiją ir kompiliavimo informaciją.

Tikslią informaciją, kaip tai padaryti, įskaitant kodo pavyzdį, rasite:

Serial.println (_ DATE_); // sudarymo data

Serial.println (_ TIME_); // kompiliavimo laikas

String stringOne = Styga (ARDUINO, DEC);

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

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

Serial.println (_ FILE_); // failas sudarytas

šie kodo fragmentai išves tuos duomenis į serijinę konsolę.

6 veiksmas: išsaugokite RAM kintamąjį iš naujo

Gerai žinoma, kad „Arduino Uno“(ATmega328) turi vidinį EEPROM, kuris leidžia išsaugoti vertes ir nustatymus išjungimo metu ir atkurti juos kitą kartą įjungus. Ne taip gerai žinomas faktas gali būti tas, kad iš tikrųjų įmanoma išsaugoti vertę iš naujo nustatant net RAM, tačiau vertės prarandamos per maitinimo ciklą - naudojant sintaksę:

nepasirašytas ilgas kintamasis_that_is_preserved _attribute_ ((skyrius (".noinit"))));

Tai leidžia, pavyzdžiui, suskaičiuoti RESET skaičių, o naudojant EEPROM-ir įjungimų skaičių.

Tikslią informaciją, kaip tai padaryti, įskaitant kodo pavyzdį, rasite:

  • Išsaugokite „Ram“kintamąjį iš naujo nustatydami:
  • EEPROM biblioteka:

7 veiksmas: pasiekite laikrodžio signalą

„Arduinos“ir kiti AVR (pvz., „ATtiny“) turi vidinį laikrodį, leidžiantį juos paleisti nenaudojant išorinio kristalų osciliatoriaus. Be to, jie taip pat gali prijungti šį signalą prie išorės, uždėdami jį ant kaiščio (pvz., PB4). Sudėtingiausia yra tai, kad jums reikia pakeisti lustų saugiklių bitus, kad ši funkcija būtų įjungta, o keičiant saugiklių antgalius visada kyla pavojus, kad mikroschema bus uždaryta.

Turite įjungti CKOUT saugiklį ir paprasčiausias būdas tai padaryti laikantis instrukcijų, kaip pakeisti AVR Atmega328p - 8 bitų mikrovaldiklio saugiklių bitus naudojant „Arduino“.

Tikslią informaciją, kaip tai padaryti, įskaitant kodo pavyzdį, rasite:

  • „ATtiny“vidinio osciliatoriaus derinimas:
  • Kaip pakeisti „AVR Atmega328p-8bit“mikrovaldiklio saugiklių bitus naudojant „Arduino“:

8 veiksmas: vidinė ATmega328P prievado struktūra

Žinodami vidinę ATmega328P prievadų struktūrą, galime peržengti standartines naudojimo ribas. Daugiau informacijos ir vidinės grandinės schemą rasite skyriuje apie talpos matuoklį diapazonui nuo 20 pF iki 1000 nF.

Paprastas pavyzdys yra naudoti mygtukus su skaitmeniniais prievadais, kuriems nereikia jokio rezistoriaus, nes naudojamas vidinis ištraukiamasis rezistorius, kaip parodyta „Input Pullup“serijos pavyzdyje arba nurodomas „Arduino“mygtukas be rezistoriaus.

Išplėstinis šių žinių panaudojimas, kaip minėta, matuojant iki 20 pF kondensatorius ir be jokių papildomų laidų! Norint pasiekti šį našumą, pavyzdyje naudojama vidinė/įvesties varža, vidinis traukimo rezistorius ir pasklidęs kondensatorius. Palyginkite su „Arduino CapacitanceMeter“pamoka, kuri negali nukristi žemiau kelių nF.

9 veiksmas: įmontuotas (įmontuotas) šviesos diodas kaip fotodetektorius

Daugelyje „Arduino“plokščių yra įmontuoti arba įmontuoti šviesos diodai, kuriuos galima valdyti iš kodo, pvz. „Uno“arba „Nano“plokštes ant kaiščio 13. Pridėję vieną laidą iš šio kaiščio prie analoginio įvesties kaiščio (pvz., A0), mes taip pat galime naudoti šį šviesos diodą kaip fotodetektorių. Tai gali būti naudojama įvairiais būdais, pavyzdžiui; Naudokite aplinkos apšvietimui matuoti, naudokite šviesos diodą kaip mygtuką, naudokite šviesos diodus dvipusiam ryšiui (PJON AnalogSampling) ir kt.

Rekomenduojamas: