Stap 3: Hardware
Power Leveren: De voeding bestaat uit een gelijkrichter, smoothing condensator, en een 1 Amp zekering voor beveiliging tegen overbelasting. Deze voorziening wordt dan geregeld door een 7812 en 7805 regulator. De 12V levering wordt gebruikt voor het besturen van de output Relais, en alle andere circuits worden aangedreven door de levering van 5V. Zoals de 7805 regulator is aangesloten op de uitgang van de 7812 regulator, is de totale huidige moet beperkt blijven tot 1 amp via de 7812 regulator. Het is raadzaam om deze toezichthouders monteren op een geschikte koellichaam.
I²C Bus: Hoewel Flowcode voor hardware I²C controle zorgt, heb ik besloten om gebruik van de softwareconfiguratie I²C. Dit zorgt voor meer flexibiliteit van pin-toewijzingen. Hoewel langzamer (50 kHz), het voert nog steeds groot in vergelijking met de hardware I²C bus. Zowel DS1307 als 24LC256 is aangesloten op deze I²C bus.
Real Time Clock (DS1307): tijdens het opstarten, wordt het register van de RTC 0 en 7 gelezen om te bepalen als het geldige tijd en configuratie gegevens bevat. Zodra setup corrigeren, de tijd van de RTC wordt gelezen en de keer geladen in de PIC. Dit is de enige keer dat tijd wordt gelezen van de RTC. Na het opstarten zullen een puls van 1Hz op pin 7 van de RTC aanwezig. Deze 1Hz signaal is aangesloten op RB0/INT0, en via een interrupt service routine, de PIC-tijd elke seconde wordt bijgewerkt.
Externe EEPROM: alle programma-gegevens en opties worden opgeslagen op de externe EEPROM. De EEPROM gegevens wordt geladen bij het opstarten, en een kopie van de gegevens wordt opgeslagen in het geheugen van de PIC. EEPROM gegevens alleen bijgewerkt wanneer programma-instellingen worden gewijzigd.
Dag/nacht Sensor: een standaard licht afhankelijke weerstand (LDR) wordt gebruikt als de dag/nacht sensor. Als LDRs komt in vele vormen en variëteiten, allen met verschillende weerstand waarden dezelfde voorwaarden licht, gebruikte ik een analoge input kanaal om te lezen het lichtniveau. De dag evenals nacht niveaus zijn verstelbaar, en zorgen voor enige flexibiliteit voor verschillende sensoren. Voor het instellen van sommige hysteresis, kunnen individuele waarden voor dag en nacht worden ingesteld. De staat zal alleen wijzigen als het licht niveau onder de dag, of boven de nacht set punten, langer dan 60 seconden is.
LCD-Display: 4 lijn, 16 karakterdisplay wordt gebruikt, zoals alle gegevens kan niet worden weergegeven op een 2-regelig display. Het project omvat ook sommige aangepaste tekens, die is gedefinieerd in de LCD_Custom_Char macro.
Aux-ingangen: beide ingangen zijn gebufferd met een NPN-transistor. + 12V na contact en 0V is tevens beschikbaar op de connector, waardoor voor meer flexibele verbindingen met externe verbindingen. Als voorbeeld, kan een afstandsbediening-ontvanger worden aangesloten op de levering.
Uitgangen: alle uitgangen zijn elektrisch geïsoleerd van het circuit door middel van een relais 12V. De relais gebruikt, zijn beoordeeld voor 250 v AC, bij 10 ampère. De normaal open en normaal gesloten contacten zijn gebleken voor de terminals.
Toetsenbord: het toetsenbord gebruikt is een 3 x 4 matrix-toetsenbord, en is aangesloten PORTB:2..7.