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ärkusPoodMinu märkmik
MK AVR 8-bitine

ATmega32

1 Märkmikusse
Reaalajas kell (RTC)

PCF8583

1 Märkmikusse
LCD ekraanWH16021

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 #kaasa LiquidCrystal_I2C lcd(0x27,16,2); // Määrake kuva aadress ja suurus void setup() ( lcd.init(); // LCD initsialiseerimine lcd.backlight(); // Lülitage taustvalgustus sisse lcd.setCursor(0,0); // Aseta kursor 1 rea algusesse lcd.print("Tere, maailm"); // Kuva teksti lcd.setCursor(0,1); // Asetage kursor rea 2 algusesse lcd.print("www.robotchip.ru"); // Väljundtekst ) void loop() ( )

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 . Samuti, et kirjutamisel mitte vigu teha, saate ühenduse luua menüü kaudu Sketch – Import Library – LiquidCrystal.

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.