itthon / A PC elsajátítása / Intelligens lámpa Arduino segítségével. A fényérzékelő sémája a fotoellenálláson és a relén

Intelligens lámpa Arduino segítségével. A fényérzékelő sémája a fotoellenálláson és a relén

Jó napot vagy estét, hogy vagy? Ma megosztom az utasításokat egy kis éjszakai lámpa elkészítéséhez. Az alap egy matt diffúzor lesz egy kiégett LED-es izzóból. Belül pedig az Arduino Pro Mini és az SW2812 LED-eket helyezzük el. Csak egy vázlatot fogok közzétenni, de a színek vagy transzfúziók tekintetében nagyon sok lehetőség lehet. Kezdjük, mint mindig, a szükségesek listájával:

Led lámpa diffúzor, talp E27
- 5V tápegység
- Arduino Pro Mini 5V
- USB-TTL (vázlat Arduino-ba való feltöltéséhez)
- WS2812 LED-ek
- Vékony műanyag
- Kétoldalú ragasztó
- Telefonról töltés nem szükséges, de működik
- forrasztópáka
- Vezetékek
- Forrasztás, gyanta
- Ragasztópisztoly

1. lépés: Az ügy elkészítése.
Először is be kell szereznünk egy diffúzort. LED-es izzót veszünk, E27-es talppal. Természetesen jobb, ha egy már bevált izzót veszünk:

Egyik kezünkkel az izzót az alapnál és a műanyag háznál fogjuk, a másikkal a diffúzort fogjuk, és széttörjük az izzót. A diffúzornak könnyen el kell távolodnia a testtől, mivel csak a tömítőanyagon nyugszik:

Most egy alapot kell készítenünk, amelyre felragasztjuk a LED-eket. Ehhez vékony műanyagot veszünk, egy műanyag mappából készült fedél alkalmas. Most megmérjük a diffúzor rögzítő furatának belső átmérőjét, és meg kell mérnünk a diffúzor mélységét is. Térjünk át az alap elkészítésére. Henger alakú lesz, amelynek átmérője 5 mm-rel kisebb legyen, mint a diffúzor rögzítőnyílásának belső átmérője. A magasság pedig 7 mm-rel kisebb, mint a diffúzor mélysége. Valahogy így kell kinéznie:

Ezt most fejezzük be.

2. lépés Villany
Ahogy korábban mondtam, a vezérlő az Arduino Pro Mini lesz, az 5 voltos verzió. A LED-szalag csatlakoztatása meglehetősen egyszerű, ehhez az 5 voltos tápegység + 5V-os érintkezőjét a pluszhoz, a GND-t pedig a mínuszhoz kell csatlakoztatni. Csatlakoztassa a DIN tűt (bemenet) az Arduino 6. érintkezőjéhez. A szalagcsatlakozó port a vázlaton látható bármely kényelmesre cserélhető. Az Arduino ugyanarról a tápegységről fog működni. Mivel stabilizált tápegységet fogunk használni, a tápegység pluszját az Arduino 5 V-os érintkezőjére csatlakoztatjuk. A tápegység mínuszát az Arduino GND-jéhez kell csatlakoztatni. A séma a következő:

Tehát egy LED, mindhárom szín maximális fényereje mellett, 60 mA-t fogyaszt. 25-ösnek megfelelek, így kiderül:

25 x 60 mA = 1500 mA = 1,5 A

Vagyis szükségem van egy 5 V-os, 1,5 A-es tápegységre. Ez a maximális áramerősség, amely akkor lesz, ha az összes LED mindhárom szín maximális fényerejű üzemmódjában bekapcsol.

Tápegységként vegye ki a régi töltőt a telefonból. A tápegységet 5 V-ra kell kiválasztani, és a teljesítmény tekintetében számolja ki, hány LED fér bele:

Levágjuk róla a dugót, és közvetlenül a szalagra forrasztjuk a vezetékeket, ne felejtsük el ellenőrizni a polaritást teszterrel vagy multiméterrel. Az Arduino tápellátásához vezetékeket is kell készítenie. És egy jelvezeték a szalagtól az Arduino-hoz.

A henger alsó részében egy nyílást készítünk, hogy átengedjük a szalag érintkezőit a benne lévő forrasztott vezetékekkel:

A szalag végét vezetékekkel bedugtam a nyílásba, forró ragasztóval rögzítem. Ezután ragassza fel a szalagot körben, kissé emelje fel, hogy spirálszalagot kapjon. A henger tetejére is ragasztjuk a szalagot, a diódák száma az átmérőtől függ, nekem maximum két led volt átlósan a tetején, és még úgy is, hogy az érintkezők lelógtak:

Ha Ön is így tett, ne csüggedjen, csak vágja le a széleken lógó szalagot, és forrassza a vezetékeket közvetlenül a LED-ekre. Kapcsolatok WS2812:

Jegyzet, LED szalag lámpa a WS2812B-n van iránya, egyrészt (kezdő vagy bemenet) DIN, + 5V, GND érintkezői vannak. És a másik oldalon (vég vagy kilépés) DO, +5V, GND. Ha közvetlenül a LED-ekre forraszt, nézze meg az érintkezők helyét, összpontosítva a kulcsra (sarokvágás). A telepítés egyszerűsítése érdekében a szalagra nyilakat rajzolnak, amelyek jelzik az irányt. Speciális figyelem adja meg az átmenetet a tetejére, nagyon éles kanyar lesz, nagy a valószínűsége annak, hogy eltörik a szalag. Én így kaptam:


Felülről közvetlenül a LED-ekre forrasztva:

És középen, a második szinten, még néhány LED:

És a megbízhatóság érdekében töltse fel a vezetékeket forró ragasztóval:

Most behelyezzük a hengerünket LED-ekkel a villanykörte golyójába. Forró ragasztó segítségével körben rögzítjük a hengert a golyó belsejében:

Ne felejtsen el kialakítani egy nyílást a tápkábel kihúzásához:

3. lépés: Készítse elő a környezetet és a firmware-t.
A vázlat (vagy firmware) feltöltéséhez az Arduino IDE-t használjuk. Letöltés a hivatalos oldalról legújabb verzióés telepítse.

Ehhez először töltse le az archívumot. Ezután csomagolja ki ezt az archívumot. És helyezze át a kicsomagolt fájlokat a "libraries" mappába, amely a telepített Arduino IDE mappájában található. Könnyebbé lehet tenni. Indítsa el az Arduino IDE-t. Ne csomagolja ki a letöltött archívumot. Közvetlenül az Arduino IDE-ben válassza ki a Sketch - Connect Library menüpontot. A legördülő lista legtetején válassza ki az "Add. Zip Library" elemet. Meg kell jelennie egy párbeszédpanelnek. Ezután válassza ki a könyvtárunkat, az Adafruit_NeoPixel-mastert. Kicsit megéri várni. Nyissa meg újra a Sketch - Connect Library menüpontot. Most a legördülő menü alján látni fogja az új könyvtárat. Az Arduino IDE újraindítása után a könyvtár használható.

Vázlatom letöltése:

A vázlatot fel kell tölteni az Arduino-ba. Arduino Pro Mini-t használunk. A népszerű Arduino ezen verziója nem rendelkezik az alaplapra forrasztott USB-TTL chippel. Ezért a számítógéppel való kommunikációhoz és a vázlat feltöltéséhez külön USB-TTL-t kell használnia. Csatlakozás a következő séma szerint:

Arduino-USB-TTL
RX (P0) - TX
TX (P1) - RX
GND-GND

Az USB-TTL tápellátása innen származik USB csatlakozó számítógép. Az Arduino USB-TLL-ről táplálható vagy használható külső forrás táplálás. A lényeg az, hogy az USB-TTL és az Arduino GND pinje össze legyen kötve. Leggyakrabban az USB-TTL-lel találkozhatunk a DTR érintkező kimenete nélkül. A DTR tűt a Reset Arduino-hoz kell csatlakoztatni, hogy a vázlat feltöltése előtt automatikus visszaállítás történjen. Ha Ön, mint én, nem rendelkezik ilyen következtetéssel, manuálisan kell újratöltenie a vázlat feltöltése előtt. A következőképpen járunk el: mindent a fent leírt séma szerint csatlakoztatunk, megnyitjuk az Arduino IDE-t, megnyitjuk a letöltött vázlatot, megnyomjuk a - Letöltés - gombot, és megnézzük, mi van lent. Amíg a „összeállítás” folyamatban van, nem csinálunk semmit, csak megvárjuk a „letöltés” ​​üzenet megjelenését, rá kell kattintani Reset gomb az Arduino-n. Ha nem kényelmes megnyomni a kártyán lévő gombot, akkor a GND-re csatlakoztatott gombot és a Reset-et kiadhatja. Vagy csak vonja le a vezetékeket ugyanarra a következtetésre, és zárja le őket a megfelelő időben.

Azt akarom mondani, hogy nagyon sok lehetőség van az éjszakai fény izzítására, csak néhányat írtam le, ami tetszett a vázlatban. A vázlatot tetszés szerint szerkesztheti. Kísérletezzen és válassza ki azt, amelyik a legjobban tetszik.

Sziasztok! Artem Luzhetsky vagyok, és cikksorozatot fogok levezetni a " okos otthon"és az IoT (angolul - Internet of Things, Internet of things). Megismerkedünk az alkotás csodálatos módszereivel otthoni hálózat különféle eszközökről, amelyek akár önállóan, akár egy személy segítségével működnek. Jól? Kezdjük el!

Az első cikk bevezető jellegű, szeretném, ha megértené, hogy a legelterjedtebb táblákkal és modulokkal fogok dolgozni, hogy a legtöbben kipróbálhassák magukat az IoT fejlesztésében.

Kezdetnek tehát két mikrokontrollerre van szükségünk, amelyeket használni fogunk: és.

Arduino UNO

Azt hiszem, nem kell bemutatnom ezt a táblát, nagyon népszerű a kezdők és a barkácsolók körében. Csak annyit mondok, hogy ennek a kártyának a képességei korlátozottak és az UNO nem tud https protokollal működni, nincs elég számítási teljesítménye az ATmega328P mikrokontrollernek, így amikor a mikrokontrollerrel és a https protokollal kell dolgozni, akkor programozzuk a ESP8266.

ESP8266

Az Amperka ESP8266 Troyka-moduljával fogok dolgozni, de nyugodtan használhatja a hagyományos ESP 8266 modult, gyakorlatilag nincs különbség, a csatlakoztatásnál a lényeg, hogy megnézzük a tűk értékét, és ne feledjük, hogy az ESP megfelelően működik. 3,3 voltos logikára, ezért vagy 5 V-on keresztül kell csatlakoztatni, de csatlakoztatni kell egy feszültségszabályozót az áramkörhöz, vagy egyszerűen csak egy 3,3 voltos feszültségű tűt kell használni.

Ez a mikrokontroller nem a legerősebb az Espressif sorozatban az általános piacon, de az egyik legolcsóbb és leggyakoribb. Ez lesz az IoT fejlesztéseink alapja.

További részletek

Ezenkívül létre kell hoznunk az összes kísérletet:

  1. LED-ek
  2. fotoellenállás
  3. Termisztor
  4. ultrahangos távolságmérő
  5. Piezo hangszóró
  6. Mini szervo
  7. IR érzékelő
  8. IR távirányító

Nem szükséges, hogy mindezen modulok működjenek az IoT-vel, de az összes jövőbeli projekt megvalósításához végül mindegyiket meg kell vásárolnunk.

Programok és könyvtárak

Először is - töltse le a könyvtárat, amely segít sokkal könnyebben dolgozni az Arduino IDE-ben, ha ESP8266-ot használ - http://wiki.amperka.ru/_media/iot-m:iot-m-libs.zip

Másodszor, ahhoz, hogy jobban megismerjük az IoT-t, szükségünk lesz olyan webhelyekre, amelyek lehetővé teszik számunkra, hogy adatokat küldjünk nekik.

  1. www.dweet.io
  2. maker.iftt.com
  3. narodmon.ru
  4. stb.

Harmadszor - nekünk is szükségünk lesz különféle alkalmazások androidon, hogy egy okosotthont vezérelhessünk egy telefon segítségével.

  1. nyitott hub
  2. Pislogás
  3. stb.

Minden módszerrel, programmal, helyszínnel részletesen megismerkedünk a következő projektekben.

2. "okos lámpa" készítése

Meguntalak már? Készítsük el a legegyszerűbb intelligens lámpát, amely akkor kapcsol be, ha sötét van a szobában.

Sőt, ehhez még UNO sem kell, lehet digitális egyedi fotóérzékelőt használni, de a jövőben a felismerhetetlenségig megváltoztatjuk ezt a projektet, így valahol el kell kezdeni.

Ha nem biztos abban, hogy készen áll a 220 V-os elektromossággal dolgozni, akkor zseblámpa helyett használjon hagyományos LED-et. Az elején vettem a régi TLI - 204-es lámpámat, ezek szinte minden boltban kaphatók (előre lekapcsoltam a hálózatról).

A lámpának kétféle munkája van (be / ki), amit szeretnék csinálni, szeretném növelni a funkcionalitását, meghagyni a lámpa teljes be- és kikapcsolásának lehetőségét.

Ha egy fotoellenállást relével valahogy párhuzamosan csatlakoztatunk az áramkörhöz, másik kapcsoló használata nélkül, az nem fog működni, ezért úgy döntöttem, hogy a kétállású kapcsoló helyett egy háromállású billenőkapcsolót teszek.

Tábornok kördiagrammígy kell kinéznie:

Ha minden helyesen megtörtént, akkor a kapcsoló harmadik helyzetében a mikrokontrollerről a relé áramellátásával bekapcsolhatja a lámpát.

Csatlakoztassunk egy fotoellenállást az arduinóhoz. A séma így néz ki:

3. Az "okos lámpa" kódja

Most írjuk meg azt a kódot, amellyel az áramot továbbítjuk a reléhez, ha a helyiség sötét.

#define SHINE 5 //PIN ON PHOTORESISTOR #define REL 13 //PIN ON RELAY void setup()( pinMode(SHINE, INPUT); pinMode(REL, OUTPUT); Serial.begin(9600); ) void loop()( if (analogRead(SHINE)<600) // Если света в комнате мало, то включаем лампу { digitalWrite(REL, HIGH) } else // если много, то выключаем { digitalWrite(REL, LOW); } Serial.printIn(analogRead(SHINE)); selay(500); }

Amikor mindent csatlakoztat, ne felejtse el eltávolítani a fotóérzékelőt a lámáról, különben fényjáték vár rád. Mindennek működnie kell.

Legközelebb megpróbáljuk bonyolítani a kódot, és hozzáadni néhány további funkciót. Hamarosan találkozunk!

Következő projektünkhöz fotoellenállást fogunk használni. És megfontoljuk egy éjszakai lámpa megvalósítását a hálószobában, amely automatikusan bekapcsol, amikor sötét van, és kikapcsol, amikor világossá válik.

A fotoellenállás ellenállása attól függ, hogy milyen fény éri. A fotoellenállást hagyományos 4,7 kΩ-os ellenállással összekapcsolva egy feszültségosztót kapunk, amelyben a fényerőtől függően változik a fotoellenálláson áthaladó feszültség.

Az osztó feszültségét az Arduino ADC bemenetére kapcsoljuk. Ott összehasonlítjuk a kapott értéket egy bizonyos küszöbértékkel, és be- vagy kikapcsoljuk a lámpát.

Az elosztó kapcsolási rajza az alábbiakban látható. Amikor a megvilágítás növekszik, a fotoellenállás ellenállása csökken, és ennek megfelelően az osztó kimenetén (és az ADC bemenetén) nő a feszültség. Amikor a fény kialszik, az ellenkezője igaz.

Az alábbi képen az összeszerelt áramkör látható egy kenyérvágódeszkán. A 0V és 5V feszültségek az Arduino-ból származnak. Az A0 tűt ADC bemenetként használják.

Az Arduino vázlat az alábbiakban látható. Ebben az oktatóanyagban egyszerűen be- és kikapcsoljuk az Arduino kártyába épített LED-et. Világosabb LED, a 13-as érintkezőhöz csatlakoztatható (~220 ohmos ellenálláson keresztül). Ha erősebb terhelést, például izzólámpát csatlakoztat, akkor azt relén vagy tirisztoron keresztül kell csatlakoztatni.

A programkódban vannak kommentált részek, ezek a hibakeresésre szolgálnak. Lehetőség lesz az ADC értékének szabályozására (0 és 1024 között). Ezenkívül módosítania kell a kód 500-as értékét (küszöbérték be és ki) arra az értékre, amelyet tapasztalati úton választott ki a megvilágítás megváltoztatásával.

/* ** Éjszakai fény ** ** www.hobbytronics.co.uk */ int sensorPin = A0; // bemeneti láb beállítása az ADC-hez unsigned int sensorValue = 0; // a fotoellenállás digitális értéke void setup() ( pinMode(13, OUTPUT); Serial.begin(9600); // soros adatkimenet indítása (tesztelés céljából) ) void loop() ( sensorValue = analogRead(sensorPin); / / érték kiolvasása a fotoellenállásból if(sensorValue<500) digitalWrite(13, HIGH); // включаем else digitalWrite(13, LOW); // выключаем // Для отладки раскомментируйте нижеследующие строки //Serial.print(sensorValue, DEC); // вывод данных с фоторезистора (0-1024) //Serial.println(""); // возврат каретки //delay(500); }

A fotoellenállásokra épülő fényérzékelőket (világítást) gyakran használják valódi arduino projektekben. Viszonylag egyszerűek, nem drágák, könnyen megtalálhatóak és megvásárolhatók bármelyik webáruházban. Az arduino fotoellenállás lehetővé teszi a megvilágítás szintjének szabályozását és annak változását. Ebben a cikkben megnézzük, mi is az a fotoellenállás, hogyan működik az alapján a fényérzékelő, hogyan kell megfelelően csatlakoztatni az érzékelőt az Arduino lapokhoz.

A fotoellenállás, ahogy a neve is sugallja, közvetlenül kapcsolódik az ellenállásokhoz, amelyek gyakran szinte minden elektronikus áramkörben megtalálhatók. A hagyományos ellenállás fő jellemzője az ellenállás értéke. A feszültség és az áramerősség ettől függ, egy ellenállás segítségével beállítjuk a többi komponens kívánt üzemmódját. Általános szabály, hogy az ellenállás értéke azonos működési feltételek mellett gyakorlatilag nem változik.

A hagyományos ellenállásokkal ellentétben fotoellenállás a környezeti fény szintjétől függően változtathatja ellenállását. Ez azt jelenti, hogy az elektronikus áramkör paraméterei folyamatosan változnak, mindenekelőtt a fotoellenállásra eső feszültség érdekel. Ha ezeket a feszültségváltozásokat az arduino analóg érintkezőin rögzítjük, megváltoztathatjuk az áramkör logikáját, ezáltal olyan eszközöket hozhatunk létre, amelyek alkalmazkodnak a külső körülményekhez.

A fotoellenállásokat széles körben használják sokféle rendszerben. A leggyakoribb alkalmazás az utcai világítás. Ha éjszaka esik a városra vagy felhős lesz, a lámpák automatikusan felkapcsolnak. Egy fotoellenállásból gazdaságos izzót készíthet otthonba, ami nem ütemezés szerint, hanem a világítás függvényében kapcsol be. A fényérzékelő alapján akár olyan biztonsági rendszert is készíthet, amely zárt szekrény vagy széf kinyitása és kivilágítása után azonnal működik. Mint mindig, az arduino szenzorok hatókörének csak a képzeletünk szab határt.

Milyen fotoellenállásokat lehet vásárolni az online áruházakban

A piacon a legnépszerűbb és legolcsóbb szenzoropció a kínai vállalatok tömeggyártású modelljei, a VT termékek klónjai. Ott nem mindig lehet tönkremenni, hogy pontosan ki és mit gyárt ez vagy az a beszállító, de a legegyszerűbb lehetőség nagyon alkalmas a fotoellenállásokkal való munka megkezdésére.

A kezdő arduinistának azt tanácsolhatjuk, hogy vásároljon egy kész fotómodult, amely így néz ki:


Ez a modul már rendelkezik minden szükséges elemmel a fotoellenállás egyszerű csatlakoztatásához az arduino kártyához. Egyes modulok komparátor áramkörrel és digitális kimenettel és trimmerrel rendelkeznek a vezérléshez.

Egy orosz rádióamatőrnek azt tanácsolhatjuk, hogy forduljon az orosz FR érzékelőhöz. Kereskedelmi forgalomban kapható FR1-3, FR1-4 stb. - a szovjet időkben adták ki. De ennek ellenére az FR1-3 pontosabb részlet. Ebből következik az árkülönbség.FR-ért legfeljebb 400 rubelt kérnek. Az FR1-3 darabonként több mint ezer rubelbe kerül.

Fotoellenállás jelölés

Az Oroszországban gyártott modellek modern jelölése meglehetősen egyszerű. Az első két betű a PhotoResistor, a kötőjel utáni számok a fejlesztési számot jelzik. FR -765 - fotoellenállás, fejlesztés 765. Általában közvetlenül az alkatrész testén van jelölve

A VT érzékelő ellenállási tartományt tartalmaz a jelölési sémában. Például:

  • VT83N1 – 12-100 kΩ (12K megvilágított, 100K sötét)
  • VT93N2 - 48-500 kOhm (48K - megvilágított, 100K - sötétben).

Néha a modellekkel kapcsolatos információk tisztázása érdekében az eladó egy speciális dokumentumot biztosít a gyártótól. A munka paraméterei mellett az alkatrész pontossága is fel van tüntetve. Minden modellnél az érzékenységi tartomány a spektrum látható részén található. Gyűjtő fényérzékelő meg kell értened, hogy a művelet pontossága feltételes fogalom. Még ugyanazon gyártó modelljei, egy tétel, egy vásárlás esetén is 50%-kal vagy még ennél is többel térhet el.

Gyárilag az alkatrészek pirostól zöldig terjedő hullámhosszra vannak beállítva. Ugyanakkor a többség az infravörös sugárzást is „látja”. A különösen pontos részletek még az ultraibolya fényt is képesek rögzíteni.

Az érzékelő előnyei és hátrányai

A fotoellenállások fő hátránya a spektrumra való érzékenységük. A beeső fény típusától függően az ellenállás több nagyságrenddel is változhat. A hátrányok közé tartozik a megvilágítás változásaira való alacsony reakciósebesség is. Ha a lámpa villog, az érzékelőnek nincs ideje reagálni. Ha a változás gyakorisága meglehetősen magas, az ellenállás általában nem látja, hogy a megvilágítás változik.

Az előnyök közé tartozik az egyszerűség és a hozzáférhetőség. Az ellenállás közvetlen változása a ráeső fénytől függően lehetővé teszi az elektromos kapcsolási rajz egyszerűsítését. Maga a fotoellenállás nagyon olcsó, számos arduino készletben és tervezőben megtalálható, ezért szinte minden kezdő arduino számára elérhető.

Fotoellenállás csatlakoztatása arduinohoz

Projektekben arduino A fotoellenállást fényérzékelőként használják. Tájékoztatást kapva a tábla be- és kikapcsolhatja a reléket, elindíthatja a motorokat, üzeneteket küldhet. Természetesen ebben az esetben helyesen kell csatlakoztatni az érzékelőt.

A fényérzékelő arduinóhoz való csatlakoztatásának séma meglehetősen egyszerű. Ha fotoellenállást használunk, akkor a kapcsolási rajzon az érzékelő feszültségosztóként van megvalósítva. Az egyik váll a megvilágítás szintjétől változik, a második - feszültséget szolgáltat az analóg bemenetre. A vezérlő chipben ez a feszültség az ADC-n keresztül digitális adatokká alakul. Mert Ha az érzékelő ellenállása csökken, amikor fény éri, akkor a rá eső feszültség értéke is csökken.

Attól függően, hogy az osztó melyik karjára helyezzük a fotoellenállást, az analóg bemenetre növelt vagy csökkentett feszültség kerül. Abban az esetben, ha a fotoellenállás egyik lába a földhöz van kötve, akkor a maximális feszültségérték a sötétségnek felel meg (a fotoellenállás ellenállása maximális, szinte az összes feszültség esik rajta), a minimális érték pedig a jó világítás (az ellenállás közel nulla, a feszültség minimális). Ha a fotoellenállás kart csatlakoztatjuk a tápellátáshoz, akkor a viselkedés az ellenkezője lesz.

Maga a tábla felszerelése nem okozhat nehézségeket. Mivel a fotoellenállásnak nincs polaritása, tetszőleges irányban csatlakoztathatja, forraszthatja a kártyára, csatlakoztathatja vezetékekkel áramköri lap segítségével, vagy hagyományos kapcsokat (krokodilokat) használhat a csatlakoztatáshoz. Az áramkör áramforrása maga az arduino. fotoellenállás az egyik lábával a földhöz csatlakozik, a másik a tábla ADC-jéhez (példánkban - AO). Ugyanerre a lábra 10 kΩ-os ellenállást kötünk. Természetesen nem csak az A0 analóg érintkezőhöz csatlakoztathat fotoellenállást, hanem bármely másikhoz is.

Néhány szó a további 10K-s ellenállásról.Két funkciója van az áramkörünkben: korlátozza az áramkörben az áramerősséget és egy osztóval kialakítja a kívánt feszültséget az áramkörben. Áramkorlátozásra van szükség olyan helyzetben, amikor egy teljesen megvilágított fotoellenállás élesen csökkenti az ellenállását. A feszültségformálás pedig az analóg porton előre látható értékekre szolgál. Valójában az 1K ellenállás elegendő a normál működéshez fotoellenállásainkkal.

Az ellenállás értékének változtatásával az érzékenységi szintet a „sötét” és a „világos” oldalra tudjuk „eltolni”. Így 10 K gyors váltást ad a fény kezdetén. 1K esetén a fényérzékelő pontosabban érzékeli a magas szintű megvilágítást.

Ha kész fényérzékelő modult használ, akkor a csatlakozás még egyszerűbb lesz. A VCC-modul kimenetét a kártya 5V-os csatlakozójához, a GND-t a földhöz csatlakoztatjuk. A fennmaradó érintkezők az arduino csatlakozókhoz csatlakoznak.

Ha a kártyának van digitális kimenete, akkor azt a digitális érintkezőkhöz küldjük. Ha analóg, akkor analóg. Az első esetben trigger jelet fogunk kapni - a megvilágítási szintet meghaladóan (a triggerküszöb hangoló ellenállással állítható). Az analóg tűkből a tényleges megvilágítási szinttel arányos feszültségértéket kaphatunk.

Példavázlat egy fényérzékelőről egy fotoellenálláson

Csatlakoztattuk a fotoellenállás áramkört az arduinóhoz, ügyelve arra, hogy minden rendben legyen. Most hátra van a vezérlő programozása.

A fényérzékelő vázlatának megírása meglehetősen egyszerű. Csak az aktuális feszültség értékét kell levonnunk arról az analóg érintkezőről, amelyhez az érzékelő csatlakoztatva van. Ez a mindannyiunk által ismert analogRead() függvény segítségével történik. Ezután a fényerőtől függően néhány műveletet végrehajthatunk.

Készítsünk vázlatot egy fényérzékelőhöz, amely a következőképpen kapcsolja be vagy ki a LED-et.

A munka algoritmusa a következő:

  • Határozza meg az analóg érintkezőből érkező jel szintjét.
  • Hasonlítsa össze a szintet a küszöbértékkel. A maximális érték a sötétségnek, a minimum a maximális megvilágításnak felel meg. Válasszuk ki a 300-as küszöbértéket.
  • Ha a szint alacsonyabb, mint a küszöbérték - sötét, be kell kapcsolnia a LED-et.
  • Ellenkező esetben kapcsolja ki a LED-et.
#define PIN_LED 13 #define PIN_PHOTO_SENSOR A0 void setup() ( Serial.begin(9600); pinMode(PIN_LED, OUTPUT); ) void loop() ( int val = analógRead(PIN_PHOTO_SENSOR); Serial.println(val); if ( val< 300) { digitalWrite(PIN_LED, LOW); } else { digitalWrite(PIN_LED, HIGH); } }

A fotoellenállást letakarva (kézzel vagy átlátszatlan tárggyal) megfigyelhetjük a LED be- és kikapcsolását. A kódban a küszöbparaméter megváltoztatásával kényszeríthetjük az izzót a különböző világítási fokozatok be- és kikapcsolására.

Felszereléskor próbálja meg a fotoellenállást és a LED-et a lehető legtávolabb elhelyezni egymástól, hogy a fényes LED-ből kevesebb fény essen a fényérzékelőre.

Környezeti fényérzékelő és a háttérvilágítás fényerejének egyenletes változása

Módosíthatja a projektet úgy, hogy a LED fényereje a megvilágítás szintjétől függően változzon. A következő változtatásokat adjuk hozzá az algoritmushoz:

  • A villanykörte fényerejét PWM-en keresztül változtatjuk, 0 és 255 közötti értékeket küldve a LED-del ellátott érintkezőhöz az AnaWrite () segítségével.
  • A fényérzékelő fényszintjének digitális értékének (0-tól 1023-ig) a LED fényerő PWM tartományába (0-tól 255-ig) konvertálásához a map() függvényt használjuk.

Vázlat példa:

#define PIN_LED 10 #define PIN_PHOTO_SENSOR A0 void setup() ( Serial.begin(9600); pinMode(PIN_LED, OUTPUT); ) void loop() ( int val = analógRead(PIN_PHOTO_SENSOR); Serial.println(val); int ledPower = map(val, 0, 1023, 0, 255); // A kapott értéket PWM jelszintre konvertálja. Minél kisebb a fényérték, annál kevesebb energiát kell a LED-nek PWM-en keresztül szolgáltatnunk. analogWrite(PIN_LED, ledPower ); // fényerő módosítása)

Egy másik csatlakozási mód esetén, amelyben az analóg portról érkező jel arányos a megvilágítás mértékével, az értéket a maximumból kivonva további „megfordítani” kell:

int érték = 1023 - analógRead(PIN_PHOTO_RESISTOR);

A fényérzékelő sémája a fotoellenálláson és a relén

Példák a relékkel végzett munka vázlatára az arduino relék programozásáról szóló cikkben találhatók. Ebben az esetben nem kell bonyolult gesztusokat tennünk: a „sötétség” meghatározása után egyszerűen bekapcsoljuk a relét, a tűjére a megfelelő értéket alkalmazzuk.

#define PIN_RELAY 10 #define PIN_PHOTO_SENSOR A0 void setup() ( pinMode(PIN_RELAY, OUTPUT); digitalWrite(PIN_RELAY, HIGH); ) void loop() ( int val = analógRead(PIN_PHOTO_SENSOR); if (érték< 300) { // Светло, выключаем реле digitalWrite(PIN_RELAY, HIGH); } else { // Темновато, включаем лампочку digitalWrite(PIN_RELAY, LOW); } }

Következtetés

A fotoellenálláson alapuló fényérzékelőt használó projektek meglehetősen egyszerűek és hatékonyak. Sok érdekes projektet hajthat végre, miközben a felszerelés költsége nem lesz magas. A fotoellenállás a feszültségosztó áramkörnek megfelelően van csatlakoztatva további ellenállással. A szenzor egy analóg portra van csatlakoztatva a különböző megvilágítási szintek mérésére, vagy digitálisra, ha csak a sötétség ténye fontos számunkra. A vázlaton egyszerűen kiolvassuk az adatokat az analóg (vagy digitális) portról, és eldöntjük, hogyan reagáljunk a változásokra. Reméljük, hogy most ilyen egyszerű "szemek" jelennek meg a projektjeiben.