AVR teek I2C siini ja PCF8583 reaalajakellaga töötamiseks. Ekraanide, indikaatorite ja kuvarite raamatukogud
Mul oli vaja teha mikroskeemil põhinev kell, millel on I 2 C liides. RTC kiip, nn. "reaalajas kell" PCF8583.
Kiibi sees on: kell, äratuskell, taimer, kalender (kõver) ja 240 baiti RAM-i, kuhu saate salvestada mis tahes soovitud teavet. RAM on väga kasulik asi, erinevalt välkmälust pole RAM-il ümberkirjutamise tsüklite arvule piiranguid ning sinna saab salvestada osa andmeid ja sätteid nii tihti kui soovid.
Kuid oli üks probleem - ma tõesti ei tahtnud koodi kirjutada, nii et otsustasin Internetist valmiskoodi leida. Nagu hiljem selgus, oli selle leidmine “ise”. Laadisin alla näite I 2 C-ga töötamise kohta, parandasin selle ja välgutasin mikrokontrolleri. See ei õnnestunud. Hakkasin koodi ümber tuhnima, otsides põhjust, miks see ei tööta... ja ma olin kohkunud!! Mõnel juhul viidi salvestamine läbi kogu pordi korraga, mitte konkreetsetele bittidele. Seega, kui ühendate pordiga midagi muud, näiteks ekraani, siis tõenäoliselt see ei tööta. Samuti realiseeriti andmete lugemine siinil valesti (vastuvõtu lõpu tingimust genereerimata või lihtsalt ilma NACKita). Aga see on pool probleemist. Põhiprobleem on erinev. Sageli määras koodi autor pordile loogilise “1” ja nagu me teame, juhitakse I 2 C siini SDA ja SCL tihvtide “tõmbamisega” ühisesse juhtmesse. Ja siini loogiline “1” kujuneb omakorda 4,7 kilooomiste takistitega toite plussile tõmbamisel. Seega, kui mikrokontrolleri väljundiks on seatud loogiline “1” ja alamseade “tõmbab” selle väljundi ühisesse juhtmesse, siis tekib “pauk-pauk” lühis. See mulle väga ei meeldinud ja otsustasin leiutada uuesti oma ratta ja kirjutada oma raamatukogu või õigemini isegi kaks teeki: üks I 2 C siiniga töötamiseks ja teine otse PCF8583 reaalajas töötamiseks. kella. Jah, muide, kood on kirjutatud keeles .
I 2 C teegi projektiga ühendamiseks peate selle kaasama include kaudu, nagu pildil, ja kopeerima ka teegi projekti kausta.
Pärast seda peate avama faili "i2c.h" ja määrama mikrokontrolleri kontaktid, mis toimivad I 2 C siinina. Vaikimisi on siin konfigureeritud viigudele PC0 (SCL) ja PC1 (SDA). ). Ja seadistamine toimub siin:
See on kõik, oleme I2C teegi ühendanud, jalad konfigureerinud ja teek on kasutamiseks valmis. Kasutusnäide:
I2c_init(); // I2C siini lähtestamine i2c_start_cond(); //käivitage siin i2c_send_byte (0xA0); // siinil rippuva seadme aadress i2c_send_byte (0x10); // seadmesse kirjutatav andmebait i2c_send_byte (0x10); // veel üks bait andmeid, mille me seadmesse kirjutame i2c_stop_cond(); // peatada rehvid
Pärast seiskamistingimust saame kontrollida, kas I 2 C siiniga on kõik korras. Selleks peame lugema muutujat “i2c_frame_error”. Kui kõik on normaalne, siis on see 0. Kui üks siini kontaktidest ei ole toiteallika külge “tõmmatud” ja siinile pole paigaldatud loogilist “1”, genereerib raamatukogu vea ja kirjutab number 1 muutujale "i2c_frame_error" Lugege muutujat "i2c_frame_error" pärast stopptingimust. Alloleval joonisel näitan, kuidas veakontroll töötab:
Nüüd ühendame PCF8583 reaalajas kella raamatukogu. Selleks peate tegema samu samme. Kopeerime faili "PCF8583.h" projekti kausta ja lisame selle hulka, nagu fotol:
Valmis. PCF8583 reaalajas kellateek on ühendatud. See ei nõua seadistusi, nii et saate kiibilt kohe kellaaega ja kuupäeva lugema hakata. Pange tähele, et PCF8583 teek töötab I2C teeki kasutades, nii et kui tahame töötada PCF8583-ga, peame mõlemad teegid ühendama!
Näide teegi kasutamisest (kirjutamise ja lugemise kellaaeg ja kuupäev):
// I2C siini lähtestamine i2c_init(); // Valmistage PCF8583 kiibile kirjutamise kellaaeg ja kuupäev ette PCF_hour=23; // 23 tundi PCF_min=59; // 59 minutit PCF_day=31; // 31. päev PCF_month=12; // 12. kuu - detsember PCF_year=0; // aasta (0 - mitte liigaaasta) PCF_weekday=6; // 6. nädalapäev (pühapäev) // Kellaaja ja kuupäeva kirjutamine PCF8583 kiibile PCF_write_hh_mm_ss(); // Kellaaja ja kuupäeva lugemine PCF8583 kiibilt PCF_read_hh_mm_ss(); Näide RAM-iga tööst (kirjutamine ja lugemine): // Valmistage PCF8583 kiibile kirjutamiseks ette 5 baiti PCF_data_ram_1=255; // bait 1 PCF_data_ram_2=255; // 2. bait PCF_data_ram_3=255; // 3. bait PCF_data_ram_4=255; // 4. bait PCF_data_ram_5=255; // bait 5 // Kirjutage 5 baiti PCF8583 kiibile PCF_write_ram(); // Loe 5 baiti PCF8583 kiibilt PCF_read_ram();
Mikroskeemist lugemine on veelgi lihtsam - lihtsalt helistage funktsioonPCF_ lugeda_ hh_ mm_ ss() pärast seda ilmuvad muutujates kellaaeg ja kuupäev, kust te need lihtsalt võtate. RAM-i lugemiseks kasutame vastavalt funktsiooniPCF_ lugeda_ ram() mille järel kogume andmeid muutujatenaPCF_ andmeid_ ram_ N
Siin on muutujate loend, kus ja mida talletatakse:
// kellaaeg ja kuupäev PCF_hour=0; // aeg, tunnid (0 kuni 23, ülevoolukaitse kirjutamisel ja lugemisel) PCF_min=0; // aeg, minutid (0 kuni 59, kaitse ülevoolu eest kirjutamisel ja lugemisel) PCF_sec=0; // aeg, sekundid (ainult lugemiseks, kirjutamisel lähtesta 00-le) PCF_day=0; // päev (1 kuni 31, ülevoolukaitse kirjutamisel ja lugemisel) PCF_weekday=0 // nädalapäev (0-esmaspäev; 6-pühapäev, ülevoolukaitse kirjutamisel ja lugemisel) PCF_month=0; // kuu (1 kuni 12, kaitse ülevoolu eest kirjutamisel ja lugemisel) PCF_year=0; // aasta (0-hüpe; 1,2,3-mittehüpe, ülevoolukaitse kirjutamisel ja lugemisel) // RAM PCF_data_ram_1; // Andmed (PCF8583 RAM), bait 1 PCF_data_ram_2; // Andmed (PCF8583 RAM), bait 2 PCF_data_ram_3; // Andmed (PCF8583 RAM), bait 3 PCF_data_ram_4; // Andmed (PCF8583 RAM), bait 4 PCF_data_ram_5; // Andmed (PCF8583 RAM), bait 5
Nüüd räägin teile ülevoolukaitsest. Oletame, et unustasime mikrolülituse ühendada. Loeme andmed mikroskeemist ja... loetakse bait 11111111 ehk number 255 Asi on selles, et I 2 C siini aluseks on 2 tõmbetakistit, nii et need annavad meile loogilised “ühed”. kui mikrolülitus pole ühendatud. Selliste juhtumite eest kaitsmiseks tegin PCF8583 teeki ülevoolukaitse, mis jälgib, et kell ei näitaks sulle 62 tundi 81 minutit... Ülevoolu olemasolu saab jälgida muutuja “PCF_overflow” lugemisega. Kui see on 0, siis ülevooluvigu ei esinenud. Kui see sisaldab 1 või enamat, on ületäitumise tõrkeid. Pärast kuupäeva ja kellaaja lugemise funktsiooni peate lugema muutujat "PCF_overflow".PCF_ lugeda_ hh_ mm_ ss()
Selguse huvides projekt AVR stuudio 6 ATmega32 jaoks on kaasas. Saate uuesti kompileerida mis tahes AVR-i jaoks. Projektis ühendasin ka kuvari visuaalseks juhtimiseks. Toite sisselülitamisel seab mikrokontroller 23 tundi 59 minutit, 31. detsember, pühapäev. Ja minut hiljem saab kell 00 tundi 00 minutit, 1. jaanuar, esmaspäev.
Nüüd ütlen teile, miks ma rääkisin selle mikrolülituse "kõverast" kalendrist. Asi on selles, et mikroskeem ei tea, kuidas jooksvat kalendriaastat salvestada, vaid salvestab ainult liigaasta lipu. Lühidalt:
0 – liigaaasta
1 – mitte liigaasta
2 – mitte liigaasta
3 – mitte liigaasta
Ja nii edasi tsüklis 0-1-2-3-0-1-2-3-0...
Üldjuhul tuleb tavalise kalendri tegemiseks juurutada näiteks aasta tarkvaraline arvutamine ja salvestamine RAM PCF8583, kuid see pole mugav. Ja peaasi, et kui vooluring on pingest välja lülitatud, siis paraku ei kirjuta keegi mälu üle...
Lisan artikli lõppu ka lühikese videoreportaaži. Võin öelda, et olen programmeerimises algaja, kuigi olen programmeerimisega tegelenud 3 aastat (vähehaaval), ei hinda rangelt koodi, kui on täiendusi või kommentaare, kirjutage, parandame. Head meisterdamist kõigile!
Radioelementide loetelu
Määramine | Tüüp | Denominatsioon | Kogus | Märkus | Pood | Minu märkmik |
---|---|---|---|---|---|---|
MK AVR 8-bitine | ATmega32 | 1 | Märkmikusse | |||
Reaalajas kell (RTC) | PCF8583 | 1 | Märkmikusse | |||
LCD ekraan | WH1602 | 1 |
Selles artiklis räägin teile, kuidas kasutada I2C liidese moodulit LCD-ekraani (2x16 / 20x4) juhtimiseks. kasutades Arduino. See moodul võimaldab vähendada kasutatavate kontrolleri kontaktide arvu 8- või 4-bitise ühenduse asemel on vaja ainult 2 kontakti (SDA ja SCL).
Tehnilised parameetrid
Ekraani tugi: LCD 16×02 / 20×04
Valikuline: kontrasti reguleerimine
Toitepinge. 5V
Liides: I2C
Mõõdud: 54mm x 19mm x 15mm
Üldteave I2C liidese mooduli kohta
Kuna Arduino kontrollerite kontaktide arv on piiratud ja sageli kasutamisel erinevad andurid ja moodulid saavad otsa, on vaja need salvestada, nendeks puhkudeks töötati välja see moodul, mille abil saate rakendada edastust kahe kontakti kaudu (SDA ja SCL).
Nüüd natuke moodulist endast, see on ehitatud PCF8574T kiibile. Takistid R8 (4,7 kOhm) ja R9 (4,7 kOhm) on vajalikud SDA ja SCL liinide ülestõmbamiseks. Ideaalis tuleb kahe või enama seadme ühendamisel I2C siini kaudu kasutada tõmbeseadet ainult ühel seadmel, I. hiljem kirjutan miks. Tahvlil on kolm hüppajat (skeem näitab, et liinid A0, A1, A2 on ühendatud toiteallikaga läbi takistite R4, R5, R6), neid on vaja seadme adresseerimise muutmiseks, valikuid on kokku 8 . Adresseerimise muutmine annab meile võimaluse ühendada PCF8574T kiibiga IC2 siini kaudu kuni kaheksa seadet, aadressivalikud on näidatud joonisel (vaikimisi seadme aadress on 0x27); Moodul on varustatud ka potentsiomeetriga R11, mille abil saab muuta LCD-ekraani kontrastsust.
Moodulil on ühendamiseks kolm kontaktide rühma:
Esimene rühm:
SCL: jadakell
SDA: andmeliin (Serial Dфta)
VCC: "+" võimsus
GND: "-" toiteallikas
Teine rühm:
VSS: "-" võimsus
VDD: "+" võimsus
VO: Kontrastsuse juhttihvt
RS: Registreeri Valige
RW: lugemine/kirjutamine (kirjutusrežiim, kui see on maandusega ühendatud)
E: Luba (langemine strobe)
DB0-DB3: liidese madalad bitid
DB4-DB7: liidese kõrged bitid
V: "+" taustvalgustusega toiteallikas
K: "-" taustvalgustuse võimsus
Kolmas rühm: (vaikimisi seatud hüppaja)
VCC:
A LCD-lt:
Arduinoga ühendamine
Vajalikud osad:
Arduino UNO R3 x 1 tk.
LCD ekraan 1602A (2×16, 5V, Sinine) x 1 tk.
Liidese moodul I2C, IIC, TWI LCD-le x 1 tk.
DuPont traat, 2,54 mm, 20 cm, F-M (emane - isane) x 1 tk.
USB-kaabel 2,0 A-B x 1 tk.
Ühendus:
Esiteks jootme I2C mooduli LCD-ekraani külge, seejärel peate ühendama ekraani Arduino UNO-ga. Selleks kasutame DuPont juhtmestikku, mille ühendame vastavalt allolevale tabelile.
Selguse huvides annan veel ühe diagrammi.
Selle katse jaoks peate alla laadima ja installima teegi "LiquidCrystal_I2C". Seejärel kopeerige ja kleepige see näidiskood Arduino IDE programmi aknasse ja laadige see kontrollerisse.
/* Testitud Arduino IDE versioonil 1.6.11 Testimise kuupäev 15.09.2016 */ #kaasa
Laadige programm alla
Kui tegite kõik õigesti, kuid ekraanil pole sümboleid, proovige potentsiomeetriga kontrasti suurendada.
Lingid
Laadige alla LiquidCrystal_I2C teek
PCF8574T kiibi dokumentatsioon
LCD1602A dokumentatsioon
Ostke Aliexpressist
Käesolevas artiklis püüdsime koguda ühte kohta lingid kõigile populaarseimatele Arduino raamatukogudele ning koostasime ka valiku populaarsematest raamatukogudest. Varem või hiljem seisab iga Arduino kasutaja silmitsi vajadusega kasutada üht või teist teeki. Lõppude lõpuks, kasutamine valmis kood vähendab oluliselt programmeerimisaega. Loodame, et ühte kohta kogutud ning allalaadimislinkide ja lühikeste kasutusnäidetega varustatud teave populaarsete raamatukogude kohta aitab teid teie projektides.
Arduino raamatukogu on omamoodi programmi kood, salvestatud mitte visandisse, vaid sisse väliseid faile, mida saab teie projektiga ühendada. Raamatukogu sisaldab erinevaid meetodeid ja andmestruktuurid, mis on vajalikud andurite, indikaatorite, moodulite ja muude komponentidega töötamise lihtsustamiseks. Kasutamine valmis programmid lihtsustab oluliselt tööd projektidega, sest saate keskenduda põhiloogikale, raiskamata aega paljudele pisiasjadele.
Tänaseks on loodud tohutul hulgal teeke, mida on Internetist lihtne leida ja alla laadida. Valdav enamus raamatukogusid levitatakse tasuta litsentsi alusel, seega pole vaja piraatversioone otsida. Peaasi on õppida.
Arduino standardraamatukogud
Parem on alustada raamatukogudega tutvumist ametlikult veebisaidilt, kust leiate muljetavaldava standardmoodulite loendi ja lingid ametlikele partnerraamatukogudele.
Sisseehitatud teekide loend (need tulevad koos Arduino IDE distributsiooniga):
- EEPROM
- Ethernet / Ethernet 2
- Firmata
- Vedelkristall
- Servo
- TarkvaraSerial
- stepper
Valik raamatukogusid ühes arhiivis
Kui teil pole aega paljude saitide üksikasjalikuks analüüsiks ja soovite alla laadida kõik tööks vajaliku välisseadmed Arduino ühes arhiivis oleme koostanud nimekirja 40 populaarseimast raamatukogust. Lihtsalt pakkige selle sisu (kaust raamatukogud) Arduino kausta lahti.
Ekraanide, indikaatorite ja kuvarite raamatukogud
I2C raamatukogu
Töötamiseks mõeldud raamatukogu välisseade I2C protokolli kaudu.
Kasutusnäide:
#ifndef I2C_MASTER_H
#define I2C_MASTER_H
void I2C_init (void) – objekti loomine, seadistus õige sagedus rehvi jaoks.
uint8_t I2C_start () – ühenduse loomine uue seadmega.
uint8_t I2C_write() – kirjutab andmed praegusesse seadmesse.
uint8_t I2C_read_ack() – loeb seadmest baiti, küsib järgmist baiti.
LiquidCrystal Library
Arduino IDE-sse installitud standardne raamatukogu. Mõeldud LCD vedelkristallkuvarite juhtimiseks.
Kasutusnäide:
#kaasa
Klassi konstruktor on LiquidCristal(...). Argumendid on rs, rw, en, do…d7. Esimesed 3 vastavad signaali viigudele RS, RW ja Enable. Kontaktid d vastavad andmesiinide arvule, millega ekraan on ühendatud.
void begin(cols, rows) on meetod, mis initsialiseerib kuvaliidese. Argumendid on märkide arv rea kohta (veerudes) ja ridade (ridade) arv. See meetod tuleb kõigepealt täpsustada.
void createChar(arv, andmed) – kohandatud märkide loomiseks vajalik meetod.
UTFT raamatukogu
Arduino jaoks TFT-ekraanidega töötamiseks vajalik standardne teek erinevat tüüpi. Kõik toetatud kuvad on esitatud kaasasolevas teegidokumendis.
Kasutusnäide:
#kaasa
UTFT(); – UTFT eksemplari loomine.
textRus(char*st, int x, int y); – meetod, mis võimaldab kuvada indeksi stringi. Näiteks char *dht = “Temperatuur, C”;
textRus(string st, int x, int y); – väljastab parameetrit näitava stringi. Näiteks g.textRus(“Temperatuur, C”, 0, 20);
LedControli raamatukogu
Võimaldab juhtida seitsmesegmendilisi ekraane ja kombineerida LED-ide massiivi üheks maatriksiks.
Kasutusnäide:
#kaasa
LedControl lc1= LedControl();
– vajalik raamatukogu lähtestamiseks. Peaks koosnema neljast argumendist – kontaktide arv, millega ekraan on ühendatud (esimesed 3 argumenti) ja ühendatud kiipide arv.
writeArduinoOn7Segment() – kuvab ekraanil kõik numbrid vahemikus 0 kuni 15. Kasutab märkide a ja d jaoks parameetrit setChar() ja puuduvate märkide jaoks paigutuse loomiseks parameetrit setRow().
LedControl.shutdown() – lülitab pildi välja.
setIntensity() – heleduse reguleerimine.
Teegid Arduino kuupäeva ja kellaajaga töötamiseks
Raamatukogu RTClib
Teek reaalajas kellaga töötamiseks, mis lihtsustab suhtlemist Arduinoga.
Kasutusnäide:
#kaasa
RTC_DS1307 RTC; – anduri valik (antud juhul DS1307).
rtc.adjust(DateTime(kuupäev, kellaaeg)); - kellaaja ja kalendri seaded.
dayOfTheWeek() – väljastab nädalapäeva. Argument 0 kuni 6, 0 – pühapäev.
Timelib raamatukogu
Võimaldab Arduinol saada teavet antud hetke kuupäeva ja kellaaja kohta.
Kasutusnäide:
#kaasa
Aeg(); – eksemplari loomine.
setTime(t); - kellaaja määramine. Argumendiks t on tund, minut, sekund, päev, kuu ja aasta.
timeStatus(); – näitab, kas kell on määratud.
kohandadaTime(kohandamine); - aja seadistus.
Raamatukogu Ds1307
Teek DS1307 kella mugavaks suhtlemiseks Arduinoga, kasutades Wire raamatukogu.
Kasutusnäide:
#kaasa
klass DS1307RTC – DS1307 objekti loomine.
SetTime() – kellaaja määramine.
get() – loeb RTC-d, tagastab saadud kuupäeva POSIX-vormingus.
Set(time_t t) – kuupäeva kirjutamine RTC-sse
Raamatukogu DS 3231
Mõeldud kuupäeva ja kellaaja kontrollimiseks moodulis ds3231.
#include "ds3231.h"
DS3231 Kell (SDA, SCL); – DS3231 objekti loomine, ühendamine kellaliini ja andmeliiniga.
getTime(); – kuupäeva ja kellaaja lugemine kellalt.
setDate(kuupäev, esmaspäev, aasta); – kuupäeva määramine.
Arduino süsteemiteegid
EEPROM raamatukogu
Standardne raamatukogu. Mõeldud töötama püsimäluga (andmete salvestamine, lugemine).
Kasutusnäide:
#kaasa
EEPROM.read(); – objekti loomine, baidi lugemine püsimälust aadressil.
EEPROM.write(aadress, väärtus) – kirjutab baidi püsimällu.
EEPROM.put() – kirjutab ujukomaarvude stringe.
EEPROM.get() – loe stringe ja ujukoma numbreid.
Tarkvara jadateek
Teek, mis võimaldab teil rakendada jadaliideseid mis tahes digitaalsetest kontaktidest. Samuti võimaldab teil luua mitu jadaporti, mis töötavad kiirusega kuni 115 200 boodi.
#kaasa
SoftwareSerial mySerial(RX, TX) – objektide loomine, argumendid – kontaktid, millega on ühendatud RX ja TX.
Serial.begin(); – määrab pordi kiiruse Arduino ja arvuti vaheliseks suhtluseks.
mySerial.overflow() – kontrollib sisendpuhvrit ületäitumise suhtes.
Matemaatika raamatukogu
Sisaldab suurt hulka matemaatilisi funktsioone ujukomaarvudega töötamiseks.
Kasutusnäide:
#kaasa
Matemaatika(); – matemaatika eksemplari loomine.
Serial.print("cos num = "); – tagastab arvu koosinuse.
Serial.println(fmod(double__x, double__y)); – tagastab numbrid modulo.
Planeerija raamatukogu
Loodud töötama koos Arduino Due'ga, võimaldab teil töötada multitegumtöötlusrežiimis. Praegu on see eksperimentaalne raamatukogu.
Kasutusnäide:
#kaasa
Planeerija; – eksemplari loomine.
Scheduler.startLoop() – võimaldab lisada funktsiooni, mis käivitatakse koos funktsiooniga loop().
result() – võimaldab teil üle anda juhtimise teistele ülesannetele.
Servomootorite ja samm-mootorite raamatukogud
Servo raamatukogu
Standardne raamatukogu. Hädavajalik servomootorite juhtimiseks ja sageli kasutatakse manipulaatoritega robotprojektides.
Kasutusnäide:
#kaasa
Servo myservo; – servomootori jaoks objekti loomine.
myservo.attach(); – väljundi number, millega servomootor on ühendatud.
myservo.write(180, 30, tõsi); – liikumine 180 kraadi, kiirus 30, liikumise lõpu ootamine.
Stepperi raamatukogu
Vajalik unipolaarsete ja bipolaarsete samm-mootorite juhtimiseks.
#kaasa
const int stepsPerRevolution = ; – sammude arv, mis kulub mootoril täispöörde sooritamiseks.
Stepper myStepper = Stepper(sammud, pin1, pin2) – loob klassi eksemplari määratud arvu astmete ja kontaktidega, millega mootor on ühendatud.
Arduino andurite raamatukogud
DHT raamatukogu
#kaasa< DHT.h>
DHT dht (DHTPIN, DHT11); – lähtestab anduri (antud juhul DHT11).
dht.begin(); – anduri käivitamine.
float t = dht.readTemperature(); – praeguse temperatuuri väärtuse lugemine Celsiuse kraadides.
Dallase temperatuuri raamatukogu
Mõeldud töötama Dallase anduritega. Töötab koos OneWire'i teegiga.
#kaasa
DallasTemperatuuri dallassensorid(&oneWire); – oneWire objekti ülekandmine anduriga töötamiseks.
pane see registrisse.
printTemperature(sensorAddress); – taotleda mõõdetud temperatuuri väärtust.
Ultraheli raamatukogu
Võimaldab Arduinol töötada ultraheli kaugusmõõtmise anduriga HC-SR04.
#kaasa
Ultraheli ultraheli (tig, echo) – objekti deklaratsioon, argumendid – Trig-kontakt ja kajakontakt.
dist = ultraheli.kaugusRead(); – objekti kauguse määramine. Argument – sentimeetrid (CM) või tollid (INC).
Timing() – impulsi kestuse lugemine Echo väljundis, teisendades selle vajalikuks numbrisüsteemiks.
ADXL345 raamatukogu
Mõeldud töötama koos ADXL345 kiirendusmõõturiga.
Kasutusnäide:
#kaasa
ADXL345_ADDRESS – objekti loomine, selle aadressi näitamine.
ADXL345_REG_DEVID – seadme identifitseerimine.
ADXL345_REG_OFSX – nihe piki X-telge.
ADXL345_REG_BW_RATE – andmeedastuskiiruse juhtimine.
Raamatukogu BME280
Mõeldud töötama temperatuuri-, niiskus- ja rõhuanduriga BME280.
Kasutusnäide:
#kaasa
BME280_ADDRESS – BME280 objekti loomine, selle aadressi näitamine.
begin(uint8_t addr = BME280_ADDRESS); – anduri töö algus.
getTemperature – mõõdetud temperatuuri hankimine.
getPressure – mõõdetud rõhu saamine.
BMP280 raamatukogu
Nõutav atmosfäärirõhuanduriga BMP280 töötamiseks.
Kasutusnäide:
#kaasa
BMP280_CHIPID – eksemplari loomine, selle aadressi näitamine.
getTemperature(float *temp); – mõõdetud temperatuuri saamine.
getPressure(float *rõhk); – mõõdetud rõhu väärtuse saamine.
Raamatukogu BMP085
Vajalik kasutamiseks koos rõhuanduriga BMP085.
Kasutusnäide:
#kaasa
Adafruit_BMP085 bmp; – BMP085 eksemplari loomine.
dps.init(MODE_ULTRA_HIGHRES, 25000, tõsi); – rõhu mõõtmine, argument 25000 – kõrgus merepinnast (antud juhul 250 m üle merepinna).
dps.getPressure(&Rõhk); - rõhu määramine.
Sõrmejälgede raamatukogu
Nõutav sõrmejäljeskanneriga töötamiseks.
Näidekasutada:
#kaasa
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial); – Sõrmobjekti deklareerimine. Parameeter – link objektile töötamiseks UART-iga, millega moodul on ühendatud.
sõrm.begin(); – sõrmejäljemooduli lähtestamine.
Func_sensor_communication(); – sõrmejäljemooduli helistamine.
Suhtlusraamatukogud
Juhtmete raamatukogu
Nõutav kahejuhtmelise I2C liidesega töötamiseks.
Kasutusnäide:
#kaasa
Wire.begin() – teegi lähtestamine, ühendus I2C siiniga.
Wire.requestFrom() – alamseadme baitide ülempäring.
Wire.beginTransmission() – alamseadmesse edastamise algus.
Irremote Library
Vajalik, et Arduino töötaks IR-vastuvõtjaga.
Kasutusnäide:
#kaasa
IRrecv irrecv(RECV_PIN); – tihvt, millega on ühendatud IR-vastuvõtja.
SetPinAndButton(int ir1,int ir2,int pin) – võimaldab konfigureerida konkreetse väljundi käivituma määratud väärtustel ir1, ir2.
GSM raamatukogu
Vajalik GSM-kaardi kaudu GSM/GRPS-võrguga ühendamiseks. Selle abiga saate rakendada GSM-telefoniga tehtavaid toiminguid, töötada häälkõnedega ja luua GRPS-i kaudu Interneti-ühenduse.
Kasutusnäide:
#kaasa
GSM GSMAccess – lähtestab klassi eksemplari.
gprs.powerOn() – toide sisse.
GPRS – Interneti-ühenduse loomine.
GSM – raadiomodemi juhtimine.
RFID raamatukogu
Vajalik Arduino ja RFID-mooduli ühendamiseks.
Kasutusnäide:
#kaasa
RFID rfid (SS_PIN, RST_PIN); – RFID eksemplari loomine, argumendid – kontaktid, millega moodul on ühendatud.
rfid.init(); – RFID-mooduli lähtestamine.
MFRC 522 raamatukogu
Vajalik Arduino ja MFRC522 mooduli ühendamiseks.
Kasutusnäide:
#kaasa
MFRC522 mfrc522 (SS_PIN, RST_PIN); – MFRC522 eksemplari loomine, argumendid, mis määravad väljundid, millega moodul on ühendatud.
mfrc522.PCD_Init(); – MFRC522 lähtestamine.
Ethershieldi raamatukogu
Uus versioon https://github.com/jcw/ethercard
Vajalik Arduino ühendamiseks kohalik võrk või Internetti. Raamatukogu enam ei toetata uus versioon Ethercard. Samuti on olemas standardne Etherneti raamatukogu.
Kasutusnäide:
#include "EtherShield.h"
#kaasa
EtherShield es = EtherShield(); – veebilehe ettevalmistamine
ether.begin(Sizeof Ethernet::buffer, mymac,); – alustamine, argumendid – Maci aadress ja pordi number, millega CS väljund on ühendatud.
Raamatukogu Nrf24l01
Nõutav RF24 raadiomooduliga töötamiseks.
Kasutusnäide:
#include "RF24.h"
RF24 – konstruktor loob uue draiveri eksemplari. Enne kasutamist peate looma eksemplari ja määrama kontaktid, millega kiip on ühendatud (_cepin: Luba mooduli viik, cspin: Valige mooduli viik).
Algus – kiibi töö alustamine.
setChannel – raadiosagedusliku side kanalid.
setPayloadSize – fikseeritud ülekande suuruse määramine.
getPayloadSize – fikseeritud suuruse saamine.
TinyGPS raamatukogu
Nõutav GPGGA ja GPRMC sõnumite lugemiseks. Aitab lugeda asukohta, kuupäeva, kellaaega, kõrgust ja muid parameetreid.
Kasutusnäide:
#kaasa
TinyGPS gps; – TinyGPS-i eksemplari loomine.
kodeeri () – järjestikuste andmete esitamine objektile üks märk korraga.
gps.stats() – statistikameetod. Näitab, kas saadeti õiged andmed või mitte.
Arduino IDE raamatukogud
Erinevate raamatukogude hulgast saab eristada 3 põhirühma:
- Sisseehitatud on teegid, mis on algselt installitud Arduino IDE-sse. Neid pole vaja täiendavalt alla laadida ega installida, need on kohe pärast arenduskeskkonna käivitamist programmis kasutamiseks saadaval.
- Lisaks on teegid, mille peate ise alla laadima ja installima. Tavaliselt on seda tüüpi raamatukogu välja töötanud andurite, andurite ja muude komponentide tootja, et hõlbustada tööd Arduinoga.
- Sõltuvad teegid - installitud lisateegi abilisena, ei tööta sellest eraldi.
Kõige rohkem lihtsal viisil Arduino raamatukogudega töötamine on Arduino IDE arenduskeskkonna sisseehitatud võimaluste kasutamine. Sellest räägime eraldi artiklis.