Lekce 4 - Analogový vstup

11.01.2013 12:53

    Dneska si vyzkoušíme jak na našem Arduinu fungují analogové vstupy. V připadě Arduino MEGA jich máme k dostpozici 16. Analogový převodník má rozlišení 10 bitů a vrací celá čísla od 0 do 1023. Standardně je referenční napětí nastaveno na 5V resp. při Arduinech s napájením 3,3V na tuto hodnotu. Ttot lze samozřejmně změnit pomocí funkce

analogReference(typ);

     kde můžeme typ nastavit podle svého přání na:

  • DEFAULT: defaultní nastavení - buď 5V nebo 3,3V dle napájení
  • INTERNAL: 1.1V ATmega168 nebo ATmega328 a 2.56V on the ATmega8 (není dostupné na  Arduino Mega)
  • INTERNAL1V1: 1.1V (pouze Arduino Mega)
  • INTERNAL2V56: 2.56V (poutze Arduino Mega)
  • EXTERNAL: napětí přivedené na pin AREF (pouze od 0 do 5V) je použito jako referenční

k samontému přečtení hodnoty slouží funkce

analogRead(pin);

která brací jak jsme si již uvedli celé čislo (integer) v tozsahu 0 až 1023. K tomu, aby jsme si naší funkci otestovali, budeme potřebovat:

  • Arduino MEGA (UNO nebo jiné)
  • nepájivé kontaktní pole
  • propojovací vodiče
  • odporový trimr nebo poteciometr cca 10k

Obvod zapojíme jako na obrázku níže:

program pro arduino:

 

 
const int analogPin = A0;  // Analogový vstup je nastaven na pi A0
int hodnota = 0;           // Proměná pro hodnotu přečtenou z A0
 
 
void setup() {
  // Nastaví rychlost komunika na sériovám portu na 9600 bps:
  Serial.begin(9600); 
}
 
void loop() {
  
  hodnota = analogRead(analogPin);  // přečte hodnotu z A0          
  
  // aby jsme videli vysledek, hodnotu odešleme přes sériový port
  Serial.print("hodnota = " ); // zapiše text hodnota =                      
  Serial.print(hodnota);       // zapiše proměnou hodnotu 
  Serial.println();            // nezapíše nic a přeskočí na nový řádek
 
  delay(1000);                 // čekej 1000ms                    
}
 
Aby jsme po spuštění programu viděli výsledek, protože zatím jsme nepřipojili žádný displej, musíme si otevřít v okně programu arduina monitor sériového portu. Tlačítko pro něj je v okně programu v pravém horním rohu jak vidíte na obrázku.
Po spuštění programu by jsme v okně monitoru sériového portu vidět hodnoty od 0 do 1023 podle nastavení vašeho trimru nebo potenciometru. Pokud vidíte nesmyslné nebo žádné znaky, zkontrolujte zda nastavení rychlosti seriového portu odpovidá nastevení v programu Arduina. Viz obrázek níže:
 
     Pokud jste všechno udělali spávně, mělo by to fungovat. Správný výsledek můžete shlédnout také na videu na konci stránky. 
     Aby jsme si trošku pohráli, náš program trošku modifikujeme. Místo výstupu na sériový port použijeme hodnotu, kterou jsme získali z analogového pinu k nastavení času a rychlosti blikání LED diody. Aby jsme nemuseli modifikovat a přidávat další součástky na nepájivé kontaktní pole, použijeme LED diodu integrovanou na Arduinu a připojenou na pin 13.
     Program upravíme následovně:
 
const int analogPin = A0;  // Analogový vstup je nastaven na pi A0
const int LED = 13;        // LED je pin 13
int hodnota = 0;           // Proměná pro hodnotu přečtenou z A0
 
 
void setup() {
pinMode(LED, OUTPUT);      // Nastaví pin 13 (LED) na výstup
}
 
void loop() {  
  hodnota = analogRead(analogPin);   // přečte hodnotu z A0          
  digitalWrite(LED, HIGH);           // nastaví na pinu 13 (LED) vysokou hodnotu (rozsvítí LED)
  delay(hodnota);                    // čekej 0 až 1023 milisekund (dle nastavení trimru)
  digitalWrite(LED, LOW);            // nastaví na pinu 13 (LED) nízkou hodnotu (zhasne LED)
  delay(hodnota);                    // čekej 0 až 1023 milisekund (dle nastavení trimru)
}
     
 

 

Zpět

Diskusní téma: Lekce 4 - Analogový vstup

Datum
Vložil
Titulek

Re: Re: Port Com

Není to nesmysl. Může se setkat s problémem s ovladačem i to se bohužel někdy stane. Musí se dostat do správce zařízení a tam dát aktualizovat ovladač případně ho vybrat v místě kde jej má v počítači (pokud má). Tento problém jsem měl také když jsem s Arduinem začínal. Většinou v Arduinu je to ten druhý COM který se musí nastavit poprvé ručně! Ale to až po vyhledání ovladače až se Arduino přidá ve správci zařízení z neznámého do zařízení poté by měl systém vyhodit že zařízení bylo úspěšně nainstalováno a až poté v Arduinu ručně nastavit ten druhý COM. Snad jsem to napsal nějak srozumitelně ;)

Datum
Vložil
Titulek

Re: Port Com

Seriovou komunikaci dělá Arduino HW na digital 1 a 2 (RX,TX) a zvláštní obvod (dle typu) to převádí na USB, ale lze to z těch pinů brát i přímo. Případně lze SW komunikovat i na dalších pinech. Při připojování do PC musíš ošetřit správně napěťové úrovně, nebo použít přímo vhodný převodník. Mezi jednotlivými arduinu na seriový přenos stačí dva dráty (a program)

<< 1 | 2

Vyhledávání

arduino8.cz © 2015 Všechna práva vyhrazena.