Sadržaj:

Arduino manje poznate karakteristike: 9 koraka
Arduino manje poznate karakteristike: 9 koraka

Video: Arduino manje poznate karakteristike: 9 koraka

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

Ovo je više popis ne tako često spominjanih karakteristika Arduino platformi koje se obično koriste (npr. Uno, Nano). Ovaj popis trebao bi poslužiti 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 znaka)). Koraci koji slijede objašnjavaju po jednu značajku.

Korak 1: Napon napajanja

Arduino može mjeriti vlastiti napon napajanja na indirektan način. Mjerenjem interne 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). Kako znate tačnu vrijednost referentnog internog napona, tada možete izračunati napon napajanja.

Za detalje 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: Unutrašnja temperatura

Neki Arduino opremljeni su senzorom unutrašnje temperature i stoga mogu mjeriti njihovu unutrašnju (poluvodičku) temperaturu.

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

Senzor unutrašnje temperature:

Može li Arduino mjeriti vlastiti Vin ?:

Korak 3: Analogni komparator (prekid)

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

Za detalje 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 tajmera različitih frekvencija i povećavanje prekida po potrebi. Druga može biti vrlo staromodna upotreba je da ih koristite samo kao brojače bez dodatne magije, samo pročitajte vrijednost kada vam zatreba (anketa). Interesantna upotreba 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 vašem projektu.

Za detalje 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 (_ VERSION_); // gcc verzija

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

ovi 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 _attribute_ ((section (".noinit")));

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

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

  • Zadrži varijablu u Ramu putem resetiranja:
  • EEPROM biblioteka:

Korak 7: Pristupite signalu sata

Arduinos i drugi AVR (poput ATtiny) 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 postavljanjem na pin (npr. PB4). Škakljivi dio ovdje je da morate promijeniti bitove osigurača čipova kako biste omogućili tu funkciju, a promjena bitova osigurača uvijek nosi rizik zazidavanja čipa.

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

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

  • Podešavanje ATtiny internog oscilatora:
  • Kako promijeniti bitove osigurača AVR Atmega328p-8-bitni mikrokontroler pomoću Arduina:

Korak 8: Interna struktura porta ATmega328P

Poznavanje interne strukture portova ATmega328P omogućava nam da pređemo standardna ograničenja upotrebe. Za više detalja i shemu unutrašnjeg kola pogledajte odjeljak o Mjeraču kapacitivnosti za raspon od 20 pF do 1000 nF.

Jednostavan primjer je korištenje gumba s digitalnim priključcima kojima nije potreban nikakav otpornik zbog upotrebe unutarnjeg otpornika koji se povlači kako je prikazano u serijskom primjeru ulaza za izvlačenje ili Arduino dugme s uputama bez otpornika.

Naprednija je upotreba ovog znanja kao što je spomenuto za mjerne kapacitete do 20 pF i nadalje bez ikakvog dodatnog ožičenja! Kako bi se postigle te performanse, u primjeru se koristi unutrašnja/ulazna impedancija, unutarnji pull-up otpornik i zalutali kondenzator. Usporedite s Arduino vodičem za kapacitivni mjerač 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 pinu 13. Dodavanjem jedne žice s ovog pina na analogni ulazni pin (npr. A0) možemo koristiti i ovu LED kao fotodetektor. Ovo se može koristiti na različite načine, poput; koristite za mjerenje osvjetljenja okoline, koristite LED kao dugme, koristite LED za dvosmjernu komunikaciju (PJON AnalogSampling) itd.

Preporučuje se: