Sadržaj:

Arduino manje poznate značajke: 9 koraka
Arduino manje poznate značajke: 9 koraka

Video: Arduino manje poznate značajke: 9 koraka

Video: Arduino manje poznate značajke: 9 koraka
Video: Какого числа от 1 до 31, родился человек, такая у него и вся жизнь 2024, Srpanj
Anonim
Arduino manje poznate značajke
Arduino manje poznate značajke

Ovo je više popis ne tako često spominjanih značajki Arduino platformi koje se obično koriste (npr. Uno, Nano). Ovaj bi se popis trebao koristiti kao referenca kad god trebate potražiti te značajke i proširiti vijest.

Pogledajte kod kako biste vidjeli primjere za sve te značajke jer sam ih koristio u nekoliko svojih projekata ovdje na instrukcijama (npr. Arduino jednožilni zaslon (144 znakova)). Koraci koji slijede objašnjavaju po jednu značajku.

Korak 1: Opskrbni napon

Arduino može mjeriti vlastiti opskrbni napon na neizravan način. Mjerenjem unutarnje reference s naponom napajanja kao gornjom granicom referentne vrijednosti možete dobiti omjer između interne reference i napona napajanja (napon napajanja djeluje kao gornja granica za očitanje analognog/ADC -a). Kao što znate točnu vrijednost referentnog internog napona, tada možete izračunati napon napajanja.

Za točne pojedinosti o tome kako to učiniti, uključujući primjer koda, pogledajte:

  • Tajni arduino voltmetar-izmjerite napon baterije:
  • Može li Arduino mjeriti vlastiti Vin ?:

Korak 2: Unutarnja temperatura

Neki Arduino opremljeni su senzorom unutarnje temperature i stoga mogu mjeriti njihovu unutarnju (poluvodičku) temperaturu.

Za točne pojedinosti o tome kako to učiniti, uključujući primjer koda, pogledajte:

Unutarnji osjetnik temperature:

Može li Arduino mjeriti vlastiti Vin ?:

Korak 3: Analogni usporednik (prekid)

Arduino može postaviti analogni usporednik između pinova A0 i A1. Dakle, jedan daje razinu napona, a drugi se provjerava ima li križanja ovog napona. Prekid se povećava ovisno o tome je li križanje uzlazni ili padajući rub (ili oboje). Prekid se tada može uhvatiti softverom i postupiti u skladu s tim.

Za točne pojedinosti o tome kako to učiniti, uključujući primjer koda, pogledajte:

Prekid analognog komparatora:

Korak 4: Brojač

Naravno, AVR ima nekoliko uključenih brojača. Obično se koriste za postavljanje timera različitih frekvencija i po potrebi povećavaju prekide. Druga može biti vrlo staromodna upotreba je koristiti ih samo kao brojače bez dodatne magije, samo pročitajte vrijednost kad vam zatreba (anketa). Interesantna uporaba ovoga mogla bi biti poništavanje gumba, npr. Navedite na primjer ovaj post: AVR Primjer T1 brojača

Korak 5: Unaprijed definirane konstante

Postoje neke unaprijed definirane varijable koje se mogu koristiti za dodavanje podataka o verziji i kompilaciji u vaš projekt.

Za točne pojedinosti o tome kako to učiniti, uključujući primjer koda, pogledajte:

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

Serial.println (_ TIME_); // vrijeme kompilacije

String stringOne = String (ARDUINO, DEC);

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

Serial.println (_ VERZIJA_); // gcc verzija

Serial.println (_ FILE_); // datoteka sastavljena

ti isječci koda će te podatke prenijeti na serijsku konzolu.

Korak 6: Zadržite varijablu u RAM -u putem resetiranja

Dobro je poznato da Arduino Uno (ATmega328) ima unutarnji EEPROM koji vam omogućuje da sačuvate vrijednosti i postavke tijekom isključivanja i vratite ih pri sljedećem uključivanju. Ne tako poznata činjenica mogla bi biti da je zapravo moguće sačuvati vrijednost tijekom resetiranja čak i u RAM -u - međutim vrijednosti se gube tijekom ciklusa napajanja - sa sintaksom:

unsigned long variable_that_is_preserved _attribu_ ((odjeljak (".noinit")));

To vam omogućuje, na primjer, da brojite RESETOVANJA, a pomoću EEPROM-a i broj uključivanja.

Za točne pojedinosti o tome kako to učiniti, uključujući primjer koda, pogledajte:

  • Zadrži varijablu u Ramu putem resetiranja:
  • Knjižnica EEPROM -a:

Korak 7: Pristupite signalu sata

Arduinos i drugi AVR (poput ATtinyja) imaju unutarnji sat koji vam omogućuje da ih pokrenete bez upotrebe vanjskog kristalnog oscilatora. Nadalje, u isto vrijeme oni također mogu spojiti ovaj signal prema van stavljajući ga na pin (npr. PB4). Škakljivi dio ovdje je da morate promijeniti bitove osigurača čipova kako biste omogućili tu značajku, a mijenjanje bitova osigurača uvijek nosi rizik zazidavanja čipa.

Morate omogućiti CKOUT osigurač, a najlakši način za to je slijedeći upute o tome kako promijeniti bitove osigurača AVR -a Atmega328p - 8 -bitni mikrokontroler pomoću Arduina.

Za točne pojedinosti o tome kako to učiniti, uključujući primjer koda, pogledajte:

  • Ugađanje ATtiny unutarnjeg oscilatora:
  • Kako promijeniti bitove osigurača AVR Atmega328p-8-bitni mikrokontroler pomoću Arduina:

Korak 8: Unutarnja struktura porta ATmega328P

Poznavanje unutarnje strukture portova ATmega328P omogućuje nam da pređemo standardna ograničenja korištenja. Više pojedinosti i shemu unutarnjeg kruga potražite u odjeljku Mjerač kapaciteta za raspon 20 pF do 1000 nF.

Jednostavan primjer je korištenje gumba s digitalnim priključcima kojima nije potreban nikakav otpornik zbog upotrebe unutarnjeg pull-up otpornika kako je prikazano u serijskom primjeru ulaza i izvlačenja ili instrukcijskom gumbu Arduino bez otpornika.

Naprednija je uporaba ovog znanja kao što je spomenuto za mjerne kapacitete od samo 20 pF i nadalje bez ikakvog dodatnog ožičenja! Kako bi se postigle te performanse, u primjeru se koristi unutarnja/ulazna impedancija, unutarnji vučni otpornik i zalutali kondenzator. Usporedite s Vodičem za Arduino CapacitanceMeter koji ne može ići niže od nekoliko nF.

Korak 9: Ugrađena (ugrađena) LED kao fotodetektor

Mnoge Arduino ploče imaju ugrađene ili ugrađene LED diode kojima se može upravljati iz koda, npr. Uno ili Nano ploče na pin 13. Dodavanjem jedne žice s ovog pina na analogni ulazni pin (npr. A0) također možemo koristiti ovu LED kao fotodetektor. To se može koristiti na različite načine, poput; koristiti za mjerenje osvjetljenja okoliša, koristiti LED kao gumb, koristiti LED za dvosmjernu komunikaciju (PJON AnalogSampling) itd.

Preporučeni: