Skip to content
2026.06.15.
  • F
  • X
  • LinkedIn
  • YouTube
  • Instagram
  • GitHub
TavIR

TavIR

Mikrokontroller világ

  • TavIR Tudástár
  • TavIR WebShop
  • TavIR Fórum
  • Hírek
  • Könyvek
    • Egyszerű elektronika – Kezdőlap
    • ESP8266/ESP32
    • Tippek
      • Tippek-trükkök (AVR)
      • Tippek-trükkök (ESP8266/ESP32)
  • +Gyorstippek
  • +Mélyvíz
  • +Témakereső
  • Kapcsolat
  • Főoldal
  • Cikk
  • Fényérzékelés fotoellenállással
  • Cikk
  • Gyorstippek

Fényérzékelés fotoellenállással

Robert 2025.01.17.
Egy laptop képernyőjén egy Arduino-alapú fényintenzitás-mérő alkalmazás látható, amely valós idejű adatokat jelenít meg egy LDR szenzorból. A grafikonon a fényintenzitás változása figyelhető meg hullámzó vonalakkal, mellette élő adatok és szenzorértékek jelennek meg.

A fény mindennapi életünk szerves része – elég, ha csak a napfelkeltére vagy az automatikusan kapcsolódó közvilágításra gondolunk. De hogyan érzékelik az eszközök a fényt? A válasz egyszerűbb, mint gondolnád: egy kis elektronikai alkatrész, a fotoellenállás (LDR – Light Dependent Resistor) segítségével.

Ezek a kis alkatrészek képesek érzékelni a környezeti megvilágítást és ezt az információt felhasználva vezérelhetjük például az okos otthonunk világítását vagy akár egy egyszerű időjárás-figyelőt is készíthetünk velük. Ebben a cikkben megnézzük, hogyan építhetünk egy fényérzékelő rendszert Arduinóval, és hogyan használhatjuk ki a fotoellenállás képességeit egy kis kódolás segítségével.

Tartalomjegyzék

Toggle
  • A fotoellenállás működése – miért olyan különleges?
    • Spektrális érzékenység – Milyen fényre reagál a fotoellenállás?
  • Áramköri összeállítás – Hogyan kösd be a fotoellenállást?
    • Szükséges eszközök és alkatrészek
  • A feszültségosztó működése
    • Miért van szükség feszültségosztóra a fotoellenállás esetében?
  • Arduino programkód – Alap fényintenzitás mérés
    • Adatok megjelenítése az Arduino Serial Plotter segítségével
    • Zárszó és további lépések

A fotoellenállás működése – miért olyan különleges?

A fotoellenállás egy olyan egyszerű, mégis zseniális eszköz – amely a fény intenzitásának megfelelően módosítja az ellenállását. Egyszerűen fogalmazva: minél több fény éri az érzékelőt, annál kisebb lesz az ellenállása. Ez a tulajdonsága teszi lehetővé, hogy analóg jelként az Arduinoval könnyedén értelmezhessük.

  1. Sötét állapotban – kevés foton éri az eszközt, kevés szabad elektron van a rendszerben, így az ellenállás magas.
  2. Világos állapotban – a beeső fény megnöveli a szabad elektronok számát, az ellenállás lecsökken.

Ezt a tulajdonságot kihasználva pontosan mérhetjük a környezeti fény erősségét.

A fotoellenállás működése különböző fényviszonyok között:

Log-log skálán ábrázolt grafikon, amely a megvilágítás (lux) és a fotoellenállás (kΩ) közötti kapcsolatot mutatja. Az x-tengely a megvilágítást luxban jelöli (1–100 lux tartományban), míg az y-tengely az ellenállást kiloohmban (1–1000 kΩ tartományban). A grafikon egyértelmű inverz összefüggést mutat: a megvilágítás növekedésével az ellenállás csökken. Egy sötétített sáv jelöli a tipikus értéktartományt.
Log-log skálán ábrázolt grafikon, amely a megvilágítás (lux) és a fotoellenállás (kΩ) közötti kapcsolatot mutatja. Az x-tengely a megvilágítást luxban jelöli (1–100 lux tartományban), míg az y-tengely az ellenállást kiloohmban (1–1000 kΩ tartományban). A grafikon egyértelmű inverz összefüggést mutat: a megvilágítás növekedésével az ellenállás csökken. Egy sötétített sáv jelöli a tipikus értéktartományt.
(Forrás: GL5537 fotoellenállás adatlap)

Ez a változás lehetővé teszi, hogy a fotoellenállást fényérzékelőként használjuk. Azonban a mikrokontrollerünk csak feszültséget tud mérni, nem pedig közvetlenül az ellenállást.

Spektrális érzékenység – Milyen fényre reagál a fotoellenállás?

A fotoellenállások leginkább a látható fény tartományában (400-700 nm) működnek hatékonyan. Az ultraibolya és infravörös tartományban azonban már jelentősen csökken az érzékenységük A tipikus fotoellenállás anyaga CdS (azaz kadmium-szulfid).

Grafikon, amely az érzékenységet (Detectivity, cm√Hz/W) ábrázolja a hullámhossz (µm) függvényében. Az x-tengely a hullámhosszt (µm), az y-tengely az érzékenységet mutatja logaritmikus skálán (10⁸–10¹³ cm√Hz/W). A különböző félvezető anyagok (CdS, PbS, PbSe) érzékenységi görbéi láthatók, különböző hőmérsékleteken (195K és 300K). A látható spektrum színes sávval van jelölve, az ultraibolya és infravörös tartományokat pedig színezés különbözteti meg.
Grafikon, amely az érzékenységet (Detectivity, cm√Hz/W) ábrázolja a hullámhossz (µm) függvényében. Az x-tengely a hullámhosszt (µm), az y-tengely az érzékenységet mutatja logaritmikus skálán (10⁸–10¹³ cm√Hz/W). A különböző félvezető anyagok (CdS, PbS, PbSe) érzékenységi görbéi láthatók, különböző hőmérsékleteken (195K és 300K). A látható spektrum színes sávval van jelölve, az ultraibolya és infravörös tartományokat pedig színezés különbözteti meg.
(Forrás: https://eepower.com/resistor-guide/)

Mire kell figyelni?

  • Beltéri alkalmazásoknál fontos, hogy az érzékelő pontosan kövesse a mesterséges fények változásait.
  • Kültéri alkalmazások esetén az érzékenység csökkenhet az IR tartományban, így árnyékolásra lehet szükség.

Áramköri összeállítás – Hogyan kösd be a fotoellenállást?

Most nézzük meg, hogyan csatlakoztassuk a fotoellenállást az Arduinóhoz. Egy egyszerű feszültségosztó áramkört fogunk használni, amely lehetővé teszi az érzékelt fényintenzitás analóg jelek formájában történő leolvasását.

Szükséges eszközök és alkatrészek

A projekt elkészítéséhez a következőkre lesz szükséged:

Arduino UNO alappanel→ Arduino Uno alaplap: Ez fogja kezelni az érzékelőt.
Egy halom kis elektronikai alkatrész, fotoellenállások (LDR - Light Dependent Resistors), amelyek két hosszú, vékony fém lábbal rendelkeznek, és egy kis, kerek, bordázott felülettel ellátott fejrésszel rendelkeznek.→ Fotoellenállás: A fényérzékelő szenzor maga.
Fényérzékelő modul fotoellenállással és három kivezetéssel.→ Fotoellenállás modul: A szenzorkészletek részeként is elérhető.
Ellenállások kötege, kék színű testtel és színes gyűrűs kódokkal, papírszalagok között összerendezve.→ 10 kOhm ellenállás.
Fehér prototípus panel (breadboard) piros és kék tápsínek jelölésével→ Breadboard és jumper kábelek (anya-apa / apa-apa): A könnyű csatlakoztatáshoz.

Lépések a mérési elrendezés összeállításához

  1. A fotoellenállás egyik végét csatlakoztasd az Arduino 5V-os kimenetéhez.
  2. A másik végét kösd a 10 kΩ-os ellenálláson keresztül a földhöz (GND).
  3. Az ellenállás és a fotoellenállás közös pontját csatlakoztasd az A1 analóg bemeneti pinhez.

Ez „reptében” összeépítve az alábbiakként fog kinézni:

 Arduino Uno mikrokontroller, amelyhez egy fotoellenállás (LDR) és egy ellenállás van csatlakoztatva az analóg bemeneti portok egyikére.
Fotoellenállás (LDR) csatlakoztatása Arduino Uno-hoz

Kicsit áttekinthetőbben a Breadboard-on:

Arduino Uno mikrokontroller egy próbapanellel (breadboard) összekötve, amelyen egy fotoellenállás (LDR) és egy ellenállás található, analóg bemenetre csatlakoztatva.
Fotoellenállás (LDR) kapcsolása Arduino Uno-val próbapanelen keresztül

A feszültségosztó működése

A feszültségosztó lényege, hogy a fotoellenállás és a 10kOhm ellenállás egy leosztott feszültséget hoz létre a közös pontján, amelyet így már az Arduino képes kiolvasni és értelmezni.

A feszültség kiszámításának képlete:

A képen egy matematikai egyenlet látható, amely egy feszültségosztó áramkört ír le.
A képen egy matematikai egyenlet látható, amely egy feszültségosztó áramkört ír le.

 

Az alábbi ábrán szemléltetve  (az R2 helyett fotoellenállás van nálunk!):

Egy feszültségosztó áramkör két ellenállással (R1 és R2)
Egy feszültségosztó áramkör két ellenállással (R1 és R2)

Miért van szükség feszültségosztóra a fotoellenállás esetében?

Az Arduino csak 0 és 5V közötti feszültségeket tud mérni az analóg bemeneteken (például az A1 pinen). Mivel a fotoellenállás csak az ellenállását változtatja, nem képes közvetlenül feszültséget generálni. Itt jön képbe a feszültségosztó, amely lehetővé teszi, hogy a fotoellenállás ellenállásának változása átalakuljon mérhető feszültséggé.

Egy feszültségosztó áramkör két ellenállással (R1 és R2). Az R2 a fotoellenállás.
Egy feszültségosztó áramkör két ellenállással (R1 és R2). Az R2 a fotoellenállás.

A feszültségosztó áramkör két ellenállásból áll:

  1. Fotoellenállás (LDR) – R2
  2. Fix 10 kΩ-os ellenállás – R1

Ezeket soros kapcsolásban helyezzük el, és a közös ponton mérjük a feszültséget az Arduinóval (Vki). Ez a kimeneti feszültség az Arduino A1 analóg bemenetére kerül, ahol az értéket kiolvashatjuk és kiértékelhetjük – a korábbi bekötési ábrákon látható bekötési  módon.

Arduino programkód – Alap fényintenzitás mérés

Miután az áramkört összeállítottuk, próbáljuk ki az alábbi programot, amely kiolvassa az analóg értékeket és kiírja őket a soros monitorra.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int sensorPin = A1;         // fotoellenállás az A1 pinre kötve
int sensorValue = 0;        // Az érzékelt fényintenzitás értéke
 
void setup() {
  Serial.begin(9600);       // Soros kommunikáció elindítása
}
 
void loop() {
  sensorValue = analogRead(sensorPin);  // Az analóg bemenet értékének kiolvasása
  float voltage = sensorValue * (5.0 / 1023.0); // Átalakítás feszültség értékké
  Serial.print("Feszültség: ");
  Serial.println(voltage);  // Az érték kiírása
  delay(500);               // 500 ms várakozás a következő mérésig
}

Kódmagyarázat:

  1. Az analogRead(sensorPin)függvény kiolvassa az A0 lábra érkező feszültséget.
  2. A 0-1023 közötti mért értéket átalakítjuk 0-5V közötti tartományba.
  3. A Serial.println() kiírja az eredményt a soros monitorra.
  4. A delay(500) várakozás beállításával másodpercenként 2 mérést végzünk.
A kimeneti eredmény - a mért érték.
A kimeneti eredmény – a mért érték a Soros monitoron.

Adatok megjelenítése az Arduino Serial Plotter segítségével

Az újabb Arduino verziókban található Serial Plotter lehetővé teszi az adatok valós idejű grafikus megjelenítését. (Segítség a beállításhoz és a működéshez: →Soros plotter (diagram) az Arduino 1.x alatt) Az alábbi kódot használhatod az adatok vizuális elemzésére.

1
2
3
4
5
6
7
8
9
10
11
12
13
int sensorPin = A1;             // fotoellenállás csatlakozási pontja
int sensorValue = 0;            // Az érzékelt érték
 
void setup() {
  Serial.begin(9600);           // Soros kommunikáció indítása
}
 
void loop() {
  sensorValue = analogRead(sensorPin);  // Érték olvasása az A0 pinről
  Serial.print("Fényintenzitás: ");
  Serial.println(sensorValue);  // Kiíratás a Serial Plotterre
  delay(100);                   // Gyorsabb adatfrissítés a grafikonhoz
}

Megjelenítés lépései az Arduino Serial Plotteren:

  1. Töltsd fel a fenti kódot az Arduinóra.
  2. Nyisd meg az Eszközök > Soros plotter menüpontot az Arduino keretrendszerben.
  3. Figyeld a grafikonon az értékek változását a fényviszonyok hatására.
Arduino soros monitor grafikonja, amely a fényintenzitás változását ábrázolja az idő függvényében. A piros vonal a mért adatokat mutatja, a függőleges tengely a fényintenzitás értékeit (0–1000 tartományban), a vízszintes tengely pedig az időt jelöli.
Arduino soros monitor grafikonja, amely a fényintenzitás változását ábrázolja az idő függvényében. A piros vonal a mért adatokat mutatja, a függőleges tengely a fényintenzitás értékeit (0–1000 tartományban), a vízszintes tengely pedig az időt jelöli.

Zárszó és további lépések

Ezzel a projekttel könnyedén mérheted a környezeti fényviszonyokat és alkalmazhatod azokat számtalan célra, például automatikusan vezérelheted a világítást egy relével. Ha szeretnéd tovább bővíteni a rendszert, próbálkozz LCD kijelző vagy hangjelzés hozzáadásával! Vagy akár automatikus fényerő-szabályozást is építhetsz.

 

Források

  • Light Sensing [Arduino Project Hub]
  • Ambient Light Sensor Using Photo Resistor and LED Lights! [Arduino Project Hub]
  • Light Sensor (Photoresistor) With Arduino in Tinkercad [Instructables]
  • Soros plotter (diagram) az Arduino 1.x alatt [TavIR]

 

Post navigation

Előző Arduino telepítése IV. – Library/könyvtár telepítése (eszközkezelők)
Következő Fényérzékelés fotoellenállással és környezeti megvilágításszabályzás

Kapcsolódó anyagok

ESP32 család – Hát én immár kit válasszak? EPS kiválasztási stratégia
  • Cikk
  • ESP8266/ESP32

ESP32 család – Hát én immár kit válasszak?

2026.05.15.
A NYÁK napja: apró rézösvények a zöld mezőn 11245 nyak - Cseh Robert / TavIR - fotoellenállás,fényérzékelő
  • Cikk

A NYÁK napja: apró rézösvények a zöld mezőn

2026.05.01.
DS3231 és DS1307 RTC modul: CR2032 vagy LIR2032? DS1307/DS3231 RTC modulok és az akku/elem
  • Cikk
  • Mélyvíz
  • Tippek

DS3231 és DS1307 RTC modul: CR2032 vagy LIR2032?

2026.04.20.

Hírlevél

Hogy az újdonságokról első kézből értesülj:
→ Feliratkozás a Hírlevélre

Ingyenes tanfolyam

60 nap alatt Arduino - az ingyenes tanfolyam
→ Kattints ide és iratkozz fel!
60 nap alatt Arduino

Szeretnél egy lépéssel a többiek előtt járni?

Ne hagyd ki a legújabb tanfolyamokat, amik még csak most bontogatják szárnyaikat.

Legyél te az első! Tanfolyamok

Alkatrész-tár

→ TavIR WebShop
→ Tanulókészletek

Témakörök

  • Cikk (60)
  • Hír (45)
  • Könyv (39)
    • Egyszerű elektronika tippek (18)
    • ESP8266/ESP32 (2)
    • Mélyvíz (12)
    • Mit ne használjunk Arduino projektekben? (6)
  • OmegaFlux (2)
  • Tippek (60)
    • Gyorstippek (20)
    • Tippek-trükkök (AVR) (21)
    • Tippek-trükkök (ESP8266/ESP32) (5)

Fórum

  • Bascom/Arduino/Wiring frissítések :: Arduino IDE 2.3.9 és 2.3.10 tapasztalatok
  • Tovább a TavIR Fórumra...

TavIR WebShop

→ Tovább a TavIR WebShopba
TavIR LCD4x20 (kék-fehér, 2004)
TavIR LCD4x20 (kék-fehér, 2004)

A kijelző 4 x 20 karakteres kialakítású, mely az KS0066 [...]

JT-A1250 1.25 csatlakozó, 2 pin, 20cm, szerelt apa (1.25mm, micro, lengő)
JT-A1250 1.25 csatlakozó, 2 pin, 20cm, szerelt apa (1.25mm, micro, lengő)

JT-A1250 / Joint Tech A1250 sorozatú, 1.25 mm raszterű, 2 [...]

4x Optocsatolt FET kapcsolómodul (PWM, 36V/5..20A)
4x Optocsatolt FET kapcsolómodul (PWM, 36V/5..20A)

A 4 csatornás MOSFET kapcsoló modul akkor jön jól, amikor [...]

1.47" IPS TFT (172x320; ST7789;SPI)
1.47" IPS TFT (172x320; ST7789;SPI)

Kompakt színes kijelző Arduino, ESP32, STM32 és Raspberry Pi alapú [...]

ESP32‑S3 WROOM-N16R8 CAM Development Board (Wi‑Fi + Bluetooth)
ESP32‑S3 WROOM-N16R8 CAM Development Board (Wi‑Fi + Bluetooth)

Az ESP32‑S3 WROOM‑N16R8 CAM fejlesztőpanel akkor jön jól, amikor a [...]

NodeMCU ESP32 / NodeMCU32 (ESP32-WROOM-32D; CP2102; 30pin; USB-C)
NodeMCU ESP32 / NodeMCU32 (ESP32-WROOM-32D; CP2102; 30pin; USB-C)

Az ESP32 DevKit V1 USB-C CP2102 30 pin fejlesztőpanel akkor [...]

2.8" TFT LCD (240*320; SPI; Touch) + SD (ILI9341)
2.8" TFT LCD (240*320; SPI; Touch) + SD (ILI9341)

A 2.8″ TFT LCD (240×320; SPI; Touch) + SD (ILI9341) [...]

TavIR IIC-LCD illesztő (TWI/I2C/I2CLCD)
TavIR IIC-LCD illesztő (TWI/I2C/I2CLCD)

Karakteres LCD kijelző I 2 C buszra - kevesebb vezetékkel, [...]

WT32‑ETH01 - ESP32 Ethernet, Wi‑Fi, Bluetooth modul
WT32‑ETH01 - ESP32 Ethernet,  Wi‑Fi,  Bluetooth modul

A WT32‑ETH01 egy professzionális beágyazott hálózati gateway modul , amely [...]

Meghajtómotor (fém-áttétel, 2 oldalas)
Meghajtómotor (fém-áttétel, 2 oldalas)

A Meghajtómotor (fém-áttétel, 2 oldalas) egy TT-formátumú, 3 V-6 V [...]

4x összefűzött 8x8 mátrix LED (MAX7219/MAX7221)
4x összefűzött 8x8 mátrix LED (MAX7219/MAX7221)

A 4x összefűzött 8×8 mátrix LED (MAX7219/MAX7221) egy kompakt, 8×32 [...]

E22-900T22U USB LoRa modul
E22-900T22U USB LoRa modul

Az Ebyte E22-900T22U USB LoRa modul USB csatlakozású, LoRa szórt [...]

Címkék

alappanel Arduino Arduino nap Arduino nap 2023 art AVR biztosíték darlington dióda eeprom egyszerű elektronika elem ellenállás ESP Espressif Systems flash Forrasztás ft232 fusebit hőmérő i2c i2clcd infravörös ISP JTAG kijelző LCD lm35 MOSFET motor nyák pcb páratartalom Relé RTC telepítés tmp36 tranzisztor Történelem Uno wiring WOM Zener április 1 óra

Archívum

  • 2026. június (2)
  • 2026. május (3)
  • 2026. április (2)
  • 2026. március (5)
  • 2026. február (3)
  • 2026. január (3)
  • 2025. december (2)
  • 2025. november (2)
  • 2025. október (3)
  • 2025. augusztus (3)
  • 2025. július (7)
  • 2025. június (4)
  • 2025. május (6)
  • 2025. április (3)
  • 2025. március (3)
  • 2025. február (1)
  • 2025. január (6)
  • 2024. december (5)
  • 2024. november (5)
  • 2024. október (6)
  • 2024. szeptember (5)
  • 2024. augusztus (4)
  • 2024. július (3)
  • 2024. június (1)
  • 2024. május (3)
  • 2024. március (1)
  • 2024. február (2)
  • 2024. január (1)
  • 2023. december (5)
  • 2023. szeptember (2)
  • 2023. augusztus (6)
  • 2023. július (2)
  • 2023. június (1)
  • 2023. május (1)
  • 2023. április (10)
  • 2023. február (1)
  • 2022. szeptember (2)
  • 2022. július (1)
  • 2022. május (6)
  • 2022. április (1)
  • 2022. március (2)
  • 2022. január (3)
  • 2021. december (1)
  • 2021. november (4)
  • 2021. október (2)
  • 2021. szeptember (1)
  • 2021. július (1)
  • 2021. május (2)
  • 2021. április (1)
  • 2021. március (2)
  • 2020. szeptember (1)

Eddig nem olvasott...

Arduino IDE 2.3.10 – végre javították a 2.3.9 veszélyes cache-hibáját Arduino cache hiba megoldva. Megoldva?
  • Hír

Arduino IDE 2.3.10 – végre javították a 2.3.9 veszélyes cache-hibáját

2026.06.12.
Arduino IDE 2.3.9 – ha a régi program fut tovább… Arduino 2.3.9 - cache error
  • Hír

Arduino IDE 2.3.9 – ha a régi program fut tovább…

2026.06.02.
Arduino IDE 2.3.9 – gyorsabb fordítás, de figyelj a cache-re Arduino IDE 2.3.9 megjelent - 2026. 05. 26.
  • Hír

Arduino IDE 2.3.9 – gyorsabb fordítás, de figyelj a cache-re

2026.05.26.
ESP32 család – Hát én immár kit válasszak? EPS kiválasztási stratégia
  • Cikk
  • ESP8266/ESP32

ESP32 család – Hát én immár kit válasszak?

2026.05.15.

Információk

Cégadatok-impresszum | Használati feltételek
Adatvédelmi irányelvek | Kapcsolat

Elérhetőség

Ügyfélszolgálat: +36 (20) 99-23-781
E-mail: avr (kukac)tavir (pont) hu
Iroda/telephely: 1181 Budapest, Szélmalom utca 13.
Copyright © TavIR Minden jog fenntartva | DarkNews by AF themes.
TavIR
Adatvédelem kezelése

To provide the best experiences, we and our partners use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us and our partners to process personal data such as browsing behavior or unique IDs on this site and show (non-) personalized ads. Not consenting or withdrawing consent, may adversely affect certain features and functions.

Click below to consent to the above or make granular choices. Your choices will be applied to this site only. You can change your settings at any time, including withdrawing your consent, by using the toggles on the Cookie Policy, or by clicking on the manage consent button at the bottom of the screen.

Funkcionális Always active
A technikai tárolás vagy hozzáférés szigorúan szükséges az előfizető vagy felhasználó által kifejezetten kért konkrét szolgáltatás használatának lehetővé tételének jogos céljához, vagy kizárólag a közlés elektronikus hírközlő hálózaton keresztüli továbbításának céljához.
Beállítások
A technikai tárolás vagy hozzáférés a jogos célból szükséges, hogy olyan beállításokat tároljunk, amelyeket az előfizető vagy a felhasználó nem kért.
Statisztika
Kizárólag statisztikai célokra használt technikai tároló vagy hozzáférés. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
A technikai tárolás vagy hozzáférés felhasználói profilok létrehozásához szükséges hirdetések küldéséhez, illetve a felhasználó nyomon követéséhez egy vagy több weboldalon hasonló marketingcélokból.
Statistics

Marketing

Features
Always active

Always active
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
Beállításkezelés
{title} {title} {title}