Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Det är läggdags. Du reser dig för att släcka lamporna för natten, och efter att du har vridit omkopplaren inser du att du har den svartblå resan tillbaka till din sängs säkerhet framför dig. Tur för dig, nattlamporna uppfanns, och du har kommit till rätt ställe för att hitta en! Men … hur kan du somna när det irriterande nattljuset tänds genom natten och lyser upp ditt rum? Dessutom är du inte trött på det tomma mörkret som får dina nattljus att lysa och slösa energi? Tja, du är fortfarande på rätt plats, för vi har exakt vad du behöver!
Vi vill göra ditt liv ljusare genom att hjälpa dig att skapa ett hållbart nattljus.
I denna handledning kommer vi att leda dig genom att bygga ett nattljus som släcks med en timer. Systemet kommer att kunna känna igen när huvudlampan är släckt, via en ljussensor, och tända lampan under en användarinställd tid och släckas efter att den tiden har gått. Detta nattljus är annorlunda än andra nattlampor eftersom det slösar energi genom att vara tänd när du sover och inte behöver det. Detta projekt använder två typer av brädor, Basys 3 och Arduino, och en ljussensor.
Skapare: Luke McDaniel, Erik Ramazzini, Monica Negrete, Hayley Young
Steg 1: Material och programvara
Material
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
Bakbord
www.amazon.com/Elegoo-EL-CK-002-Electronic …
10k Ω motstånd
Samma länk som brödbräda
Jumper Wires
Samma länk som brödbräda
Ljussensor (minifotocell)
www.sparkfun.com/products/9088
programvara
Vivado HL WebPACK Edition (bifogad PDF innehåller instruktioner)
www.xilinx.com/products/design-tools/vivad…
Arduino IDE
www.arduino.cc/en/Main/Software
Steg 2: Systemarkitektur
Nästa steg är att förstå systemarkitekturen. Vi skapade ett svart lådediagram och en slutlig tillståndsmaskin (visas ovan) för att organisera strukturen i vår design innan vi går in i logistiken
Övergripande design
Ingångar
Ljussensor: bestämmer mängden ljus i rummet
Utgångar
- Anoder: bestämmer vilka 7-segmentskärmar som ska användas
- Segment: visar timern
- LED: visar nattljusförhållandena ON eller OFF
Arduino
Inmatning
Ljussensorsignal: analogt värde för mängden ljus i rummet
Produktion
Ljusinmatning (1 bit): signal som avgör rummets ljusförhållanden
Basys 3
Inmatning
- Ljusinmatning (1 bit): signal som avgör rummets ljusförhållanden
- Brytare
- CLK
Produktion
- Anoder: bestämmer vilka 7-segmentskärmar som ska användas
- Segment: visar timern
- LED: visar nattljusförhållandena ON eller OFF
Steg 3: Hårdvara och Arduino -kod
Hårdvara
För att förstå Arduino -koden måste vi förstå hårdvaran som koden interagerar med. Kretsen på vår brödbräda innehåller en fotocell, en ljusemitterande diod och flera ledningar och motstånd för att slutföra den. Kretsen börjar med att skicka ström till fotocellen, som sedan läser mängden ljus som omger den. Denna information överförs till den analoga stiftet, A0, vilket gör den läsbar för Basys -kortet. Basys -kortet tar sedan denna information, börjar räkna och skickar en signal för lysdioden att tändas.
Arduino -kod
Arduino -koden själv kommunicerar med Basys -kortet genom att skicka en signal när ljuset som omger enheten är mörkare än ett angivet tröskelvärde. Denna signal som utlöses av ett mörkt rum med ledning till lysdioden tänds. Vi fann genom experiment att den genomsnittliga tröskeln för vår specifika fotocell i mörka rum är 30 - 60. Varje fotocell har en annan känslighet, så andra fotoceller kan ha olika trösklar. I vår publicerade kod gjorde vi tröskeln 100 för demonstrationsändamål.