Indholdsfortegnelse:

8 kanal programmerbar timer: 13 trin
8 kanal programmerbar timer: 13 trin

Video: 8 kanal programmerbar timer: 13 trin

Video: 8 kanal programmerbar timer: 13 trin
Video: Смарт-Часы Maimo Watch - Детальный ОБЗОР + ТЕСТЫ 2024, November
Anonim
8 kanal programmerbar timer
8 kanal programmerbar timer
8 kanal programmerbar timer
8 kanal programmerbar timer
8 kanal programmerbar timer
8 kanal programmerbar timer

Introduktion

Jeg har brugt Microchips PIC -udvalg af mikrokontroller til mine projekter siden 1993 og har udført al min programmering i assembler -sprog ved hjælp af Microchip MPLab IDE. Mine projekter spænder fra simple trafiklys og blinkende lysdioder til USB -joystick -grænseflader til R/C -modeller og koblingsanalysatorer, der bruges i industrien. Udviklingen tog mange dage, og nogle gange tusinder af linjer med assembler -kode.

Efter at have modtaget Matrix Multimedia Flowcode 4 Professional var jeg ret skeptisk over for softwaren. Det så for let ud til at tro. Jeg besluttede mig for at prøve det og testede alle de forskellige komponentmakroer, alle med stor succes. Den bedste del ved at bruge Flowcode var, at enkle projekter kunne kodes på en enkelt nat. Efter at have spillet med I²C og et DS1307 real -time ur, besluttede jeg at designe 8 -kanals timeren ved hjælp af Flowcode. Da jeg ikke var et lille og let projekt, troede jeg på, at dette ville være et godt projekt at lære mig selv Flowcode.

Valg af en mikroprocessor og andre komponenter

På grund af antallet af I/O -ben, der kræves, var det klart, at der skal bruges en 40 -pins enhed. PIC 18F4520 blev valgt, hovedsageligt på grund af sin 32K programhukommelse og 1536 bytes datahukommelse. Alle anvendte komponenter er standard gennemgående huller, hvilket gør det muligt at bygge kredsløbet på Vero-kortet, hvis det kræves. Dette hjalp også med udviklingen på et brødbræt.

Trin 1: Projektmål

Projektmål
Projektmål

Mål

- Nøjagtig tidsregistrering med batteribackup.

- Alle programmer og data skal bevares, selv efter tab af strøm.

- Enkel brugergrænseflade.

- Programmeringsfleksibilitet.

Tidshold

Hvis du bor i et område, der er udsat for strømsvigt, er standard 50/60Hz fra elledningerne ikke tilstrækkelig til nøjagtig tidsopbevaring. Et ur i realtid var vigtigt, og efter at have testet flere RTC-chips besluttede jeg mig for DS1307 på grund af dets enkle oscillator og batteri-backup-konfiguration. Ganske præcis tidsregistrering blev opnået ved hjælp af kun en 32.768 kHz krystal, der var forbundet til DS1307. Nøjagtigheden var inden for 2 sekunder over en prøveperiode på 2 måneder ved hjælp af 4 forskellige krystaller.

Datalagring

Alle timerprogramdata skal bevares, selv under strømsvigt. Med op til 100 forskellige programmer og forskellige konfigurationsdata blev det klart, at 256 bytes indbygget EEPROM i PIC ikke vil være stort nok. En 24LC256 I²C EEPROM bruges til at gemme al programmeringsinformation.

Enkel brugergrænseflade

Brugergrænsefladen består af kun 2 elementer, et 16 x 4 linies LCD -display med LED -baggrundsbelysning og et 4 x 3 tastatur. Al programmering kan udføres med et tryk på få knapper. Tilføjelser til grænsefladen er en hørbar piezo -summer og visuelt blinkende LCD -baggrundsbelysning.

Trin 2: Programmeringsfleksibilitet

Programmeringsfleksibilitet
Programmeringsfleksibilitet

For at sikre tilstrækkelig programfleksibilitet har timeren 100 programmer, der kan indstilles individuelt. For hvert program kan On -time, Off Time, Output Channels og Ugedag indstilles. Hvert program har tre tilstande:

- Auto: On Time, Off time, Output Channel og ugedag er indstillet.

- Fra: Det enkelte program kan deaktiveres uden at slette indstillingerne. For at aktivere programmet igen, vælg blot en anden tilstand.

- Dag/nat: On Time, Off time, Output Channel og ugedag er indstillet. Fungerer det samme som Auto -tilstand, men vil

Tænd kun udgangene mellem tænd- og slukketiderne, når det er mørkt. Dette muliggør også fuld dag/nat kontrol

som den ekstra fleksibilitet til at tænde lys ved solnedgang og slukke ved solopgang.

Eksempel 1: Tænder lyset efter 20:00 og slukker lyset ved solopgang.:

Den: 20:00, Fra: 12.00, Eksempel 2: Tænder lyset ved solnedgang og slukker lyset kl. 23:00.

På: 12:00

Fra: 23:00

Eksempel 3: Tænder lys ved solnedgang og slukker lys ved solopgang.

Den: 12:01

Fra: 12:00

Yderligere muligheder tilgængelige, alle arbejder uafhængigt af de 100 tænd/sluk -programmer.

Programkanaler aktive: I stedet for at slukke flere programmer kan individuelle outputkanaler deaktiveres uden behov for at ændre programmerne.

Hjælpeindgange: To digitale indgange er tilgængelige, så visse udgangskanaler kan tændes i et bestemt tidspunkt. Det kan f.eks. Bruges til at tænde bestemte lys, når du kommer hjem sent om aftenen, når der trykkes på en knap på en fjernbetjening, eller til at tænde en anden lyssignal, når husalarmen udløses.

Ekstraudgange: To ekstra udgange (bortset fra de 8 udgangskanaler) er tilgængelige. De kan programmeres til at tænde med bestemte udgangskanaler eller med de digitale indgange. I min installation har jeg output 6-8, der styrer min kunstvanding, som fungerer på 24V. Jeg bruger kanaler 6-8 til at tænde for en af hjælpeudgange, til at tænde for en 24V strømforsyning til kunstvandingssystemet.

Manuel tændt: På hovedskærmen kan knapperne 1-8 bruges til manuelt at tænde eller slukke kanaler.

Trin 3: Hardware

Hardware
Hardware

Strømforsyning: Strømforsyningen består af en ensretter, udjævningskondensator og en 1 Amp sikring til beskyttelse mod overbelastning. Denne forsyning reguleres derefter af en 7812 og 7805 regulator. 12V -forsyningen bruges til at drive outputrelæerne, og alle andre kredsløb drives af 5V -forsyningen. Da 7805 -regulatoren er tilsluttet 7812 -regulatorens output, skal den samlede strøm begrænses til 1 amp gennem 7812 -regulatoren. Det tilrådes at montere disse regulatorer på en passende køleplade.

I²C Bus: Selvom Flowcode giver mulighed for hardware I²C -kontrol, besluttede jeg at gøre brug af software I²C -konfigurationen. Dette giver mulighed for mere fleksibilitet i pin -tildelinger. Selvom den er langsommere (50 kHz), fungerer den stadig godt i forhold til hardware I²C -bussen. Både DS1307 og 24LC256 er forbundet til denne I²C -bus.

Real Time Clock (DS1307): Under opstart læses RTC-registret 0 og 7 for at afgøre, om det indeholder gyldige tid- og konfigurationsdata. Når opsætningen er korrekt, læses RTC -tiden, og tiden indlæses i PIC. Dette er den eneste gang, at tiden læses fra RTC. Efter opstart vil der være en 1 Hz puls på pin 7 i RTC. Dette 1Hz signal er forbundet til RB0/INT0, og via en afbrydelsesrutine opdateres PIC -tiden hvert sekund.

Ekstern EEPROM: Alle programdata og muligheder gemmes på den eksterne EEPROM. EEPROM-data indlæses ved opstart, og en kopi af dataene gemmes i PIC-hukommelsen. EEPROM -data opdateres kun, når programindstillinger ændres.

Dag/nat sensor: En standard lysafhængig modstand (LDR) bruges som dag/nat sensor. Da LDR'er findes i mange former og varianter, alle med forskellige modstandsværdier under de samme lysforhold, brugte jeg en analog indgangskanal til at aflæse lysniveauet. Dag- og natniveauerne er justerbare og giver mulighed for en vis fleksibilitet for forskellige sensorer. For at konfigurere noget hysterese kan individuelle værdier for dag og nat indstilles. Tilstanden ændres kun, hvis lysniveauet er under dagen eller over indstillingspunkterne for natten i mere end 60 sekunder.

LCD Display: 4 linier, 16 tegn display bruges, da alle data ikke kunne vises på et 2-linjes display. Projektet indeholder nogle brugerdefinerede tegn, der er defineret i LCD_Custom_Char -makroen.

Hjælpeindgange: Begge indgange er bufret med en NPN -transistor. +12v og 0V er også tilgængelig på stikket, hvilket giver mulighed for mere fleksible forbindelser til eksterne forbindelser. Som et eksempel kan en fjernbetjeningsmodtager tilsluttes forsyningen.

Udgange: Alle udgange er elektrisk isoleret fra kredsløbet ved hjælp af et 12V relæ. De anvendte relæer er klassificeret til 250V AC ved 10 ampere. De normalt åbne og normalt lukkede kontakter bringes ud til terminalerne.

Tastatur: Det anvendte tastatur er et 3 x 4 matrix tastatur og er forbundet PORTB: 2..7.

Trin 4: Tastaturafbrydelser

Tastatur afbryder
Tastatur afbryder
Tastatur afbryder
Tastatur afbryder
Tastatur afbryder
Tastatur afbryder

Jeg ville gøre brug af PORTB Interrupt on Change interrupt ved et vilkårligt tastetryk. Til dette skulle der oprettes en brugerdefineret afbrydelse i Flowcode for at sikre, at PORTB -retning og data er konfigureret korrekt før og efter hvert tastaturafbrydelse. En afbrydelse genereres hver gang der trykkes på en knap eller slippes. Afbrydelsesrutinen reagerer kun, når der trykkes på en tast.

TILPASET AFBrydelse

Aktiver kode

portb = 0b00001110; trisb = 0b11110001;

intcon. RBIE = 1;

intcon2. RBIP = 1;

intcon2. RBPU = 1;

rcon. IPEN = 0;

Handler kode

hvis (intcon & (1 << RBIF))

{FCM_%n ();

portb = 0b00001110;

trisb = 0b11110001;

wreg = portb;

clear_bit (intcon, RBIF);

}

Problemer fundet

Under en afbrydelse skal afbrydelsesrutinen under INGEN betingelser kalde enhver anden makro, der kan bruges et sted i resten af programmet. Dette vil i sidste ende føre til problemer med stakoverløb, da afbrydelsen kan forekomme samtidig med, at hovedprogrammet også er i den samme underprogram. Dette identificeres også som en ALVORLIG FEJL efter Flowcode, når koden kompileres.

I brugerdefineret kode på tastaturet under GetKeyPadNumber er der sådan et opkald til Delay_us -makroen, hvilket vil forårsage en stakoverløb. For at overvinde dette har jeg fjernet kommandoen Delay_us (10) og erstattet den med 25 linjer med "wreg = porta;" kommandoer. Denne kommando læser PORTA og placerer dens værdi i W -registret, bare for at få lidt forsinkelse. Denne kommando kompileres til en enkelt instruktion, der ligner assembler movf porta, 0. Til det 10MHz -ur, der blev brugt i projektet, vil hver instruktion være 400ns, og for at få en 10us forsinkelse havde jeg brug for 25 af disse instruktioner.

Bemærk på den anden linje i figur 3: GetKeypadNumber Custom Code, at den oprindelige delay_us (10) kommando er blevet deaktiveret med “//”. Under dette har jeg tilføjet mine 25 “wreg = porta;” kommandoer for at få en ny 10us forsinkelse. Uden opkald til nogen makroer inde i tastaturet_ReadKeypadNumber brugerdefineret kode, kan tastaturmakroen nu bruges i en afbrydelsesrutine.

Det skal bemærkes, at komponenterne i Flowcode-tastaturet og eBlocks ikke bruger de standard pull-up-modstande på indgangslinjerne. I stedet bruger den 100K pull-down modstande. På grund af en vis interferens, der blev fundet på tastaturet under udviklingen, blev 100K -modstandene alle udskiftet med 10K, og alle 10K -modstande blev erstattet med 1K5. Tastaturet blev testet til at fungere korrekt med ledninger på 200 mm.

Trin 5: Brug af timeren

Brug af timeren
Brug af timeren
Brug af timeren
Brug af timeren
Brug af timeren
Brug af timeren

Alle skærmbilleder er konfigureret til at angive alle nødvendige oplysninger, så brugeren kan foretage hurtige ændringer af indstillingerne. Linje 4 bruges til at hjælpe med navigation gennem menuer og programindstillinger. I alt 22 skærme er tilgængelige under normal drift.

LINE 1: Tid og status

Viser aktuel dag og tid efterfulgt af statusikoner:

A - Angiver, at Aux Input A blev udløst, og Aux Input A -timer kører.

B - Angiver, at Aux Input B blev udløst, og Aux Input B -timer kører.

C - Angiver, at Aux -udgang C er tændt.

D - Angiver, at Aux -udgang D er tændt.

} - Status for dag/nat -sensor. Hvis det er til stede, angiver det, at det er nat.

LINE 2: Programoutput

Viser de kanaler, der er blevet tændt af de forskellige programmer. Kanaler vises i deres output-numre, og et “-“angiver, at det specifikke output ikke er tændt. Kanaler, der er blevet deaktiveret i "Programudgange aktive", vil stadig blive angivet her, men de reelle udgange vil ikke blive indstillet.

LINE 3: Real Outputs

Viser hvilke kanaler der tændes af de forskellige programmer, Aux -indgange A & B eller manuelle udgange, der er indstillet af brugeren. Ved at trykke på 0 vil alle manuelt aktiverede udgange blive slukket og nulstille Aux Output A & B -timerne.

LINE 4: Menu og nøgleindstillinger (på alle menuer)

Angiver funktionen af “*” og “#” tasterne.

Den midterste del angiver, hvilke numeriske taster (0-9) der er aktive for den valgte skærm.

Inputstatus for Aux Input A & B vises også ved hjælp af et ikon for åben eller lukket kontakt.

Udgange kan slås til/fra manuelt ved at trykke på den tilsvarende tast på tastaturet.

I hele menuerne bruges stjerne- og hashtasterne til at navigere gennem de forskellige programindstillinger. Tasterne 0-9 bruges til at indstille indstillingerne. Hvor flere muligheder er tilgængelige på en enkelt skærm eller programmeringsmenu, bruges Hash -tasten til at gennemgå de forskellige muligheder. Den aktuelt valgte indstilling vil altid blive angivet med ">" - tegnet til venstre på skærmen.

0-9 Indtast tidsværdier

1-8 Skift kanalvalg

14 36 Gå gennem programmer, 1-trin tilbage, 4-trin tilbage 10 programmer, 3-trin frem, 6-trin frem 10

programmer

1-7 Angiv ugedage. 1 = søndag, 2 = mandag, 3 = tirsdag, 4 = onsdag, 5 = torsdag, 6 = fredag, 7 = lørdag

0 I hovedskærmen skal du slette alle manuelle tilsidesættelser og Input A & Input B -timere. I andre menuer ændres

valgte indstillinger

# På hovedskærmen deaktiveres alle manuelle tilsidesættelser, Input A & Input B -timere og programoutput, indtil

den næste begivenhed.

* og 1 Genstart timeren

* og 2 Ryd alle programmer og muligheder, gendan indstillingerne til standard.

* og 3 Sæt timeren i standby. Tryk på en vilkårlig tast for at tænde timeren igen.

Under forkerte indtastninger af enhver tidsværdi blinker LCD -baggrundsbelysningen 5 gange for at angive en fejl. På samme tid lyder summeren. Kommandoer Exit og Next fungerer kun, når den aktuelle post er korrekt.

LCD baggrundsbelysning

Ved første opstart tændes LCD-baggrundsbelysningen i 3 minutter, medmindre:

- Der er en hardwarefejl (EEPROM eller RTC ikke fundet)

- Tid ikke angivet i RTC

LCD -baggrundsbelysningen tændes igen i 3 minutter på enhver brugerindgang på tastaturet. Hvis LCD -baggrundsbelysningen er slukket, tænder enhver tastaturkommando først LCD -baggrundsbelysningen og ignorerer den tast, der blev trykket på. Dette sikrer, at brugeren vil være i stand til at læse LCD -displayet, før du bruger tastaturet. LCD -baggrundsbelysningen tændes også i 5 sekunder, hvis Aux -indgang A eller Aux -indgang B er aktiveret.

Trin 6: Menuskærmbilleder

Menuskærmbilleder
Menuskærmbilleder
Menuskærmbilleder
Menuskærmbilleder
Menuskærmbilleder
Menuskærmbilleder

Ved hjælp af tastaturet kan hver af muligheder let programmeres. Billederne giver nogle oplysninger om, hvad hver skærm gør.

Trin 7: Design af systemet

Design af systemet
Design af systemet

Al udvikling og test blev udført på brødbræt. Når jeg kiggede på alle sektioner af systemet, brød jeg systemet ned i tre moduler. Denne beslutning skyldtes hovedsageligt PCB -størrelsesbegrænsninger (80 x 100 mm) af den gratis version af Eagle.

Modul 1 - Strømforsyning

Modul 2 - CPU -kort

Modul 3 - Relækort

Jeg besluttede, at alle komponenter skal være let tilgængelige, og at jeg ikke ønskede at bruge overflademonterede komponenter.

Lad os gå igennem hver af dem.

Trin 8: Strømforsyning

Strømforsyning
Strømforsyning
Strømforsyning
Strømforsyning
Strømforsyning
Strømforsyning
Strømforsyning
Strømforsyning

Strømforsyningen er lige fremad, og forsyner CPU og relækort med 12V og 5V.

Jeg monterede spændingsregulatorerne på anstændige kølelegemer og brugte også overvurderede kondensatorer til forsyningen.

Trin 9: CPU -kort

CPU -kort
CPU -kort
CPU -kort
CPU -kort
CPU -kort
CPU -kort
CPU -kort
CPU -kort

Alle komponenter undtagen LCD -skærm, tastatur og relæer er monteret på CPU -kortet.

Terminalblokke blev tilføjet for at forenkle forbindelserne mellem forsyningen, to digitale indgange og lyssensoren.

Header pins/sockets gør det muligt at tilslutte let til LCD -skærmen og tastaturet.

Til output til relæerne brugte jeg ULN2803. Den indeholder allerede alle nødvendige drivmodstande og flyback -dioder. Dette sikrede, at CPU -kortet stadig kan laves ved hjælp af den gratis version af Eagle. Relæerne er forbundet til de to ULN2803'er. Den nederste ULN2803 bruges til de 8 udgange, og den øverste ULN2803 til de to hjælpeudgange. Hver ekstraudgang har fire transistorer. Forbindelser til relæerne sker også gennem hovedstifter/stik.

PIC 18F4520 var udstyret med en programmeringsstik, så det er let at programmere via PicKit 3 programmereren.

BEMÆRK:

Du vil bemærke, at kortet indeholder en ekstra 8 -polet IC. Den øverste IC er en PIC 12F675 og forbundet til en digital indgang. Dette blev tilføjet under PCB -designet. Dette gør det lettere at forbehandle det digitale input. I min applikation er en af de digitale indgange forbundet til mit alarmsystem. Hvis alarmen lyder, tændes visse lys i mit hus. Til- og frakobling af mit alarmsystem giver forskellige bip på sirenen. Ved at bruge PIC 12F675 kan jeg nu skelne mellem arm/frakobling og en rigtig alarm. 12F675 er også udstyret med en programmeringsstik.

Jeg sørgede også for en I2C port via header pin/socket. Dette vil være praktisk senere med relæbrædderne.

Brættet indeholder et par jumpere, som skal loddes, før IC -stikkene monteres.

Trin 10: Konklusion af flowkode

Flowcode -konklusion
Flowcode -konklusion
Flowcode -konklusion
Flowcode -konklusion
Flowcode -konklusion
Flowcode -konklusion

Da jeg er vant til at arbejde på registerniveau i montage, var det nogle gange svært og frustrerende at bruge komponentmakroerne. Dette skyldtes hovedsageligt min mangel på viden om Flowcodes programmeringsstruktur. De eneste steder, jeg har brugt C- eller ASM -blokke, var at tænde output i en afbrydelsesrutine og i Do_KeyPressed -rutinen for at deaktivere/aktivere tastaturafbrydelsen. PIC'en placeres også i SLEEP ved hjælp af en ASM -blok, når EEPROM eller RTC ikke findes.

Hjælp til brugen af de forskellige I²C -kommandoer blev alle hentet inde fra Flowcode -hjælpefilerne. Det er nødvendigt at vide nøjagtigt, hvordan de forskellige I²C -enheder fungerer, før kommandoerne kan bruges med succes. Design af et kredsløb kræver, at designeren har alle relevante datablade til rådighed. Dette er ikke en mangel på Flowcode.

Flowcode stod virkelig for testen og kan varmt anbefales til personer, der ønsker at begynde at arbejde med Microchip -serien af mikroprocessorer.

Flowcode programmering og konfiguration for PIC blev indstillet som pr. Billeder

Trin 11: Valgfrit I2C relækort

Valgfri I2C relækort
Valgfri I2C relækort
Valgfri I2C relækort
Valgfri I2C relækort
Valgfri I2C relækort
Valgfri I2C relækort

CPU -kortet har allerede headerforbindelser til 16 relæer. Disse udgange er åbne kollektortransistorer via de to ULN2803 -chips, der kan bruges til at drive relæerne direkte.

Efter de første test af systemet kunne jeg ikke lide alle ledningerne mellem CPU -kortet og relæerne. Da jeg inkluderede en I2C -port på CPU -kortet, besluttede jeg at designe relækortet til at forbinde til I2C -porten. Ved hjælp af en 16 -kanals MCP23017 I/O Port Expander -chip og et ULN2803 -transistormatrix reducerede jeg forbindelserne mellem CPU og relæer til 4 ledninger.

Da jeg ikke kunne passe 16 relæer på et 80 x 100 mm printkort, besluttede jeg at lave to brædder. Hver MCP23017 bruger kun 8 af sine 16 porte. Kort 1 håndterer de 8 udgange, og bord 2 de to hjælpeudgange. Den eneste forskel på tavlerne er adresserne på hvert bræt. Dette indstilles let med en minitrøje. Hvert kort har stik til at levere strøm og I2C -data til det andet kort.

BEMÆRK:

Om nødvendigt sørger softwaren for kun ét kort, der kan bruge alle 16 porte. Alle outputrelædata er tilgængelige på det første bord.

Da kredsløbet er valgfrit og meget enkelt, lavede jeg ikke en skematisk. Hvis der er nok efterspørgsel, kan jeg tilføje det senere.

Trin 12: Valgfri RF -link

Valgfri RF -link
Valgfri RF -link
Valgfri RF -link
Valgfri RF -link
Valgfri RF -link
Valgfri RF -link

Efter afslutningen af projektet indså jeg hurtigt, at jeg er nødt til at trække en masse 220V AC -ledninger til timeren. Jeg udviklede et RF -link ved hjælp af standard 315MHz -moduler, der tillod timeren at blive placeret inde i et skab, og relæbrædderne inde i taget, tæt på alle 220V -ledningerne.

Linket bruger en AtMega328P, der kører ved 16MHz. Softwaren til både sender og modtager er den samme, og tilstanden vælges af en minihopper.

Senderen

Senderen er simpelthen tilsluttet CPU I2C -porten. Der kræves ingen yderligere opsætning, da AtMega328P lytter til de samme data som I2C -relækortene.

Data opdateres en gang i sekundet på I2C -porten, og senderen sender disse oplysninger via RF -forbindelsen. Skulle transmitteren ikke modtage I2C -data i cirka 30 sekunder, sender transmitteren kontinuerligt data for at slukke alle relæer til modtagerenheden.

Strøm til transmittermodulet kan vælges mellem 12V og 5V med en mini -jumper på pc -kortet. Jeg tænder min sender ved hjælp af 12V.

Modtager

Modtageren lytter efter kodede data fra senderen og placerer dataene på en I2C -port. Relækortet tilsluttes simpelthen denne port og fungerer på samme måde som det blev tilsluttet CPU -kortet.

Hvis modtageren ikke modtager gyldige data i 30 sekunder, sender modtageren løbende data på I2C -porten for at slukke alle relæer på relækortene.

Skemaer

En dag, hvis der er efterspørgsel efter det. Arduino -skitsen indeholder alle nødvendige oplysninger for at bygge kredsløbet uden et kredsløbsdiagram.

Rækkevidde

I min installation er senderen og modtageren cirka 10 meter fra hinanden. Timeren er inde i et skab, og relæenheden oven på loftet.

Trin 13: Slutprodukt

Slutprodukt
Slutprodukt
Slutprodukt
Slutprodukt
Slutprodukt
Slutprodukt

Hovedenheden blev monteret i en gammel projektkasse. Den indeholder følgende:

- 220V/12V Transformer

- Strømforsyningskort

- CPU -kort

- LCD display

- Tastatur

- RF Link -sender

- Ekstra hjemmemodtagermodtager, så jeg kan tænde/slukke lys via fjernbetjeningen

Relæenheden består af følgende:

- 220V/12V Transformer

- Strømforsyningskort

- RF Link -modtager

- 2 x I2C relækort

Alle brædder blev designet med samme dimension, hvilket gør det let at stable dem oven på hinanden med 3 mm afstandsstykker.

Anbefalede: