Arduino analogový vstup

Kromě binárních vstupů jsou Arduino základní jednotky vybaveny i tzv. analogovými vstupy. Mezi binárními a analogovými vstupy je zásadní rozdíl v tom, že binární vstupy pracují jen s dvěmi hodnotami napětí (0 a 5V DC). Kdežto analogové vstupy pracují s celou řadou hodnot napětí. Konkrétně arduino analogový vstup má 10 bitové rozlišení, tzn. že pracuje s 1024 hodnotami napětí(0…1023). Toto číslo pak odpovídá napětí na analogovém vstupu (0…5V DC). Napětí 0V DC odpovídá číslu nula a 5V DC odpovídá číslu 1023. Tzn. že arduino analogový vstup vnímá změnu napětí přibližně o 5 mV (5000mV/1042 ≅ 5mV).

 Pro vyzkoušení práce analogového vstupu budeme:

  • Arduino základní jednotku v našem případě Arduino Mega 2560
  • Nějaký potenciometr např. 10K (Přístroj, který mění svůj odpor v závislosti na natočení hřídele.)
  • Arduino IDE (vývojové prostředí Arduina)

Potenciometr zapojíme k Arduinu podle schématu viz obrázek.

Arduino analogový vstup

Připojení potenciometru k analogovému vstup. Obrázek převzat ze stránek www.arduino.cc

Zdrojový kód práce s analogovým vstupem

Pokud už máme potenciometr připojen k Arduinu, tak můžeme začít psát program. Resp. pro naši ukázku použijeme jeden z předpřipravených příkladů, který obsahuje Arduino IDE a mírně ho upravíme. Použijeme tento příklad : Soubor->Příklady->03.Analog->AnalogInput. Tento program bliká s diodou. Čas svícení respektivě zhasnutí lze navolit potenciometrem. Naše úprava spočívá jen v tom, že vypíšeme hodnotu analogového vstupu do sériového kanálu. Zdrojový kód vypadá asi takto:

int sensorPin = A0; // analogový vstup, ke kterému je připojen jezdec potenciometru
int ledPin = 13; // pin na kterém je připojena LED dioda (diodu obsahuje přímo deska Arduina)
int sensorValue = 0; // proměná, ve které bude uložena hodnota analogového vstupu

void setup() {

Serial.begin(9600);

// nastavení pinu s diodou jako výstup
pinMode(ledPin, OUTPUT);

}

void loop() {
// načtení analogové hodnoty do naší proměnné
sensorValue = analogRead(sensorPin);

// Vypsání hodnoty analogového vstupu do sériové linky

Serial.println(sensorValue); //
// rozsvícení LED diody
digitalWrite(ledPin, HIGH);
// doba svícení LED diody
delay(sensorValue);
// zhasnutí LED diody
digitalWrite(ledPin, LOW);
// Doba zhasnutí LED diody
delay(sensorValue);
}

Pokud si pustíme seriový monitor a točíme s potenciometrem mělo by to vypadat asi jako na následujícím obrázku. Samozřejmě to záleží na tom rychle točíme. Navíc uvidíme i změnu v blikání LED diody.

Arduino IDE - Výpis ze Serial monitoru

Arduino IDE – Výpis ze Serial monitoru


You may also like...

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *