Funkcia → analogRead()
Popis :
Číta hodnotu zo zadaného analógového pinu.
Dosky Arduino obsahujú viackanálový 10-bitový analógovo-digitálny prevodník. To znamená, že bude mapovať vstupné napätia medzi 0 a prevádzkovým napätím (5V alebo 3,3V) na celočíselné hodnoty medzi 0 a 1023.
Napríklad na Arduino UNO poskytuje rozlíšenie medzi odčítaniami: 5 voltov / 1024 jednotiek alebo , 0,0049 voltov (4,9 mV) na jednotku. V tabuľke nižšie nájdete použiteľné piny, prevádzkové napätie a maximálne rozlíšenie pre niektoré dosky Arduino.
Vstupný rozsah je možné zmeniť pomocou analogReference(), zatiaľ čo rozlíšenie možno zmeniť (len pre dosky Zero, Due a MKR) pomocou analógovéhoReadResolution().
Doska | Prevádzkové napätie | Použiteľné Piny | Maximálne rozlíšenie |
---|---|---|---|
UNO R3 | 5 Volts | A0 to A5 | 10 bits |
UNO R4 (Minima, WiFi) | 5 Volts | A0 to A5 | 14 bits** |
Mini | 5 Volts | A0 to A7 | 10 bits |
Nano, Nano Every | 5 Volts | A0 to A7 | 10 bits |
Nano 33 (IoT, BLE, RP2040, ESP32) | 3.3 Volts | A0 to A7 | 12 bits** |
Mega, Mega2560, MegaADK | 5 Volts | A0 to A14 | 10 bits |
Micro | 5 Volts | A0 to A11* | 10 bits |
Leonardo | 5 Volts | A0 to A11* | 10 bits |
Zero | 3.3 Volts | A0 to A5 | 12 bits** |
Due | 3.3 Volts | A0 to A11 | 12 bits** |
GIGA R1 | 3.3 Volts | A0 to A11 | 16 bits** |
MKR Family boards | 3.3 Volts | A0 to A6 | 12 bits** |
*A0 až A5 sú označené na doske, A6 až A11 sú dostupné na kolíkoch 4, 6, 8, 9, 10 a 12 **Pre kompatibilitu je predvolené rozlíšenie analogRead() pre tieto dosky 10 bitov. Ak chcete zmeniť rozlíšenie na vyššie rozlíšenie, musíte použiť analógReadResolution().
Syntax :
analogRead(pin)
Parametre :
pin: názov analógového vstupného pinu, z ktorého sa má čítať.
Returns : Analógové čítanie na kolíku. Aj keď je obmedzené na rozlíšenie analógovo-digitálneho prevodníka (0-1023 pre 10 bitov alebo 0-4095 pre 12 bitov). Typ údajov: int.
Príklad kódu :
Kód načíta napätie na analógovom pine a zobrazí ho.
int analogPin = A3; // potenciometer (stredná svorka) pripojený k analog pinu 3
//vonkajšia sorka vedie k zemi a +5V
int val = 0; //premenná na uloženie načítanej hodnoty
void setup() {
Serial.begin(9600); // nastavenie
}
void loop() {
val = analogRead(analogPin); // prečítať vstupný kolík
Serial.println(val); // hodnota ladenia
}
Poznámky :
Ak analógový vstupný kolík nie je k ničomu pripojený, hodnota vrátená funkciou analogRead() bude kolísať v závislosti od mnohých faktorov (napr. hodnoty ostatných analógových vstupov, ako blízko máte ruku k doske atď.).
Pridaj komentár