Arduino gatelys fotomotstand. Arduino fotoresistor tilkobling. Lyssensor for arduino. Spesifikasjoner BH1750FVI digital belysningsmodul for Arduino

Automatisering av lysforsyning i en leilighet, i et hus eller på gaten oppnås ved bruk av et fotorelé. Hvis den er konfigurert riktig, vil den slå på lyset om kvelden og slå seg av i løpet av dagslyset. Moderne enheter inneholder en innstilling som gjør at du kan stille inn operasjonen avhengig av belysningen. De er en integrert del av «smarthus»-systemet, som overtar en betydelig del av eiernes ansvar. Fotorelékretsen inneholder først og fremst en motstand som endrer motstand under påvirkning av lys. Det er enkelt å montere og tilpasse det med egne hender.

Driftsprinsipp

Tilkoblingsskjemaet for fotorelé inkluderer en sensor, en forsterker og PR1-fotolederen endrer motstand under påvirkning av lys. I dette tilfellet endres størrelsen på den elektriske strømmen som går gjennom den. Signalet forsterkes av en sammensatt transistor VT1, VT2 (Darlington-krets), og går fra den til aktuatoren, som er K1.

I mørket er motstanden til fotosensoren flere mΩ. Under påvirkning av lys synker den til noen få kΩ. I dette tilfellet åpner transistorene VT1, VT2, og slår på reléet K1, som styrer belastningskretsen gjennom kontakten K1.1. VD1-dioden passerer ikke selvinduksjonsstrømmen når reléet er slått av.

Til tross for sin enkelhet har fotorelékretsen høy følsomhet. For å sette den til ønsket nivå, brukes motstanden R1.

Forsyningsspenningen velges i henhold til parametrene til reléet og er 5-15 V. Viklingsstrømmen overstiger ikke 50 mA. Hvis du trenger å øke den, kan du bruke kraftigere transistorer og releer. Følsomheten til fotoreléet øker med økende forsyningsspenning.

I stedet for en fotomotstand kan du installere en fotodiode. Hvis en sensor med økt følsomhet er nødvendig, brukes fototransistorkretser. Bruken av dem er tilrådelig for å spare strøm, siden minimumsresponsgrensen for en konvensjonell enhet er 5 lux, når de omkringliggende gjenstandene fortsatt kan skilles. Terskelen på 2 lx tilsvarer dyp skumring, hvoretter mørket melder seg etter 10 minutter.

Det er tilrådelig å bruke et fotorelé selv med manuell kontroll av belysningen, siden du kan glemme å slå av lyset, og sensoren vil "ta seg av" det på egen hånd. Det er enkelt å installere, og prisen er ganske overkommelig.

Fotocelleegenskaper

Valget av et fotorelé bestemmes av følgende faktorer:

  • fotocellefølsomhet;
  • forsyningsspenningen;
  • bytte strøm;
  • eksternt miljø.

Følsomhet er karakterisert som forholdet mellom den genererte fotostrømmen og verdien av den eksterne lysstrømmen og måles i μA / lm. Det avhenger av frekvensen (spektral) og lysintensiteten (integrert). For å styre belysning i hverdagen er den siste karakteristikken viktig, avhengig av den totale lysstrømmen.

Den nominelle spenningen finner du på enhetens hus eller i det medfølgende dokumentet. Enheter av utenlandsk produksjon kan ha forskjellige forsyningsspenningsstandarder.

Belastningen på kontaktene avhenger av kraften til lampene som fotoreléet er koblet til. Lysfotorelékretser kan sørge for direkte tenning av lamper gjennom sensorkontaktene eller gjennom startere når belastningen er stor.

Utendørs er skumringsbryteren plassert under et forseglet gjennomsiktig deksel. Den beskytter mot fuktighet og nedbør. Ved arbeid i en kald periode påføres oppvarming.

Fabrikklagde modeller

Tidligere ble fotorelékretsen satt sammen for hånd. Nå er ikke dette nødvendig, siden enhetene har blitt billigere og funksjonaliteten utvidet. De brukes ikke bare til ekstern eller intern belysning, men også til kontroll av vanningsanlegg, ventilasjonssystemer, etc.

1. Fotorelé FR-2

Prefabrikkerte modeller er mye brukt i automatiseringsenheter som gatelyskontroll. Du kan ofte se lys som glemmes å være slått av på dagtid. Med tilstedeværelsen av fotosensorer er det ikke behov for manuell kontroll av belysningen.

Det industrilagde fotoreléet FR-2-kretsen brukes til automatisk styring av gatebelysning. Relé K1 er også her. FSK-G1-fotomotstanden med motstand R4 og R5 er koblet til bunnen av transistoren VT1.

Strøm leveres fra en enfaset 220 V. Når belysningen er lav har FSK-G1-motstanden stor verdi og signalet basert på VT1 er ikke nok til å åpne den. Følgelig er transistoren VT2 også lukket. Relé K1 er aktivert og arbeidskontaktene er lukket, og lysene holdes på.

Når belysningen øker til terskelen for drift, reduseres motstanden til fotomotstanden, og deretter slås reléet K1 av og åpner lampeforsyningskretsen.

2. Typer fotorelé

Valget av modeller er stort nok til å kunne velge den rette:

  • med en fjernsensor plassert utenfor produktkroppen, som 2 ledninger er koblet til;
  • deluxe 2 - en enhet med høy pålitelighet og kvalitetsnivå;
  • fotorelé med 12 V strømforsyning og belastning ikke høyere;
  • modul med en timer, montert på en DIN-skinne;
  • IEK-enheter fra en innenlandsk produsent med høy kvalitet og funksjonalitet;
  • AZ 112 - automatisk maskin med høy følsomhet;
  • ABB, LPX er pålitelige produsenter av europeiske kvalitetsenheter.

Metoder for å koble til et fotorelé

Før du kjøper en sensor, er det nødvendig å beregne kraften som forbrukes av lampene og ta en margin på 20%. Med en betydelig belastning sørger gatefotorelékretsen for en ekstra installasjon av en elektromagnetisk starter, hvis vikling må slås på gjennom kontaktene til fotoreléet, og bytte belastningen med strømkontakter.

For hjemmet brukes denne metoden sjelden.

Før installasjon kontrolleres strømforsyningsspenningen ~ 220 V. Tilkobling gjøres fra en effektbryter. Fotosensoren er installert på en slik måte at lyset fra lommelykten ikke faller på den.

Enheten bruker terminaler for tilkobling av ledninger, noe som gjør installasjonen enklere. Hvis de mangler, brukes en koblingsboks.

På grunn av bruken av mikroprosessorer har kretsen for å koble fotoreléet med andre elementer fått nye funksjoner. En timer og en bevegelsessensor ble lagt til handlingsalgoritmen.

Det er praktisk når lampene automatisk slår seg på når en person passerer langs en trapp eller langs en hagesti. Dessuten skjer utløsningen bare i mørket. På grunn av bruk av timeren reagerer ikke fotoreléet på frontlykter fra forbipasserende biler.

Det enkleste koblingsskjemaet for en timer med bevegelsessensor er sekvensielt. For dyre modeller er det utviklet spesielle programmerbare kretser som tar hensyn til ulike driftsforhold.

Fotorelé for gatebelysning

For å koble til fotoreléet påføres kretsen på kroppen. Den finnes i dokumentasjonen for enheten.

Tre ledninger kommer ut av enheten.

  1. Nullleder - felles for lamper og fotorelé (rødt).
  2. Fase - koblet til enhetens inngang (brun).
  3. Potensialleder for tilførsel av spenning fra fotoreléet til lampene (blå).

Enheten fungerer etter prinsippet om å avbryte eller slå på en fase. Fargekodingen kan variere fra produsent til produsent. Hvis det er en jordleder i nettverket, er den ikke koblet til enheten.

I modeller med en innebygd sensor, som er plassert inne i en gjennomsiktig kasse, er arbeidet med gatebelysning autonomt. Du trenger bare å levere strøm til den.

Varianter med fjerning av sensoren brukes i tilfellet når det er praktisk å plassere den elektroniske fyllingen av fotoreléet i et kontrollpanel med andre enheter. Da er det ikke behov for frittstående installasjon, trekking av strømledninger og vedlikehold i høyden. Den elektroniske enheten plasseres inne i rommet, og sensoren tas ut.

Funksjoner av et fotorelé for gatebelysning: diagram

Når du installerer et fotorelé på gaten, må noen faktorer tas i betraktning.

  1. Tilstedeværelsen av forsyningsspenningen og samsvaret mellom kraftene til kontaktene og lasten.
  2. Installasjon av enheter i nærheten av brennbare materialer og i et aggressivt miljø er ikke tillatt.
  3. Basen på enheten er plassert i bunnen.
  4. Det må ikke være noen svingende gjenstander foran sensoren, for eksempel tregrener.

Kablingen gjøres gjennom koblingsboksen utendørs. Den er festet ved siden av fotoreléet.

Valg av fotorelé

  1. Evnen til å justere responsterskelen lar deg justere følsomheten til sensoren avhengig av årstid eller i overskyet vær. Resultatet er energisparing.
  2. Et minimum av arbeidskraft er nødvendig når du installerer et fotorelé med et innebygd følsomt element. Dette krever ingen spesielle ferdigheter.
  3. Tidsreléet er godt programmert for sine behov og fungerer i innstilt modus. Du kan konfigurere enheten til å slå seg av om natten. Indikasjon på enhetens kropp og trykknappkontroll gir enkel justering.

Konklusjon

Bruken av et fotorelé lar deg automatisk kontrollere perioden når lampene er slått på. Nå har behovet for yrket som lampetenner forsvunnet. Fotorelékretsen uten menneskelig innblanding om kveldene slår på lysene på gatene og slår den av om morgenen. Enhetene kan styre lyssystemet, noe som øker ressursen og gjør driften enklere.

Den innebygde ADC-en til mikrokontrolleren, vurdert i forrige del av anmeldelsen, lar deg enkelt koble forskjellige analoge sensorer til Arduino-kortet, som konverterer de målte fysiske parametrene til elektrisk spenning.

Et eksempel på den enkleste analoge sensoren er en variabel motstand koblet til et kort, som vist i fig. 1. Det kan være av hvilken som helst type, for eksempel SP3-33-32 (fig. 2). Motstandsverdien i diagrammet er angitt grovt og kan enten være mindre eller mer. Imidlertid bør det huskes at jo lavere motstanden til den variable motstanden er, jo mer strøm bruker den fra strømforsyningen til mikrokontrolleren. Og når motstanden til signalkilden (i dette tilfellet den variable motstanden) er mer enn 10 kOhm, fungerer ADC-en til mikrokontrolleren med store feil. Vær oppmerksom på at motstanden til den variable motstanden som signalkilde avhenger av posisjonen til glidebryteren. Den er lik null i sine ekstreme posisjoner og maksimum (lik en fjerdedel av den nominelle motstanden) i midtposisjonen.

Ris. 1. Koblingsskjema for en variabel motstand til kortet

Ris. 2. SP3-33-32

Det er praktisk å bruke en variabel motstand når du trenger å endre parameteren jevnt, og ikke i trinn (diskret). Som et eksempel, vurder arbeidet vist i tabellen. 1 program som endrer lysstyrken til LED avhengig av posisjonen til glidebryteren for variabel motstand. U = U / 4-linjen er nødvendig i programmet for å konvertere et ti-bits binært tall returnert av ADC til en åtte-bits, som aksepteres som den andre operanden av analogWrite ()-funksjonen. I det aktuelle tilfellet gjøres dette ved å dele det opprinnelige tallet med fire, som tilsvarer å forkaste de to minst signifikante binære sifrene.

Tabell 1.

En variabel motstand av passende design kan tjene som en roterende vinkel- eller lineær forskyvningssensor. På samme måte kan den kobles til mange radioelementer: fotomotstander, termistorer, fotodioder, fototransistorer. Kort sagt, enheter hvis elektriske motstand avhenger av visse miljøfaktorer.

I fig. 3 viser koblingsskjemaet til fotomotstanden til Arduino. Når belysningen endres, endres dens elektriske motstand og følgelig spenningen ved den analoge inngangen til Arduino-kortet. FSK-1-fotomotstanden angitt i diagrammet kan erstattes av en hvilken som helst annen, for eksempel SF2-1.

Ris. 3. Koblingsskjema over fotomotstand til Arduino

Bord 2 viser et program som gjør et Arduino-kort med en fotomotstand koblet til den enkleste lysmåleren. Mens den arbeider, måler den med jevne mellomrom spenningsfallet over motstanden koblet i serie med fotomotstanden, og overfører resultatet i vilkårlige enheter gjennom den serielle porten til datamaskinen. De vil bli vist på skjermen til Arduino feilsøkingsterminalen, som vist i fig. 4. Som du kan se, på et bestemt tidspunkt falt den målte spenningen kraftig. Dette skjedde da en sterkt opplyst fotodiode ble skjult av en ugjennomsiktig skjerm.

Tabell 2.

Ris. 4. Bildet på skjermen til Arduino feilsøkingsterminalen

For å oppnå belysningsverdier i lux (standard SI-enheter), må du multiplisere resultatene oppnådd med en korreksjonsfaktor, men du må velge den eksperimentelt og individuelt for hver fotomotstand. Dette krever en eksemplarisk lysmåler.

En fototransistor eller fotodiode (Figur 5) er koblet til Arduinoen på lignende måte. Ved hjelp av flere lysfølsomme enheter er det mulig å konstruere det enkleste synssystemet for en robot. Det er også mulig på et nytt teknisk nivå å implementere mange klassiske design kjent for en bred krets av radioamatører - en kybernetisk modell av en møll eller en modell av en tank som beveger seg inn i lyset.

Ris. 5. Koblingsskjema over fotodiode til Arduino

I likhet med fotomotstanden er en termistor koblet til Arduinoen (fig. 6), som endrer dens elektriske motstand avhengig av temperaturen. I stedet for MMT-4-termistoren angitt på diagrammet, hvis største fordel er et forseglet hus, kan du bruke nesten hvilken som helst annen, for eksempel MMT-1 eller importert.

Ris. 6. Koblingsskjema for termistor til Arduino

Etter riktig kalibrering kan en slik enhet brukes til å måle temperatur i alle slags hjemmeværstasjoner, termostater og lignende strukturer.

Det er kjent at nesten alle lysdioder kan tjene ikke bare som lyskilder, men også som mottakere - fotodioder. Faktum er at krystallen til LED-en er i en gjennomsiktig kasse, og derfor er p-n-krysset tilgjengelig for lys fra eksterne kilder. I tillegg har LED-kroppen som regel formen av en linse som fokuserer ekstern stråling på dette krysset. Under dens påvirkning endres for eksempel den omvendte motstanden til pn-krysset.

Ved å koble LED-en til Arduino-kortet i henhold til diagrammet vist i fig. 7 kan en og samme LED brukes både til det tiltenkte formålet og som fotosensor. Et program som illustrerer denne modusen er vist i tabellen. 3. Ideen er at først en omvendt spenning påføres pn-krysset til LED-en, som lader kapasiteten. LED-katoden blir deretter isolert, og konfigurerer som en inngang Arduino-pinnen som den er koblet til. Etter det måler programmet varigheten av utladningen av kapasitansen til p-n-krysset til LED-en med sin egen reversstrøm, avhengig av den eksterne belysningen, til nivået av logisk null.

Ris. 7. Diagram over tilkobling av LED-en til Arduino-kortet

Tabell 3

I programmet ovenfor er variabelen t beskrevet som usignert int - et heltall uten fortegn. En variabel av denne typen, i motsetning til en vanlig int, som tar verdier fra -32768 til +32767, bruker ikke sin mest signifikante bit til å lagre tegnet og kan ta verdier fra 0 til 65535.

Programmet beregner utladingstiden i mens (digitalRead (K)! = 0) t ++ sløyfe. Denne syklusen utføres, hver gang øker verdien av t med én, inntil tilstanden i parentes er sann, det vil si til spenningen ved katoden til LED-en faller til et logisk lavt nivå.

Noen ganger kreves det at roboten ikke bare mottar informasjon om belysningen av overflaten den beveger seg på, men også kan bestemme fargen. En fargesensor for den underliggende overflaten er implementert, som lyser den vekselvis med lysdioder med forskjellige glødefarger og sammenligner nivåene av signaler som reflekteres fra den med forskjellig belysning ved hjelp av en fotodiode. Tilkoblingsskjemaet for elementene i fargesensoren med Arduino-kortet er vist i fig. 8, og programmet som serverer det er i tabellen. 4.

Ris. 8. Koblingsskjema over elementene i fargesensoren med Arduino-kortet

Tabell 4

Prosedyren for å måle signalene mottatt av fotodioden under forskjellig belysning av overflaten av signalene gjentas mange ganger, og de oppnådde resultatene akkumuleres for å utelukke tilfeldige feil. Deretter velger programmet den største av de akkumulerte verdiene. Dette gjør det mulig å grovt bedømme fargen på overflaten. For en mer nøyaktig bestemmelse av fargen, er det nødvendig å komplisere behandlingen av resultatene, ikke bare ta hensyn til de største av dem, men også forholdet til de mindre. Det er også nødvendig å ta hensyn til den virkelige lysstyrken til lysdioder med forskjellige glødefarger, samt spektralegenskapene til den påførte fotodioden.

Et eksempel på utformingen av en fargesensor bestående av fire lysdioder og en fotodiode er vist i fig. 9. De optiske aksene til LED-ene og fotodioden bør konvergere på ett punkt på den undersøkte overflaten, og selve enhetene er plassert så nært som mulig for å minimere effekten av fremmedlys.

Ris. 9. Et eksempel på utformingen av en fargesensor fra fire lysdioder og en fotodiode

Den sammensatte sensoren krever nøye individuell kalibrering på overflater med forskjellige farger. Det koker ned til et utvalg koeffisienter som måleresultatene oppnådd under ulike lysforhold skal multipliseres med før sammenligning. En robot utstyrt med en slik sensor kan læres å utføre interessante bevegelsesalgoritmer. For eksempel vil han kunne bevege seg rundt arbeidsfeltet i samme farge, uten å bryte grensene til de "forbudte" sonene, malt i en annen farge.

Et eksempel på tilkobling av en fotomotstand for å styre en LED

Dette eksemplet demonstrerer å koble til en fotomotstand for å kontrollere en LED for å lage en analog av et nattlys. Motstanden til fotomotstanden avhenger av intensiteten til lyset som faller inn på den, derfor, når belysningen avtar, vil LED-en lyse sterkt og slå seg av i sterkt lys.

Nødvendige komponenter

  • Brød bord;
  • Motstand på 220 ohm;
  • Motstand på 10 kΩ;
  • Fotomotstand med nominell motstand 200 kohm;
  • En rød LED;
  • Jumper ledninger;

Opplegg

Koble 9 den digitale pinn til Arduino med en av pinnene 220 ohm-te motstand, koble den andre terminalen til denne motstanden til anoden på LED (langt ben), og katoden til LED til jord (kontakt GND på Arduino-brettet). Kontakt 5V koble Arduino-kortet til en av pinnene på fotomotstanden, og koble den andre pinnen til 0 -th analoge pinne til Arduino og med en av pinnene 10 kohm motstanden, koble den andre terminalen til motstanden til jord (kontakt GND på Arduino-brettet).

En resistiv spenningsdeler består av to motstander; utgangsspenningen avhenger av motstandsforholdet. I dette eksemplet er en av motstandene variabel (fotoresistor, for en nominell motstand på 200 kohm, det vil si i fullstendig mørke, vil motstanden til fotomotstanden være lik den nominelle, og i sterkt lys vil den falle til nesten null), slik at vi kan få en spenningsendring. En annen motstand bestemmer følsomheten. Hvis du bruker en trimmermotstand, kan du lage en justerbar følsomhet.

Skalaen og nøyaktigheten til avlesningene avhenger av hvor fotomotstanden er plassert og verdien av den konstante motstanden i spenningsdelerkretsen. Endre skjemaet og se gjennom portmonitoren (for dette kan du laste ned koden fra delen "Kode for justering av parametere" nedenfor) hvordan avlesningene endres.

I portmonitoren i det første og andre tilfellet vil du se at du ikke vil få hele spekteret av verdier (fra 0 til 1023), fordi motstanden til fotomotstanden aldri vil være null. Men du vil være i stand til å bestemme minimum (MIN_LIGHT) og maksimum (MAX_LIGHT) belysningsverdier (verdiene avhenger av lysforholdene, verdien av konstantmotstanden og egenskapene til fotomotstanden), for å bygge vår " nattlys".

Kode

Last opp skissen nedenfor til Arduino-brettet ditt.

    #define RLED 9 // Koble den røde LED-en til den niende digitale pinnen med PWM-støtte

  1. int val = 0; // Variabel for lagring av avlest verdi fra sensoren

  2. ugyldig oppsett ()

    pinMode (RLED, OUTPUT); // Sett pin 9 som utgang

  3. void loop ()

    val = analogLes (LYS); // les verdien fra den analoge inngangen

    val = kart (val, MIN_LIGHT, MAX_LIGHT, 255, 0); // transformer området av leseverdier

    val = begrensning (val, 0, 255); // "definer" utvalget av gyldige verdier

    analogWrite (RLED, val); // kontroller LED

  • Merk: I dette eksemplet er en fotomotstand med en nominell motstand på 200 kohm... Hvis du har en fotomotstand med en annen karakter, må du kanskje endre minimum (MIN_LIGHT) og maksimum (MAX_LIGHT) belysningsverdier.

Parameterkorrigeringskode

Hvis du har en fotomotstand med en annen klassifisering, må du kanskje korrigere minimum (MIN_LIGHT) og maksimum (MAX_LIGHT) belysningsverdier. For å gjøre dette, legg til to linjer med kode (uthevet i farger). Og bestem minimum (MIN_LIGHT) og maksimum (MAX_LIGHT) verdier for belysningen ved å blokkere (og omvendt) med hånden tilgangen til lys for fotomotstanden og observere endringene i verdiene ved å bruke den serielle monitoren. Etter å ha korrigert, kan du kommentere de lagte kodelinjene.

    #define RLED 9 // Koble den røde LED-en til den niende digitale pinnen med PWM-støtte

    #define LIGHT 0 // Koble fotomotstanden til den 0. analoge pinnen

    #define MIN_LIGHT 200 // Minimum belysningsverdi

    #define MAX_LIGHT 900 // Maksimal belysningsverdi

I dag skal vi lage en skisse og en prototype av kretsen på Arduino ved hjelp av en fotomotstand. Her er en fotomotstand plassert her, jeg har satt sammen en slik layout, den ser ut som en nyttårs LED-krans fra tidligere artikler.

Vi har 8 lysdioder, de er installert slik at det korte benet til venstre er et minus, det lange benet til høyre er et pluss. Så de er alle installert, kretsen bruker en 10 kilo-ohm motstand, jeg tok den fra settet Arduino-sett, og det brukes 8 motstander koblet til den positive kontakten til LED med 220 ohm, slik kobles den.


Brukte 8 svarte ledninger er negative, og grønne 8 stykker - kontrollpinner fra den tolvte til den femte. I prosessen med feilsøking ble den ekstreme svarte erstattet med grønn, men mer om det senere.

Fotomotstanden er her, ved siden av er en 10kilohm motstand, den blå jumperen går til minus, den oransje er koblet i den ene enden til midtpunktet, mellom motstanden og fotomotstanden, den andre enden til brettet Arduino, i A0 (analog pinne).

Rød er 5 volt, og kretsen vil fungere gjennom denne spenningsdeleren, lysdiodene vil lyse opp, avhengig av belysningsnivået. Jeg skal fikse lysdiodene, konstruksjonen er ganske vinglete. La oss gå tilbake til modellen, men la oss nå begynne å skrive en skisse.

La oss lage et nytt prosjekt, og begynne å skrive, erklære konstanter, flere stykker, la det være en type int, vil dette være antall pinner, siden det er 8 lysdioder i kretsen. Dette vil indikere hvor mange lysdioder som ble brukt i kretsen.

const int NbrLEDs = 8;

La oss lage en matrise med pin-numre, bruke 5 6 7 8 9 10 11 12 digitale kontakter, angi pin-nummeret som belysningsnivået er filmet på, deklarere en variabel for fotomotstanden, sensorverdien, og også deklarere belysningsnivået slik at at vi kan bryte dem ned med stifter.

const int ledPins = (5, 6, 7, 8, 9, 10, 11, 12); const int fotocellePin = A0; int sensorValue = 0; int ledLevel = 0;

I oppsettssubrutinen vil vi skrive en sløyfe der vi, for ikke å tilordne hver verdi som går ut gjennom pinMode, vil gå gjennom alle pinner, tilordne dem verdier i pinmode fra matrisen og tilordne en OUTPUT-verdi til hver pinne .

void oppsett () (for (int led = 0; led< NbrLEDs; led++) { pinMode(ledPins, OUTPUT); } }

I prinsippet kunne du ikke gjøre dette, du kan spesifisere pinmode og deretter skrive fem, deretter 6, og så videre, men dette er veldig lang tid og dette er en vill barbarisk metode. Derfor, i løkken, i ett pass, vil vi gå gjennom alle pinnene.

pinMode (5, OUTPUT); pinMode (6, OUTPUT);

I loopen får vi verdien av sensoren ved å lese gjennom analogRead fra pinne A0.

La oss deretter bryte ned sensorverdien, ved å bruke kartfunksjonen får vi sensorverdien, og basert på belysningsnivået, med en følsomhet på 300 til maksimal verdi 1023 , vil bli fordelt på 8 pinner, som er annonsert ovenfor.

Se også videoen Fotomotstand og lysdioder på Arduino - (video), lenken åpnes i en ny fane.

Lenger i sløyfen vil vi gå gjennom alle pinnene, så vi la til parenteser, starter med den første LED-en, hvis telleren ikke er mer enn 8, vil vi legge til, og så vil vi sjekke med betingelsen at hvis LED-nummeret er mindre enn lysnivået, vil vi bruke alle tidligere spenninger til denne LED-en gjennom HØY-konstanten.

Hvis ikke, vil vi skrive ned fraværet av spenning i den, og LED-en vil ikke lyse opp.

void loop () (sensorValue = analogRead (photocellPin); ledLevel = map (sensorValue, 300, 1023, 0, NbrLEDs); for (int led = 0; led< NbrLEDs; led++) { if (led < ledLevel) { digitalWrite(ledPins, HIGH); } else { digitalWrite(ledPins,LOW); } } }

Justere koden via hurtigtasten ctrl + T og la oss nå se hva som skjer, kjør det for verifisering, lagre skissen.

Så kompilering av skissen, last den nå opp til Arduino... La oss gå tilbake til diagrammet, for øyeblikket lyser ikke en LED når belysningen endres på grunn av dårlig kontakt.


Nå skal jeg fikse det, vi vil ikke røre det, hvis jeg slår av belysningen, vil alle lysdiodene gå ut. Hvis jeg belyser fotomotstanden med en lommelykt og jevnt legger til belysning, vil nesten alle LED-ene lyse opp, og følgelig fjerner jeg, reduserer belysningsnivået, antall LED-er vil endres.


Hvis jeg slår på alle lysene, er nesten alt på, hva er problemet med denne LED-en. Jeg brukte mye tid på det, alt er riktig montert her, jeg kastet til og med et minus med en bevisst fungerende grønn ledning, men av en eller annen grunn er den lunefull og brenner ikke.


La oss nå gå tilbake til skissen og se hva som er galt. Eksemplet er hentet fra den offisielle kilden, på disk til Arduino det er samme kode.

I skissen er fordelingen av belysning hentet fra 300 før 1023 (maksimal verdi), et forsøk på å endre den opprinnelige terskelen til 0 - gir ingen resultater.

Men hvis vi fordeler hele denne verdien i 8 deler, vil en kalkulator komme godt med, viser det seg, enten gir motstanden ved 10 kilo-ohm en feil av noe slag, du må dele 1023 med 8, vi får praktisk talt 128 , hvis vi tar det riktig, så 1024 delt på 8, dette er og det er 128.

Nå må du trekke 128 fra 1023, sette verdien 895 her, så, i henhold til tingenes logikk, skal alt være bra. La oss laste ned og se hva som endres.

void loop () (sensorValue = analogRead (photocellPin); ledLevel = map (sensorValue, 0, 895, 0, NbrLEDs); for (int led = 0; led< NbrLEDs; led++) { if (led < ledLevel) { digitalWrite(ledPins, HIGH); } else { digitalWrite(ledPins,LOW); } } }

Nå er alle lysdiodene på, la oss prøve å blokkere belysningen, eller la oss slå den av ...

Startverdien må fortsatt returneres 300, siden den leveres til disse tre første strømlampene. La oss endre 0 til 300 i skissen, som det var, det ble gjort av en grunn, last inn skissen på nytt og se hva som endres denne gangen ...

void loop () (sensorValue = analogRead (photocellPin); ledLevel = map (sensorValue, 300, 895, 0, NbrLEDs); for (int led = 0; led< NbrLEDs; led++) { if (led < ledLevel) { digitalWrite(ledPins, HIGH); } else { digitalWrite(ledPins,LOW); } } }

Nå er den første LED-en på, med minimalt med belysning, hvis du skrur på alt, og der har jeg 1800 lux, av to meter LED-stripe er alt på som det skal.


Når den er slått av, fanger fotomotstanden opp gjenværende belysning i rommet, lysekronen er på, ikke fullstendig mørke, og den utløses. Men hvis du lyser med en lommelykt, jevnt påfører lys på fotomotstanden, fungerer kretsen riktig.


Hvis vi slår av lyset helt, får vi se hva som skjer i totalt mørke. Som du kan se, i fullstendig fravær av lys, reagerer fotomotstanden riktig, lysdiodene lyser gradvis, ettersom belysningen øker. Når lyset er på, er alt på. En slik skisse viste seg, med et liv hack - justering av følsomheten til fotomotstanden, i henhold til dine behov.


Fotomotstand
IMHO truede arter. Sist jeg så ham var da jeg var barn. Vanligvis er det et slikt metall rundt tømmer med et glassvindu, som man kan se slike. Når den er opplyst, faller motstanden, om enn ubetydelig, tre til fire ganger.

Fototransistor
Nylig har jeg kommet over dem konstant, en uuttømmelig kilde til fototransistorer - fem-tommers diskettstasjoner. Sist gang jeg, for prisen av skitt, satte på et radioloppemarked ca. 5 stykker av et lommetørkle fra oppdager, der er transistorene på motsatt side av hullene for å kontrollere opptak og rotasjon av disketten. En annen dobbel fototransistor (eller kanskje en fotodiode, som flaksen ville ha det) er i en vanlig ballmus.
Det ser ut som en vanlig LED, bare dekselet er gjennomsiktig. Imidlertid er LED også de samme, så for å forvirre hvem av dem som spytter hvem bare én gang. Men det spiller ingen rolle, partisanen beregnes enkelt med et vanlig multimeter. Det er nok å slå på et ohmmeter mellom emitteren og samleren (den har ikke en base) og skinne på den, siden motstanden vil kollapse ganske enkelt katastrofalt - fra titalls kilo-ohm til noen få ohm. Den som jeg har i detektoren for rotasjon av gir i roboten endrer motstanden fra 100 kOhm til 30 Ohm. Fototransistoren fungerer som en vanlig - den holder strømmen, men som en kontrollhandling er det ikke basisstrømmen, men lysstrømmen.

Fotodiode
Utad er det ikke forskjellig fra en fototransistor eller en vanlig LED i en gjennomsiktig kasse. Noen ganger er det også eldgamle fotodioder i metallhus. Vanligvis er dette spadeapparater, FD-cheto-merker der. En sånn metallsylinder med et vindu i enden og ledninger som stikker ut av rumpa.

I motsetning til en fototransistor, kan den operere i to forskjellige moduser. I solcelle og fotodiode.
I den første, fotovoltaiske versjonen, oppfører fotodioden seg som et solcellebatteri, det vil si at den skinner på den - en svak spenning har oppstått ved terminalene. Det kan styrkes og brukes =). Men det er mye lettere å jobbe i fotodiodemodus. Her legger vi en omvendt spenning til fotodioden. Siden det er et foto, men en diode, vil spenningen ikke gå i motsatt retning, noe som betyr at motstanden vil være nær en åpen krets, men hvis den lyser, vil dioden begynne å etse veldig sterkt og dens motstand vil synke kraftig. Og skarpt, med et par størrelsesordener, som en fototransistor.

Spektrum
I tillegg til typen enhet har den også et fungerende spektrum. For eksempel reagerer en fotodetektor som er skjerpet for det infrarøde spekteret (og det er de fleste av dem) praktisk talt ikke på lyset fra en grønn eller blå LED. Den reagerer dårlig på et lysrør, men reagerer godt på en glødelampe og en rød LED, og ​​det er ingenting å si på infrarød. Så ikke bli overrasket om fotosensoren din reagerer dårlig på lys, kanskje du har gjort en feil med spekteret.

Forbindelse
Nå er det på tide å vise hvordan du kobler dette til mikrokontrolleren. Med fotomotstanden er alt klart, det er ingen problemer her - du tar den og kobler den til som i henhold til skjemaet.
Fotodioden og fototransistoren er mer kompliserte. Det er nødvendig å bestemme hvor hans anode / katode eller emitter / samler er. Dette gjøres enkelt. Du tar et multimeter, setter det i diodeoppringingsmodus og klamrer deg til sensoren din. Multimeteret i denne modusen viser spenningsfallet over dioden / transistoren, og spenningsfallet her avhenger hovedsakelig av motstanden U = I * R. Du tar og lyser opp sensoren, følger avlesningene. Hvis tallet synker kraftig, gjettet du riktig og den røde ledningen er på katoden/samleren din, og den svarte er på anoden/emitteren. Hvis den ikke har endret seg, bytt ut pinnene. Hjelper det ikke, så er enten detektoren død, eller så prøver du å få respons fra lysdioden (lysdioder kan forresten også fungere som lysdetektorer, men det er ikke så enkelt der. Men når jeg ha tid, jeg skal vise deg denne teknologiske perversjonen).


Nå om kretsens arbeid er alt elementært her. I mørk tilstand passerer ikke fotodioden strøm i motsatt retning, fototransistoren er også lukket, og motstanden til fotomotstanden er veldig høy. Inngangsmotstanden er nær uendelig, noe som betyr at inngangen vil ha full forsyningsspenning aka en logisk enhet. Det er verdt nå å lyse opp dioden / transistoren / motstanden når motstanden synker kraftig, og utgangen viser seg å være plantet tett på bakken, eller veldig nær bakken. Uansett vil motstanden være mye lavere enn en 10kΩ motstand, noe som betyr at spenningen plutselig forsvinner og vil være et sted på et logisk nullnivå. Du trenger ikke engang å sette en motstand i AVR og PIC, en intern pull-up er nok. Så DDRx = 0 PORTx = 1 og du vil være fornøyd. Vel, snu den som en vanlig knapp. Den eneste vanskeligheten kan oppstå med en fotoresistor - motstanden faller ikke så kraftig, så den når kanskje ikke null. Men her kan du leke med størrelsen på pull-up-motstanden og sørge for at endringen i motstand er nok til å gå gjennom det logiske nivået.

Hvis det er nødvendig å måle belysningen, og ikke dumt å fange lys / mørke, vil det være nødvendig å koble alt til ADC og gjøre pull-up motstanden variabel for å justere parametrene.

Det finnes også en avansert type fotosensorer - TSOP det er innebygget frekvensdetektor og forsterker, men det skal jeg skrive om litt senere.

ZY
Jeg har noen parker her, så siden blir veldig dum med oppdateringen, tror det blir til slutten av måneden. Da håper jeg å komme tilbake til samme rytme.