Analóg bemenet


Most egy kicsit átnézzük az analóg bemenetek kezelését, ehhez nem kell más csak egy potenciaméter, néhány led és néhány ellenállás. Mint tudott az Arduino Uno hat analóg bemeneten képes fogadni a feldolgozandó analóg értékeket. A belső ADC (analóg-digitális konverter) 10 bites (0-1023, 1024 lehetséges érték) digitális jelé alakítja át az analóg jelet.
Azt, hogy ez a mintavételezés hányszor történik meg másodpercenként az mi állíthatjuk be.

Térjünk rá a kapcsolásra:
első lépésként a 10kohmos potit kössük be:
egyik szélső lába → Uno 5V
másik szélső láb → GND
középső láb → A0, (analóg 0 pin)




Lássunk egy egyszerű példát:

void setup(){
Serial.begin(9600);
}
void loop(){
int a = analogRead(A0);
Serial.println(a);
delay(50);
}

a soros monitorra íratjuk ki az analóg bemenet digitális értékeit, ezt az analogRead() utasítás
segítségével érhetjük el ami beolvassa A0-s bemenet pillanatnyi értékét, ezt az értéket a bemenet
feszültség szintjének megfelelő digitális értéké alakítja át. Például: 0V – 0, 5V – 1023, 2.5V – 512.


Nézzünk egy másik példát, itt a beolvasott analóg jelet feldolgozzuk és egy led sor segítségével
"kiíratjuk” az értékét.

A projekthez szükséges:

egy 10kohmos poti,
5db led hozzá 270-330ohmos áramkorlátozó ellenállások,
Uno, plusz usb kábel,
próbapanel összekötő vezetékekkel.


A kapcsolásról: az 5db ledet rákötjük az ellenállásokon keresztül a 2-6 digitális kimenetekre.
A poti középső lába az A0-ra, a jobb oldali a +5V-re a bal a GND-re.


A progi:

void setup(){
for( int i=2;i<7;i++){
pinMode(i,OUTPUT);//beállítjuk kimenetnek 2-től 6-ig a pineket
}
}
void loop(){
int analog;
int digit;
analog = analogRead(A0);//analóg érték beolvasása analog változóba
digit = map(analog,0,1023,1,6);// át alakítjuk az 1024 értéket 6 értéké 
if(digit>0){ //ha digit értéke nagyobb mint 0 akkor végrehajtja a következő utasításokat.
for(int i=2;i<7;i++)//kikapcsolja a ledeket
digitalWrite(i,LOW);
for(int i=2;i<=digit;i++)// bekapcsolja a ledeket a digit értékének megfelelően
digitalWrite(i,HIGH);
}
}


A program beolvassa az analóg bemenet értékét 0-tól 1023-ig, ezt részarányosan átalakítja 1-től
6-ig terjedő értékké és bekapcsolja az értéknek megfelelő ledeket.
Az átalakítást a map(vált,kezd_be,vég_be,kezd_kim,vég_kim); utasítás végzi a következő módon:
a zárójelen belüli vált értékét dolgozza fel, a kezd_be és vég_be azt a tartományt jelöli amit majd
a vált értékéből át fog konvertálni arányosan a kezd_kim és vég_kim érték közé.
Ez a mi esetünkben az 1024 bemeneti érték átalakítása 6db kimeneti értékké, pl.:analóg 171 érték
felett kapcsol be az első led.


Folyt köv.