Innholdsfortegnelse:

8 kanalers programmerbar timer: 13 trinn
8 kanalers programmerbar timer: 13 trinn

Video: 8 kanalers programmerbar timer: 13 trinn

Video: 8 kanalers programmerbar timer: 13 trinn
Video: Стильная Мужская Стрижка 2023 Пошагово дома | Уроки стрижек Евы Лорман | Как стричь Мужские стрижки 2024, Juli
Anonim
8 kanalers programmerbar timer
8 kanalers programmerbar timer
8 kanalers programmerbar timer
8 kanalers programmerbar timer
8 kanalers programmerbar timer
8 kanalers programmerbar timer

Introduksjon

Jeg har brukt Microchips PIC -utvalg av mikrokontroller for prosjektene mine siden 1993, og har gjort all min programmering på assembler -språk ved å bruke Microchip MPLab IDE. Prosjektene mine spenner fra enkle trafikklys og blinkende lysdioder, til USB -joystick -grensesnitt for R/C -modeller og koblingsanalysatorer som brukes i industrien. Utviklingen tok mange dager, og noen ganger tusenvis av linjer med assembler -kode.

Etter å ha mottatt Matrix Multimedia Flowcode 4 Professional, var jeg ganske skeptisk til programvaren. Det så for lett ut til å tro. Jeg bestemte meg for å prøve det, og testet alle de forskjellige komponentmakroene, alle med stor suksess. Den beste delen med å bruke Flowcode var at enkle prosjekter kunne kodes på en enkelt natt. Etter å ha spilt med I²C og en DS1307 sanntidsklokke, bestemte jeg meg for å designe 8 -kanalstimeren ved hjelp av Flowcode. Jeg var ikke et lite og enkelt prosjekt, og jeg trodde at dette ville være et flott prosjekt å lære meg selv Flowcode.

Velge en mikroprosessor og andre komponenter

På grunn av antall I/O -pinner som kreves, var det klart at en 40 -pinners enhet vil være nødvendig. PIC 18F4520 ble valgt, hovedsakelig for sitt 32K programminne, og 1536 byte dataminne. Alle brukte komponenter er standard gjennomgående hull, noe som gjør det mulig å bygge kretsen på Vero-kortet om nødvendig. Dette hjalp også med utviklingen på et brødbrett.

Trinn 1: Prosjektmål

Prosjektmål
Prosjektmål

Mål

- Nøyaktig tidsoppbevaring, med batteribackup.

- Alle programmer og data skal beholdes, selv etter tap av strøm.

- Enkelt brukergrensesnitt.

- Programmeringsfleksibilitet.

Tidsoppbevaring

Hvis du bor i et område som er utsatt for strømbrudd, vil ikke standard 50/60Hz fra kraftledningene være tilstrekkelig for nøyaktig tidsoppbevaring. En sanntidsklokke var viktig, og etter å ha testet flere RTC-brikker bestemte jeg meg for DS1307 på grunn av den enkle oscillatoren og batteriets sikkerhetskopieringskonfigurasjon. Ganske nøyaktig tidsoppbevaring ble oppnådd ved bruk av bare en 32.768 kHz krystall som var koblet til DS1307. Nøyaktigheten var innen 2 sekunder over en 2 måneders prøveperiode ved bruk av 4 forskjellige krystaller.

Datalagring

Alle timerprogramdata må beholdes, selv under strømbrudd. Med opptil 100 forskjellige programmer og forskjellige konfigurasjonsdata ble det klart at 256 byte innebygd EEPROM på PIC ikke vil være stort nok. En 24LC256 I²C EEPROM brukes til å lagre all programmeringsinformasjon.

Enkelt brukergrensesnitt

Brukergrensesnittet består av bare 2 elementer, en 16 x 4 linjers LCD -skjerm med LED -bakgrunnsbelysning og et 4 x 3 tastatur. All programmering kan gjøres med bare noen få knapper. Tillegg til grensesnittet er en hørbar piezo -summer og visuell blinkende LCD -bakgrunnsbelysning.

Trinn 2: Programmeringsfleksibilitet

Programmeringsfleksibilitet
Programmeringsfleksibilitet

For å sikre nok programfleksibilitet har timeren 100 programmer som kan settes individuelt. For hvert program kan På -tid, Av -tid, Utgangskanaler og ukedag stilles inn. Hvert program har tre moduser:

- Auto: På -tid, Av -tid, Utgangskanal og ukedag er angitt.

- Av: Det enkelte programmet kan deaktiveres uten å slette innstillingene. For å aktivere programmet igjen, bare velg en annen modus.

- Dag/natt: På tid, Av tid, Utgangskanal og ukedag er angitt. Fungerer på samme måte som Auto -modus, men vil

Slå bare på utgangene mellom På og Av når det er mørkt. Dette muliggjør også full dag/natt -kontroll

som den ekstra fleksibiliteten for å slå på lys ved solnedgang, og av ved soloppgang.

Eksempel 1: Tenner lyset etter klokken 20.00, og lyset slås av ved soloppgang:

På: 20:00, Av: 12.00, Eksempel 2: Lyser ved solnedgang, og lyset slås av kl. 23.00.

På: 12:00

Av: 23:00

Eksempel 3: Lyser ved solnedgang, og lys slås av ved soloppgang.

På: 12:01

Av: 12:00

Ytterligere alternativer tilgjengelig, alle jobber uavhengig av de 100 på/av -programmene.

Programkanaler aktive: I stedet for å slå av flere programmer, kan individuelle utgangskanaler deaktiveres uten å måtte endre programmene.

Ekstra innganger: To digitale innganger er tilgjengelige, slik at visse utgangskanaler kan slås på for en bestemt tid. Den kan for eksempel brukes til å slå på visse lys når du kommer hjem sent på kvelden, når du trykker på en knapp på en fjernkontroll, eller for å slå på en annen lampe når husalarmen utløses.

Ekstrautganger: To ekstra utganger (bortsett fra de 8 utgangskanalene) er tilgjengelige. De kan programmeres til å slå på med bestemte utgangskanaler, eller med de digitale inngangene. I min installasjon har jeg utganger 6-8 som styrer vanningen min, som fungerer på 24V. Jeg bruker kanal 6-8 for å slå på en av tilleggsutgangene, for å slå på en 24V strømforsyning for vanningssystemet.

Manuell på: Når du er i hovedskjermen, kan knappene 1-8 brukes til å slå kanaler manuelt på eller av.

Trinn 3: Maskinvare

Maskinvare
Maskinvare

Strømforsyning: Strømforsyningen består av en likeretter, utjevningskondensator og en 1 Amp sikring for overbelastningsbeskyttelse. Denne forsyningen blir deretter regulert av en 7812 og 7805 regulator. 12V -forsyningen brukes til å drive utgangsreléene, og alle andre kretser drives av 5V -forsyningen. Siden 7805 -regulatoren er koblet til utgangen til 7812 -regulatoren, må den totale strømmen begrenses til 1 ampere gjennom 7812 -regulatoren. Det anbefales å montere disse regulatorene på en egnet kjøleribbe.

I²C Bus: Selv om Flowcode tillater maskinvare I²C -kontroll, bestemte jeg meg for å bruke programvaren I²C -konfigurasjon. Dette gir større fleksibilitet i pin -oppgaver. Selv om den er tregere (50 kHz), fungerer den fortsatt bra sammenlignet med maskinvaren I²C -bussen. Både DS1307 og 24LC256 er koblet til denne I²C -bussen.

Sanntidsklokke (DS1307): Under oppstart leses RTC-registret 0 og 7 for å avgjøre om det inneholder gyldig tid og konfigurasjonsdata. Når oppsettet er riktig, leses RTC -tiden og tiden lastes inn i PIC. Dette er den eneste gangen denne tiden blir lest fra RTC. Etter oppstart vil en 1Hz puls være tilstede på pinne 7 i RTC. Dette 1Hz -signalet er koblet til RB0/INT0, og via en avbruddsrutine oppdateres PIC -tiden hvert sekund.

Ekstern EEPROM: Alle programdata og alternativer lagres på den eksterne EEPROM. EEPROM-dataene lastes inn ved oppstart, og en kopi av dataene lagres i PIC-minnet. EEPROM -data oppdateres bare når programinnstillingene endres.

Dag/natt sensor: En standard lysavhengig motstand (LDR) brukes som dag/natt sensor. Siden LDR kommer i mange former og varianter, alle med forskjellige motstandsverdier under de samme lysforholdene, brukte jeg en analog inngangskanal for å lese lysnivået. Dag- og nattnivået er justerbart, og gir mulighet for litt fleksibilitet for forskjellige sensorer. For å sette opp noen hysterese, kan individuelle verdier for dag og natt settes. Tilstanden vil bare endres hvis lysnivået er under dagen, eller over settpunktene for natten, i mer enn 60 sekunder.

LCD-skjerm: 4-linjers display med 16 tegn brukes, siden alle dataene ikke kunne vises på en 2-linjers skjerm. Prosjektet inneholder noen egendefinerte tegn, som er definert i LCD_Custom_Char -makroen.

Aux -innganger: Begge inngangene er bufret med en NPN -transistor. +12v og 0V er også tilgjengelig på kontakten, noe som gir mulighet for mer fleksible tilkoblinger til eksterne tilkoblinger. Som et eksempel kan en fjernkontrollmottaker kobles til strømforsyningen.

Utganger: Alle utganger er elektrisk isolert fra kretsen ved hjelp av et 12V relé. Reléene som brukes, er vurdert til 250V AC, ved 10 ampere. De normalt åpne og normalt lukkede kontaktene bringes ut til terminalene.

Tastatur: Tastaturet som brukes er et 3 x 4 matrisetastatur, og er tilkoblet PORTB: 2..7.

Trinn 4: Tastaturavbrudd

Tastatur avbryter
Tastatur avbryter
Tastatur avbryter
Tastatur avbryter
Tastatur avbryter
Tastatur avbryter

Jeg ønsket å bruke PORTB Interrupt on Change interrupt ved et tastetrykk. For dette måtte det opprettes et egendefinert avbrudd i Flowcode for å sikre at PORTB -retningen og dataene er satt opp riktig før og etter hvert tastaturavbrudd. Et avbrudd genereres hver gang en knapp trykkes eller slippes. Avbruddsrutinen reagerer bare når du trykker på en tast.

TILPASSET AVBRYT

Aktiver kode

portb = 0b00001110; trisb = 0b11110001;

intcon. RBIE = 1;

intcon2. RBIP = 1;

intcon2. RBPU = 1;

rcon. IPEN = 0;

Behandlerkode

if (intcon & (1 << RBIF))

{FCM_%n ();

portb = 0b00001110;

trisb = 0b11110001;

wreg = portb;

clear_bit (intcon, RBIF);

}

Problemer funnet

Under et avbrudd må avbruddsrutinen under INGEN betingelser ringe til en annen makro som kan brukes et sted i resten av programmet. Dette vil til slutt føre til stabelflow -problemer, ettersom avbruddet kan oppstå samtidig som hovedprogrammet også er i samme underprogram. Dette blir også identifisert som en ALVORLIG FEIL etter Flowcode når koden kompileres.

I den egendefinerte koden på tastaturet under GetKeyPadNumber er det et slikt anrop til Delay_us -makroen, noe som vil føre til at en bunke flyter over. For å overvinne dette har jeg fjernet kommandoen Delay_us (10), og erstattet den med 25 linjer med "wreg = porta;" kommandoer. Denne kommandoen leser PORTA, og plasserer verdien i W -registeret, bare for å få litt forsinkelse. Denne kommandoen vil bli samlet til en enkelt instruksjon som ligner assembler movf porta, 0. For 10MHz -klokken som ble brukt i prosjektet, vil hver instruksjon være 400ns, og for å få 10us forsinkelse trengte jeg 25 av disse instruksjonene.

Merk på den andre linjen i figur 3: GetKeypadNumber Custom Code, at den opprinnelige delay_us (10) kommandoen er deaktivert med “//”. Under dette har jeg lagt til mine 25 “wreg = porta;” kommandoer for å få en ny 10us forsinkelse. Uten anrop til noen makroer i den egendefinerte koden Keypad_ReadKeypadNumber, kan tastaturmakroen nå brukes i en avbruddsrutine.

Det skal bemerkes at komponentene i Flowcode-tastaturet og eBlocks ikke bruker standard pull-up-motstander på inngangslinjene. I stedet bruker den 100K nedtrekksmotstander. På grunn av noen forstyrrelser som ble funnet på tastaturet under utviklingen, ble 100K -motstandene alle erstattet med 10K, og alle 10K -motstandene erstattet med 1K5. Tastaturet ble testet for å fungere korrekt med ledninger på 200 mm.

Trinn 5: Bruke timeren

Bruke timeren
Bruke timeren
Bruke timeren
Bruke timeren
Bruke timeren
Bruke timeren

Alle skjermene er satt opp for å indikere all nødvendig informasjon for brukeren for å gjøre raske endringer i innstillingene. Linje 4 brukes til å hjelpe deg med navigering gjennom menyene og programalternativene. Totalt 22 skjermer er tilgjengelige under normal drift.

LINE 1: Tid og status

Viser gjeldende dag og tid, etterfulgt av statusikoner:

A - Indikerer at Aux Input A ble utløst, og Aux Input A timer kjører.

B - Indikerer at Aux Input B ble utløst, og Aux Input B -timeren kjører.

C - Indikerer at Aux -utgang C er slått på.

D - Indikerer at Aux -utgang D er slått på.

} - Dag/natt sensorstatus. Hvis det er tilstede, indikerer det at det er natt.

LINE 2: Programutganger

Viser kanalene som har blitt slått på av de forskjellige programmene. Kanaler vises i utgangstallene, og en "-" indikerer at den spesifikke utgangen ikke er slått på. Kanaler som er deaktivert i "Programutganger aktive" vil fortsatt bli angitt her, men de virkelige utgangene vil ikke bli angitt.

LINE 3: Real Outputs

Viser hvilke kanaler som slås på av de forskjellige programmene, Aux -innganger A & B, eller manuelle utganger som er angitt av brukeren. Ved å trykke 0 vil alle manuelt aktiverte utganger slås av og nullstillingene for Aux B -utganger A og B tilbakestilles.

LINE 4: Meny og viktige alternativer (på alle menyer)

Angir funksjonen til “*” og “#” -tastene.

Den midtre delen angir hvilke numeriske taster (0-9) som er aktive for det valgte skjermbildet.

Inngangsstatusen til Aux Input A & B vises også ved hjelp av et åpent eller lukket bryterikon.

Utgangene kan slås av/på manuelt ved å trykke på den tilhørende tasten på tastaturet.

I menyene brukes stjerne- og hashtastene for å navigere gjennom de forskjellige programalternativene. Tastene 0-9 brukes til å angi alternativene. Når flere alternativer er tilgjengelige på en enkelt skjerm eller programmeringsmeny, brukes Hash -tasten for å gå gjennom de forskjellige alternativene. Det gjeldende valgte alternativet vil alltid bli indikert med ">" - tegnet til venstre på skjermen.

0-9 Angi tidsverdier

1-8 Endre kanalvalg

14 36 Gå gjennom programmer, 1-trinns tilbake, 4-trinns tilbake 10 programmer, 3-trinns fremover, 6-trinns fremover 10

programmer

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

0 I hovedskjermbildet fjerner du alle manuelle overstyringer og Input A & Input B -tidtakere. I andre menyer endres

valgte alternativer

# På hovedskjermen deaktiverer alle manuelle overstyringer, inngang A og inngang B -tidtakere og programutganger, til

neste arrangement.

* og 1 Start timeren på nytt

* og 2 Fjern alle programmer og alternativer, gjenopprett innstillingene til standard.

* og 3 Sett timeren i standby. Trykk på hvilken som helst tast for å slå timeren på igjen.

Under feil oppføringer av en hvilken som helst tidsverdi blinker LCD -bakgrunnsbelysningen 5 ganger for å indikere en feil. På samme tid vil summeren høres. Kommandoer Avslutt og Neste fungerer bare når gjeldende oppføring er riktig.

LCD -bakgrunnsbelysning

Ved første oppstart vil LCD-bakgrunnsbelysningen slås på i 3 minutter, med mindre:

- Det er en maskinvarefeil (EEPROM eller RTC ikke funnet)

- Tid ikke angitt i RTC

LCD -bakgrunnsbelysningen slås på igjen i 3 minutter på alle brukerinnganger på tastaturet. Hvis LCD -bakgrunnsbelysningen er av, vil en hvilken som helst tastaturkommando først slå på LCD -bakgrunnsbelysningen og ignorere tasten som ble trykket. Dette sikrer at brukeren vil kunne lese LCD -displayet før du bruker tastaturet. LCD -bakgrunnsbelysningen slås også på i 5 sekunder hvis Aux Input A eller Aux Input B er aktivert.

Trinn 6: Menyskjermbilder

Menyskjermbilder
Menyskjermbilder
Menyskjermbilder
Menyskjermbilder
Menyskjermbilder
Menyskjermbilder

Ved hjelp av tastaturet kan hvert av alternativene programmeres enkelt. Bildene gir litt informasjon om hva hver skjerm gjør.

Trinn 7: Design av systemet

Design av systemet
Design av systemet

All utvikling og testing ble utført på brødbrett. Når jeg så på alle delene av systemet, delte jeg systemet ned i tre moduler. Denne beslutningen skyldtes hovedsakelig PCB -størrelsesbegrensninger (80 x 100 mm) av gratisversjonen av Eagle.

Modul 1 - Strømforsyning

Modul 2 - CPU -kort

Modul 3 - Relébrett

Jeg bestemte meg for at alle komponenter må være lett tilgjengelige, og at jeg ikke ønsket å bruke overflatemonterte komponenter.

La oss gå gjennom hver av dem.

Trinn 8: Strømforsyning

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

Strømforsyningen er rett frem, og forsyner CPU og relékort med 12V og 5V.

Jeg monterte spenningsregulatorene på anstendig kjøleribber, og brukte også overvurderte kondensatorer for forsyningen.

Trinn 9: CPU -kort

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

Alle komponenter, unntatt LCD -skjerm, tastatur og reléer er montert på CPU -kortet.

Terminalblokker ble lagt til for å forenkle forbindelsene mellom strømforsyningen, to digitale innganger og lyssensoren.

Toppstifter/kontakter gjør det enkelt å koble til LCD -skjermen og tastaturet.

For utgangene til reléene brukte jeg ULN2803. Den inneholder allerede alle nødvendige drivmotstander og flyback -dioder. Dette sikret at CPU -kortet fortsatt kan lages ved hjelp av gratisversjonen av Eagle. Reléene er koblet til de to ULN2803 -ene. Den nederste ULN2803 brukes for de 8 utgangene, og den øverste ULN2803 for de to hjelpeutgangene. Hver tilleggsutgang har fire transistorer. Tilkoblinger til reléene er også gjennom toppnål/stikkontakter.

PIC 18F4520 var utstyrt med en programmeringsuttak for enkel programmering via PicKit 3 -programmereren.

MERK:

Du vil legge merke til at brettet inneholder en ekstra 8 -pinners IC. Den øverste IC er en PIC 12F675, og koblet til en digital inngang. Dette ble lagt til under PCB -utformingen. Dette gjør det lettere å forhåndsbehandle den digitale inngangen. I søknaden min er en av de digitale inngangene koblet til alarmsystemet mitt. Hvis alarmen lyder, tennes visse lys i huset mitt. Når du aktiverer og deaktiverer alarmsystemet mitt, gir det forskjellige pip på sirenen. Ved å bruke PIC 12F675, kan jeg nå skille mellom arm/frakobling og en ekte alarm. 12F675 er også utstyrt med en programmeringsstikkontakt.

Jeg sørget også for en I2C -port via toppnål/kontakt. Dette vil komme til nytte senere med relébrettene.

Brettet inneholder noen få hoppere, som bør loddes før IC -kontaktene monteres.

Trinn 10: Konklusjon på flytkoden

Konklusjon på flytkoden
Konklusjon på flytkoden
Konklusjon på flytkoden
Konklusjon på flytkoden
Konklusjon på flytkoden
Konklusjon på flytkoden

Siden jeg er vant til å jobbe på registernivå i montering, var det noen ganger vanskelig og frustrerende å bruke komponentmakroene. Dette skyldtes hovedsakelig min mangel på kunnskap om Flowcodes programmeringsstruktur. De eneste stedene jeg har brukt C- eller ASM -blokkene, var å slå på utganger inne i en avbruddsrutine og i Do_KeyPressed -rutinen for å deaktivere/aktivere tastaturavbruddet. PIC er også plassert i SLEEP ved hjelp av en ASM -blokk, når EEPROM eller RTC ikke blir funnet.

Hjelp til bruk ved bruk av de forskjellige I²C -kommandoene, ble alle hentet fra hjelpefilene til Flowcode. Det er nødvendig å vite nøyaktig hvordan de forskjellige I²C -enhetene fungerer, før kommandoene kan brukes vellykket. Design av en krets krever at designeren har alle relevante datablad tilgjengelig. Dette er ikke en mangel på Flowcode.

Flowcode klarte virkelig testen, og anbefales på det sterkeste for personer som ønsker å begynne å jobbe med Microchip -serien av mikroprosessorer.

Flowcode programmering og konfigurasjon for PIC ble angitt i henhold til bildene

Trinn 11: Valgfritt I2C -relékort

Valgfritt I2C relékort
Valgfritt I2C relékort
Valgfritt I2C relékort
Valgfritt I2C relékort
Valgfritt I2C relékort
Valgfritt I2C relékort

CPU -kortet har allerede overskriftstilkoblinger for 16 reléer. Disse utgangene er åpne kollektortransistorer via de to ULN2803 -brikkene. Disse kan brukes til å drive reléene direkte.

Etter de første testene av systemet likte jeg ikke alle ledningene mellom CPU -kortet og releer. Siden jeg inkluderte en I2C -port på CPU -kortet, bestemte jeg meg for å designe relékortet for å koble til I2C -porten. Ved å bruke en 16 -kanals MCP23017 I/O Port Expander -brikke og en ULN2803 -transistormatrise reduserte jeg forbindelsene mellom CPU og reléer til 4 ledninger.

Siden jeg ikke kunne passe 16 reléer på en 80 x 100 mm PCB, bestemte jeg meg for å lage to brett. Hver MCP23017 bruker bare 8 av sine 16 porter. Brett 1 håndterer de 8 utgangene, og brett 2 de to hjelpeutgangene. Den eneste forskjellen på brettene er adressene til hvert brett. Dette settes enkelt med en minigenser. Hvert kort har kontakter for å levere strøm og I2C -data til det andre kortet.

MERK:

Om nødvendig sørger programvaren for kun ett kort som kan bruke alle 16 porter. Alle utgangsrelédata er tilgjengelig på det første kortet.

Siden kretsen er valgfri og veldig enkel, laget jeg ikke en skjematisk. Hvis det er nok etterspørsel, kan jeg legge det til senere.

Trinn 12: Valgfri RF -kobling

Valgfri RF -kobling
Valgfri RF -kobling
Valgfri RF -kobling
Valgfri RF -kobling
Valgfri RF -kobling
Valgfri RF -kobling

Etter at prosjektet var fullført, skjønte jeg snart at jeg må trekke mange 220V AC -ledninger til timeren. Jeg utviklet en RF -kobling ved hjelp av standard 315MHz moduler som tillot timeren å bli plassert inne i et skap, og relékortene inne i taket, nær alle 220V -ledningene.

Koblingen bruker en AtMega328P som kjører på 16MHz. Programvaren for både sender og mottaker er den samme, og modusen velges av en minihopper.

Sender

Senderen er ganske enkelt koblet til CPU I2C -porten. Ingen tilleggsoppsett er nødvendig, ettersom AtMega328P lytter til de samme dataene som I2C -relékortene.

Data oppdateres en gang i sekundet på I2C -porten, og senderen sender denne informasjonen over RF -lenken. Skulle senderen ikke motta I2C -data på omtrent 30 sekunder, sender senderen kontinuerlig data for å slå av alle releer til mottakerenheten.

Strøm til sendermodulen kan velges mellom 12V og 5V med en minihopper på PC -kortet. Jeg driver senderen min med 12V.

Mottaker

Mottakeren lytter etter kodede data fra senderen, og plasserer dataene på en I2C -port. Relékortet kobles ganske enkelt til denne porten, og fungerer på samme måte som det ble plugget inn i CPU -kortet.

Skulle mottakeren ikke motta gyldige data på 30 sekunder, sender mottakeren kontinuerlig data på I2C -porten for å slå av alle reléer på relékortene.

Skjemaer

En dag, hvis det er etterspørsel etter det. Arduino -skissen inneholder all nødvendig informasjon for å bygge kretsen uten et kretsdiagram.

Område

I min installasjon er senderen og mottakeren omtrent 10 meter fra hverandre. Timeren er inne i et skap, og reléenheten på toppen av taket.

Trinn 13: Sluttprodukt

Sluttprodukt
Sluttprodukt
Sluttprodukt
Sluttprodukt
Sluttprodukt
Sluttprodukt

Hovedenheten ble montert i en gammel prosjektboks. Den inneholder følgende:

- 220V/12V transformator

- Strømforsyningskort

- CPU -kort

- LCD-skjerm

- Tastatur

- RF Link -sender

- Ekstra fjernkontrollenhet for hjemmet som lar meg slå lysene på/av via fjernkontrollen

Reléenheten består av følgende:

- 220V/12V transformator

- Strømforsyningskort

- RF Link -mottaker

- 2 x I2C stafettplater

Alle brettene var designet med samme dimensjon, noe som gjør det enkelt å stable dem oppå hverandre med 3 mm avstandsstykker.

Anbefalt: