- Komponenter krävs
- Kretsschema och förklaring
- PCB-design och tillverkning för den digitala klockan
- Beställa PCB med PCBGoGo
- Montering av kretskortet
- Testa den digitala klockan
Varje digital klocka har en kristall inuti för att hålla koll på tiden. Denna kristall finns inte bara på klockan utan också i alla datorsystem i realtid. Denna kristall genererar klockpulser, vilket behövs för tidsberäkningar. Även om det finns några andra sätt att få klockpulser för högre noggrannhet och frekvens, är det mest föredragna sättet att använda kristall för att hålla koll på tiden. Här kommer vi DS3231 RTC IC för att bygga en Atmega16-baserad digital väggklocka. DS3231 RTC har en mycket exakt kristall inuti, så ingen extern Crystal-oscillator behövs.
I detta digitala klockprojekt används tio vanliga 7-segmentsanoder på 0,8 tum för att visa tid och datum. Här används sju segmentskärmar för att visa timme, minut, datum, månad och år. Vår PCB-design har också alternativ för att visa sekunder och temperatur, som kan visas genom att lägga till fler displayenheter.
Komponenter krävs
- ATmega16 AVR-mikrokontroller
- DS3231 RTC IC
- Gemensam anod 0,8 tum Seven Segment-skärm (dess större än vanlig storlek (0,56 tum)
- Tryckknapp
- Knappcell 3v
- 7805 spänningsregulator
- 1000uf kondensator
- Summer (tillval)
- Transistorer BC547 och BC557
- 10uf kondensator
- 100 Ohm motstånd
- 1k motstånd
- 10k motstånd
- PCB-kort
- Bygeltrådar
- Burgstips
- Strömadapter
Användaren kan också använda Atmega32, det måste konfigureras i kompilatorn innan de genererar hex.
Kretsschema och förklaring
Det finns två delar av denna Digital Wall Clock Circuit, en är en displaydel som har 5 par av 7-segment på fem olika PCB-kort och en annan är kontrollerad Enhetsdel som ansvarar för att hämta tid från RTC-chip och skicka data och tid 7-segment display. Eftersom vi har använt 10 sju segmentskärmar så kan vi inte ansluta varje skärm med en separat IO-port. Så här används multiplexeringsteknik för att ansluta flera sju segment med färre stift av mikrokontroller.
LED-stift a, b, c, d, e, f, g, h för sju segment display är ansluten till PORTB på atmega16 parallell. Här har vi använt 10 sju segmentskärmar så vi behöver 10 styrpinnar som är anslutna till PORTD, PORTA och PORTC.
RTC DS3231 med en intern kristall är ansluten till PORTCs SDA- och SCL-stift eftersom detta chip fungerar på I2C-kommunikation. Gränssnittsmetoden för detta chip är densamma som DS1307. Vi har använt DS1307 med Arduino, Raspberry Pi och 8051 MCU. Samma kod kan användas för både DS3231 och DS1307.
Två 10k uppdragningsmotstånd är anslutna på SDA och SCL-linjen. En 3v-myntcell används för att driva RTC-chipet för att hålla koll på tiden även när huvudströmförsörjningen är avstängd. När strömmen återkommer kommer tiden att visas på sju segmentvisningen. Nu har vi några tryckknappar för att ställa in tid vid PORT A, fullständig process förklaras i videon som ges i slutet. En 5v spänningsregulator används för att konvertera ingångsspänning till 5v. Alla anslutningar visas i kretsschemat nedan:
För ett skärmkort används två sju segmentskärmar och 2 lysdioder. Så här har vi fem olika skärmkort för att visa tid i timmar och minut (HH-MM) och datum i DD-MM-YY.
PCB-design och tillverkning för den digitala klockan
För detta Atmega16-baserade väggklockprojekt har vi designat två PCB. Den ena är för styrenhet som används för att styra alla operationer i projektet och den andra delen är för att visa tid och datum på sju segmentvisningar. Display-delen innehåller fem par med sju segment display. Så genom att montera 5 stycken har vi den kompletta digitala klockan. För att multiplexera 7-segmentsdisplayer kommer datalinjen för de 5 PCB-enheterna att anslutas till samma port på styrenheten och styrledningen är ansluten till olika stift på styrenheten.
Nedan visas de övre och nedre vyerna av PCB-layouter på ett skärmkort som består av två sju segmentskärmar:
Nedan visas topp- och bottenvyerna av kontrollenhetens kretskort
Här bifogas Gerber-filen för båda brädorna:
- Gerber-fil för Atmega16-baserad styrenhet
- Gerber-fil för Seven Segment Display-kortet
Beställa PCB med PCBGoGo
Det finns många PCB-tillverkningstjänster som finns tillgängliga online, men eftersom jag tidigare använde PCBGoGo i ett av mina andra projekt, tyckte jag att det var billigt och problemfritt jämfört med andra leverantörer.
Här är stegen för att beställa PCB från PCBGoGo:
Steg 1: Gå in på www.pcbgogo.com, registrera dig om det är första gången. På fliken PCB Prototype anger du måtten på din PCB, antalet lager och antalet PCB du behöver.
Steg 2: Fortsätt genom att klicka på knappen Citera nu . Du kommer till en sida där du kan ställa in några ytterligare parametrar om det behövs, till exempel det material som används spåravstånd etc. Men vanligtvis fungerar standardvärdena bra. Det enda som vi måste tänka på här är pris och tid. Som du kan se är byggtiden bara 2-3 dagar och det kostar bara 5 USD för vår PSB. Du kan sedan välja en föredragen leveransmetod baserat på ditt krav.
Steg 3: Det sista steget är att ladda upp Gerber-filen och fortsätta med betalningen. För att säkerställa att processen är smidig verifierar PCBGOGO om din Gerber-fil är giltig innan du fortsätter med betalningen. På så sätt kan du vara säker på att din PCB är tillverkningsvänlig och når dig som engagerad.
Nu tar PCBGoGo lite tid runt 10 minuter till 1 timme att granska din Gerber-fil. När granskningen är klar kan du fortsätta med betalningen.
Montering av kretskortet
Efter att tavlan beställdes nådde den mig efter några dagar, även om kurir i en prydligt märkt välpackad låda och som alltid var PCB-kvaliteten fantastisk. Jag delar några bilder av brädorna nedan så att du kan bedöma.
Jag slog på min lödstång och började montera brädet. Eftersom Footprints, kuddar, vias och silkscreen har perfekt form och storlek hade jag inga problem att montera kortet. Brädet var klart på bara tio minuter från uppackningen.
Få bilder av brädet efter lödning visas nedan.
Testa den digitala klockan
Komplett kod ges i slutet av denna handledning, anslut bara PCB: erna som visas i kretsschemat och ladda upp koden till Atmega16. Och du kommer att se tid och datum visas på de tio sju segmenten.
Tid och datum kan ställas in med de fyra tryckknapparna på kontrollenheten, vilket visas i videon nedan.