Innholdsfortegnelse:

Mekanisk klokke for syv segmenter: 7 trinn (med bilder)
Mekanisk klokke for syv segmenter: 7 trinn (med bilder)

Video: Mekanisk klokke for syv segmenter: 7 trinn (med bilder)

Video: Mekanisk klokke for syv segmenter: 7 trinn (med bilder)
Video: Причины и скорая помощь при пояснично-крестцовых нарушениях. Как разобраться и стать специалистом 2024, Juli
Anonim
Mekanisk syv segment klokke
Mekanisk syv segment klokke
Mekanisk syv segment klokke
Mekanisk syv segment klokke

For et par måneder siden bygde jeg en tosifret mekanisk 7 -segmenters skjerm som jeg gjorde til en nedtellingstimer. Det kom ganske bra ut, og en rekke mennesker foreslo å doble opp på skjermen for å lage en klokke. Problemet var at jeg allerede var tom for PWM IO på min Arduino Mega og ikke hadde nok tilgjengelig for det andre eller tredje sifferet. Jeg ble deretter pekt i retning av disse PCA9685 16 -kanals PWM -driverne som opererer over et I2C -grensesnitt. Disse gjorde det mulig å kjøre de 28 servoene jeg trengte alle ved hjelp av de to I2C -pinnene på en Arduino. Så jeg begynte å bygge en klokke som nå bruker en DS1302 sanntidsklokke -modul for å beholde tiden og to 16 -kanals servodrivere for å kontrollere de 28 servoene som ble brukt til å lage skjermen, alle drevet av en Arduino Uno.

Hvis du liker denne instruksen, kan du vurdere å stemme på den i urkonkurransen

Rekvisita:

For å bygge klokken trenger du følgende rekvisita i tillegg til noen grunnleggende verktøy:

  • Arduino Uno - Kjøp her
  • DS1302 klokkemodul - Kjøp her
  • 2 x PCA9685 16Ch Servodrivere - Kjøp her
  • 28 x Micro Servos - Kjøp her
  • Båndkabel - Kjøp her
  • Male Pin Header Strips - Kjøp her
  • Female Pin Header Strips - Kjøp her
  • 3mm MDF - Kjøp her
  • Svart spraymaling - Kjøp her
  • 5V 5A batteri elimineringskrets - Kjøp her
  • 12V strømforsyning - Kjøp her

For dette prosjektet trenger du også noen 3D -trykte deler. Hvis du ikke allerede har en 3D -skriver og liker å lage ting, bør du definitivt vurdere å kjøpe en. Creality Ender 3 Pro som brukes her er rimelig og produserer utskrifter av ganske god kvalitet til prisen.

  • 3D -skriver brukt - Kjøp her
  • Filament - Kjøp her

Trinn 1: 3D -utskrift av plastkomponenter

3D -utskrift av plastkomponenter
3D -utskrift av plastkomponenter
3D -utskrift av plastkomponenter
3D -utskrift av plastkomponenter
3D -utskrift av plastkomponenter
3D -utskrift av plastkomponenter

Jeg designet de 7 segmentskjermene for å være så enkle som mulig. Servoen er også støttebraketten for å holde segmentet over det. Det er to 3D -trykte komponenter som kreves for hvert segment, en avstandsblokk for å støtte undersiden av servoen og displayet som limes direkte på servoarmen.

Last ned 3D -utskriftsfiler - mekanisk 7 -segmenters skjermklokke 3D -utskriftsfiler

Skriv ut servosegmentene og prikkene ved hjelp av et lyst PLA. Jeg brukte gjennomsiktig grønn, men rød, oransje eller gul burde fungere bra også. Jeg brukte svart PLA for avstandsblokkene og prikkstøttene, slik at de ikke er synlige når segmentene vendes til av -posisjon.

Hvis du ikke har tilgang til en 3D -skriver, kan du prøve en av de elektroniske utskriftstjenestene. Det finnes en rekke rimelige tjenester som vil skrive ut komponentene og levere dem til døren din i løpet av få dager.

Trinn 2: Forbered kontrollpanelene og ledningene

Forbered kontrollpanelene og ledningene
Forbered kontrollpanelene og ledningene
Forbered kontrollpanelene og ledningene
Forbered kontrollpanelene og ledningene
Forbered kontrollpanelene og ledningene
Forbered kontrollpanelene og ledningene
Forbered kontrollpanelene og ledningene
Forbered kontrollpanelene og ledningene

Du må bruke to PCA9685 16 -kanals PWM -drivere for å drive dine 28 klokkeservoer. Jeg delte servoene i time og minutt siffer, med hvert par siffer drevet av ett brett. Så jeg har ett brett som styrer servoene i de to timers tallene og det andre som styrer servoene i de to minutter lange sifrene.

For å kjede de to sammen må du lage en 6 -leder båndkabelkontakt og lodde en andre topplist på den andre enden av det første servokontrollkortet. Du må også endre I2C -adressen på det andre kortet, slik at den er annerledes enn den første og unikt identifiserbar.

Du må også lage ledningsnettet for å koble de tre kortene (to servokort og klokkemodulen) til din Arduino. Du trenger 5V og GND til hvert brett, så vel som I2C -tilkoblingene til Arduino -pinnene A4 og A5 (I2C på Arduino Uno), og klokkemodulpinnene CLK, DAT & RST til pinne 6, 7 & 8 på Arduino henholdsvis.

Strøm tilføres Arduino direkte fra 12V strømforsyningen og til servoene ved hjelp av 5V 5A BEC som deretter kobles til de to terminalene på toppen av PWM -driveren. Du trenger bare å koble en servodriver til strømmen, og den vil mate strøm til den andre gjennom 6 -leder båndkabeltilkoblingen.

Trinn 3: Sett sammen servoene

Sett sammen servoene
Sett sammen servoene
Sett sammen servoene
Sett sammen servoene
Sett sammen servoene
Sett sammen servoene

Når du har skrevet ut segmentene dine, må du spraye baksiden og sidene svarte, slik at de er mindre synlige når de vendes 90 grader til av -stillingen.

Du må deretter lime segmentene på servoarmene dine med smeltelim. Det hjelper å lime dem på servoen med armen allerede på servoen, på denne måten kan du kontrollere at du limer dem rett og i vater.

Du må også lime en avstandsblokk på bunnen av hver servo.

Monter prikkene ved å lime en liten dowel eller kebab -pinne inn på baksiden av prikkene og deretter inn i basisblokkene. Jeg sprayet også disse pinnene sorte, slik at de er mindre synlige hvis de ses fra en vinkel.

Trinn 4: Sett opp og test

Sett opp og test
Sett opp og test
Sett opp og test
Sett opp og test

Jeg nummererte alle servoene og skrev nummeret på hver kundeemne, slik at det var lettere å holde oversikt over dem. Jeg begynte med det øverste segmentet på enhetssifret og jobbet rundt til det midterste segmentet på titallsifret. Dette er også rekkefølgen der jeg koblet dem til servokontrollkortene, og husket at identifikatorene på tavlene teller fra 0 til 13 og ikke fra 1 til 14.

Jeg la deretter segmentene opp på et bord med nok plass mellom dem for testing, slik at de ikke flyttet inn i det ene og det andre mens jeg satte reisegrenser og veibeskrivelser. Hvis du prøver å sette dem på nært hold, vil du sannsynligvis få en eller to til å bevege seg i feil retning eller overreise på et tidspunkt og treffe et annet som kan skade segmentet, servoarmen eller fjerne tannhjulene på servoen.

Trinn 5: Last opp koden

Laster opp koden
Laster opp koden
Laster opp koden
Laster opp koden
Laster opp koden
Laster opp koden

Koden ser komplisert ut ved første øyekast, men den er faktisk relativt enkel takket være de to bibliotekene som ble brukt. Det er også mye gjentakelse fordi det er fire forskjellige 7 segmentdisplayer som må oppdateres.

Her er en oppsummerende beskrivelse av koden, ta en titt på hele veiledningen for en mer detaljert forklaring og en lenke for å laste ned koden - Mekanisk 7 -segmenters displayklokke

Vi starter med å importere to biblioteker, virtuabotixRTC.h for klokkemodulen og Adafruit_PWMServoDriver.h for servodriverne. Adafruit -biblioteket kan lastes ned og installeres direkte via biblioteksjefen i IDE.

Vi lager deretter et objekt for hvert kontrollkort med den aktuelle adressen, ett for timesifrene og ett for minuttsifrene.

Vi har deretter fire matriser for å lagre av og på -posisjonene for hver servo. Du må gjøre justeringer av disse tallene i de neste trinnene for å sikre at servoene dine er oppreist når de er slått på, snudd 90 grader når de er slått av og ikke er for høye.

En sifferoppstilling lagrer posisjonene til hvert segment for hvert siffer som skal vises.

Vi konfigurerte deretter klokkemodulen og lager variabler for å lagre nåværende og tidligere individuelle sifre.

I oppsettfunksjonen starter og konfigurerer vi PWM -kontrollkortene, samt oppdaterer klokkeslettet om nødvendig. Vi løper deretter gjennom en sløyfe for å sette displayet til 8 8: 8 8 slik at vi kjenner startposisjonen til alle servoene. Dette brukes også til å sette opp servoene slik at de alle vender riktig opp.

I hovedsløyfen får vi den oppdaterte tiden fra klokkemodulen, sølt den inn i de fire sifrene og kontrollerer deretter om tiden har endret seg fra den siste kontrollen. Hvis tiden har endret seg, oppdaterer vi skjermen og oppdaterer deretter de forrige sifrene.

I oppdateringsvisningsfunksjonen flytter vi først midtre segmenter. Dette gjøres først fordi det er en viss logikk som kreves for å flytte de to øverste segmentene ved siden av det midterste segmentet litt ut av veien før du flytter det midterste segmentet, ellers vil det støte på dem. Når de midterste segmentene er flyttet, flyttes de resterende segmentene til de riktige posisjonene.

Trinn 6: Montering av klokken på baksiden

Montering av klokken på baksiden
Montering av klokken på baksiden
Montering av klokken på baksiden
Montering av klokken på baksiden
Montering av klokken på baksiden
Montering av klokken på baksiden

Når jeg var ferdig med testen, monterte jeg servoene på bakplaten ved hjelp av oppsettet ovenfor som en guide.

Det hvite området er den totale brettstørrelsen, det lysere grå er området rundt hvert siffer hvor servosegmentene beveger seg inn og omrisset på det mørkegrå området er senterlinjen for de ytre 6 segmentene for hvert siffer.

Jeg klippet brettet, merket oppsettet og limte deretter sifrene på plass for å lage urskiven.

Jeg boret deretter hull i nærheten av hver servo og førte ledningene til baksiden av brettet slik at de er mindre synlige.

Jeg monterte elektronikken på baksiden av klokken med dobbeltsidig tape.

Trinn 7: Sluttoppsett og drift

Sluttoppsett og drift
Sluttoppsett og drift
Sluttoppsett og drift
Sluttoppsett og drift
Sluttoppsett og drift
Sluttoppsett og drift
Sluttoppsett og drift
Sluttoppsett og drift

Når servoene var klare, fjernet jeg alle servoarmene for de siste justeringene av posisjonene til segmentene. Du bør slå på Arduino i denne tilstanden slik at 8 8: 8 8 vises og deretter koble fra strømmen. Dette sentrerer alle servoene dine på nytt slik at du kan sette servoarmene på igjen med segmentene vendt så nær vertikal som mulig.

Du må deretter slå på Arduino i rekkefølge og foreta justeringer for segmentet på og av -posisjoner i de fire matrisene, slik at servoene er helt vertikale når de er på og svinger 90 grader når de er av uten å måtte reise for mye. Dette trinnet er ganske tidkrevende og krever litt tålmodighet, men sluttresultatet er vel verdt det!

Klokken kan slås på med 12V strømforsyning og 5V BEC koblet til den. Hvis strømmen går ned, beholder batteriet på RTC -modulen tiden slik at når strømmen gjenopprettes, tilbakestilles klokken automatisk til riktig tid.

Hvis du likte denne instruksjonsboken, kan du stemme på den i klokkekonkurransen og gi meg beskjed om eventuelle forbedringer eller forslag du kan komme med i kommentarfeltet nedenfor.

Klokker konkurranse
Klokker konkurranse
Klokker konkurranse
Klokker konkurranse

Andre pris i urkonkurransen

Anbefalt: