Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
E timpul pentru somn. Te ridici pentru a opri luminile pentru noapte și, după ce apeși comutatorul, îți dai seama că ai călătoria neagră înapoi spre siguranța patului din fața ta. Noroc pentru tine, luminile de noapte au fost inventate și ai venit în locul potrivit pentru a găsi una! Dar … cum poți adormi când acea lumină de noapte plictisitoare este aprinsă prin noapte iluminându-ți camera? În plus, nu te-ai săturat de acest întuneric gol care face ca luminile tale de noapte să rămână aprinse și să irosească energie? Ei bine, sunteți încă în locul potrivit, pentru că avem exact ceea ce aveți nevoie!
Vrem să vă luminăm viața, ajutându-vă să creați o lumină durabilă de noapte.
În acest tutorial, vă vom plimba prin procesul de construire a unei lumini de noapte care se va stinge cu un cronometru. Sistemul va fi capabil să recunoască când lumina principală este oprită, printr-un senzor de lumină, și să aprindă lumina pentru un timp stabilit de utilizator și să se oprească după expirarea acelui timp. Această lumină de noapte este diferită de alte lumini de noapte, deoarece risipește energia rămânând aprinsă când dormi și nu ai nevoie de ea. Acest proiect utilizează două tipuri de plăci, Basys 3 și Arduino, și un senzor de lumină.
Creatori: Luke McDaniel, Erik Ramazzini, Monica Negrete, Hayley Young
Pasul 1: Materiale și software
Materiale
Basys 3 Artix-7 FPGA Trainer Board
store.digilentinc.com/basys-3-artix-7-fpga…
Arduino Uno Rev3
store.arduino.cc/usa/arduino-uno-rev3
Pană de pâine
www.amazon.com/Elegoo-EL-CK-002-Electronic…
Rezistor 10k Ω
Același link ca și panoul de verificare
Sârme jumper
Același link ca panoul de verificare
Senzor de lumină (mini fotocelula)
www.sparkfun.com/products/9088
Software
Vivado HL WebPACK Edition (PDF atașat include instrucțiuni)
www.xilinx.com/products/design-tools/vivad…
IDE Arduino
www.arduino.cc/en/Main/Software
Pasul 2: Arhitectura sistemului
Următorul pas este să înțelegem arhitectura sistemului. Am creat o diagramă cu cutie neagră și o mașină cu stări finite (afișată mai sus) pentru a organiza structura designului nostru înainte de a intra în logistică
Design general
Intrări
Senzor de lumină: determină cantitatea de lumină din cameră
Ieșiri
- Anode: determină ce afișaje pe 7 segmente vor fi utilizate
- Segmente: afișează temporizatorul
- LED: afișează condițiile de lumină nocturnă PORNITE sau OPRITE
Arduino
Intrare
Semnal senzor de lumină: valoarea analogică a cantității de lumină din cameră
Ieșire
Intrare lumină (1 bit): semnal care determină starea luminii camerei
Bazele 3
Intrare
- Intrare lumină (1 bit): semnal care determină starea luminii camerei
- Comutatoare
- CLK
Ieșire
- Anode: determină ce afișaje pe 7 segmente vor fi utilizate
- Segmente: afișează temporizatorul
- LED: afișează condițiile de iluminare nocturnă PORNITE sau OPRITE
Pasul 3: Hardware și cod Arduino
Hardware
Pentru a înțelege codul Arduino, trebuie să înțelegem hardware-ul cu care interacționează codul. Circuitul de pe placa noastră include o fotocelulă, o diodă emițătoare de lumină și mai multe fire și rezistențe pentru ao completa. Circuitul începe prin trimiterea de energie către fotocelula, care apoi citește cantitatea de lumină care o înconjoară. Aceste informații sunt transferate pinului analogic, A0, ceea ce îl face lizibil pentru placa Basys. Placa de bază ia apoi aceste informații, începe să numere și trimite un semnal pentru aprinderea LED-ului.
Cod Arduino
Codul Arduino în sine comunică cu placa Basys, trimițându-i un semnal atunci când lumina din jurul dispozitivului este mai întunecată decât un prag specificat. Acest semnal declanșat de o cameră întunecată cu plumb către LED se va aprinde. Am constatat prin experiment că pragul mediu pentru fotocelula noastră specifică în camere întunecate este de 30 - 60. Fiecare fotocelula are o cantitate diferită de sensibilitate, deci alte fotocelule pot avea praguri diferite. În codul nostru publicat, am stabilit pragul 100 în scopuri demonstrative.