Satura rādītājs:

Arduino mazāk zināmās funkcijas: 9 soļi
Arduino mazāk zināmās funkcijas: 9 soļi

Video: Arduino mazāk zināmās funkcijas: 9 soļi

Video: Arduino mazāk zināmās funkcijas: 9 soļi
Video: Control 32 Servo over Wi-Fi using ESP32 and PCA9685 via desktop or mobile phone V5 2024, Jūlijs
Anonim
Arduino mazāk zināmās funkcijas
Arduino mazāk zināmās funkcijas

Šis vairāk ir saraksts ar ne tik bieži pieminētajām parasti izmantotajām Arduino platformām (piemēram, Uno, Nano). Šim sarakstam vajadzētu darboties kā atsaucei ikreiz, kad nepieciešams meklēt šīs funkcijas un izplatīt informāciju.

Apskatiet kodu, lai redzētu visu šo funkciju piemērus, jo es tos izmantoju vairākos raktuves projektos šeit, norādot (piemēram, Arduino 1 vadu displejs (144 rakstzīmes)). Turpmākās darbības izskaidro vienu funkciju.

1. solis: barošanas spriegums

Arduino var netieši izmērīt savu barošanas spriegumu. Izmērot iekšējo atskaiti ar barošanas spriegumu kā augšējo robežu, jūs varat iegūt attiecību starp iekšējo atskaiti un barošanas spriegumu (barošanas spriegums darbojas kā augšējā robeža analogā/ADC rādījumā). Kā jūs zināt precīzu iekšējā sprieguma atsauces vērtību, varat aprēķināt barošanas spriegumu.

Lai iegūtu precīzu informāciju par to, kā to izdarīt, ieskaitot koda piemēru, skatiet:

  • Slepenais Arduino voltmetrs-izmēriet akumulatora spriegumu:
  • Vai Arduino var izmērīt savu Vin?:

2. darbība: iekšējā temperatūra

Daži Arduino ir aprīkoti ar iekšējo temperatūras sensoru, un tāpēc tie var izmērīt iekšējo (pusprodukcijas) temperatūru.

Lai iegūtu precīzu informāciju par to, kā to izdarīt, ieskaitot koda piemēru, skatiet:

Iekšējais temperatūras sensors:

Vai Arduino var izmērīt savu Vin?:

3. darbība: analogais salīdzinātājs (pārtraukums)

Arduino var iestatīt analogo salīdzinājumu starp tapu A0 un A1. Tātad viens norāda sprieguma līmeni, bet otrs tiek pārbaudīts, vai šis spriegums nav šķērsots. Pārtraukums tiek pacelts atkarībā no tā, vai šķērsojums ir augoša vai krītoša mala (vai abas). Pārtraukumu pēc tam var uztvert programmatūra un attiecīgi rīkoties.

Lai iegūtu precīzu informāciju par to, kā to izdarīt, ieskaitot koda piemēru, skatiet:

Analogā salīdzinātāja pārtraukums:

4. solis: skaitītājs

Protams, AVR ir iekļauti vairāki skaitītāji. Parasti tos izmanto, lai iestatītu dažādu frekvenču taimeri un pēc vajadzības palielinātu pārtraukumus. Cits, iespējams, ir ļoti vecmodīgs lietojums, ir tos izmantot kā skaitītājus bez papildu burvības, vienkārši izlasiet vērtību, kad tas jums nepieciešams (aptauja). Intresstējoši to varētu izmantot, lai atslēgtu pogas, piem. Skatiet, piemēram, šo ziņu: AVR T1 skaitītāja piemērs

5. solis: iepriekš noteiktas konstantes

Ir daži iepriekš definēti mainīgie, kurus var izmantot, lai savam projektam pievienotu informāciju par versiju un apkopojumu.

Lai iegūtu precīzu informāciju par to, kā to izdarīt, ieskaitot koda piemēru, skatiet:

Serial.println (_ DATE_); // apkopošanas datums

Serial.println (_ TIME_); // apkopošanas laiks

String stringOne = String (ARDUINO, DEC);

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

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

Serial.println (_ FILE_); // fails apkopots

šie koda fragmenti izvadīs šos datus seriālajā konsolē.

6. darbība: saglabājiet mainīgo RAM, izmantojot atiestatīšanu

Ir labi zināms, ka Arduino Uno (ATmega328) ir iekšējs EEPROM, kas ļauj saglabāt vērtības un iestatījumus izslēgšanas laikā un atjaunot tos nākamajā ieslēgšanas reizē. Ne tik labi zināms fakts varētu būt tas, ka faktiski ir iespējams saglabāt vērtību atiestatīšanas laikā pat RAM - tomēr vērtības tiek zaudētas barošanas cikla laikā - ar sintaksi:

neparakstīts garš mainīgais_that_is_preserved _attribute_ ((sadaļa (".noinit")));

Tas ļauj, piemēram, saskaitīt atiestatīto ierīču skaitu un, izmantojot EEPROM, arī ieslēgto ierīču skaitu.

Lai iegūtu precīzu informāciju par to, kā to izdarīt, ieskaitot koda piemēru, skatiet:

  • Saglabājiet mainīgo Ramā, izmantojot atiestatīšanu:
  • EEPROM bibliotēka:

7. darbība: piekļūstiet pulksteņa signālam

Arduinos un citiem AVR (piemēram, ATtiny) ir iekšējais pulkstenis, kas ļauj tos palaist, neizmantojot ārēju kristāla oscilatoru. Turklāt tajā pašā laikā viņi var arī savienot šo signālu ar ārpusi, uzliekot to uz tapas (piemēram, PB4). Sarežģītā daļa ir tāda, ka jums ir jāmaina mikroshēmu drošinātāju biti, lai iespējotu šo funkciju, un drošinātāju bitu maiņa vienmēr rada mikroshēmas mūrēšanas risku.

Jums ir jāiespējo CKOUT drošinātājs, un vienkāršākais veids, kā to izdarīt, ir izpildīt norādījumus par to, kā nomainīt AVR Atmega328p - 8 bitu mikrokontrollera drošinātāju bitus, izmantojot Arduino.

Lai iegūtu precīzu informāciju par to, kā to izdarīt, ieskaitot koda piemēru, skatiet:

  • ATtiny iekšējā oscilatora regulēšana:
  • Kā nomainīt AVR Atmega328p-8 bitu mikrokontrollera drošinātāju bitus, izmantojot Arduino:

8. solis: ATmega328P porta iekšējā struktūra

Zinot ATmega328P portu iekšējo struktūru, mēs varam pārsniegt standarta lietošanas ierobežojumus. Sīkāku informāciju un iekšējās shēmas shēmu skatiet sadaļā par kapacitātes mērītāju diapazonam no 20 pF līdz 1000 nF.

Vienkāršs piemērs ir izmantot pogas ar digitālajiem portiem, kuriem nav nepieciešams rezistors, jo tiek izmantots iekšējais pievilkšanas rezistors, kā parādīts ievades pievilkšanas sērijas piemērā vai norādāmā Arduino poga bez rezistora.

Uzlabotāka ir šo zināšanu izmantošana, kā minēts 20 pF lielu kondensatoru mērīšanai un turklāt bez papildu elektroinstalācijas! Lai sasniegtu šo veiktspēju, piemērā tiek izmantota iekšējā/ieejas pretestība, iekšējais pievilkšanas rezistors un klaiņojošais kondensators. Salīdziniet ar Arduino CapacitanceMeter apmācību, kas nevar būt zemāka par dažiem nF.

9. solis: iebūvēts (iebūvēts) LED kā fotodetektors

Daudzos Arduino dēļos ir iebūvētas vai iebūvētas gaismas diodes, kuras var vadīt no koda, piem. pievienojot vienu vadu no šīs tapas analogās ieejas tapai (piemēram, A0), mēs varam arī izmantot šo LED kā fotodetektoru. To var izmantot dažādos veidos, piemēram; izmantojiet vides apgaismojuma mērīšanai, izmantojiet LED kā pogu, izmantojiet LED divvirzienu komunikācijai (PJON AnalogSampling) utt.

Ieteicams: