Jeg tror det er mennesker som er litt upraktiske å stadig nærme seg lampen og slå på lyset, og det er derfor det er et ønske om å få hele lampen til å tennes uavhengig av hverandre. Ja, det er "smarte" stikkontakter som styres via Wi-Fi, det er enklere som du kan stille inn svartid på, men du kan selvfølgelig alltid kjøpe en dimmer og ikke bekymre deg. Men alt dette kan gjøres. gjør det selv (unntatt for Wi-Fi-uttak), selv om dette alternativet er for for eksempel LED-strips, siden det vil være noen nyanser når du styrer bruddet, hos personen til den nevnte dimmeren. I vårt tilfelle vil lysstyrken, avhengig av den omgivende belysningen, endre seg jevnt.
Nødvendige detaljer
1., i dette tilfellet - Nano, kan du gjøre noe mindre, for eksempel Micro
2. Et lysfølsomt element, her er en motstand (18 KOhm) og en fotoresistor (jeg har en SF-2 6A) koblet i serie. Alt dette vil fungere nesten som en innstillingsmotstand.
3. MOSFET-transistor, bedre svakere, 55 ampere er for mye (hvis strømforbruket er lite, er det ikke nødvendig med en spesielt kraftig transistor)
4. Selvfølgelig, ledninger. En tynn ledning er nødvendig for å lede "sensoren" nærmere vinduet, den som er tykkere er koblet til lampens strømforsyning og til Arduinka (og selve modulen trenger ikke å henges på en tykk ledning, den forbruker lite uansett)
Assembly. Trinn 1
Arbeidet med denne typen lyssensorer bør sjekkes på en god måte, fordi jeg prøvde å gjøre alt så billig og enklere som mulig.
For å gjøre det trenger du en motstand og en fotoresistor. Vi kobler dem i serie, 5V og GND-pinner vil være koblet til begynnelse og slutt, den sentrale vil være koblet til den gitte analoge kontakten i firmware, nummeret vil endres.
Hvis det er noen tvil om at en slik sensor ikke fungerer veldig bra, kan du sjekke den ved å bruke koden nedenfor og portmonitoren.
Kode for å sjekke om du er i tvil:
#define potent_pin 0 // Midtfots kontakt, 0 endringer til noen annen analog
int val;
ugyldig oppsett () {
Serial.begin (9600); // Aktiver utgang til port ved 9600 baud
}
void loop () {
val = analogLes (potent_pin);
val = kart (val, 0, 1023, 0, 100); // 100 kan erstattes med hvilken som helst verdi opp til 1023 inkludert
val = begrensning (val, 0, 100); // 100 endring til verdien spesifisert over, hvis den ble endret
Serial.println (val); // utgang til portmonitor
forsinkelse (30); // forsinkelse
}
Hvis utgangsverdiene endres, avhengig av belysning, er alt i orden
Assembly. Trinn 2
Flott, sensoren fungerer. Nå er det på tide å lage en kode for å generere et PWM-signal for å kontrollere et feltarbeid.
FORSIKTIG. PWM på ATmega168 / ATmega328-kontrollere genereres bare ved 3, 5, 6, 9, 10 og 11 digitale pinner.
Kode 2:
int pwm;
ugyldig oppsett () {
}
void loop () {
pwm = analogLes (0);
pwm = kart (pwm, 1023, 0, 0, 255);
pwm = begrensning (pwm, 0, 255);
analogWrite (3, pwm-255); // PWM til den tredje digitale
}
Tallet 255 kan endres i området fra 0 til 1023 inkludert, og denne verdien kan endres direkte mens du er på farten. Som praksis har vist meg, er maksimalt 255 det beste alternativet, hvis mindre - brenner for lyst på dagtid, hvis mer - brenner svakere enn når det er nødvendig.
Assembly. finale
Ved 5V- og GND-pinnen lodder vi de ekstreme kontaktene til motstanden vår, ved A0 satte vi den midterste. Vi lodder porten til felteffekttransistoren til D3, kilden til minuskraften fra Arduino og strømforsyningen, lysdiodene til minus til avløpet og pluss av kraften til pluss av kilden. Det ser skjematisk ut slik:
Det er ikke nødvendig å sette en felteffekttransistor på en radiator, med mindre naturligvis en kraftig brukes, men det er ingen mening i en spesielt kraftig. Men en lang ledning var nødvendig for å føre sensoren til et sted der eksternt lys ikke faller, for eksempel bak en blomst eller utenfor et vindu, etc. Det anbefales å sette en kondensator på strømforsyningen og avløpet til felteffekttransistoren, for eksempel begynte båndet mitt å fungere egentlig ikke riktig. Arduino kan ikke drives fra USB eller strømforsyningen fra telefonen, men fra båndstrømforsyningen, ved å tilføre en spenning på 7-15 volt til GND og VIN.
Saken er laget av kroppen til den drepte strømforsyningen, der jeg satte strømforsyningen til båndet og Arduino, med en loddet kontakt. Han passet nesten i størrelse, men han var allerede konstant på bånd.
Så jeg lukket sensoren med hånden:
Men jeg holder ikke hånden over ham:
Hvor kan dette komme til nytte?
Denne designen kan hjelpe med ethvert delikat arbeid der du trenger stabil bakgrunnsbelysning, for eksempel hvis du glemte å slå på lyset, men båndet er slått på. Det er også praktisk å bruke den hvis du har frøplanter et sted for ytterligere beplantning på hagesengen. Hvor er det å bruke, selvfølgelig, til å dømme for deg.
PS! Det er sant at hendene mine er skjeve og jeg stakk lysdioden feil på kretsen.
#define potent_pin 0 // Midtfots kontakt, 0 endringer til noen annen analog
int val;
ugyldig oppsett () {
Serial.begin (9600); // Aktiver utgang til port ved 9600 baud
}
void loop () {
val = analogLes (potent_pin);
val = kart (val, 0, 1023, 0, 100); // 100 kan erstattes med hvilken som helst verdi opp til 1023 inkludert
val = begrensning (val, 0, 100); // 100 endring til verdien spesifisert over, hvis den ble endret
Serial.println (val); // utgang til portmonitor
forsinkelse (30); // forsinkelse
}
int pwm;
ugyldig oppsett () {
}
void loop () {
pwm = analogLes (0);
pwm = kart (pwm, 1023, 0, 0, 255);
pwm = begrensning (pwm, 0, 255);
analogWrite (3, pwm-255); // PWM til den tredje digitale
}
Ved 5V- og GND-pinnen lodder vi de ekstreme kontaktene til motstanden vår, ved A0 satte vi den midterste. Vi lodder porten til felteffekttransistoren til D3, kilden til minuskraften fra Arduino og strømforsyningen, lysdiodene til minus til avløpet og pluss av kraften til pluss av kilden. Det ser skjematisk ut slik:
Det er ikke nødvendig å sette en felteffekttransistor på en radiator, med mindre naturligvis en kraftig brukes, men det er ingen mening i en spesielt kraftig. Men en lang ledning var nødvendig for å føre sensoren til et sted der eksternt lys ikke faller, for eksempel bak en blomst eller utenfor et vindu, etc. Det anbefales å sette en kondensator på strømforsyningen og avløpet til felteffekttransistoren, for eksempel begynte båndet mitt å fungere egentlig ikke riktig. Arduino kan ikke drives fra USB eller strømforsyningen fra telefonen, men fra båndstrømforsyningen, ved å tilføre en spenning på 7-15 volt til GND og VIN.
Saken er laget av kroppen til den drepte strømforsyningen, der jeg satte strømforsyningen til båndet og Arduino, med en loddet kontakt. Han passet nesten i størrelse, men han var allerede konstant på bånd.
Så jeg lukket sensoren med hånden:
Men jeg holder ikke hånden over ham:
Hvor kan dette komme til nytte?
Denne designen kan hjelpe med ethvert delikat arbeid der du trenger stabil bakgrunnsbelysning, for eksempel hvis du glemte å slå på lyset, men båndet er slått på. Det er også praktisk å bruke den hvis du har frøplanter et sted for ytterligere beplantning på hagesengen. Hvor er det å bruke, selvfølgelig, til å dømme for deg.
PS! Det er sant at hendene mine er skjeve og jeg stakk lysdioden feil på kretsen.