Cuprins:
- Pasul 1: Imprimați 3D componentele din plastic
- Pasul 2: Pregătiți-vă plăcile de control și cablarea
- Pasul 3: Asamblați Servo-urile
- Pasul 4: Configurați și testați
- Pasul 5: Încărcarea codului
- Pasul 6: Asamblarea ceasului pe placa din spate
- Pasul 7: Configurare și operare finală
Video: Ceas mecanic cu șapte segmente: 7 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Acum câteva luni am construit un afișaj mecanic cu 7 cifre pe 7 segmente, pe care l-am transformat într-un cronometru cu numărătoare inversă. A ieșit destul de bine și o serie de oameni au sugerat să se dubleze pe ecran pentru a crea un ceas. Problema era că nu mai aveam deja PWM IO pe Arduino Mega și nu aveam suficientă disponibilitate pentru a doua sau a treia cifră. Am fost apoi îndreptat în direcția acestor drivere PCA9685 cu 16 canale PWM care funcționează pe o interfață I2C. Acestea au făcut posibilă conducerea celor 28 de servo de care aveam nevoie, folosind cei doi pini I2C de pe un Arduino. Așa că am început să lucrez la construirea unui ceas care utilizează acum un modul de ceas DS1302 în timp real pentru a păstra timpul și două servo-drivere cu 16 canale pentru a controla cele 28 de servos utilizate pentru a compune afișajul, toate alimentate de un Arduino Uno.
Dacă vă place acest Instructable, vă rugăm să luați în considerare votarea acestuia în Concursul de Ceasuri
Provizii:
Pentru a vă construi ceasul, veți avea nevoie de următoarele consumabile în plus față de unele instrumente de bază:
- Arduino Uno - Cumpărați aici
- Modul de ceas DS1302 - Cumpărați aici
- 2 x drivere servo PCA9685 16Ch - Cumpărați aici
- 28 x Micro Servo - Cumpărați aici
- Cablu panglică - Cumpărați aici
- Benzi antet pentru bărbați - Cumpărați aici
- Benzi pentru antet feminin - Cumpărați aici
- MDF de 3 mm - Cumpărați aici
- Vopsea cu spray negru - Cumpărați aici
- Circuitul de eliminare a bateriei 5V 5A - Cumpărați aici
- Sursă de alimentare de 12V - Cumpărați aici
Pentru acest proiect veți avea nevoie și de câteva părți imprimate 3D. Dacă nu aveți deja o imprimantă 3D și vă face plăcere să faceți lucruri, atunci ar trebui să vă gândiți cu siguranță să cumpărați una. Creality Ender 3 Pro folosit aici este accesibil și produce imprimări de calitate destul de bună la prețul său.
- Imprimantă 3D folosită - Cumpărați aici
- Filament - Cumpărați aici
Pasul 1: Imprimați 3D componentele din plastic
Am proiectat afișajele pe 7 segmente pentru a fi cât se poate de simple. Servo-ul este, de asemenea, suportul de susținere pentru a susține segmentul deasupra acestuia. Există două componente tipărite 3D necesare pentru fiecare segment, un bloc distanțier pentru a susține partea inferioară a servo-ului și segmentul afișajului care se lipeste direct pe brațul servo.
Descărcați fișierele de imprimare 3D - Fișiere de imprimare 3D cu ceas mecanic pe 7 segmente
Imprimați segmentele și punctele servo folosind un PLA colorat. Am folosit verde translucid, dar și roșu, portocaliu sau galben ar trebui să funcționeze bine. Am folosit PLA negru pentru blocurile de distanțare și suporturile punctelor, astfel încât să nu fie vizibile atunci când segmentele sunt întoarse în poziția oprit.
Dacă nu aveți acces la o imprimantă 3D, încercați unul dintre serviciile de imprimare online. Există o serie de servicii accesibile, care vor tipări componentele și le vor livra la ușa dvs. în câteva zile.
Pasul 2: Pregătiți-vă plăcile de control și cablarea
Va trebui să utilizați două drivere PCA9685 cu 16 canale PWM pentru a conduce 28 de servo-ceasuri. Am separat serviciile în cifre de oră și minut, fiecare pereche de cifre fiind condusă de o singură placă. Deci, am o placă care controlează servo-urile pentru cele două ore cifre și a doua controlează servo-urile pentru cele două minute cifre.
Pentru a le lega împreună, va trebui să alcătuiți un conector de cablu cu 6 fire și să lipiți o a doua bandă de antet pe celălalt capăt al primei plăci de control servo. De asemenea, va trebui să schimbați adresa I2C de pe a doua placă, astfel încât să fie diferită de prima și să poată fi identificată în mod unic.
De asemenea, va trebui să alcătuiți cablajul pentru a conecta cele trei plăci (două plăci servo și modulul de ceas) la Arduino. Veți avea nevoie de 5V și GND pe fiecare placă, precum și de conexiunile I2C la pinii Arduino A4 și A5 (I2C pe Arduino Uno), iar pinii modulului de ceas CLK, DAT și RST la pinii 6, 7 și 8 de pe Arduino respectiv.
Alimentarea este furnizată către Arduino direct de la sursa de alimentare de 12V și la servo-uri utilizând 5V 5A BEC, care este apoi conectat la cele două terminale din partea superioară a driverului PWM. Trebuie doar să conectați un servo driver la alimentare și acesta va alimenta al doilea prin conexiunea cablului cu 6 panglici.
Pasul 3: Asamblați Servo-urile
După ce ați imprimat segmentele, va trebui să pulverizați spatele și părțile negre, astfel încât să fie mai puțin vizibile atunci când sunt rotite cu 90 de grade în poziția oprit.
Apoi, trebuie să lipiți segmentele pe brațele servo cu adeziv topit la cald. Vă ajută să le lipiți pe servo cu brațul deja pe servo, astfel puteți verifica dacă le lipiți drept și la nivel.
De asemenea, va trebui să lipiți un bloc distanțier pe partea inferioară a fiecărui servo.
Asamblați punctele lipind o diblă mică sau un stick de kebab în partea din spate a punctelor și apoi în blocurile de bază. Am pulverizat aceste bețe și în negru, astfel încât să fie mai puțin vizibile dacă sunt privite dintr-un unghi.
Pasul 4: Configurați și testați
Am numerotat toate servo-urile și am scris numărul pe fiecare plumb, astfel încât să fie mai ușor să le urmăresc. Am început cu segmentul de sus pe cifra unităților și am lucrat până la segmentul de mijloc pe cifra zecilor. Aceasta este, de asemenea, ordinea în care le-am conectat la plăcile de servocontrol, amintind că identificatorii de pe plăci contează de la 0 la 13 și nu de la 1 la 14.
Apoi am setat segmentele pe o masă cu suficient spațiu între ele pentru testare, astfel încât acestea să nu se deplaseze într-unul și altul, în timp ce se stabileau limitele de călătorie și direcțiile. Dacă încercați să le configurați strâns, veți avea probabil una sau două încercări de a vă deplasa într-o direcție greșită sau de a trece peste o anumită etapă și a lovi altul, ceea ce poate deteriora segmentul, brațul servo sau dezbrăcați angrenajele de pe servo.
Pasul 5: Încărcarea codului
Codul pare complicat la prima vedere, dar este de fapt relativ simplu datorită celor două biblioteci utilizate. Există, de asemenea, o mulțime de repetări, deoarece există patru afișaje diferite pe 7 segmente care trebuie actualizate.
Iată o descriere sumară a codului, consultați ghidul complet pentru o explicație mai detaliată și un link pentru a descărca codul - Ceas mecanic cu 7 segmente de afișare
Începem prin importarea a două biblioteci, virtuabotixRTC.h pentru modulul de ceas și Adafruit_PWMServoDriver.h pentru servo-driverele. Biblioteca Adafruit poate fi descărcată și instalată direct prin managerul bibliotecii din IDE.
Apoi creăm un obiect pentru fiecare placă de control cu adresa relevantă, unul pentru cifrele orei și unul pentru cifrele minute.
Avem apoi patru tablouri pentru a stoca pozițiile de pornire și oprire pentru fiecare servo. Va trebui să faceți ajustări la aceste numere în pașii următori pentru a vă asigura că servo-urile dvs. sunt în poziție verticală când sunt pornite, rotite la 90 de grade când sunt oprite și nu depășesc deplasarea.
O matrice de cifre stochează pozițiile fiecărui segment pentru fiecare cifră care trebuie afișată.
Apoi configurăm modulul de ceas și creăm variabile pentru a stoca cifrele individuale curente și anterioare.
În funcția de configurare pornim și configurăm plăcile de control PWM, precum și actualizăm ora ceasului, dacă este necesar. Apoi alergăm printr-o buclă pentru a seta afișajul la 8 8: 8 8, astfel încât să știm poziția de pornire a tuturor servo-urilor. Aceasta este, de asemenea, utilizată pentru a configura servo-urile astfel încât să fie toate orientate corect în sus.
În bucla principală obținem ora actualizată din modulul de ceas, l-am vărsat în cele patru cifre și apoi verificăm dacă ora s-a schimbat de la ultima verificare. Dacă ora s-a schimbat, actualizăm afișajul și apoi actualizăm cifrele anterioare.
În funcția de afișare a actualizării, mutăm mai întâi segmentele din mijloc. Acest lucru se face mai întâi, deoarece există o oarecare logică necesară pentru a muta cele două segmente superioare adiacente segmentului de mijloc afară din drum puțin înainte de a muta segmentul de mijloc, altfel se va ciocni cu ele. Odată ce segmentele de mijloc sunt mutate, apoi segmentele rămase sunt mutate în pozițiile corecte.
Pasul 6: Asamblarea ceasului pe placa din spate
Odată ce am terminat testarea, am asamblat servo-urile pe placa din spate folosind aspectul de mai sus ca ghid.
Zona albă este dimensiunea totală a plăcii, griul mai deschis este zona care înconjoară fiecare cifră în care se deplasează segmentele servo, iar conturul zonei gri închis este linia centrală pentru cele 6 segmente exterioare pentru fiecare cifră.
Am tăiat tabla, am marcat aspectul și apoi am lipit cifrele în loc pentru a compune fața ceasului.
Apoi am făcut găuri în apropierea fiecărui servo și am alimentat firele prin partea din spate a plăcii, astfel încât acestea să fie mai puțin vizibile.
Am montat aparatele electronice pe spatele ceasului cu bandă dublă.
Pasul 7: Configurare și operare finală
Odată ce servomotoarele au fost gata, am îndepărtat toate brațele servo pentru ajustările finale la pozițiile segmentelor. Ar trebui să porniți Arduino în această stare, astfel încât să fie afișat 8 8: 8 8 și apoi să deconectați alimentarea, aceasta re-centrează toate servo-urile, astfel încât să puteți pune brațele servo înapoi cu segmentele orientate cât mai aproape de verticală. pe cat posibil.
Apoi, va trebui să vă porniți secvențial Arduino și să efectuați ajustări la pozițiile de pornire și oprire ale segmentului din cele patru tablouri, astfel încât servo-urile să fie perfect verticale atunci când sunt pornite și să treacă cu 90 de grade când sunt oprite, fără a călători prea mult. Acest pas consumă destul de mult timp și necesită un pic de răbdare, dar rezultatul final merită!
Ceasul poate fi lăsat alimentat utilizând sursa de alimentare de 12V și 5V BEC conectat la acesta. Dacă puterea se oprește, bateria de pe modulul RTC va păstra timpul astfel încât, atunci când alimentarea este restabilită, ceasul se resetează automat la ora corectă.
Dacă ți-a plăcut acest Instructable, votează-l în cadrul concursului Ceas și anunță-mă despre orice îmbunătățiri sau sugestii cu care poți veni în secțiunea de comentarii de mai jos.
Premiul II la Concursul de ceasuri
Recomandat:
Controlul afișajului cu șapte segmente utilizând Arduino și 74HC595 Shift Register: 6 pași
Controlul afișajului cu șapte segmente utilizând Arduino și 74HC595 Shift Register: Hei, ce se întâmplă, băieți! Akarsh aici de la CETech.Seven Segment Display-urile sunt bune de privit și sunt întotdeauna un instrument la îndemână pentru a afișa date sub formă de cifre, dar există un dezavantaj în acestea, care este că atunci când controlăm un afișaj cu șapte segmente în realitate
Afișaj de ceas cu șapte segmente iluminat: 16 pași (cu imagini)
Afișaj cu ceas cu șapte segmente Edge-Lit: Șapte afișaje pe segmente există de mai bine de un secol (https://en.wikipedia.org/wiki/Seven-segment_display) și formează forma familiară a numerelor din ceasurile digitale, panourile de instrumente și multe alte afișaje numerice. Au fost
Personalizat proiectat cu șapte segmente folosind LED: 5 pași
Personalizat proiectat cu șapte segmente folosind LED-ul: Ledul este o componentă foarte de bază în proiectare, iar ledul de timp face mult mai multă muncă decât simpla indicație. șapte segmente pe piață, dar eu
Ceas de afișare cu șapte segmente diy: 9 pași
Diy Seven Segment Display Clock: în acest tutorial, vă voi arăta cum să construiți un ceas cu șapte segmente
Afișaj din șapte segmente din PVC reciclat: 5 pași (cu imagini)
Afișaj cu șapte segmente din PVC reciclat: plănuiesc să realizez un ceas digital, pot să-l atârn de perete de ceva vreme, dar l-am pus mereu pentru că nu am vrut să cumpăr acril, așa că am folosit câteva conducte de cablu din PVC trebuie să spun că rezultatele nu sunt acel pat, așa că