Potenciométert használunk a LED villogásának szabályozására.
Utolsó felülvizsgálat: 2022.02.04 16:50
Ebben a példában változó ellenállást (potenciométert vagy fotoellenállást) használunk, ennek értékét egy Arduino kártya analóg bemenetén olvassuk le, és ennek megfelelően változtatjuk a beépített LED villogásának gyakoriságát. Az ellenállás analóg értékét a rendszer feszültségként olvassa be, mert az analóg bemenetek így működnek.
Hardver szükséglet
Arduino kártya
Potenciométer vagy
10 kohmos fotoellenállás és 10 kohmos ellenállás
beépített LED a 13-as kivezetésen vagy
220 ohmos ellenállás és piros LED
Az áramkör
Potenciométerrel

Fotoellenállással

Csatlakoztasson három vezetéket a kártyához. Az első a potenciométer egyik külső csatlakozójáról a földre megy. A második 5 voltról a potenciométer másik külső csatlakozójára megy. A harmadik a 0 analóg bemenetről a potenciométer középső csatlakozójára megy.
Ebben a példában használható a kártya beépített LED-je, amely a 13-as kivezetéshez van csatlakoztatva. További LED használatához rögzítse a hosszabb lábát (pozitív láb vagy anód) a 220 ohmos ellenállással sorba kapcsolt 13-as digitális kivezetéshez, a rövidebb lábát (a negatív láb vagy katód) pedig a föld (GND) kivezetéshez a 13-as kivezetés mellett.
A fotoellenálláson alapuló áramkör ellenállásosztót használ, amely lehetővé teszi a nagy impedanciájú analóg bemeneten a feszültség mérését. Ezek a bemenetek szinte semmilyen áramot nem vesznek fel, ezért az Ohm törvénye szerint az 5V-ra kapcsolt ellenállás másik végén mért feszültség mindig 5V, függetlenül az ellenállás értékétől. Ahhoz, hogy a fotoellenállás értékével arányos feszültséget kapjunk, ellenállásosztóra van szükség. Ez az áramkör egy változó ellenállást, egy fix ellenállást használ és a mérési pont az ellenállások közepén van. A mért feszültség (Vout) a következő képlet szerint történik:
Vout=Vin*(R2/(R1+R2))
ahol Vin 5V, R2 10 kohm és R1 a fotoellenállás értéke, amely 1 Mohmtól sötétben 10k ohmig nappali fényben (10 lumen), és kevesebb, mint 1 kohm erős fényben vagy napfényben (>100 lumen).
Vázlat
Potenciométerrel

Fotoellenállással

A kód
A vázlat elején a sensorPin
változó a 0. analóg kivezetésre van állítva, ahvá a potenciométer van csatlatkoztatva, a ledPin
pedig a 13-as digitális kivezetésre van csatlatkoztatva. Létre kell hoznia egy másik változót is, a sensorValue
-t az érzékelőből kiolvasott értékek tárolására.
Az analogRead()
parancs a 0 és 5 volt közötti bemeneti feszültségtartományt 0 és 1023 közötti digitális értékké alakítja. Ezt a mikrokontrollerben lévő analóg-digitális átalakítónak vagy ADC-nek nevezett áramkör végzi.
A potenciométer tengelyének elforgatásával megváltoztatja az ellenállás mértékét a potenciométer középső csapjának (vagy csúszkának) mindkét oldalán. Ez megváltoztatja a relatív ellenállást a középső érintkező és a két külső érintkező között, így eltérő feszültséget kap az analóg bemeneten. Ha a tengelyt teljesen egy irányba fordítja, nincs ellenállás a középső csap és a földhöz csatlakoztatott csap között. A középső érintkező feszültsége ekkor 0 volt, és az analogRead()
0-t ad vissza. Ha a tengelyt teljesen a másik irányba fordítjuk, nincs ellenállás a középső csap és a +5 voltra csatlakoztatott csap között. A középső érintkező feszültsége ekkor 5 volt, és az analogRead()
1023-at ad vissza. A kettő között az analogRead()
egy 0 és 1023 közötti számot ad vissza, amely arányos a kivezetésre adott feszültség mértékével.
Ez az érték, amelyet a sensorValue
tárol, és a delay()
beállítására szolgál a pislogási ciklushoz. Minél nagyobb az érték, annál hosszabb a ciklus, minél kisebb az érték, annál rövidebb a ciklus. Az érték a ciklus elején kerül kiolvasásra, ezért a be- és kikapcsolási idő mindig egyenlő.
/*
Analog Input
Az analóg bemenetet úgy demonstrálja, hogy beolvas egy analóg érzékelőt a 0-s analóg kivezetésről,
és be- és kikapcsolja a 13-as digitális érintkezőhöz csatlakoztatott fénykibocsátó diódát (LED).
A LED be- és kikapcsolási ideje az analogRead() által kapott értéktől függ.
Az áramkör:
- potentiométer
a potenciométer középső csapja a 0 analóg bemenethez az egyik oldalsó
érintkező (bármelyik) a földre, a másik oldali csap a +5 V-ra
- LED
az anód (hosszú láb) a 13-as digitális kivezetéshez csatlakozik egy 220 ohmos
ellenálláson keresztül, a katód (rövid láb) a földhöz van csatlakoztatva
- Megjegyzés: mivel a legtöbb Arduinos beépített LED-je van a kártya
13-as kivezetéséhez csatlakoztatva, a LED opcionális.
created by David Cuartielles
modified 30 Aug 2011
By Tom Igoe
Ez a kód nyilvános.
https://docs.arduino.cc/built-in-examples/analog/AnalogInput
*/
int sensorPin = A0; // kiválasztjuk a potenciométer bemeneti kivezetését
int ledPin = 13; // kiválasztjuk a LED kivezetését
int sensorValue = 0; // változó az érzékelőtől érkező érték tárolására
void setup() {
// deklarálja a ledPin-t OUTPUT-ként:
pinMode(ledPin, OUTPUT);
}
void loop() {
// olvassa le az értéket az érzékelőről:
sensorValue = analogRead(sensorPin);
// kapcsolja be a ledPin-t
digitalWrite(ledPin, HIGH);
// állítsa le a programot <sensorValue>> milliszekundumra:
delay(sensorValue);
// kapcsolja ki a ledPin-t
digitalWrite(ledPin, LOW);
// állítsa le a programot <sensorValue>> milliszekundumra:
delay(sensorValue);
}
Tudj meg többet
További alapvető oktatóanyagokat a beépített példák részben talál.
Felfedezheti a nyelvi referenciát is, az Arduino programozási nyelv részletes gyűjteményét.