Inhoudsopgave:
- Stap 1: Onderdelen en houtwerk verzamelen
- Stap 2: Acrylcirkels
- Stap 3: Solderen
- Stap 4: De code
- Stap 5: Deense olie
Video: Ish Clock: 5 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Ik merk vaak dat ik dingen koop waarvan ik geen idee heb wat ik ermee ga doen. Dit project is het resultaat van een aankoop van een ring met 12x WS2812b LED's. Ik had er geen plannen voor, maar het zag er online cool uit, dus stopte ik er een in mijn winkelwagentje, speelde er een tijdje mee toen het arriveerde en vergat het toen helemaal.
Een tijdje later dacht ik erover om een klok te maken en herinnerde me dat hij daar zat en niets deed. Ik dacht erover om een tweede ring met 60 LED's te kopen om de minuten in te halen, maar begon toen te bedenken hoe wij / ik de neiging hebben om naar de tijd te kijken en deze af te ronden naar de dichtstbijzijnde 5 minuten.
Met dit in de mijne ging ik op pad met mijn 12 LED-ring om de ish-klok te maken. Het geeft 1 LED tegelijk weer gedurende 1 seconde, om het uur (blauwe LED) aan te geven en vervolgens de minuten (rode LED) naar beneden afgerond
Stap 1: Onderdelen en houtwerk verzamelen
Ik had veel geluk dat ik op een dag op mijn werk aankwam en een pallet zag. Deze pallet viel me op omdat hij er niet uitzag als uw standaard, alledaagse pallet. Het was schoon, met warmte behandeld en zeer ongewoon massief eiken.
Dit project is gemaakt van een van de stukken van die pallet. (Ik vroeg de baas voordat ik het mee naar huis nam)
Ook gebruikt:
- 12 pixel ws2812b LED-ring
- Real Time Clock (RTC) module (ik gebruik een DS3231 met I2C)
- Compatibel met Arduino Nano v3.0
- Acrylplaat (5mm)
- Gekleurde draad
Gereedschap
- Boormachine
- Router
- Verstelbare platte houtbit
- Krachtschuurmachine
- Handzaag
- Soldeerbout
- Heet lijmpistool
- schuurpapier
- Deense olie
Schuren
Ik begon met het gebruik van de elektrische schuurmachine om het blok hout recht te trekken en schoon te maken totdat alle zijkanten schoon en glad waren. Ik heb enkele onvolkomenheden zichtbaar gelaten en het is niet perfect recht of vierkant omdat ik graag wat van de geschiedenis in het hout kan zien.
Markeren en snijden van de gaten
Na het schuren koos ik de kant die ik wilde, de wijzerplaat van de klok en markeerde het midden door vanuit elke hoek lijnen te trekken. Ik heb het verstelbare houten bit een beetje groter dan de led-ring gezet, zodat er een plank zou zijn voor het acryl om op te zitten en ongeveer 5 mm diep te snijden en vervolgens de snijder te verstellen, net iets groter dan de LED-ring en nog eens 5 mm of zo af te snijden.
Routering en kabelgaten
Met behulp van mijn router met het 12 mm-bit heb ik een uitsparing in de onderkant van het blok gerouteerd om de RTC en Arduino te verbergen. Het is ongeveer 15 mm diep en niet minder dan 5 mm van elke rand. Ik markeerde het midden (ish) vanaf de onderkant en boorde omhoog met een 10 mm-bit net voorbij de helft om de LED-draden mogelijk te maken. Vervolgens heb ik met een 5 mm bit geboord vanuit het midden van de LED-uitsparing om het gat van 10 mm vanaf de onderkant te bereiken.
Nog een gat van 4 mm aan de achterkant om stroom binnen te laten komen en met een kleinere frees een kanaal te maken voor de draden aan de achterkant van de LED-ring en het houtwerk is gedaan.
Stap 2: Acrylcirkels
Om het acryl voor de voorkant van de klok te maken, zei ik dat ik een vierkant stuk moest snijden dat net groter was dan het gat dat het moest vullen. Toen ik de schuurmachine gebruikte om te beginnen, begon ik de hoeken te verwijderen totdat het ongeveer de juiste vorm en maat had. Ik ging toen over op handschuren, zodat ik niet te veel schoot en opnieuw moest beginnen.
Het was een langzaam en vervelend proces van vallen en opstaan totdat het precies goed paste, maar ik denk dat het eindresultaat het waard was. Ik eindigde met het gebruik van een zeer fijn schuurpapier om de voorkant van het acryl een matte look te geven.
Stap 3: Solderen
Ik gebruik graag een kleursysteem voor mijn draden bij deze gelegenheid kies ik:
- Rood voor vermogen (5v)
- Wit voor grond
- Geel voor gegevens
- Groen voor klok
Ik begon met het solderen van de 3 benodigde draden op de LED-ring met behulp van het bovenstaande systeem en duwde de draden door het gat. Omdat het niet aan echt geweld mag worden blootgesteld, heb ik een klein beetje hete lijm gebruikt om de ring op zijn plaats te houden. (Misschien moet ik het ooit veranderen) en installeer het acryl met slechts een beetje hete lijm rond de rand.
Vervolgens heb ik de 4 draden op de RTC gesoldeerd met behulp van het bovenstaande systeem. Om de zaken een beetje netter te houden, besloot ik de stroom voor de RTC uit de Arduino te halen. Vervolgens alles op de Arduino aangesloten en 1 draad gesoldeerd voor stroom en een andere voor aarde naar de Arduino.
RTC
- SCL (klok) naar analoge pin 5
- SDA (gegevens) naar analoge pin 4
- VCC naar 5V
- GND naar elke GND op de Arduino
LED-ring
DIN naar digitale pin 6
Ik had een oude USB-kabel hangen, dus besloot ik die te gebruiken om de klok van stroom te voorzien. Ik sneed het uiteinde af dat normaal ergens op zou aansluiten en duwde het door het gat aan de achterkant. Vervolgens de uiteinden gestript en getint voordat de VCC aan de Arduino en de LED-ring aan de positieve kant wordt gesoldeerd en de aarde van de Arduino en LED naar aarde. Ik heb later wat krimpkous gedaan en het zag er goed uit, Het hete lijmpistool kwam terug naar buiten om alles tegen te houden. Ik besloot de Arduino met genoeg speling achter te laten zodat ik in de toekomst toegang zou kunnen krijgen tot de USB-poort om hem te programmeren, maar niet zozeer dat ik eruit zou kunnen vallen.
Stap 4: De code
U zou deze code nu naar de Arduino moeten kunnen uploaden.
Als de RTC niet draait, stelt deze code de tijd in op basis van wanneer de code is gecompileerd, dus zorg ervoor dat u gewoon op de uploadknop drukt en niet verifieert.
afwisselend werkt dit ook heel goed voor het instellen van de tijd.
www.instructables.com/id/Setting-the-DS130…
Veel van deze code heb ik geleend van de Adafruit NeoPixel-bibliotheek en sommige van een RTC-bibliotheek die ik heb gevonden en sommige heb ik zelf verzonnen.
// voeg de bibliotheekcode toe: #include
#erbij betrekken
#erbij betrekken
// definieer pinnen
#definieer pincode 6
#define BRIGHTNESS 20 // max. helderheid instellen
#definieer r 5
#definieer g 5
#definieer b 5
RTC_DS3231 rtc; // Stel klokobject vast
Adafruit_NeoPixel-strip = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // stripobject
ongeldige instelling () {
Draad.begin(); // Begin I2C
rtc.begin(); // begin klok
Serieel.begin(9600);
// stel pinmodes in
pinMode (PIN, UITGANG);
if (rtc.lostPower()) {
Serial.println("RTC heeft geen stroom meer, laten we de tijd instellen!");
// volgende regel stelt de RTC in op de datum en tijd waarop deze schets is gecompileerd
rtc.adjust(DateTime(F(_DATE_), F(_TIME_)));
// Deze regel stelt de RTC in met een expliciete datum en tijd, bijvoorbeeld om in te stellen
// 21 januari 2014 om 3 uur zou je bellen:
// rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0));
}
strip.begin();
strip.show(); // Initialiseer alle pixels op 'uit'
DateTime theTime = rtc.now(); // houdt rekening met DST
byte secondval = theTime.second(); // krijg seconden
byte minuteval = theTime.minute(); // krijg minuten
int hourval = theTime.hour();
punt(strip. Kleur(0, g, 0), 50);
}
lege lus () {
// krijg tijd
DateTime theTime = rtc.now(); // houdt rekening met DST
int minuteval = theTime.minute(); // krijg minuten
int hourval = theTime.hour(); // krijg uren
int secondval = theTime.second();
if (minuutwaarde 0) {
strip.setPixelColor(0, r, 0, 0);
strip.show();}
anders als (minuutwaarde <= 9) {
strip.setPixelColor(1, r, 0, 0);
strip.show();}
anders als (minuutwaarde <= 14) {
strip.setPixelColor(2, r, 0, 0);
strip.show();}
anders if (minuutwaarde <= 19) {
strip.setPixelColor(3, r, 0, 0);
strip.show();}
anders als (minuutwaarde <= 24) {
strip.setPixelColor(4, r, 0, 0);
strip.show();}
anders als (minuutwaarde <= 29) {
strip.setPixelColor(5, r, 0, 0);
strip.show();}
anders als (minuutwaarde <= 34) {
strip.setPixelColor(6, r, 0, 0);
strip.show();}
anders if (minuutwaarde <= 39) {
strip.setPixelColor(7, r, 0, 0);
strip.show();}
anders als (minuutwaarde <= 44) {
strip.setPixelColor(8, r, 0, 0);
strip.show();}
anders als (minuutwaarde <= 49) {
strip.setPixelColor(9, r, 0, 0);
strip.show();}
anders if (minuutwaarde <= 54) {
strip.setPixelColor(10, r, 0, 0);
strip.show();}
anders if (minuutwaarde <=59) {
strip.setPixelColor(11, r, 0, 0);
strip.show();}
vertraging (1000);
voor (int i=0; i<12; i++){
strip.setPixelColor(i, 0, 0, 0);
strip.show();
}
if (uurwaarde == 0) {
strip.setPixelColor(0, 0, 0, b);
strip.show();}
anders if (uurwaarde == 1) {
strip.setPixelColor (1, 0, 0, b);
strip.show();}
anders if (uurwaarde == 2) {
strip.setPixelColor(2, 0, 0, b);
strip.show();}
anders if (uurwaarde == 3) {
strip.setPixelColor (3, 0, 0, b);
strip.show();}
anders if (uurwaarde == 4) {
strip.setPixelColor(4, 0, 0, b);
strip.show();}
anders if (uurwaarde == 5) {
strip.setPixelColor (5, 0, 0, b);
strip.show();}
anders if (uurwaarde == 6) {
strip.setPixelColor(6, 0, 0, b);
strip.show();}
anders if (uurwaarde == 7) {
strip.setPixelColor(7, 0, 0, b);
strip.show();}
anders if (uurwaarde == 8) {
strip.setPixelColor (8, 0, 0, b);
strip.show();}
anders if (uurwaarde == 9) {
strip.setPixelColor(9, 0, 0, b);
strip.show();}
anders if (uurwaarde == 10) {
strip.setPixelColor(10, 0, 0, b);
strip.show();}
anders if (uurwaarde == 11) {
strip.setPixelColor(11, 0, 0, b);
strip.show();}
anders if (uurwaarde == 12) {
strip.setPixelColor(0, 0, 0, b);
strip.show();}
anders if (uurwaarde == 13) {
strip.setPixelColor (1, 0, 0, b);
strip.show();}
anders if (uurwaarde == 14) {
strip.setPixelColor(2, 0, 0, b);
strip.show();}
anders if (uurwaarde == 15) {
strip.setPixelColor (3, 0, 0, b);
strip.show();}
anders if (uurwaarde == 16) {
strip.setPixelColor(4, 0, 0, b);
strip.show();}
anders if (uurwaarde == 17) {
strip.setPixelColor (5, 0, 0, b);
strip.show();}
anders if (uurwaarde == 18) {
strip.setPixelColor(6, 0, 0, b);
strip.show();}
anders if (uurwaarde == 19) {
strip.setPixelColor(7, 0, 0, b);
strip.show();}
anders if (uurwaarde == 20) {
strip.setPixelColor (8, 0, 0, b);
strip.show();}
anders if (uurwaarde == 21) {
strip.setPixelColor(9, 0, 0, b);
strip.show();}
anders if (uurwaarde == 22) {
strip.setPixelColor(10, 0, 0, b);
strip.show();}
anders als (uurwaarde == 23) {
strip.setPixelColor(11, 0, 0, b);
strip.show();}
vertraging (1000);
voor (int i=0; i<12; i++){
strip.setPixelColor(i, 0, 0, 0);
strip.show();
}
// voor seriële foutopsporing
Serial.print (uurwaarde, DEC);
Serieel.print(':');
Serial.print (minutenwaarde, DEC);
Serieel.print(':');
Serial.println (tweede, DEC);
}
void dot (uint32_t c, uint8_t wacht) {
voor (int j=0; j<3; j++) {
for(int i=0; i<12; i++){
strip.setPixelColor(i, c);
strip.show();
vertraging (wacht);
for(int i=0; i<12; i++){
strip.setPixelColor(i, 0, 0, 0);
strip.show();}
}
}
}
Stap 5: Deense olie
De laatste en optionele stap is om wat Deense olie op het hout aan te brengen. Ik hou echt van hoe het de korrel naar voren brengt en het biedt enige bescherming tegen vlekken en vocht. Dus ik raad het ten zeerste aan.
Je kunt het erop borstelen of ik gebruik gewoon een oude doek om het op te vegen.
Het enige dat u nu nog hoeft te doen, is de stekker in het stopcontact steken en genieten.
Aanbevolen:
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Een computer demonteren met eenvoudige stappen en afbeeldingen: 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Een computer demonteren met eenvoudige stappen en afbeeldingen: dit is een instructie over het demonteren van een pc. De meeste basiscomponenten zijn modulair en gemakkelijk te verwijderen. Wel is het belangrijk dat je er goed over georganiseerd bent. Dit zal helpen voorkomen dat u onderdelen kwijtraakt, en ook bij het maken van de hermontage e
LittleBits Mad Libs(-ish): 7 stappen (met afbeeldingen)
LittleBits Mad Libs(-ish): Klaar om je leerlingen te betrekken bij een uitdaging die NGSS (Next Generation Science Standards) Engineering Practices integreert (en meer als je andere beperkingen toevoegt!) ? Gebruik van littleBits of een andere meerdelige elektronicakit (SAM Labs, Lego WeDo, LEGO
Space Invaders Clock (met een beperkt budget!): 6 stappen (met afbeeldingen)
Space Invaders Clock (on a Budget!): Onlangs zag ik een coole build van GeckoDiode en ik wilde hem meteen zelf bouwen. De Instructable is Space Invaders Desktop Clock en ik raad je aan er eens naar te kijken nadat je dit hebt gelezen. Het project is bijna uitsluitend opgebouwd uit onderdelen die afkomstig zijn
PCB-ontwerp met eenvoudige en gemakkelijke stappen: 30 stappen (met afbeeldingen)
PCB-ontwerp met eenvoudige en gemakkelijke stappen: HELLO VRIENDEN Het is een zeer nuttige en gemakkelijke tutorial voor diegenen die PCB-ontwerp willen leren, laten we beginnen