Inhoudsopgave:

Klok met 7 segmenten - Ajarnpa
Klok met 7 segmenten - Ajarnpa

Video: Klok met 7 segmenten - Ajarnpa

Video: Klok met 7 segmenten - Ajarnpa
Video: Build Seven Segment LED clock with Arduino and DS3231 - Robojax 2024, November
Anonim
Image
Image
7 Segmenten Klok
7 Segmenten Klok
7 Segmenten Klok
7 Segmenten Klok

Na een aantal jaar gebruik is mijn analoge klok definitief dood.

Ondertussen was ik op zoek naar een 3D-klokproject om te printen met mijn Prusa, dus ik vond een 7-segmentsklok die werd aangedreven door ws2812-leds en Arduino.

Ik dacht dat de kracht van die leds is om een groot aantal kleuren weer te geven, maar de vraag was hoe je meerdere kleuren kunt combineren op een digitale klok?

Dan het idee om de klok aan te passen met de volgende eigenschappen:

- 7 verschillende overgangen van minuten wisselen

- 3 vooraf ingestelde kleuren voor tijdvakken

- automatisch dimmen van omgevingslicht

- automatisch afsluiten/starten wanneer het niet nodig is om tijd te tonen

- automatische aanpassing van de zomertijd

Benodigdheden

Het project kan worden uitgevoerd met behulp van een 3D-printer of googlen voor projecten van 7 segment klokken. Iemand heeft ze ook van karton gemaakt.

Er is ook behoefte aan:

  • Arduino nano
  • foto chill
  • kortstondige drukknop
  • aan / uit knop
  • DC-stekker
  • 5V transformator
  • n°30 WS2812 leds (model 30 leds/meter)
  • pcb
  • DS3231-module
  • dunne kabels voor leds-aansluitingen
  • weerstanden 10K, 550
  • soldeer
  • lijm
  • truien
  • koppen man/vrouw

Stap 1: Afdrukken en bedrading …

Afdrukken en bedrading…
Afdrukken en bedrading…
Afdrukken en bedrading…
Afdrukken en bedrading…
Afdrukken en bedrading…
Afdrukken en bedrading…

Het originele project op Thingverse is een beetje aangepast. (Dankzij willekeurig gebruiker 1101)

De twee stippen werden vergroot om te passen in de led-versie die voor dit project werd gebruikt. Een van de drie achteromslagen is ook aangepast om op pcb te passen. Veranderde ook klokbasis.

Hoofdwerk is het solderen van leds. Eerst ben ik doorgegaan met het solderen van leds buiten de achterkant van de 3D-afdrukcijfers en vervolgens erin gestoken.

De 7e led van het eerste cijfer beginnend van links wordt verbonden met de eerste led van het volgende cijfer. Sluit aan het einde van het 4e cijfer de twee stippen-leds aan, ze krijgen de nummers 28 en 29 in de reeks.

De led-reeks kan worden gewijzigd door enkele parameters in de Arduino-bibliotheek te wijzigen, zoals hieronder wordt uitgelegd.

Eenmaal aangesloten, is het meeste werk gedaan.

Stap 2: PCB-assemblage

PCB-assemblage
PCB-assemblage
PCB-assemblage
PCB-assemblage
PCB-assemblage
PCB-assemblage
PCB-assemblage
PCB-assemblage

Nu is het tijd om een pcb in elkaar te zetten waar wat weerstanden, headers, etc. soldeer. De componenten om Arduino aan te sluiten zijn:

Drukknop aangesloten tussen Arduino pin 3 en GND met interne pull-up weerstand.

Lichtsensor aangesloten als spanningsdeler, tussen Arduino pin A7 en GND. Voeg ook een weerstand van 10K toe tussen A7 en +5V ………GROTE FOUT

lichtsensor tussen +5V en A7 pin en 10K weerstand tussen A/ pin en GND

DS3231-module aangesloten via i2c en SQW-pin op Arduino-onderbrekingspin 2

Leds aangesloten op pin 5 tot en met 550Ohm weerstand.

Stap 3: De schets

Er zijn veel aanpassingen die binnen de schets kunnen worden gedaan.

Het opslaan van de zomertijdbibliotheek wordt afgehandeld door de parameters TimeChangeRule, zie JChristensen-bibliotheek op Github voor meer informatie.

Automatische uitschakeling binnen de lus wordt afgehandeld door variabele int gotosleep. In mijn geval gaat Arduino om 0:00 in de slaapstand, dan gaat de klok uit.

Door ALARM in te stellen op de DS3231-module via variabele int gotosleep, kan Arduino uit de slaapstand ontwaken. In mijn geval om 7.00 uur 's ochtends.

Een andere functie is om de klok van kleur te veranderen gedurende de dag binnen functie:

void printDateTime(time_t t, const char *tz)

In mijn instellingen van h 0:00 tot 12:00 wordt de tijd in rood weergegeven, van 12:00 tot 17:00 groen en van 17:00 tot 0:00 meestal blauw. Dit is de beste kleurbalans die tot nu toe is gevonden voor een goed contrast met de witte muur erachter.

De functie Overgangen maakt het mogelijk om een geanimeerde kleurovergang te hebben bij kleine veranderingen. Er zijn 6 verschillende die kunnen worden gekozen door op de kortstondige knop te drukken, de 7e optie is zonder overgangen. Degene die ik leuk vind, heet newrandom() dat is de vooraf ingestelde (int-modus = 1;).

Ik heb enkele wijzigingen aangebracht in de bibliotheek voor compatibiliteit met led-reeks. In het bestand segment_display.cpp, aan het einde, switch (i) kunt u uw led-reeks wijzigen. Als je klaar bent, vervang je het bestand erin

/Arduino/bibliotheken/7segment_NeoPixel-master

Bibliotheken vereist:

  • avr.slaap
  • segment_display
  • DS3231
  • TimeLib
  • Draad
  • Adafruit NeoPixel
  • Tijdzone

Stap 4: Het is tijd om afscheid te nemen

Ik vind deze klok leuk, de huidige tijd is van ver duidelijk zichtbaar en hij gaat uit als ik hem niet nodig heb.

Hoe zou je meer kunnen vragen van een klok?

Aanbevolen: