Inhoudsopgave:
- Stap 1: Interactievideo
- Stap 2: Probleemstelling
- Stap 3: Overzicht van hoe het werkt
- Stap 4: Lijst met materialen en gereedschappen
- Stap 5: Begin met bouwen met de Breadboard
- Stap 6: De code starten
- Stap 7: finishing touch
Video: Studeerkamer Timer: 7 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Instructies voor het maken van een timer voor een studeerkamer.
Stap 1: Interactievideo
drive.google.com/file/d/12z5zQR52AXILX2AGb3EplfbmZWANZiCl/view?usp=drivesdk
Stap 2: Probleemstelling
Meestal zijn studiezalen altijd bezet. Dit gebeurt omdat mensen graag veel langer in de kamer blijven dan nodig is. We hebben een timer ontworpen waarmee elke persoon in totaal 2 uur en wachtende mensen de mogelijkheid heeft om de kamer aan te vragen als de volgende groep. Het gebruik van RGB op Neopixels geeft de resterende tijd weer.
Stap 3: Overzicht van hoe het werkt
De timer bestaat uit onderdelen gesneden door de lasercutter, 3 knoppen, 1 LED, 1 potentiometer.
De Neopixels en potentiometer zijn aangesloten op de NodeMCU. De NodeMCU is geprogrammeerd om te bepalen hoe ver de potentiometer wordt gedraaid om het aantal LED's dat op de ronde Neopixel-strip brandt, te wijzigen. De knop Verzoek stopt de functie van de functie Start, Stop en Tijd instellen. De kleur van de LED's op de timer in de kamer is dezelfde kleur als de LED die aan de zijkant van de doos brandt. De neopixel aan de zijkant van de doos vertegenwoordigt het display in de lobby van het gebouw om te weten welke kamer is ingenomen en hoeveel tijd er nog is. Er zijn 2 LED's voorgeschreven voor elke kamer, één LED geeft aan of de kamer bezet is en de andere LED weerspiegelt de kleur van de LED's op de timer (groen is meer tijd, dan geel, dan rood voor minder tijd).
Stap 4: Lijst met materialen en gereedschappen
-Helder acryl
-MicroUSB-kabel
www.digikey.com/product-detail/en/stewart-…
-Broodplank
www.amazon.com/gp/product/B01EV6LJ7G/ref=o…
-Potentiometer
www.alliedelec.com/honeywell-380c32500/701…
-3 knoppen
www.digikey.com/product-detail/en/te-conne…
-NodeMCU
www.amazon.com/gp/product/B07CB4P2XY/ref=o…
- 2 Neopixel-strips
www.amazon.com/Lighting-Modules-NeoPixel-W…
-Weerstanden
www.digikey.com/product-detail/en/te-conne…
- Draden
www.digikey.com/product-detail/en/sparkfun…
-1 LED
www.mouser.com/ProductDetail/Cree-Inc/C512…
-Heet lijmpistool
www.walmart.com/ip/AdTech-Hi-Temp-Mini-Hot…
-Kleverige klittenbandstrips
www.amazon.com/VELCRO-Brand-90076-Fastener…
Stap 5: Begin met bouwen met de Breadboard
A0 naar middelste pin op Potentiometer
Vin om Neopixel-ring aan te zetten
3v3 aan één kant van Potentiometer
Alle gronden om te aarden op NodeMCU
D1 naar aanvraagknop
D2 om LED aan te vragen
D3 naar startknop
D4 naar stopknop
D5 naar weerstand naar Neopixel Input op ring
D6 naar weerstand naar Neopixel Input strip
Stap 6: De code starten
Dit is de code om ervoor te zorgen dat uw project tot nu toe werkt. De timer zou slechts een paar seconden per LED op de Neopixel Ring moeten zijn. Zodra u weet dat het tot nu toe werkt, hoeft u alleen maar de tijd als onderstaande instructies te wijzigen in het door u opgegeven bereik. Ik zal '#Change time' op elk van de time if-statements zetten die je moet veranderen voor je beschikbare tijd.
De code proberen:
import utime
import tijd
van machine-import ADC
importmachine
neopixel importeren
adc = ADC (0)
pin = machine. Pin (14, machine. Pin. OUT)
np = neopixel. NeoPixel(pin, 12)
pin2 = machine. Pin (12, machine. Pin. OUT)
np2 = neopixel. NeoPixel(pin2, 8)
l1 = machine. Pin (4, machine. Pin. OUT)
b1 = machine. Pin(5, machine. Pin. IN, machine. Pin. PULL_UP)
b3 = machine. Pin(2, machine. Pin. IN, machine. Pin. PULL_UP)
b2 = machine. Pin(0, machine. Pin. IN, machine. Pin. PULL_UP)
l1.waarde(0)
def tglled(): # toggle 'verzoek' LED-functie
if l1.waarde() == 0:
l1.waarde(1)
anders:
l1.waarde(0)
x = 0
b1temp1 = 0
b1temp2 = 0
t = 0
b2temp1 = 0
b2temp2 = 0
b3temp1 = 0
b3temp2 = 0
s = 0
terwijl waar:
# Dit is de knop waarmee de 'verzoek'-LED wordt omgeschakeld
b1temp2 = b1.waarde()
indien b1temp1 en niet b1temp2:
tglled()
tijd.slaap(0.05)
b1temp1 = b1temp2
# Dit is het raster
np2[0] = np[11]
als l1.waarde() == 1:
np2[1] = (30, 0, 0)
anders:
np2[1] = (0, 0, 30)
np2.write()
# Hier selecteren we hoeveel tijd we nodig hebben
als t == 0:
voor i in bereik (-1, 12):
if (l1.waarde() == 0):
if (adc.read() >= (85.34 * (i+1))):
np = (0, 0, 0)
np[11] = (0, 0, 30)
s = (ik + 1)
anders:
np = (0, 0, 30)
np.schrijf()
anders:
np = (0, 0, 0)
np.schrijf()
# Dit is de knop om de timer te starten
if (l1.value() == 0) en (t == 0):
b2temp2 = b2.waarde()
indien b2temp1 en niet b2temp2:
x += 1
t += (s * 100)
tijd.slaap(0.05)
b2temp1 = b2temp2
# Deze knop beëindigt de timer
if (l1.waarde() == 0):
b3temp2 = b3.waarde()
indien b3temp1 en niet b3temp2:
x = 0
t = 0
tijd.slaap(0.05)
b3temp1 = b3temp2
# Dit is de timer
als x > 0:
t += 1
als (t > 0) en (t <= 100): #Wijzig tijd
np[0] = (5, 30, 0)
np[1] = (5, 30, 0)
np[2] = (5, 30, 0)
np[3] = (5, 30, 0)
np[4] = (5, 30, 0)
np[5] = (5, 30, 0)
np[6] = (5, 30, 0)
np[7] = (5, 30, 0)
np[8] = (5, 30, 0)
np[9] = (5, 30, 0)
np[10] = (5, 30, 0)
np[11] = (5, 30, 0)
np.schrijf()
if (t > 100) en (t <= 200): #Wijzig tijd
np[0] = (0, 0, 0)
np[1] = (10, 30, 0)
np[2] = (10, 30, 0)
np[3] = (10, 30, 0)
np[4] = (10, 30, 0)
np[5] = (10, 30, 0)
np[6] = (10, 30, 0)
np[7] = (10, 30, 0)
np[8] = (10, 30, 0)
np[9] = (10, 30, 0)
np[10] = (10, 30, 0)
np[11] = (10, 30, 0)
np.schrijf()
if (t > 200) en (t <= 300): #Wijzig tijd
np[0] = (0, 0, 0)
np[1] = (0, 0, 0)
np[2] = (15, 30, 0)
np[3] = (15, 30, 0)
np[4] = (15, 30, 0)
np[5] = (15, 30, 0)
np[6] = (15, 30, 0)
np[7] = (15, 30, 0)
np[8] = (15, 30, 0)
np[9] = (15, 30, 0)
np[10] = (15, 30, 0)
np[11] = (15, 30, 0)
np.schrijf()
if (t > 300) en (t <= 400): #Wijzig tijd
np[0] = (0, 0, 0)
np[1] = (0, 0, 0)
np[2] = (0, 0, 0)
np[3] = (20, 30, 0)
np[4] = (20, 30, 0)
np[5] = (20, 30, 0)
np[6] = (20, 30, 0)
np[7] = (20, 30, 0)
np[8] = (20, 30, 0)
np[9] = (20, 30, 0)
np[10] = (20, 30, 0)
np[11] = (20, 30, 0)
np.schrijf()
if (t > 400) en (t <= 500): #Wijzig tijd
np[0] = (0, 0, 0)
np[1] = (0, 0, 0)
np[2] = (0, 0, 0)
np[3] = (0, 0, 0)
np[4] = (25, 30, 0)
np[5] = (25, 30, 0)
np[6] = (25, 30, 0)
np[7] = (25, 30, 0)
np[8] = (25, 30, 0)
np[9] = (25, 30, 0)
np[10] = (25, 30, 0)
np[11] = (25, 30, 0)
np.schrijf()
als (t > 500) en (t <= 600): #Verander tijd
np[0] = (0, 0, 0)
np[1] = (0, 0, 0)
np[2] = (0, 0, 0)
np[3] = (0, 0, 0)
np[4] = (0, 0, 0)
np[5] = (30, 30, 0)
np[6] = (30, 30, 0)
np[7] = (30, 30, 0)
np[8] = (30, 30, 0)
np[9] = (30, 30, 0)
np[10] = (30, 30, 0)
np[11] = (30, 30, 0)
np.schrijf()
als (t > 600) en (t <= 700): #Wijzig tijd
np[0] = (0, 0, 0)
np[1] = (0, 0, 0)
np[2] = (0, 0, 0)
np[3] = (0, 0, 0)
np[4] = (0, 0, 0)
np[5] = (0, 0, 0)
np[6] = (30, 25, 0)
np[7] = (30, 25, 0)
np[8] = (30, 25, 0)
np[9] = (30, 25, 0)
np[10] = (30, 25, 0)
np[11] = (30, 25, 0)
np.schrijf()
if (t > 700) en (t <= 800): #Wijzig tijd
np[0] = (0, 0, 0)
np[1] = (0, 0, 0)
np[2] = (0, 0, 0)
np[3] = (0, 0, 0)
np[4] = (0, 0, 0)
np[5] = (0, 0, 0)
np[6] = (0, 0, 0)
np[7] = (30, 20, 0)
np[8] = (30, 20, 0)
np[9] = (30, 20, 0)
np[10] = (30, 20, 0)
np[11] = (30, 20, 0)
np.schrijf()
als (t > 800) en (t <= 900): #Verander tijd
np[0] = (0, 0, 0)
np[1] = (0, 0, 0)
np[2] = (0, 0, 0)
np[3] = (0, 0, 0)
np[4] = (0, 0, 0)
np[5] = (0, 0, 0)
np[6] = (0, 0, 0)
np[7] = (0, 0, 0)
np[8] = (30, 15, 0)
np[9] = (30, 15, 0)
np[10] = (30, 15, 0)
np[11] = (30, 15, 0)
np.schrijf()
als (t > 900) en (t <= 1000): #Wijzig tijd
np[0] = (0, 0, 0)
np[1] = (0, 0, 0)
np[2] = (0, 0, 0)
np[3] = (0, 0, 0)
np[4] = (0, 0, 0)
np[5] = (0, 0, 0)
np[6] = (0, 0, 0)
np[7] = (0, 0, 0)
np[8] = (0, 0, 0)
np[9] = (30, 10, 0)
np[10] = (30, 10, 0)
np[11] = (30, 10, 0)
np.schrijf()
if (t > 1000) en (t <= 1100): #Wijzig tijd
np[0] = (0, 0, 0)
np[1] = (0, 0, 0)
np[2] = (0, 0, 0)
np[3] = (0, 0, 0)
np[4] = (0, 0, 0)
np[5] = (0, 0, 0)
np[6] = (0, 0, 0)
np[7] = (0, 0, 0)
np[8] = (0, 0, 0)
np[9] = (0, 0, 0)
np[10] = (30, 5, 0)
np[11] = (30, 5, 0)
np.schrijf()
if (t > 1100) en (t <= 1200): #Wijzig tijd
np[0] = (0, 0, 0)
np[1] = (0, 0, 0)
np[2] = (0, 0, 0)
np[3] = (0, 0, 0)
np[4] = (0, 0, 0)
np[5] = (0, 0, 0)
np[6] = (0, 0, 0)
np[7] = (0, 0, 0)
np[8] = (0, 0, 0)
np[9] = (0, 0, 0)
np[10] = (0, 0, 0)
np[11] = (30, 0, 0)
np.schrijf()
als t >= 1300: #Wijzig tijd
t = 0
x = 0
Stap 7: finishing touch
Nu, als je eenmaal zo ver bent, zou je de werkcode moeten uploaden naar de NodeMCU en alle onderdelen op het breadboard hebben aangesloten. Nadat je de code hebt geprobeerd en alle stukken hebt gesneden die je voor de buitenkant hebt, d.w.z. lasergesneden behuizing, kun je nu de draden aan de NodeMCU solderen. Het solderen is optioneel, maar kan het veiliger en kleiner maken voor uw behuizing. Hier zijn enkele van de lasergesneden onderdelen die we hebben gemaakt.
Aanbevolen:
KS-Tea-Timer: 4 stappen
KS-Tea-Timer: SituatieU bent b.v. in een kantoor en je wilt thee zetten zoals het hoort (bijv. groene thee 2 minuten, zwarte thee 5 minuten…), maar soms mis je gewoon het juiste moment om het brouwen te stoppen en je thee uit de heet water. Het is erg
Zelf een timer maken: 10 stappen
Hoe u zelf een timer maakt: Timers worden nu veel gebruikt in veel toepassingen, zoals het opladen van elektrische voertuigen met timing-oplaadbeveiliging en sommige functionele netwerktimingcontrollers. Dus hoe maak je een timer?
Stappenmotor met D Flip Flops en 555 Timer; het eerste deel van het circuit de 555 Timer: 3 stappen
Stappenmotor met D-flip-flops en 555-timer; het eerste deel van het circuit de 555-timer: de stappenmotor is een gelijkstroommotor die in discrete stappen beweegt. Het wordt vaak gebruikt in printers en zelfs robotica. Ik zal dit circuit in stappen uitleggen. Het eerste deel van het circuit is een 555 tijdopnemer. Het is de eerste afbeelding (zie hierboven) met een 555-chip met
AVR-microcontroller. LED's Flasher met behulp van timer. Timers worden onderbroken. Timer CTC-modus: 6 stappen
AVR-microcontroller. LED's Flasher met behulp van timer. Timers worden onderbroken. Timer CTC Mode: Hallo allemaal! Timers is een belangrijk begrip op het gebied van elektronica. Elk elektronisch onderdeel werkt op tijdbasis. Deze tijdbasis helpt om al het werk gesynchroniseerd te houden. Alle microcontrollers werken op een vooraf gedefinieerde klokfrequentie, de
NE555-timer - De NE555-timer configureren in een astabiele configuratie: 7 stappen
NE555-timer | De NE555-timer configureren in een stabiele configuratie: De NE555-timer is een van de meest gebruikte IC's in de elektronicawereld. Het heeft de vorm van DIP 8, wat betekent dat het 8 pinnen heeft