Sisällysluettelo:

Arduinon vähemmän tunnetut ominaisuudet: 9 vaihetta
Arduinon vähemmän tunnetut ominaisuudet: 9 vaihetta

Video: Arduinon vähemmän tunnetut ominaisuudet: 9 vaihetta

Video: Arduinon vähemmän tunnetut ominaisuudet: 9 vaihetta
Video: Lapsi soittaa 112 2024, Marraskuu
Anonim
Arduinon vähemmän tunnetut ominaisuudet
Arduinon vähemmän tunnetut ominaisuudet

Tämä on enemmän luettelo tyypillisesti käytettyjen Arduino -alustojen (esim. Uno, Nano) ei niin usein mainituista ominaisuuksista. Tämän luettelon tulisi toimia viitteenä aina, kun haluat etsiä näitä ominaisuuksia ja levittää sanaa.

Katso koodia nähdäksesi esimerkkejä kaikista näistä ominaisuuksista, koska käytin niitä useissa minun projekteissani tässä ohjeessa (esim. 1-johtiminen Arduino-näyttö (144 merkkiä)). Seuraavat vaiheet selittävät yhden ominaisuuden.

Vaihe 1: Syöttöjännite

Arduino voi mitata oman syöttöjännitteen epäsuorasti. Mittaamalla sisäinen ohjearvo syöttöjännitteen ollessa yläraja -ohjeena saat sisäisen ohjearvon ja syöttöjännitteen suhteen (syöttöjännite toimii ylärajana analogiselle/ADC -lukemalle). Kuten tiedät sisäisen jänniteohjeen tarkan arvon, voit sitten laskea syöttöjännitteen.

Katso tarkat tiedot tämän tekemisestä, esimerkkikoodi mukaan lukien:

  • Salainen Arduino-volttimittari-mittaa akun jännite:
  • Voiko Arduino mitata oman Vin: n?:

Vaihe 2: Sisäinen lämpötila

Jotkut Arduino -laitteet on varustettu sisäisellä lämpötila -anturilla, joten ne voivat mitata sisäisen (puolivalmistajan) lämpötilan.

Katso tarkat tiedot tämän tekemisestä, esimerkkikoodi mukaan lukien:

Sisäinen lämpötila -anturi:

Voiko Arduino mitata oman Vin: n?:

Vaihe 3: Analoginen vertailija (keskeytys)

Arduino voi asettaa analogisen vertailijan nastan A0 ja A1 väliin. Joten toinen antaa jännitetason ja toinen tarkistetaan tämän jännitteen ylittymisestä. Keskeytystä nostetaan sen mukaan, onko risteys nouseva vai laskeva reuna (tai molemmat). Ohjelmisto voi sitten saada keskeytyksen kiinni ja toimia sen mukaisesti.

Katso tarkat tiedot tämän tekemisestä, esimerkkikoodi mukaan lukien:

Analogisen vertailijan keskeytys:

Vaihe 4: Laskuri

Tietenkin AVR: ssä on useita laskureita. Yleensä niitä käytetään eri taajuuksien ajastimen asettamiseen ja keskeytysten nostamiseen tarpeen mukaan. Toinen voi olla hyvin vanhanaikainen käyttö, kun käytät niitä aivan laskureina ilman ylimääräistä taikuutta, lue arvo vain silloin, kun sitä tarvitset (kysely). Mielenkiintoinen käyttö voisi olla napin poistaminen esim. Katso esimerkiksi tämä viesti: AVR Esimerkki T1 -laskuri

Vaihe 5: Valmiit vakiot

Joitakin ennalta määritettyjä muuttujia voidaan käyttää projektin versio- ja kokoustietojen lisäämiseen.

Katso tarkat tiedot tämän tekemisestä, esimerkkikoodi mukaan lukien:

Sarja.println (_ DATE_); // kokoamispäivä

Sarja.println (_ TIME_); // kokoamisen aika

String stringOne = Jono (ARDUINO, DEC);

Sarja.println (stringOne); // arduino ide versio

Serial.println (_ VERSION_); // gcc -versio

Serial.println (_ FILE_); // tiedosto koottu

nämä koodinpätkät lähettävät nämä tiedot sarjakonsoliin.

Vaihe 6: Säilytä muuttuja RAM -muistissa nollaamalla

Tiedetään, että Arduino Unossa (ATmega328) on sisäinen EEPROM, jonka avulla voit säilyttää arvot ja asetukset sammutuksen aikana ja palauttaa ne seuraavan käynnistyksen yhteydessä. Ei niin tunnettu tosiasia voi olla, että on mahdollista säilyttää arvo nollausvaiheessa jopa RAM -muistissa - arvot kuitenkin häviävät virtakierron aikana - syntaksin kanssa:

allekirjoittamaton pitkä muuttuja_that_is_preserved _attribute_ ((osio (".noinit")));

Tämän avulla voit esimerkiksi laskea RESET-arvojen määrän ja EEPROM-toiminnon avulla myös käynnistysten määrän.

Katso tarkat tiedot tämän tekemisestä, esimerkkikoodi mukaan lukien:

  • Säilytä muuttuja Ramissa Resetin kautta:
  • EEPROM -kirjasto:

Vaihe 7: Käytä kellosignaalia

Arduinot ja muut AVR -laitteet (kuten ATtiny) sisältävät sisäisen kellon, jonka avulla voit käyttää niitä ilman ulkoista kideoskillaattoria. Lisäksi samaan aikaan he voivat myös kytkeä tämän signaalin ulkopuolelle asettamalla sen nastaan (esim. PB4). Hankala osa tässä on se, että sinun on vaihdettava sirujen sulakebitit, jotta tämä ominaisuus voidaan ottaa käyttöön, ja sulakebittien vaihtaminen kantaa aina vaaran sirun murtamisesta.

Sinun on otettava CKOUT -sulake käyttöön ja helpoin tapa tehdä tämä on noudattamalla ohjeita, jotka koskevat AVR Atmega328p - 8 -bittisen mikrokontrollerin sulakkeen bittien vaihtaminen Arduinon avulla.

Katso tarkat tiedot tämän tekemisestä, esimerkkikoodi mukaan lukien:

  • ATtiny-sisäisen oskillaattorin viritys:
  • Kuinka vaihtaa AVR Atmega328p-8-bittisen mikrokontrollerin sulakebitit Arduinon avulla:

Vaihe 8: ATmega328P: n portin sisäinen rakenne

ATmega328P: n porttien sisäisen rakenteen tunteminen antaa meille mahdollisuuden ylittää tavanomaiset käyttörajat. Katso lisätietoja kapasitanssimittarista alueelle 20 pF - 1000 nF saadaksesi lisätietoja ja kaavio sisäisestä piiristä.

Yksinkertainen esimerkki on käyttää painikkeita, joissa on digitaaliset portit, jotka eivät tarvitse mitään vastusta sisäisen vetovastusvastuksen käytön vuoksi, kuten Input Pullup -sarjan esimerkki tai ohjeellinen Arduino-painike ilman vastusta osoittaa.

Kehittyneempää on tämän tiedon käyttö, kuten mainittiin, jopa 20 pF: n kondensaattoreiden mittaamiseen ilman lisäjohdotusta! Tämän suorituskyvyn saavuttamiseksi esimerkissä käytetään sisäistä/tuloimpedanssia, sisäistä vetovastusta ja hajakondensaattoria. Vertaa Arduinon kapasitanssimittarin opetusohjelmaan, joka ei voi laskea alle muutaman nF.

Vaihe 9: Sisäänrakennettu (sisäänrakennettu) LED-valo valotunnistimena

Monissa Arduino-levyissä on sisäisiä tai sisäänrakennettuja LED-valoja, joita voidaan ohjata koodilla, esim. Uno- tai Nano -levyt nastassa 13. Lisäämällä yhden johdon tästä nastasta analogiseen tulotappiin (esim. A0) voimme käyttää tätä LEDiä myös valotunnistimena. Tätä voidaan käyttää monella eri tavalla, kuten; Käytä ympäristön valaistuksen mittaamiseen, käytä LEDiä painikkeena, käytä LEDiä kaksisuuntaiseen tiedonsiirtoon (PJON AnalogSampling) jne.

Suositeltava: