Sadržaj:

8 -kanalni programabilni mjerač vremena: 13 koraka
8 -kanalni programabilni mjerač vremena: 13 koraka

Video: 8 -kanalni programabilni mjerač vremena: 13 koraka

Video: 8 -kanalni programabilni mjerač vremena: 13 koraka
Video: Основные ошибки при возведении перегородок из газобетона #5 2024, Juli
Anonim
8 -kanalni programabilni mjerač vremena
8 -kanalni programabilni mjerač vremena
8 -kanalni programabilni mjerač vremena
8 -kanalni programabilni mjerač vremena
8 -kanalni programabilni mjerač vremena
8 -kanalni programabilni mjerač vremena

Uvod

Koristim Microchip -ov PIC asortiman mikrokontrolera za svoje projekte od 1993. godine, a sve svoje programiranje obavljao sam na asemblerskom jeziku, koristeći Microchip MPLab IDE. Moji projekti su se kretali od jednostavnih semafora i trepćućih LED dioda, preko USB interfejsa džojstika za R/C modele i analizatora rasklopnih uređaja koji se koriste u industriji. Razvoj je trajao mnogo dana, a ponekad i hiljade redova asemblerskog koda.

Nakon što sam primio Matrix Multimedia Flowcode 4 Professional, bio sam prilično skeptičan prema softveru. Izgledalo je previše lako za povjerovati. Odlučio sam isprobati i testirao sve različite makroe komponenti, sve sa velikim uspjehom. Najbolji dio korištenja Flowcodea bio je taj što su jednostavni projekti mogli biti kodirani u jednoj noći. Nakon što sam se poigrao sa I²C i satom za realno vrijeme DS1307, odlučio sam dizajnirati 8 -kanalni mjerač vremena pomoću protokola. Nije mali i lak projekt, vjerovao sam da će ovo biti odličan projekt da se naučim Flowcode.

Odabir mikroprocesora i drugih komponenti

Zbog potrebnog broja I/O pinova bilo je jasno da će biti potreban 40 -pinski uređaj. PIC 18F4520 je odabran, uglavnom zbog njegove 32K programske memorije i 1536 bajtova memorije podataka. Sve upotrijebljene komponente standardni su uređaji za probijanje, što omogućuje izradu kruga na Vero ploči ako je potrebno. Ovo je također pomoglo razvoju na matičnoj ploči.

Korak 1: Ciljevi projekta

Ciljevi projekta
Ciljevi projekta

Ciljevi

- Tačno praćenje vremena, sa rezervnom baterijom.

- Svi programi i podaci moraju se zadržati, čak i nakon gubitka napajanja.

- Jednostavno korisničko sučelje.

- Fleksibilnost programiranja.

Čuvanje vremena

Ako živite u području sklonom nestanku struje, standardnih 50/60Hz iz dalekovoda neće biti dovoljno za točno mjerenje vremena. Sat u stvarnom vremenu bio je bitan, a nakon testiranja nekoliko RTC čipova, odlučio sam se za DS1307 zbog jednostavne konfiguracije oscilatora i rezervne baterije. Prilično precizno mjerenje vremena postignuto je korištenjem samo 32.768 kHz kristala spojenog na DS1307. Preciznost je bila unutar 2 sekunde tokom 2 mjeseca probnog perioda korištenjem 4 različite vrste kristala.

Čuvanje podataka

Svi podaci programa tajmera moraju se zadržati, čak i za vrijeme nestanka struje. Uz do 100 različitih programa i različitih konfiguracijskih podataka, postalo je jasno da 256 bajtova ugrađenog EEPROM-a PIC-a neće biti dovoljno veliko. 24LC256 I²C EEPROM se koristi za spremanje svih programskih podataka.

Jednostavno korisničko sučelje

Korisničko sučelje sastoji se od samo 2 stavke, LCD ekrana 16 x 4 reda sa LED pozadinskim osvjetljenjem i 4 x 3 tastature. Programiranje se može obaviti pritiskom na samo nekoliko tipki. Dodaci interfejsu su zvučni piezo zujalica i vizuelno trepćuće pozadinsko osvetljenje LCD ekrana.

Korak 2: Fleksibilnost programiranja

Fleksibilnost programiranja
Fleksibilnost programiranja

Kako bi se osigurala dovoljna fleksibilnost programa, mjerač vremena ima 100 programa koji se mogu postaviti pojedinačno. Za svaki program se mogu postaviti vrijeme uključivanja, vrijeme isključenja, izlazni kanali i dan u sedmici. Svaki program ima tri načina rada:

- Automatski: Postavljeno je vrijeme uključivanja, vrijeme isključenja, izlazni kanal i dan u tjednu.

- Isključeno: Pojedinačni program se može onemogućiti, bez brisanja postavki. Da biste ponovo omogućili program, jednostavno odaberite drugi način rada.

- Dan/Noć: Postavljeno je vrijeme uključivanja, vrijeme isključenja, izlazni kanal i dan u tjednu. Radi isto kao i automatski način rada, ali hoće

uključite izlaze samo između vremena uključivanja i isključivanja kada je mrak. Ovo omogućava i potpunu kontrolu dan/noć

kao dodatna fleksibilnost za uključivanje svjetla pri zalasku sunca i gašenje pri izlasku sunca.

Primjer 1: Uključit će svjetlo nakon 20:00 sati, a svjetlo će se ugasiti pri izlasku sunca.:

U: 20:00, Isključeno: 12: 00, Primjer 2: Uključit će svjetlo pri zalasku sunca, a svjetlo će se ugasiti u 23:00.

Uključeno: 12:00

Off: 23:00

Primjer 3: Uključit će svjetlo pri zalasku sunca, a ugasiti svjetlo pri izlasku sunca.

Uključeno: 12:01

Off: 12:00

Dostupne su dodatne opcije, a sve rade nezavisno od 100 programa za uključivanje/isključivanje.

Aktivni programski kanali: Umjesto isključivanja nekoliko programa, pojedinačni izlazni kanali mogu se onemogućiti bez potrebe za promjenom programa.

Pomoćni ulazi: Dostupna su dva digitalna ulaza koji omogućuju uključivanje određenih izlaznih kanala na određeno vrijeme. Može se, na primjer, upotrijebiti za uključivanje određenih svjetala pri dolasku kući kasno u noć, kada se pritisne dugme na daljinskom upravljaču, ili za uključivanje drugog svjetla pri aktiviranju kućnog alarma.

Pomoćni izlazi: Na raspolaganju su dva dodatna izlaza (osim 8 izlaznih kanala). Mogu se programirati za uključivanje s određenim izlaznim kanalima ili s digitalnim ulazima. U mojoj instalaciji imam izlaze 6-8 koji kontroliraju moje navodnjavanje, a koji rade na 24V. Koristim kanale 6-8 za uključivanje jednog od pomoćnih izlaza, za uključivanje napajanja od 24V za sustav za navodnjavanje.

Ručno uključeno: Na glavnom ekranu, tasteri 1-8 se mogu koristiti za ručno uključivanje ili isključivanje kanala.

Korak 3: Hardver

Hardver
Hardver

Napajanje: Napajanje se sastoji od ispravljača, glatkog kondenzatora i osigurača od 1 Amp za zaštitu od preopterećenja. Opskrbu tada regulira regulator 7812 i 7805. Napajanje od 12 V koristi se za pogon izlaznih releja, a svi ostali krugovi se napajaju iz napajanja 5V. Kako je regulator 7805 spojen na izlaz regulatora 7812, ukupna struja mora biti ograničena na 1 amper kroz regulator 7812. Preporučuje se postavljanje ovih regulatora na odgovarajući hladnjak.

I²C sabirnica: Iako Flowcode dopušta hardversku I²C kontrolu, odlučio sam se koristiti softverskom konfiguracijom I²C. To omogućava veću fleksibilnost dodjele pinova. Iako sporiji (50 kHz), ipak radi odlično u usporedbi sa hardverskom I²C sabirnicom. I DS1307 i 24LC256 su spojeni na ovu I²C sabirnicu.

Sat u stvarnom vremenu (DS1307): Tijekom pokretanja, RTC registar 0 i 7 se čita kako bi se utvrdilo sadrži li valjano vrijeme i podatke o konfiguraciji. Nakon ispravnog podešavanja očitava se vrijeme RTC -a i vrijeme učitava u PIC. Ovo je jedini put da se vrijeme očitava iz RTC -a. Nakon pokretanja, impuls od 1Hz bit će prisutan na pinu 7 RTC -a. Ovaj signal od 1Hz povezan je na RB0/INT0, a putem servisne rutine prekida vrijeme PIC se ažurira svake sekunde.

Vanjski EEPROM: Svi programski podaci i opcije pohranjeni su na vanjskom EEPROM -u. EEPROM podaci učitavaju se pri pokretanju, a kopija podataka pohranjuje se u PIC memoriju. Podaci EEPROM -a ažuriraju se samo kada se promijene postavke programa.

Senzor dan/noć: Kao osjetnik dan/noć koristi se standardni otpornik ovisan o svjetlu (LDR). Kako LDR -ovi dolaze u mnogim oblicima i varijantama, svi s različitim vrijednostima otpora pod istim svjetlosnim uvjetima, koristio sam analogni ulazni kanal za očitavanje razine svjetlosti. Dnevni i noćni nivoi su podesivi i dopuštaju određenu fleksibilnost za različite senzore. Za postavljanje neke histereze mogu se postaviti pojedinačne vrijednosti za dan i noć. Stanje će se promijeniti samo ako je nivo svjetlosti ispod dnevnog ili iznad noćnih zadanih vrijednosti duže od 60 sekundi.

LCD ekran: Koristi se ekran sa 4 reda i 16 znakova, jer se svi podaci ne mogu prikazati na ekranu u 2 reda. Projekt uključuje neke prilagođene znakove koji su definirani u makrou LCD_Custom_Char.

Pomoćni ulazi: Oba ulaza su međuspremnika opremljena NPN tranzistorima. +12v i 0V su takođe dostupni na konektoru, omogućavajući fleksibilnije povezivanje sa spoljnim vezama. Na primjer, prijemnik daljinskog upravljača može se spojiti na napajanje.

Izlazi: Svi izlazi su električno izolirani od strujnog kruga pomoću 12V releja. Korišćeni releji su naznačeni za 250V AC, pri 10 ampera. Normalno otvoreni i normalno zatvoreni kontakti izlaze na stezaljke.

Tastatura: Tastatura koja se koristi je 3 x 4 matrična tastatura i povezana je PORTB: 2..7.

Korak 4: Prekidi tastature

Prekidi tastature
Prekidi tastature
Prekidi tastature
Prekidi tastature
Prekidi tastature
Prekidi tastature

Htio sam iskoristiti PORTB prekid pri promjeni pri bilo kojem pritisku tipke. Za to je trebalo stvoriti prilagođeni prekid u protokolu, kako bi se osiguralo da su smjer i podaci PORTB ispravno postavljeni prije i poslije svakog prekida tastature. Prekid se generira svaki put kada se pritisne dugme ili otpusti. Rutinska rutina prekida reagira samo kada se pritisne tipka.

PRILAGOĐENI PREKID

Omogući kôd

portb = 0b00001110; trisb = 0b11110001;

intcon. RBIE = 1;

intcon2. RBIP = 1;

intcon2. RBPU = 1;

rcon. IPEN = 0;

Kôd rukovaoca

if (intcon & (1 << RBIF))

{FCM_%n ();

portb = 0b00001110;

trisb = 0b11110001;

wreg = portb;

clear_bit (intcon, RBIF);

}

Pronađeni problemi

Tokom prekida, rutina usluge prekida mora pod NO uslovima pozvati bilo koji drugi makro koji bi se mogao koristiti negdje u ostatku programa. To će na kraju dovesti do problema s prelijevanjem steka, jer se prekid može dogoditi u isto vrijeme kada je i glavni program u istoj potprogrami. Ovo se također identificira kao OZBILJNA GREŠKA prema protokolu kada se kod sastavi.

U prilagođenom kodu tastature pod GetKeyPadNumber postoji takav poziv makroa Delay_us, što će uzrokovati preopterećenje steka. Da bih to prevladao, uklonio sam naredbu Delay_us (10) i zamijenio je s 25 redova "wreg = porta;" komande. Ova naredba čita PORTA i stavlja njenu vrijednost u W registar, samo da bi došlo do kašnjenja. Ova naredba će se sastaviti u jednu instrukciju sličnu asembleru movf porta, 0. Za radni takt od 10 MHz koji se koristi u projektu, svaka instrukcija će biti 400ns, a da bih dobio kašnjenje od 10us, trebalo mi je 25 ovih uputstava.

Napomena u drugom retku slike 3: GetKeypadNumber prilagođeni kôd, da je originalna naredba delay_us (10) onemogućena s “//”. Ispod ovoga dodao sam svojih 25 “wreg = porta;” komande za dobijanje novog kašnjenja od 10us. Bez poziva na makroe unutar prilagođenog koda Keypad_ReadKeypadNumber, makronaredba tipkovnice sada se može koristiti unutar rutine usluge prekida.

Treba napomenuti da komponente Flowcode Keypad i eBlocks ne koriste standardne pull-up otpornike na ulaznim linijama. Umjesto toga, koristi 100K pull-down otpornike. Zbog nekih smetnji na tastaturi tokom razvoja, svi otpornici od 100K zamijenjeni su sa 10K, a svi otpornici od 10K zamijenjeni su s 1K5. Tastatura je testirana da radi ispravno sa provodnicima od 200 mm.

Korak 5: Korištenje mjerača vremena

Korištenje tajmera
Korištenje tajmera
Korištenje tajmera
Korištenje tajmera
Korištenje tajmera
Korištenje tajmera

Svi ekrani su postavljeni tako da prikazuju sve potrebne informacije za korisnika da izvrši brzu promjenu postavki. Linija 4 se koristi za pomoć pri navigaciji kroz menije i opcije programa. Tokom normalnog rada dostupna su ukupno 22 ekrana.

LINIJA 1: Vrijeme i status

Prikazuje trenutni dan i vrijeme, nakon čega slijede ikone statusa:

A - Pokazuje da je aktiviran pomoćni ulaz A i da je tajmer pomoćnog ulaza A pokrenut.

B - Pokazuje da je aktiviran pomoćni ulaz B i da je tajmer pomoćnog ulaza B pokrenut.

C - Pokazuje da je Aux izlaz C uključen.

D - Pokazuje da je Aux izlaz D uključen.

} - Status senzora dan/noć. Ako postoji, označava da je noć.

LINIJA 2: Izlazi programa

Prikazuje kanale koje su uključili različiti programi. Kanali se prikazuju u izlaznim brojevima, a "-" označava da određeni izlaz nije uključen. Kanali koji su onemogućeni u "Aktivni programski izlazi" i dalje će biti označeni ovdje, ali stvarni izlazi neće biti postavljeni.

LINIJA 3: Pravi izlazi

Pokazuje koje kanale uključuju različiti programi, pomoćni ulazi A i B ili ručni izlazi koje je postavio korisnik. Pritiskom na 0 vratit ćete sve ručno aktivirane izlaze na isključene i resetirati Aux izlaz A & B tajmere.

LINIJA 4: Opcije menija i tasteri (na svim menijima)

Označava funkciju tipki “*” i “#”.

Središnji dio označava koje su numeričke tipke (0-9) aktivne za odabrani ekran.

Status ulaza pomoćnog ulaza A & B takođe se prikazuje pomoću ikone prekidača Otvoreno ili Zatvoreno.

Izlazi se mogu ručno uključiti/isključiti pritiskom na odgovarajući taster na tastaturi.

U izbornicima se pomoću tipki Star i Hash kreću kroz različite programske opcije. Za postavljanje opcija koriste se tipke 0-9. Tamo gdje je na jednom ekranu ili u programskom meniju dostupno više opcija, taster Hash se koristi za prolazak kroz različite opcije. Trenutna odabrana opcija uvijek će biti označena znakom “>” na lijevoj strani ekrana.

0-9 Unesite vrijednosti vremena

1-8 Promijenite izbor kanala

14 36 Korak kroz programe, 1 korak nazad, 4 koraka nazad 10 programa, 3 koraka naprijed, 6 koraka naprijed 10

programe

1-7 Odredite dane u sedmici. 1 = nedelja, 2 = ponedeljak, 3 = utorak, 4 = sreda, 5 = četvrtak, 6 = petak, 7 = subota

0 Na glavnom ekranu izbrišite sve ručne zamene i tajmere za unos A i ulaz B. U drugim menijima, promene

odabrane opcije

# Na glavnom ekranu onemogućit će sve ručne zamjene, ulaze A i ulaze B tajmere i programske izlaze, sve dok

sledeći događaj.

* i 1 Ponovo pokrenite mjerač vremena

* i 2 Obrišite sve programe i opcije, vratite postavke na zadane.

* i 3 Stavite tajmer u stanje pripravnosti. Da biste ponovo uključili tajmer, pritisnite bilo koji taster.

Za vrijeme pogrešnih unosa bilo koje vrijednosti, pozadinsko osvjetljenje LCD -a će treptati 5 puta kako bi ukazalo na grešku. U isto vrijeme oglasit će se zvučni signal. Naredbe Izlaz i Sljedeće funkcionirat će samo ako je trenutni unos ispravan.

LCD pozadinsko osvetljenje

Prilikom prvog pokretanja, pozadinsko osvjetljenje LCD-a će se uključiti na 3 minute, osim ako:

- Došlo je do kvara na hardveru (EEPROM ili RTC nisu pronađeni)

- Vrijeme nije postavljeno u RTC -u

Pozadinsko osvjetljenje LCD -a će se ponovo uključiti na 3 minute pri svakom korisničkom unosu na tastaturi. Ako je pozadinsko osvjetljenje LCD -a isključeno, bilo koja naredba s tipkovnice će prvo uključiti pozadinsko osvjetljenje LCD -a i zanemariti tipku koja je pritisnuta. Ovo osigurava da će korisnik moći čitati LCD ekran prije upotrebe tastature. Pozadinsko osvjetljenje LCD -a će se također uključiti na 5 sekundi ako je aktiviran Aux ulaz A ili Aux ulaz B.

Korak 6: Snimci ekrana menija

Snimke ekrana menija
Snimke ekrana menija
Snimke ekrana menija
Snimke ekrana menija
Snimke ekrana menija
Snimke ekrana menija

Pomoću tastature svaka od opcija može se lako programirati. Slike daju neke informacije o tome šta svaki ekran radi.

Korak 7: Projektovanje sistema

Dizajn sistema
Dizajn sistema

Sav razvoj i testiranje obavljeno je na ploči. Gledajući sve dijelove sistema, podijelio sam sistem na tri modula. Ova odluka je uglavnom posljedica ograničenja veličine PCB -a (80 x 100 mm) besplatne verzije Eagle -a.

Modul 1 - Napajanje

Modul 2 - CPU ploča

Modul 3 - Relejna ploča

Odlučio sam da se sve komponente moraju lako nabaviti i da ne želim koristiti komponente za površinsko montiranje.

Prođimo kroz svaki od njih.

Korak 8: Napajanje

Napajanje
Napajanje
Napajanje
Napajanje
Napajanje
Napajanje
Napajanje
Napajanje

Napajanje je ravno i napaja CPU i relejne ploče sa 12V i 5V.

Regulatore napona sam montirao na pristojne hladnjake, a za napajanje sam koristio i precijenjene kondenzatore.

Korak 9: CPU ploča

CPU ploča
CPU ploča
CPU ploča
CPU ploča
CPU ploča
CPU ploča
CPU ploča
CPU ploča

Sve komponente, osim LCD ekrana, tastature i releja montirane su na ploču CPU -a.

Dodani su priključni blokovi kako bi se pojednostavile veze između napajanja, dva digitalna ulaza i svjetlosnog senzora.

Igle/utičnice zaglavlja omogućuju jednostavno povezivanje sa LCD ekranom i tastaturom.

Za izlaze na relejima koristio sam ULN2803. Već sadrži sve potrebne pogonske otpornike i povratne diode. Ovo je osiguralo da se CPU ploča i dalje može napraviti pomoću besplatne verzije Eagle -a. Releji su spojeni na dva ULN2803. Donji ULN2803 se koristi za 8 izlaza, a gornji ULN2803 za dva pomoćna izlaza. Svaki pomoćni izlaz ima četiri tranzistora. Priključci na releje se izvode i preko pinova/utičnica zaglavlja.

PIC 18F4520 je opremljen utičnicom za programiranje kako bi se omogućilo jednostavno programiranje putem programatora PicKit 3.

BILJEŠKA:

Primijetit ćete da ploča sadrži dodatni 8 -pinski IC. Gornji IC je PIC 12F675 i spojen je na digitalni ulaz. Ovo je dodano tokom dizajna PCB -a. Ovo olakšava prethodnu obradu digitalnog ulaza. U mojoj aplikaciji, jedan od digitalnih ulaza je spojen na moj alarmni sistem. Ako se oglasi alarm, u mojoj kući se pale određena svjetla. Aktiviranje i deaktiviranje mog alarmnog sistema daje različite zvučne signale na sireni. Koristeći PIC 12F675, sada mogu razlikovati aktiviranje/deaktiviranje i pravi alarm. 12F675 je takođe opremljen utičnicom za programiranje.

Također sam osigurao I2C port preko pin/utičnice zaglavlja. To će vam kasnije dobro doći s relejnim pločama.

Ploča sadrži nekoliko kratkospojnika koje treba lemiti prije postavljanja IC utičnica.

Korak 10: Zaključak protokola

Zaključak protokola
Zaključak protokola
Zaključak protokola
Zaključak protokola
Zaključak protokola
Zaključak protokola

Kako sam navikao raditi na nivou registra u montaži, ponekad je bilo teško i frustrirajuće koristiti sastavne makroe. To je uglavnom bilo zbog mog nedostatka znanja o programskoj strukturi Flowcode -a. Jedino gdje sam koristio C ili ASM blokove bilo je uključivanje izlaza unutar rutine prekida, a u rutini Do_KeyPressed onemogućavanje/omogućavanje prekida tastature. PIC se također postavlja u SLEEP pomoću ASM bloka, kada se ne pronađe EEPROM ili RTC.

Pomoć oko upotrebe različitih I²C naredbi, sve je to dobiveno iz datoteka pomoći za Flowcode. Potrebno je znati tačno kako različiti I²C uređaji rade, prije nego što se naredbe mogu uspješno koristiti. Za projektovanje kola nije potrebno da dizajner ima na raspolaganju sve relevantne tehničke listove. Ovo nije nedostatak protokola.

Flowcode je zaista izdržao test i toplo se preporučuje osobama koje žele početi raditi s Microchip asortimanom mikroprocesora.

Programiranje protokola i konfiguracija za PIC postavljeni su prema slikama

Korak 11: Opcionalna I2C relejna ploča

Opcionalna I2C relejna ploča
Opcionalna I2C relejna ploča
Opcionalna I2C relejna ploča
Opcionalna I2C relejna ploča
Opcionalna I2C relejna ploča
Opcionalna I2C relejna ploča

CPU ploča već ima priključke zaglavlja za 16 releja. Ovi izlazi su tranzistori otvorenog kolektora putem dva čipa ULN2803. Ovo se može koristiti za direktno napajanje releja.

Nakon prvih testova sistema nisu mi se svidjele sve žice između CPU ploče i releja. Kako sam uključio I2C port na ploču CPU -a, odlučio sam dizajnirati relejnu ploču za povezivanje sa I2C portom. Koristeći 16 -kanalni MCP23017 I/O Port Expander čip i ULN2803 niz tranzistora, smanjio sam veze između CPU -a i releja na 4 žice.

Kako nisam mogao postaviti 16 releja na PCB 80 x 100 mm, odlučio sam napraviti dvije ploče. Svaki MCP23017 koristi samo 8 od svojih 16 portova. Ploča 1 upravlja sa 8 izlaza, a ploča 2 s dva pomoćna izlaza. Jedina razlika na pločama su adrese svake ploče. Ovo se lako postavlja pomoću mini džampera. Svaka ploča ima konektore za napajanje i I2C podatke drugoj ploči.

BILJEŠKA:

Ako je potrebno, softver predviđa samo jednu ploču koja može koristiti svih 16 portova. Svi podaci izlaznog releja dostupni su na prvoj ploči.

Budući da je sklop opcionalan i vrlo jednostavan, nisam stvorio shemu. Ako bude dovoljno potražnje, mogu je dodati kasnije.

Korak 12: Opcionalna RF veza

Opcionalna RF veza
Opcionalna RF veza
Opcionalna RF veza
Opcionalna RF veza
Opcionalna RF veza
Opcionalna RF veza

Nakon završetka projekta, ubrzo sam shvatio da moram povući puno 220V AC ožičenja na tajmer. Razvio sam RF vezu koristeći standardne module od 315MHz koji su omogućili da se tajmer postavi unutar ormara, a relejne ploče unutar krova, blizu svih ožičenja od 220V.

Veza koristi AtMega328P koji radi na 16MHz. Softver i za predajnik i za prijemnik je isti, a način rada odabire mini kratkospojnik.

Odašiljač

Odašiljač je jednostavno priključen na CPU I2C port. Nije potrebno dodatno postavljanje jer AtMega328P sluša iste podatke kao i relejne ploče I2C.

Podaci se ažuriraju jednom u sekundi na I2C portu, a odašiljač šalje te informacije putem RF veze. Ako odašiljač ne prima I2C podatke oko 30 sekundi, odašiljač će kontinuirano prenositi podatke kako bi isključio sve releje na prijemnu jedinicu.

Napajanje modula predajnika može se odabrati između 12V i 5V pomoću mini kratkospojnika na matičnoj ploči. Napajam svoj odašiljač pomoću 12V.

Prijemnik

Prijemnik sluša kodirane podatke s odašiljača i postavlja podatke na I2C port. Relejna ploča jednostavno se priključuje na ovaj port i radi isto kao što je priključena na CPU ploču.

Ako prijemnik ne primi valjane podatke 30 sekundi, prijemnik će kontinuirano slati podatke na I2C priključak kako bi isključio sve releje na relejnim pločama.

Sheme

Jednog dana, ako za njim postoji potražnja. Arduino skica sadrži sve potrebne informacije za izgradnju kola bez dijagrama kruga.

Raspon

U mojoj instalaciji, predajnik i prijemnik su udaljeni oko 10 metara. Tajmer se nalazi unutar ormara, a relejna jedinica na vrhu stropa.

Korak 13: Finalni proizvod

Finalni proizvod
Finalni proizvod
Finalni proizvod
Finalni proizvod
Finalni proizvod
Finalni proizvod

Glavna jedinica je ugrađena u staru projektnu kutiju. Sadrži sljedeće:

- 220V/12V transformator

- ploča za napajanje

- CPU ploča

- LCD ekran

- Tastatura

- RF Link odašiljač

- Dodatna kućna jedinica za daljinski prijemnik koja mi omogućava uključivanje/isključivanje svjetla putem daljinskog upravljača

Relejna jedinica sastoji se od sljedećeg:

- 220V/12V transformator

- ploča za napajanje

- RF Link prijemnik

- 2 x I2C relejne ploče

Sve ploče su dizajnirane iste dimenzije, što ih čini lakim za slaganje jednu na drugu s razmaknicama od 3 mm.

Preporučuje se: