Arduino apgaismojuma automatizācijas kustības sensors un fotorezistors. Fotorezistors un gaismas diodes uz Arduino

Jauni raksti

● 13. projekts: fotorezistors. Mēs apstrādājam apgaismojumu, iedegot vai dzēšot gaismas diodes

Šajā eksperimentā mēs iepazīsimies ar analogo sensoru apgaismojuma mērīšanai - fotorezistoru (13.1. att.).

Nepieciešamās sastāvdaļas:

Parasti fotorezistoru izmanto apgaismojuma mērīšanai. Tumsā viņa pretestība ir diezgan liela. Kad gaisma skar fotorezistoru, pretestība samazinās proporcionāli apgaismojumam. Diagramma fotorezistora savienošanai ar Arduino ir parādīta attēlā. 13.2. Lai izmērītu apgaismojumu, ir jāsamontē sprieguma dalītājs, kurā augšdelms tiks attēlots ar fotorezistoru, apakšējo - ar parasts rezistors ar pietiekami lielu nominālvērtību. Mēs izmantosim 10k rezistoru. Mēs savienojam dalītāja vidējo sviru ar Arduino analogo ieeju A0.

Rīsi. 13.2. Fotorezistora pieslēguma shēma Arduino

Uzrakstīsim analogo datu nolasīšanas un nosūtīšanas uz seriālo portu skici. Skices saturs ir parādīts sarakstā 13.1.

Int light; // mainīgais fotorezistora datu glabāšanai nederīga iestatīšana ()(Serial.begin (9600);) tukša cilpa ()(gaisma = analogRead (0); Serial.println (gaisma); aizkave (100);)
Savienojuma procedūra:

1. Mēs savienojam fotorezistoru saskaņā ar shēmu attēlā. 13.2.
2. Ielādējiet skici no saraksta 13.1 Arduino platē.
3. Ar roku regulējam fotorezistora apgaismojumu un novērojam mainīgo vērtību izvadi uz seriālo portu, iegaumējam rādījumus pie pilna telpas apgaismojuma un pie pilnīgas gaismas plūsmas bloķēšanas.

Tagad izveidosim gaismas indikatoru, izmantojot LED rindu ar 8 LED. Iedegto gaismas diožu skaits ir proporcionāls pašreizējam apgaismojumam. Mēs saliekam gaismas diodes saskaņā ar diagrammu attēlā. 13.3 izmantojot 220 omu ierobežojošos rezistorus.

Rīsi. 13.3. Arduino fotorezistoru un gaismas diožu elektroinstalācijas shēma


Skices saturs pašreizējā apgaismojuma parādīšanai LED joslā ir parādīts sarakstā 13.2.

// Kontakts gaismas diožu pievienošanai const int LEDs = (3, 4, 5, 6, 7, 8, 9, 10); const int LIGHT = A0; // Pin A0 fotorezistora ievadei const int MIN_LIGHT = 200; // Apakšējais apgaismojuma slieksnis const int MAX_LIGHT = 900; // augšējais apgaismojuma slieksnis // Mainīgais fotorezistora datu glabāšanai int val = 0; nederīga iestatīšana (){ // Konfigurēt LED tapas kā izvadi for (int i = 0; i<8 ;i++) pinMode(leds[i],OUTPUT); } tukša cilpa ()(val = analogRead (GAISMA); // Izlasi fotorezistora rādījumus // Kartes () funkcijas izmantošana val = karte (val, MIN_LIGHT, MAX_LIGHT, 8, 0); // ierobežojam, lai nepārsniegtu robežas val = ierobežojums (val, 0, 8); // iedegt gaismas diožu skaitu proporcionāli apgaismojumam, // nodzēst pārējo for (int i = 1; i<9 ;i++) { if (i>= val) // iedegas gaismas diodes digitalWrite (LED, HIGH); cits // izslēdziet gaismas diodes digitalWrite (LED, LOW); ) kavēšanās (1000); // pauze pirms nākamā mērījuma }
Savienojuma procedūra:

1. Mēs savienojam fotorezistoru un gaismas diodes saskaņā ar shēmu attēlā. 13.3.
2. Ielādējiet skici no saraksta 13.2 Arduino platē.
3. Ar roku regulējam fotorezistora apgaismojumu un nosakām pašreizējo apgaismojuma līmeni pēc iedegto gaismas diožu skaita (13.3. att.).

Apgaismojuma apakšējo un augšējo robežu ņemam no iegaumētajām vērtībām, veicot eksperimentu ar iepriekšējo skici (13.1. saraksts). Mēs mērogojam starpapgaismojuma vērtību par 8 vērtībām (8 LED) un iedegam gaismas diožu skaitu proporcionāli vērtībai starp apakšējo un augšējo robežu.

Programmu saraksti

Reālos Arduino projektos diezgan bieži tiek izmantoti gaismas sensori (apgaismojums), kas būvēti uz fotorezistoru bāzes. Tie ir salīdzinoši vienkārši, nav dārgi, un tos ir viegli atrast un iegādāties jebkurā tiešsaistes veikalā.

Arduino fotorezistors ļauj kontrolēt apgaismojuma līmeni un reaģēt uz tā izmaiņām. Šajā rakstā apskatīsim, kas ir fotorezistors, kā darbojas uz tā bāzes veidots gaismas sensors, kā pareizi pieslēgt sensoru Arduino plāksnēm.

Fotorezistors, kā norāda nosaukums, ir daudz saistīts ar rezistoriem, kas bieži sastopami gandrīz jebkurā elektroniskajā shēmā. Parastā rezistora galvenā īpašība ir tā pretestības vērtība. No tā ir atkarīgs spriegums un strāva, ar rezistora palīdzību iestatām citu komponentu nepieciešamos darbības režīmus. Parasti rezistora pretestības vērtība tādos pašos darbības apstākļos praktiski nemainās.

Atšķirībā no parastā rezistora, tas var mainīt savu pretestību atkarībā no apkārtējās gaismas līmeņa. Tas nozīmē, ka parametri elektroniskajā shēmā pastāvīgi mainīsies, pirmkārt, mūs interesē spriegums, kas krīt pāri fotorezistoram. Fiksējot šīs sprieguma izmaiņas uz Arduino analogajām tapām, mēs varam mainīt ķēdes darbības loģiku, tādējādi radot ierīces, kas pielāgojas ārējiem apstākļiem.

Fotorezistori tiek aktīvi izmantoti dažādās sistēmās. Visizplatītākais lietojums ir ielu apgaismojums. Ja pilsētā iestājas nakts vai kļūst mākoņains, gaismas ieslēdzas automātiski. Mājai var izgatavot ekonomisku spuldzīti no fotorezistora, kas neieslēdzas pēc grafika, bet atkarībā no apgaismojuma. Uz gaismas sensora bāzes jūs pat varat izveidot drošības sistēmu, kas tiks iedarbināta uzreiz pēc slēgta skapja vai seifa atvēršanas un izgaismošanas. Kā vienmēr, jebkuru Arduino sensoru darbības jomu ierobežo tikai mūsu iztēle.

Kādus fotorezistorus var iegādāties interneta veikalos

Populārākā un pieejamākā sensoru iespēja tirgū ir Ķīnas uzņēmumu masveida ražošanas modeļi, VT produktu kloni. Lai sāktu darbu ar fotorezistoriem, visvienkāršākā iespēja ir diezgan piemērota.

Iesācējam arduino spēlētājam var ieteikt iegādāties gatavu foto moduli, kas izskatās šādi:

Šim modulim jau ir visi nepieciešamie elementi vienkāršai fotorezistora savienošanai ar arduino plati. Dažos moduļos ir ieviesta ķēde ar komparatoru, un ir pieejama digitālā izeja un trimmeris vadībai.

Krievu radioamatierim var ieteikt vērsties pie krievu FR sensora. Pārdošanā ir FR1-3, FR1-4 utt. - tika ražoti vēl arodbiedrību laikos. Bet, neskatoties uz to, FR1-3 ir precīzāka detaļa. No tā izriet cenu atšķirība.Par FR viņi prasa ne vairāk kā 400 rubļu. FR1-3 maksās vairāk nekā tūkstoti rubļu gabalā.

Mūsdienu Krievijā ražoto modeļu marķēšana ir diezgan vienkārša. Pirmie divi burti ir PhotoResistor, cipari aiz domuzīmes norāda izstrādes numuru. FR-765 - fotorezistors, attīstība 765. Parasti marķē tieši uz detaļas korpusa

VT sensoram pretestības diapazons ir norādīts marķējuma diagrammā. Piemēram:

  • VT83N1 — 12–100 kOhm (12 K — apgaismots, 100 K — tumsā)
  • VT93N2 - 48-500kOhm (48K - apgaismots, 100K - tumsā).

Dažreiz pārdevējs nodrošina īpašu ražotāja dokumentu, lai precizētu informāciju par modeļiem. Papildus darba parametriem tur ir norādīta arī detaļas precizitāte. Visiem modeļiem jutīguma diapazons atrodas redzamajā spektra daļā. Kolekcionēšana gaismas sensors jums jāsaprot, ka darbības precizitāte ir nosacīts jēdziens. Pat viena ražotāja modeļiem, vienai partijai, vienam pirkumam tas var atšķirties par 50% vai vairāk.

Rūpnīcā detaļas ir noregulētas uz viļņa garumu no sarkanas līdz zaļai gaismai. Tajā pašā laikā lielākā daļa “redz” infrasarkano starojumu. Ļoti precīzas detaļas var uztvert pat ultravioleto gaismu.

Sensora priekšrocības un trūkumi

Galvenais fotorezistoru trūkums ir to jutība pret spektru. Atkarībā no krītošās gaismas veida pretestība var atšķirties par vairākām kārtām. Trūkumi ietver arī zemo reakcijas ātrumu uz apgaismojuma izmaiņām. Ja gaisma mirgo, sensoram nav laika reaģēt. Ja izmaiņu biežums ir diezgan augsts, rezistors pārstās "redzēt", ka apgaismojums mainās.

Priekšrocības ietver vienkāršību un pieejamību. Tiešās pretestības izmaiņas atkarībā no gaismas, kas uz to krīt, ļauj vienkāršot elektroinstalācijas shēmu. Pats fotorezistors ir ļoti lēts, tas ir daļa no daudziem Arduino komplektiem un konstruktoriem, tāpēc ir pieejams gandrīz jebkuram iesācējam arduino spēlētājam.

Projektos arduino fotorezistors tiek izmantots kā gaismas sensors. Saņemot no viņa informāciju, dēlis var ieslēgt vai izslēgt relejus, iedarbināt motorus, nosūtīt ziņojumus. Protams, šajā gadījumā sensors ir jāpievieno pareizi.

Diagramma gaismas sensora savienošanai ar Arduino ir diezgan vienkārša. Ja izmantojam fotorezistoru, tad pieslēguma shēmā sensors ir realizēts kā sprieguma dalītājs. Viena roka mainās līdz ar apgaismojuma līmeni, otrā piegādā spriegumu analogajai ieejai. Kontrollera mikroshēmā šis spriegums tiek pārveidots ciparu datos, izmantojot ADC. Jo sensora pretestība, gaismai nokļūstot, samazinās, tad samazināsies uz to krītošā sprieguma vērtība.

Atkarībā no tā, kurā dalītāja svirā ievietojam fotorezistoru, analogajai ieejai tiks piemērots palielināts vai samazināts spriegums. Gadījumā, ja viena fotorezistora kāja ir savienota ar zemi, maksimālā sprieguma vērtība atbilst tumsai (fotorezistora pretestība ir maksimāla, gandrīz viss spriegums krītas pāri), un minimālā vērtība atbilst labam apgaismojumam. (pretestība ir tuvu nullei, spriegums ir minimāls). Ja mēs savienosim fotorezistora roku ar barošanas avotu, tad uzvedība būs pretēja.

Pašas dēļa uzstādīšana nedrīkst būt sarežģīta. Tā kā fotorezistoram nav polaritātes, to var pieslēgt abām pusēm, var pielodēt pie plates, savienot ar vadiem, izmantojot shēmas plati, vai savienošanai izmantot parastos klipus (krokodilus). Strāvas avots ķēdē ir pats arduino. Fotorezistors savienots ar vienu kāju ar zemi, otra ir savienota ar dēļa ADC (mūsu piemērā - AO). Mēs pievienojam 10 kOhm rezistoru tai pašai kājai. Protams, fotorezistoru var savienot ne tikai ar analogo tapu A0, bet arī ar jebkuru citu.

Daži vārdi par papildu 10K rezistoru.Tam mūsu ķēdē ir divas funkcijas: ierobežot strāvu ķēdē un ar dalītāju izveidot ķēdē vēlamo spriegumu. Strāvas ierobežošana ir nepieciešama situācijā, kad pilnībā izgaismots fotorezistors krasi samazina tā pretestību. Un sprieguma veidošana ir paredzēta paredzamām vērtībām analogajā portā. Faktiski normālai darbībai ar mūsu fotorezistoriem pietiek ar 1K pretestību.

Mainot rezistora vērtību, mēs varam "nobīdīt" jutības līmeni uz "tumšo" un "gaismo" pusi. Tātad 10 K ātri pārslēgs gaismas iestāšanos. 1K gadījumā gaismas sensors precīzāk noteiks augstus gaismas līmeņus.

Ja izmantojat gatavu gaismas sensora moduli, tad savienojums būs vēl vienkāršāks. Mēs savienojam VCC moduļa izeju ar 5V savienotāju uz plates, GND - ar zemi. Mēs savienojam atlikušās tapas ar arduino savienotājiem.

Ja uz tāfeles ir digitālā izeja, mēs to nosūtām uz digitālajām tapām. Ja analogs - tad analogs. Pirmajā gadījumā mēs saņemsim sprūda signālu - pārsniedzot apgaismojuma līmeni (sprūda slieksni var regulēt, izmantojot regulēšanas rezistoru). No analogajām tapām mēs varēsim saņemt sprieguma vērtību, kas ir proporcionāla reālajam apgaismojuma līmenim.

Pieslēdzām ķēdi ar fotorezistoru arduino, pārliecinājāmies, ka viss ir izdarīts pareizi. Tagad atliek ieprogrammēt kontrolieri.

Ir diezgan viegli ieskicēt gaismas sensoru. Mums ir jānoņem tikai pašreizējā sprieguma vērtība no analogās tapas, kurai ir pievienots sensors. Tas tiek darīts, izmantojot mums visiem zināmo funkciju analogRead (). Pēc tam mēs varam veikt dažas darbības atkarībā no apgaismojuma līmeņa.

Uzrakstīsim skici gaismas sensoram, kas ieslēdz vai izslēdz LED, kas savienots šādi.

Darba algoritms ir šāds:

  • Nosakiet signāla līmeni no analogās tapas.
  • Mēs salīdzinām līmeni ar sliekšņa vērtību. Maksimālā vērtība atbildīs tumsai, minimālā vērtība atbilst maksimālajam apgaismojumam. Mēs izvēlēsimies sliekšņa vērtību, kas vienāda ar 300.
  • Ja līmenis ir mazāks par slieksni, ir tumšs, jums jāieslēdz gaismas diode.
  • Pretējā gadījumā izslēdziet LED.

#define PIN_LED 13 #define PIN_PHOTO_SENSOR A0 tukšuma iestatīšana () (Serial.begin (9600); pinMode (PIN_LED, OUTPUT);) tukšuma cilpa () (int val = analogRead (PIN_PHOTO_SENSOR); Serial.println (val); if ( val< 300) { digitalWrite(PIN_LED, LOW); } else { digitalWrite(PIN_LED, HIGH); } }

#define PIN_LED 13

#define PIN_PHOTO_SENSOR A0

nederīga iestatīšana () (

Seriāls. sākt (9600);

tukša cilpa () (

Seriāls. println (val);

ja (val< 300 ) {

digitalWrite (PIN_LED, LOW);

) cits (

digitalWrite (PIN_LED, AUGSTS);

Pārklājot fotorezistoru (ar rokām vai necaurspīdīgu priekšmetu), varam novērot gaismas diodes ieslēgšanos un izslēgšanu. Mainot sliekšņa parametru kodā, mēs varam piespiest spuldzi ieslēgt/izslēgt dažādos apgaismojuma līmeņos.

Uzstādot, mēģiniet novietot fotorezistoru un LED pēc iespējas tālāk viena no otras, lai mazāk gaismas no spilgtās LED nonāktu gaismas sensorā.

Gaismas sensors un vienmērīga fona apgaismojuma spilgtuma maiņa

Jūs varat modificēt projektu tā, lai atkarībā no apgaismojuma līmeņa mainītos gaismas diodes spilgtums. Algoritmā tiks veiktas šādas izmaiņas:

  • Mēs mainīsim spuldzes spilgtumu, izmantojot PWM, nosūtot vērtības no 0 līdz 255 uz tapu ar LED, izmantojot analogWrite ().
  • Lai pārveidotu gaismas līmeņa digitālo vērtību no gaismas sensora (no 0 līdz 1023) LED spilgtuma PWM diapazonā (no 0 līdz 255), mēs izmantosim kartes () funkciju.

Skice piemērs:

#define PIN_LED 10 #define PIN_PHOTO_SENSOR A0 tukšuma iestatīšana () (Serial.begin (9600); pinMode (PIN_LED, OUTPUT);) tukšuma cilpa () (int val = analogRead (PIN_PHOTO_SENSOR); Serial.println (val); int ledPower = karte (val, 0, 1023, 0, 255); // Konvertējiet iegūto vērtību PWM signāla līmenī. Jo zemāka ir apgaismojuma vērtība, jo mazāk enerģijas mums jāpiegādā gaismas diodei caur PWM. analogWrite (PIN_LED, ledPower ); // Mainiet spilgtumu)

#define PIN_LED 10

#define PIN_PHOTO_SENSOR A0

nederīga iestatīšana () (

Seriāls. sākt (9600);

pinMode (PIN_LED, OUTPUT);

tukša cilpa () (

int val = analogRead (PIN_PHOTO_SENSOR);

Seriāls. println (val);

int ledPower = karte (val, 0, 1023, 0, 255); // Saņemto vērtību pārvērš PWM signāla līmenī. Jo zemāka ir apgaismojuma vērtība, jo mazāk enerģijas mums jāpiegādā gaismas diodei caur PWM.

analogWrite (PIN_LED, ledPower); // Mainiet spilgtumu

Citas savienojuma metodes gadījumā, kurā signāls no analogā porta ir proporcionāls apgaismojuma pakāpei, būs nepieciešams papildus “apgriezt” vērtību, atņemot to no maksimālā:

int val = 1023 - analogRead (PIN_PHOTO_RESISTOR);

Reālos Arduino projektos bieži tiek izmantoti gaismas sensori (apgaismojums), kuru pamatā ir fotorezistori. Tie ir salīdzinoši vienkārši, nav dārgi, un tos ir viegli atrast un iegādāties jebkurā tiešsaistes veikalā. Arduino fotorezistors ļauj kontrolēt apgaismojuma līmeni un reaģēt uz tā izmaiņām. Šajā rakstā apskatīsim, kas ir fotorezistors, kā darbojas uz tā bāzes veidots gaismas sensors, kā pareizi pieslēgt sensoru Arduino plāksnēm.

Fotorezistors, kā norāda nosaukums, ir daudz saistīts ar rezistoriem, kas bieži sastopami gandrīz jebkurā elektroniskajā shēmā. Parastā rezistora galvenā īpašība ir tā pretestības vērtība. No tā ir atkarīgs spriegums un strāva, ar rezistora palīdzību iestatām citu komponentu nepieciešamos darbības režīmus. Parasti rezistora pretestības vērtība tādos pašos darbības apstākļos praktiski nemainās.

Atšķirībā no parastajiem rezistoriem, fotorezistors var mainīt savu pretestību atkarībā no apkārtējās gaismas līmeņa. Tas nozīmē, ka parametri elektroniskajā shēmā pastāvīgi mainīsies, pirmkārt, mūs interesē spriegums, kas krīt pāri fotorezistoram. Fiksējot šīs sprieguma izmaiņas uz Arduino analogajām tapām, mēs varam mainīt ķēdes darbības loģiku, tādējādi radot ierīci, kas pielāgojas ārējiem apstākļiem.

Fotorezistori tiek aktīvi izmantoti dažādās sistēmās. Visizplatītākais lietojums ir ielu apgaismojums. Ja pilsētā iestājas nakts vai kļūst mākoņains, gaismas ieslēdzas automātiski. Mājai var izgatavot ekonomisku spuldzīti no fotorezistora, kas neieslēdzas pēc grafika, bet atkarībā no apgaismojuma. Uz gaismas sensora pamata jūs pat varat izveidot drošības sistēmu, kas tiks iedarbināta uzreiz pēc slēgta skapja vai seifa atvēršanas un izgaismošanas. Kā vienmēr, jebkura Arduino sensora pielietojuma jomu ierobežo tikai mūsu iztēle.

Kādus fotorezistorus var iegādāties interneta veikalos

Populārākā un pieejamākā sensoru iespēja tirgū ir Ķīnas uzņēmumu masveida ražošanas modeļi, VT produktu kloni. Tur ne vienmēr var izputināt par to, kas un ko tieši ražo to vai citu piegādātāju, taču visvienkāršākā iespēja ir diezgan piemērota, lai sāktu strādāt ar fotorezistoriem.

Iesācējam arduino spēlētājam var ieteikt iegādāties gatavu foto moduli, kas izskatās šādi:


Šim modulim jau ir visi nepieciešamie elementi vienkāršai fotorezistora savienošanai ar arduino plati. Dažos moduļos ir ieviesta ķēde ar komparatoru, un ir pieejama digitālā izeja un trimmeris vadībai.

Krievu radioamatierim var ieteikt vērsties pie krievu FR sensora. Pārdošanā ir FR1-3, FR1-4 utt. - tika ražoti vēl arodbiedrību laikos. Bet, neskatoties uz to, FR1-3 ir precīzāka detaļa. No tā izriet, ka cenas atšķirība nav lielāka par 400 rubļiem. FR1-3 maksās vairāk nekā tūkstoti rubļu gabalā.

Fotorezistoru marķēšana

Mūsdienu Krievijā ražoto modeļu marķēšana ir diezgan vienkārša. Pirmie divi burti ir PhotoResistor, cipari aiz domuzīmes norāda izstrādes numuru. FR-765 - fotorezistors, attīstība 765. Parasti marķē tieši uz detaļas korpusa

VT sensoram pretestības diapazons ir norādīts marķējuma diagrammā. Piemēram:

  • VT83N1 — 12–100 kOhm (12 K — apgaismots, 100 K — tumsā)
  • VT93N2 - 48-500kOhm (48K - apgaismots, 100K - tumsā).

Dažreiz pārdevējs nodrošina īpašu ražotāja dokumentu, lai precizētu informāciju par modeļiem. Papildus darba parametriem tur ir norādīta arī detaļas precizitāte. Visiem modeļiem jutīguma diapazons atrodas redzamajā spektra daļā. Kolekcionēšana gaismas sensors jums jāsaprot, ka darbības precizitāte ir nosacīts jēdziens. Pat viena ražotāja modeļiem, vienai partijai, vienam pirkumam tas var atšķirties par 50% vai vairāk.

Rūpnīcā detaļas ir noregulētas uz viļņa garumu no sarkanas līdz zaļai gaismai. Tajā pašā laikā lielākā daļa “redz” infrasarkano starojumu. Ļoti precīzas detaļas var uztvert pat ultravioleto gaismu.

Sensora priekšrocības un trūkumi

Galvenais fotorezistoru trūkums ir to jutība pret spektru. Atkarībā no krītošās gaismas veida pretestība var atšķirties par vairākām kārtām. Trūkumi ietver arī zemo reakcijas ātrumu uz apgaismojuma izmaiņām. Ja gaisma mirgo, sensoram nav laika reaģēt. Ja izmaiņu biežums ir diezgan augsts, rezistors pārstās "redzēt", ka apgaismojums mainās.

Priekšrocības ietver vienkāršību un pieejamību. Tiešās pretestības izmaiņas atkarībā no gaismas, kas uz to krīt, ļauj vienkāršot elektroinstalācijas shēmu. Pats fotorezistors ir ļoti lēts, tas ir daļa no daudziem Arduino komplektiem un konstruktoriem, tāpēc ir pieejams gandrīz jebkuram iesācējam arduino spēlētājam.

Fotorezistora pievienošana arduino

Projektos arduino fotorezistors tiek izmantots kā gaismas sensors. Saņemot no viņa informāciju, dēlis var ieslēgt vai izslēgt relejus, iedarbināt motorus, nosūtīt ziņojumus. Protams, šajā gadījumā sensors ir jāpievieno pareizi.

Gaismas sensora savienojuma shēma ar arduino ir diezgan vienkārša. Ja izmantojam fotorezistoru, tad pieslēguma shēmā sensors ir realizēts kā sprieguma dalītājs. Viena roka mainās līdz ar apgaismojuma līmeni, otrā piegādā spriegumu analogajai ieejai. Kontroliera mikroshēmā šis spriegums tiek pārveidots ciparu datos, izmantojot ADC. Jo sensora pretestība, gaismai nokļūstot, samazinās, tad samazināsies uz to krītošā sprieguma vērtība.

Atkarībā no tā, kurā dalītāja svirā ievietojam fotorezistoru, analogajai ieejai tiks piemērots palielināts vai samazināts spriegums. Gadījumā, ja viena fotorezistora kāja ir savienota ar zemi, maksimālā sprieguma vērtība atbilst tumsai (fotorezistora pretestība ir maksimāla, gandrīz viss spriegums krītas pāri), un minimālā vērtība atbilst labam apgaismojumam. (pretestība ir tuvu nullei, spriegums ir minimāls). Ja mēs savienosim fotorezistora roku ar barošanas avotu, tad uzvedība būs pretēja.

Pašas dēļa uzstādīšana nedrīkst būt sarežģīta. Tā kā fotorezistoram nav polaritātes, to var pieslēgt abām pusēm, var pielodēt pie plates, savienot ar vadiem, izmantojot shēmas plati, vai savienošanai izmantot parastos klipus (krokodilus). Strāvas avots ķēdē ir pats arduino. Fotorezistors savienots ar vienu kāju ar zemi, otra ir savienota ar dēļa ADC (mūsu piemērā AO). Mēs pievienojam 10 kOhm rezistoru tai pašai kājai. Protams, fotorezistoru var savienot ne tikai ar analogo tapu A0, bet arī ar jebkuru citu.

Daži vārdi par papildus 10K rezistoru.Tam mūsu ķēdē ir divas funkcijas: ierobežot strāvu ķēdē un ar dalītāju veidot ķēdē vēlamo spriegumu. Strāvas ierobežošana ir nepieciešama situācijā, kad pilnībā izgaismots fotorezistors krasi samazina tā pretestību. Un sprieguma veidošana ir paredzēta paredzamām vērtībām analogajā portā. Faktiski normālai darbībai ar mūsu fotorezistoriem pietiek ar 1K pretestību.

Mainot rezistora vērtību, mēs varam “novirzīt” jutības līmeni uz “tumšo” un “gaismo” pusi. Tātad 10 K ātri pārslēgs gaismas iestāšanos. 1K gadījumā gaismas sensors precīzāk noteiks augstus gaismas līmeņus.

Ja izmantojat gatavu gaismas sensora moduli, tad savienojums būs vēl vienkāršāks. Mēs savienojam VCC moduļa izeju ar 5V savienotāju uz plates, GND - ar zemi. Mēs savienojam atlikušās tapas ar arduino savienotājiem.

Ja uz tāfeles ir digitālā izeja, mēs to nosūtām uz digitālajām tapām. Ja analogs - tad analogs. Pirmajā gadījumā mēs saņemsim sprūda signālu - pārsniedzot apgaismojuma līmeni (sprūda slieksni var regulēt, izmantojot regulēšanas rezistoru). No analogajām tapām mēs varēsim saņemt sprieguma vērtību, kas ir proporcionāla reālajam apgaismojuma līmenim.

Fotorezistora gaismas sensora skices piemērs

Pieslēdzām ķēdi ar fotorezistoru arduino, pārliecinājāmies, ka viss ir izdarīts pareizi. Tagad atliek ieprogrammēt kontrolieri.

Ir diezgan viegli ieskicēt gaismas sensoru. Mums ir jānoņem tikai pašreizējā sprieguma vērtība no analogās tapas, kurai ir pievienots sensors. Tas tiek darīts, izmantojot mums visiem zināmo funkciju analogRead (). Pēc tam mēs varam veikt dažas darbības atkarībā no apgaismojuma līmeņa.

Uzrakstīsim skici gaismas sensoram, kas ieslēdz vai izslēdz LED, kas savienots šādi.

Darba algoritms ir šāds:

  • Nosakiet signāla līmeni no analogās tapas.
  • Mēs salīdzinām līmeni ar sliekšņa vērtību. Maksimālā vērtība atbildīs tumsai, minimālā vērtība atbilst maksimālajam apgaismojumam. Mēs izvēlēsimies sliekšņa vērtību, kas vienāda ar 300.
  • Ja līmenis ir mazāks par slieksni, ir tumšs, jums jāieslēdz gaismas diode.
  • Pretējā gadījumā izslēdziet LED.
#define PIN_LED 13 #define PIN_PHOTO_SENSOR A0 tukšuma iestatīšana () (Serial.begin (9600); pinMode (PIN_LED, OUTPUT);) tukšuma cilpa () (int val = analogRead (PIN_PHOTO_SENSOR); Serial.println (val); if ( val< 300) { digitalWrite(PIN_LED, LOW); } else { digitalWrite(PIN_LED, HIGH); } }

Pārklājot fotorezistoru (ar rokām vai necaurspīdīgu priekšmetu), varam novērot gaismas diodes ieslēgšanos un izslēgšanu. Mainot sliekšņa parametru kodā, mēs varam piespiest spuldzi ieslēgt/izslēgt dažādos apgaismojuma līmeņos.

Uzstādot, mēģiniet novietot fotorezistoru un LED pēc iespējas tālāk viena no otras, lai mazāk gaismas no spilgtās LED nonāktu gaismas sensorā.

Gaismas sensors un vienmērīga fona apgaismojuma spilgtuma maiņa

Jūs varat modificēt projektu tā, lai atkarībā no apgaismojuma līmeņa mainītos gaismas diodes spilgtums. Algoritmā tiks veiktas šādas izmaiņas:

  • Mēs mainīsim spuldzes spilgtumu, izmantojot PWM, nosūtot vērtības no 0 līdz 255 uz tapu ar LED, izmantojot analogWrite ().
  • Lai pārveidotu gaismas līmeņa digitālo vērtību no gaismas sensora (no 0 līdz 1023) LED spilgtuma PWM diapazonā (no 0 līdz 255), mēs izmantosim kartes () funkciju.

Skice piemērs:

#define PIN_LED 10 #define PIN_PHOTO_SENSOR A0 tukšuma iestatīšana () (Serial.begin (9600); pinMode (PIN_LED, OUTPUT);) tukšuma cilpa () (int val = analogRead (PIN_PHOTO_SENSOR); Serial.println (val); int ledPower = karte (val, 0, 1023, 0, 255); // Konvertējiet iegūto vērtību PWM signāla līmenī. Jo zemāka ir apgaismojuma vērtība, jo mazāk enerģijas mums jāpiegādā gaismas diodei caur PWM. analogWrite (PIN_LED, ledPower ); // Mainiet spilgtumu)

Citas savienojuma metodes gadījumā, kurā signāls no analogā porta ir proporcionāls apgaismojuma pakāpei, būs nepieciešams papildus “apgriezt” vērtību, atņemot to no maksimālā:

Int val = 1023 - analogRead (PIN_PHOTO_RESISTOR);

Gaismas sensora ķēde uz fotorezistora un releja

Skices piemēri darbam ar releju ir sniegti rakstā par releja programmēšanu arduino. Šajā gadījumā mums nav jāveic sarežģīti žesti: pēc "tumsas" noteikšanas mēs vienkārši ieslēdzam releju, piešķiram tā tapai atbilstošu vērtību.

#define PIN_RELAY 10 #define PIN_PHOTO_SENSOR A0 tukšuma iestatīšana () (pinMode (PIN_RELAY, OUTPUT); digitalWrite (PIN_RELAY, HIGH);) tukšuma cilpa () (int val = analogRead (PIN_PHOTO_SENSOR); if (val)< 300) { // Светло, выключаем реле digitalWrite(PIN_RELAY, HIGH); } else { // Темновато, включаем лампочку digitalWrite(PIN_RELAY, LOW); } }

Secinājums

Projekti, kuros izmanto gaismas sensoru, kura pamatā ir fotorezistors, ir diezgan vienkārši un efektīvi. Jūs varat īstenot daudz interesantu projektu, savukārt aprīkojuma izmaksas nebūs augstas. Fotorezistors ir pievienots saskaņā ar sprieguma dalītāja ķēdi ar papildu pretestību. Sensors ir savienots ar analogo portu, lai izmērītu dažādas gaismas līmeņa vērtības, vai ar digitālo, ja mums rūp tikai tumsas fakts. Skicē mēs vienkārši nolasām datus no analogā (vai digitālā) porta un izlemjam, kā reaģēt uz izmaiņām. Cerēsim, ka tagad jūsu projektos parādīsies tik vienkāršas "acis".

Iepriekšējā nodarbībā uzzinājāt, kā darbojas potenciometrs, kura pretestība mainās atkarībā no roktura - stieņa griešanās. Šajā apmācībā jūs uzzināsiet par fotorezistoru, kas maina savu pretestību atkarībā no tā, cik daudz gaismas ietekmē tā sensora elementu.

Arduino nevar interpretēt pašu pretestību, jo tas attiecas uz spriegumu, tāpēc šī ķēde izmanto sprieguma dalītāju. Dalītājs parasti sastāv no diviem rezistoriem, no kuriem viens būs mūsu fotorezistors, un Arduino nolasīšanas spriegums tiek ņemts no viduspunkta starp tiem, kas tiek padots uz Arduino analogo ieeju (pin 0). Dalītājs izvadīs augstu spriegumu, kad fotorezistors saņem daudz gaismas, un zemu, ja fotorezistors saņem maz gaismas (tumsu).

Šajā apmācībā jums būs nepieciešams:

1. Arduino UNO - 1 gab.

2. LED - 1 gab.

3. Rezistors 10 Kom. - 1 dators.

4. Rezistors no 200 līdz 560 omi. - 1 dators.

5. Fotorezistors

6. Savienojošie vadi.

Arduino un fotorezistors. Savienojuma shēma 6. nodarbībai

Lejupielādējiet nodarbību ar skici un detalizētu nodarbības aprakstu:

ArduinoKit eksperimentu komplekts
Lejupielādējiet programmas kodu eksperimentam Nr. 6:

Izveidotās nodarbības skats izkārtojuma shēmā:

Rezultātā jums vajadzētu redzēt LED, kura spilgtums būs palielināt vai samazināt atkarībā no tā, cik daudz gaismas ietekmē fotorezistoru. Ja tas nemaina tā spilgtumu, pārliecinieties, ka jūs pareizi samontēts shēma. Un pārliecinieties, vai programmas kods ir ielādēts Arduino klājā.

Veiksmi visiem! Gaidām jūsu komentārus par ARDUINO 6. NODARBĪBU - FOTORESTORS.

Nākamajam projektam mēs izmantosim fotorezistoru. Un mēs apsvērsim nakts gaismas ieviešanu guļamistabā, kas automātiski ieslēgsies, kad ir tumšs, un izslēgsies, kad kļūs gaišs.

Fotorezistora pretestība ir atkarīga no tajā ienākošās gaismas. Izmantojot fotorezistoru kopā ar parasto 4,7k omu rezistoru, mēs iegūstam sprieguma dalītāju, kurā mainās spriegums, kas iet caur fotorezistoru, atkarībā no apgaismojuma līmeņa.

Spriegums no dalītāja tiek piemērots Arduino ADC ieejai. Tur mēs salīdzinām saņemto vērtību ar noteiktu slieksni un ieslēdzam vai izslēdzam lampu.

Dalītāja shematiskā diagramma ir parādīta zemāk. Palielinoties apgaismojumam, fotorezistora pretestība samazinās un attiecīgi palielinās spriegums pie dalītāja izejas (un ADC ieejas). Kad apgaismojums krītas, notiek pretējais.

Zemāk esošajā fotoattēlā parādīta samontētā shēma uz maizes dēļa. Spriegumi 0V un 5V tiek ņemti no Arduino. Kāju A0 izmanto kā ADC ieeju.

Arduino skice ir parādīta zemāk. Šajā apmācībā mēs vienkārši ieslēdzam un izslēdzam LED, kas ir iebūvēts Arduino platē. Spilgtāks LED apgaismojums, var pieslēgt 13. kājiņai (caur ~ 220 omu rezistoru). Ja pievienosit jaudīgāku slodzi, piemēram, kvēlspuldzi, tad tas jāpievieno caur releju vai tiristoru.

Programmas kodā ir komentētas sadaļas, tās tiek izmantotas atkļūdošanai. Būs iespējams kontrolēt ADC vērtību (no 0 līdz 1024). Tāpat ir jāmaina koda vērtība 500 (ieslēgšanās un izslēgšanas slieksnis) uz to, ko empīriski atlasīsit, mainot apgaismojumu.

/ * ** Nakts gaisma ** ** www.hobbytronics.co.uk * / int sensorPin = A0; // iestatiet ievades pēdu ADC unsigned int sensorValue = 0; // fotorezistora tukšuma iestatīšanas digitālā vērtība () (pinMode (13, OUTPUT); Serial.begin (9600); // sākt sērijas datu izvadi (testēšanai)) tukšuma cilpa () (sensorValue = analogRead (sensorPin); / / lasīt vērtību no fotorezistora if (sensorValue<500) digitalWrite(13, HIGH); // включаем else digitalWrite(13, LOW); // выключаем // Для отладки раскомментируйте нижеследующие строки //Serial.print(sensorValue, DEC); // вывод данных с фоторезистора (0-1024) //Serial.println(""); // возврат каретки //delay(500); }