Sisukord:

8 kanaliga programmeeritav taimer: 13 sammu
8 kanaliga programmeeritav taimer: 13 sammu

Video: 8 kanaliga programmeeritav taimer: 13 sammu

Video: 8 kanaliga programmeeritav taimer: 13 sammu
Video: Распаковка и обзор позднего рождественского подарка MAONO на мой 39-й день рождения в Tangerang 2024, November
Anonim
8 kanaliga programmeeritav taimer
8 kanaliga programmeeritav taimer
8 kanaliga programmeeritav taimer
8 kanaliga programmeeritav taimer
8 kanaliga programmeeritav taimer
8 kanaliga programmeeritav taimer

Sissejuhatus

Olen oma projektide jaoks kasutanud Microchipi PIC mikrokontrollerite valikut alates 1993. aastast ja teinud kõik oma programmeerimised monteerija keeles, kasutades Microchip MPLab IDE -d. Minu projektid ulatusid lihtsatest valgusfooridest ja vilkuvatest valgusdioodidest, USB juhtkangi liidestest R/C mudelite jaoks ja tööstuses kasutatavatest lülitusseadmete analüsaatoritest. Arendamine võttis palju päevi ja mõnikord tuhandeid ridasid komplekteerija koodi.

Pärast Matrix Multimedia Flowcode 4 Professionali saamist olin tarkvara suhtes üsna skeptiline. See tundus liiga lihtne uskuda. Otsustasin seda proovida ja katsetasin kõiki komponendimakroid, kõik väga edukalt. Flowcode'i kasutamise parim osa oli see, et lihtsaid projekte saab kodeerida ühe ööga. Pärast I²C ja DS1307 reaalajas kellaga mängimist otsustasin kujundada 8 kanaliga taimerit Flowcode'i abil. Kuna tegemist ei olnud väikese ja lihtsa projektiga, uskusin, et see oleks suurepärane projekt Flowcode'i õpetamiseks.

Mikroprotsessori ja muude komponentide valimine

Vajaliku I/O kontaktide arvu tõttu oli selge, et vaja on 40 kontaktiga seadet. Valiti PIC 18F4520, peamiselt selle 32K programmimälu ja 1536 baiti andmemälu. Kõik kasutatavad komponendid on standardsed läbiva avaga seadmed, mis võimaldavad vajadusel vooluringi Vero plaadile ehitada. See aitas kaasa ka leivalaua arendamisele.

Samm: projekti eesmärgid

Projekti eesmärgid
Projekti eesmärgid

Eesmärgid

- Täpne ajaarvamine koos aku varundamisega.

- Kõik programmid ja andmed tuleb säilitada ka pärast voolukatkestust.

- Lihtne kasutajaliides.

- Programmeerimise paindlikkus.

Aja pidamine

Elades piirkonnas, kus esineb voolukatkestusi, ei piisa elektriliinide 50/60 Hz täpsest ajaarvamiseks. Reaalajas kell oli hädavajalik ning pärast mitme RTC kiibi katsetamist otsustasin DS1307 kasuks, kuna see on lihtne ostsillaator ja aku varukonfiguratsioon. Üsna täpne ajaarvamine saadi, kasutades ainult 32,768 kHz kristalli, mis oli ühendatud DS1307 -ga. Täpsus oli 2 -kuulise katseperioodi jooksul 2 sekundi jooksul, kasutades 4 erinevat kristalli.

Andmete säilitamine

Kõik taimeriprogrammi andmed tuleb säilitada ka voolukatkestuse ajal. Kuni 100 erineva programmi ja erinevate konfiguratsiooniandmetega sai selgeks, et PIC-i pardal oleva EEPROM-i 256 baiti ei piisa. Kogu programmeerimisteabe salvestamiseks kasutatakse 24LC256 I²C EEPROM -i.

Lihtne kasutajaliides

Kasutajaliides koosneb ainult kahest elemendist, 16 x 4 -realine LED -taustvalgustusega LCD -ekraan ja 4 x 3 klahvistik. Kogu programmeerimist saab teha vaid mõne nupu vajutamisega. Liidese täienduseks on kuuldav piesosummer ja visuaalselt vilkuv LCD -taustvalgus.

2. samm: paindlikkuse programmeerimine

Programmeerimise paindlikkus
Programmeerimise paindlikkus

Programmi piisava paindlikkuse tagamiseks on taimeril 100 programmi, mida saab individuaalselt seadistada. Iga saate jaoks saab määrata sisselülitusaja, väljalülitusaja, väljundkanalid ja nädalapäeva. Igal programmil on kolm režiimi:

- Automaatne: On Time, Off time, Output Channel ja nädalapäev on määratud.

- Väljas: individuaalse programmi saab seadistusi kustutamata keelata. Programmi uuesti lubamiseks

valige lihtsalt teine režiim.

- Päev/öö: seadistatud on sisse-, väljalülitusaeg, väljundkanal ja nädalapäev. Töötab samamoodi nagu automaatrežiim, kuid töötab

lülitage väljundid sisse ja välja ainult pimedal ajal. See võimaldab ka täielikku päeva/öö juhtimist

lisavõimalus lülitada tuled päikeseloojangul sisse ja päikesetõusu ajal välja.

Näide 1: lülitab valguse sisse pärast kella 20.00 ja kustutab selle päikesetõusu ajal:

Sisse: 20:00, Väljas: 12: 00, Näide 2: lülitab valguse sisse päikeseloojangul ja kustutab valguse kell 23.00.

Sees: 12:00

Väljas: 23:00

Näide 3: lülitab valguse sisse päikeseloojangul ja kustutab selle päikesetõusu ajal.

Sisse lülitatud: 12:01

Väljas: 12:00

Saadaval on lisavalikud, mis kõik töötavad sõltumatult 100 sisse/välja programmist.

Programmikanalid aktiivsed: mitme programmi väljalülitamise asemel saab üksikud väljundkanalid keelata ilma programme muutmata.

Lisasisendid: Saadaval on kaks digitaalset sisendit, mis võimaldavad teatud väljundkanalid teatud ajaks sisse lülitada. Seda saab kasutada näiteks teatud tulede sisselülitamiseks hilisõhtul koju jõudes, kui vajutatakse kaugjuhtimispuldi nuppu, või mõne muu tulede sisselülitamiseks, kui maja alarm käivitub.

Abiväljundid: Saadaval on kaks lisaväljundit (peale 8 väljundkanali). Neid saab programmeerida sisselülitamiseks teatud väljundkanalite või digitaalsisendite abil. Minu installimisel on mul väljundid 6-8, mis kontrollivad minu niisutamist, mis töötab 24 V toitel. Kasutan kanaleid 6-8 ühe abiväljundi sisselülitamiseks, niisutussüsteemi 24V toiteallika sisselülitamiseks.

Käsitsi sisselülitamine: põhiekraanil saab nuppe 1-8 kasutada kanalite käsitsi sisse- või väljalülitamiseks.

Samm: riistvara

Riistvara
Riistvara

Toiteallikas: toiteallikas koosneb alaldist, silumiskondensaatorist ja 1 ampri kaitsmest ülekoormuse eest kaitsmiseks. Seda toiteallikat reguleerivad seejärel regulaatorid 7812 ja 7805. Väljundreleede juhtimiseks kasutatakse 12 V toiteallikat ja kõik muud ahelad saavad toite 5 V toiteallikast. Kuna regulaator 7805 on ühendatud regulaatori 7812 väljundiga, peab koguvool olema 7812 regulaatori kaudu piiratud 1 ampriga. Soovitav on need regulaatorid paigaldada sobivale jahutusradiaatorile.

I²C siin: kuigi Flowcode võimaldab riistvara I²C juhtimist, otsustasin kasutada tarkvara I²C konfiguratsiooni. See võimaldab tihvtide määramisel suuremat paindlikkust. Kuigi see on aeglasem (50 kHz), toimib see siiski suurepäraselt võrreldes riistvara I²C siiniga. Nii DS1307 kui ka 24LC256 on ühendatud selle I²C siiniga.

Reaalajas kell (DS1307): käivitamisel loetakse RTC registrit 0 ja 7, et teha kindlaks, kas see sisaldab kehtivaid aja- ja konfiguratsiooniandmeid. Kui seadistamine on õige, loetakse RTC aeg ja laaditakse aeg PIC -i. See on ainus kord, kui aega loetakse RTC -st. Pärast käivitamist on RTC tihvti 7 kohal 1 Hz impulss. See 1 Hz signaal on ühendatud RB0/INT0 -ga ja katkestusteenuse kaudu uuendatakse PIC -i aega iga sekund.

Väline EEPROM: kõik programmi andmed ja valikud salvestatakse välisele EEPROMile. EEPROM-andmed laaditakse käivitamisel ja andmete koopia salvestatakse PIC-mällu. EEPROM -i andmeid värskendatakse ainult programmi sätete muutmisel.

Päeva/öö andur: Päeva/öö andurina kasutatakse tavalist valgusest sõltuvat takisti (LDR). Kuna LDR -e on mitmel kujul ja variandil, millel kõigil on samades valgustingimustes erinevad takistuse väärtused, kasutasin valgustugevuse lugemiseks analoogsisendkanalit. Päeva- ja öötasemed on reguleeritavad ja võimaldavad erinevate andurite jaoks teatud paindlikkust. Mõne hüstereesi seadistamiseks saab määrata päevade ja ööde individuaalsed väärtused. Seisund muutub ainult siis, kui valguse tase on päevast madalam või üle öiste seadistuspunktide kauem kui 60 sekundit.

LCD-ekraan: kasutatakse 4 rida, 16 tähemärki, kuna kõiki andmeid ei saanud kaherealisel ekraanil kuvada. Projekt sisaldab mõningaid kohandatud märke, mis on määratletud makroga LCD_Custom_Char.

Abisisendid: mõlemad sisendid on puhverdatud NPN -transistoriga. Pistikul on saadaval ka +12v ja 0V, mis võimaldab paindlikumaid ühendusi välisühendustega. Näiteks saab toiteallikaga ühendada kaugjuhtimispuldi vastuvõtja.

Väljundid: Kõik väljundid on vooluringist elektriliselt isoleeritud 12 V relee abil. Kasutatavad releed on nimivõimsusega 250 V vahelduvvoolu, 10 amprit. Tavaliselt avatud ja tavaliselt suletud kontaktid tuuakse terminalidesse.

Klaviatuur: kasutatav klaviatuur on 3 x 4 maatriksiga klaviatuur ja ühendatud PORTB: 2..7.

4. samm: klaviatuuri katkestused

Klaviatuuri katkestused
Klaviatuuri katkestused
Klaviatuuri katkestused
Klaviatuuri katkestused
Klaviatuuri katkestused
Klaviatuuri katkestused

Tahtsin kasutada mis tahes klahvivajutusel PORTB -i katkestamise muudatuse katkestust. Selleks tuli Flowcode'is luua kohandatud katkestus, et tagada PORTB -suuna ja andmete õige seadistamine enne ja pärast iga klahvistiku katkestust. Katkestus tekib iga kord, kui nuppu vajutatakse või vabastatakse. Katkestusrutiin reageerib ainult klahvi vajutamisele.

KOHANDATUD KATKEMINE

Luba kood

portb = 0b00001110; trisb = 0b11110001;

intcon. RBIE = 1;

intcon2. RBIP = 1;

intcon2. RBPU = 1;

rcon. IPEN = 0;

Käitleja kood

if (intcon & (1 << RBIF))

{FCM_%n ();

portb = 0b00001110;

trisb = 0b11110001;

wreg = portb;

clear_bit (intcon, RBIF);

}

Leiti probleeme

Katkestuse ajal peab katkestusteenuse rutiin EI tingimustel helistama mis tahes muule makrole, mida võidakse kasutada kusagil ülejäänud programmis. See toob lõpuks kaasa virna ületäitumise probleemid, kuna katkestus võib toimuda samal ajal, kui ka põhiprogramm on samas alamprogrammis. Flowcode tuvastab selle koodi koostamisel ka tõsiseks veaks.

Klaviatuuri kohandatud koodis GetKeyPadNumber all on selline kõne Delay_us makrole, mis põhjustab virna ületäitumist. Selle ületamiseks eemaldasin käsu Delay_us (10) ja asendasin selle 25 reaga „wreg = porta;” käske. See käsk loeb PORTA ja paneb selle väärtuse W -registrisse, et viivitust saada. See käsk kompileeritakse ühte käsku, mis sarnaneb assembler movf porta, 0. Projektis kasutatava 10MHz kella jaoks on iga käsk 400ns ja 10us viivituse saamiseks oli mul vaja 25 neist juhistest.

Märkus joonise 3 teisel real: GetKeypadNumber kohandatud kood, et algne käsk delay_us (10) on keelatud nupuga „//”. Selle alla olen lisanud oma 25 „wreg = porta;” käske saada uus 10us viivitus. Kui klaviatuuri Keypad_ReadKeypadNumber kohandatud koodis olevaid makrosid ei kutsuta, saab klaviatuuri makro nüüd kasutada katkestusteenuse raames.

Tuleb märkida, et Flowcode'i klaviatuuri ja eBlocksi komponendid ei kasuta sisendliinidel standardseid tõmbetakistusi. Selle asemel kasutab see 100K tõmbetakistit. Klaviatuurilt arendamise käigus leitud häirete tõttu asendati kõik 100K takistid 10K ja kõik 10K takistid 1K5 vastu. Klaviatuuri korrektset tööd testiti 200 mm juhtmetega.

Samm: taimeri kasutamine

Taimeri kasutamine
Taimeri kasutamine
Taimeri kasutamine
Taimeri kasutamine
Taimeri kasutamine
Taimeri kasutamine

Kõik ekraanid on seadistatud näitama kogu vajalikku teavet, et kasutaja saaks seadeid kiiresti muuta. 4. rida kasutatakse menüüdes ja programmivalikutes navigeerimiseks. Tavalise töö ajal on saadaval kokku 22 ekraani.

LINE 1: Aeg ja olek

Kuvab praeguse päeva ja kellaaja, millele järgnevad olekuikoonid:

A - näitab, et Aux -sisend A käivitati ja Aux -sisendi A taimer töötab.

B - näitab, et Aux -sisend B käivitati ja Aux -sisendi B taimer töötab.

C - näitab, et lisaväljund C on sisse lülitatud.

D - näitab, et lisaväljund D on sisse lülitatud.

} - Päeva/öö anduri olek. Kui see on olemas, näitab see, et on öö.

LINE 2: Programmi väljundid

Näitab kanaleid, mis on erinevate programmide poolt sisse lülitatud. Kanalid kuvatakse nende väljundnumbrites ja „-“näitab, et konkreetne väljund pole sisse lülitatud. Siin kuvatakse endiselt kanalid, mis on programmis „Väljundid aktiivsed” keelatud, kuid tegelikke väljundeid ei määrata.

LINE 3: tegelikud väljundid

Näitab, millised kanalid on erinevate programmide, lisasisendite A ja B või kasutaja määratud käsiväljundite abil sisse lülitatud. Vajutades 0, lülitatakse kõik käsitsi aktiveeritud väljundid välja ja lähtestatakse Aux Output A & B taimerid.

LINE 4: Menüü ja klahvivalikud (kõikides menüüdes)

Näitab klahvide “*” ja “#” funktsiooni.

Keskosa näitab, millised numbriklahvid (0–9) on valitud ekraanil aktiivsed.

Aux -sisendi A & B sisendi olekut näidatakse ka avatud või suletud lüliti ikooni abil.

Väljundeid saab käsitsi sisse/välja lülitada, vajutades vastavat klahvistiku klahvi.

Menüüdes kasutatakse tähe- ja räsiklahve erinevate programmivalikute vahel navigeerimiseks. Valikute määramiseks kasutatakse klahve 0–9. Kui ühel ekraanil või programmeerimismenüüs on saadaval mitu valikut, kasutatakse erinevate valikute sirvimiseks klahvi Hash. Praeguseks valitud suvandit tähistab alati ekraani vasakul pool olev märk ">".

0-9 Sisestage ajaväärtused

1-8 Kanali valiku muutmine

14 36 Programmide läbimine, 1 samm tagasi, 4 sammu tagasi 10 programmi, 3 sammu edasi, 6 sammu edasi 10

programmid

1-7 Määrake nädalapäevad. 1 = pühapäev, 2 = esmaspäev, 3 = teisipäev, 4 = kolmapäev, 5 = neljapäev, 6 = reede, 7 = laupäev

0 Tühjendage põhiekraanil kõik käsitsi alistused ning A- ja B -sisendi taimerid. Teistes menüüdes muudatused

valitud valikud

# Peakuval keelab kõik käsitsi alistamised, sisendi A ja sisendi B taimerid ning programmi väljundid, kuni

järgmine sündmus.

* ja 1 Taaskäivitage taimer

* ja 2 Kustutage kõik programmid ja valikud, taastage vaikeseaded.

* ja 3 Lülitage taimer ooterežiimi. Taimeri uuesti sisselülitamiseks vajutage suvalist klahvi.

Mis tahes ajaväärtuse vale sisestamise ajal vilgub LCD taustavalgus veast teatades 5 korda. Samal ajal kostab helisignaal. Käsud Välju ja Järgmine toimivad ainult siis, kui praegune kirje on õige.

LCD taustvalgus

Esmakordsel käivitamisel lülitub LCD taustvalgus 3 minutiks sisse, välja arvatud juhul, kui:

- Riistvaratõrge (EEPROM või RTC ei leitud)

- RTC -s pole aega määratud

Vedelkristallekraani taustvalgustus lülitub uuesti sisse 3 minutiks, kui kasutaja sisestab klahvistiku. Kui vedelkristallekraani taustvalgus on välja lülitatud, lülitab klahvistiku käsk kõigepealt LCD taustvalgustuse sisse ja ignoreerib vajutatud klahvi. See tagab, et kasutaja saab enne klahvistiku kasutamist LCD -ekraani lugeda. LCD -taustvalgustus lülitub samuti 5 sekundiks sisse, kui on aktiveeritud Aux -sisend A või Aux -sisend B.

6. samm: menüüekraanid

Menüü ekraanipildid
Menüü ekraanipildid
Menüü ekraanipildid
Menüü ekraanipildid
Menüü ekraanipildid
Menüü ekraanipildid

Klaviatuuri abil saab kõiki valikuid hõlpsasti programmeerida. Pildid annavad teavet selle kohta, mida iga ekraan teeb.

7. samm: süsteemi kujundamine

Süsteemi disain
Süsteemi disain

Kogu arendus ja testimine toimus leivaplaadil. Vaadates süsteemi kõiki sektsioone, purustasin süsteemi kolmeks mooduliks. See otsus oli peamiselt tingitud Eagle'i tasuta versiooni PCB suurusepiirangutest (80 x 100 mm).

Moodul 1 - toiteallikas

Moodul 2 - protsessoriplaat

Moodul 3 - releeplaat

Otsustasin, et kõik komponendid peavad olema kergesti kättesaadavad ja et ma ei soovi kasutada pinnapealseid komponente.

Käime neist igaüks läbi.

8. samm: toiteallikas

Toiteallikas
Toiteallikas
Toiteallikas
Toiteallikas
Toiteallikas
Toiteallikas
Toiteallikas
Toiteallikas

Toiteallikas on otse ette nähtud ning varustab protsessorit ja releeplaate 12V ja 5V pingega.

Paigaldasin pingeregulaatorid korralikele jahutusradiaatoritele ja kasutasin toiteallikaks ka ülehinnatud kondensaatoreid.

Samm: protsessoriplaat

CPU plaat
CPU plaat
CPU plaat
CPU plaat
CPU plaat
CPU plaat
CPU plaat
CPU plaat

Kõik komponendid, välja arvatud LCD -ekraan, klaviatuur ja releed, on paigaldatud protsessoriplaadile.

Toiteallika, kahe digitaalsisendi ja valgusanduri vaheliste ühenduste lihtsustamiseks lisati klemmliistud.

Päisepistikud/pistikupesad võimaldavad hõlpsat ühendamist LCD -ekraani ja klaviatuuriga.

Releede väljundite jaoks kasutasin ULN2803. See sisaldab juba kõiki nõutavaid sõidutakistusi ja tagasivoolu dioode. See tagas selle, et protsessoriplaati saab endiselt teha Eagle'i tasuta versiooni abil. Releed on ühendatud kahe ULN2803 -ga. Alumist ULN2803 kasutatakse 8 väljundi jaoks ja ülemist ULN2803 kahe lisaväljundi jaoks. Igal lisaväljundil on neli transistorit. Ühendused releedega on samuti läbi päisepistikute/pistikupesade.

PIC 18F4520 oli varustatud programmeerimispesaga, mis võimaldab hõlpsat programmeerimist PicKit 3 programmeerija kaudu.

MÄRGE:

Märkate, et plaat sisaldab täiendavat 8 -kontaktilist IC -d. Ülemine IC on PIC 12F675 ja ühendatud digitaalsisendiga. See lisati trükkplaatide projekteerimisel. See lihtsustab digitaalse sisendi eeltöötlust. Minu rakenduses on üks digitaalsisenditest ühendatud minu häiresüsteemiga. Kui äratus kõlab, lülitatakse minu majas sisse teatud tuled. Minu alarmsüsteemi valvestamine ja desarmeerimine annab sireenile erinevaid piiksu. Kasutades PIC 12F675, oskan ma nüüd vahet teha valves/desarmeerimisel ja tõelisel alarmil. 12F675 on varustatud ka programmeerimispesaga.

Samuti nägin ette päise tihvti/pistikupesa kaudu I2C -pordi. See tuleb hiljem releelaudadega kasuks.

Plaadil on mõned džemprid, mis tuleks enne IC -pistikupesade paigaldamist joota.

10. samm: vookoodi järeldus

Voolukoodi järeldus
Voolukoodi järeldus
Voolukoodi järeldus
Voolukoodi järeldus
Voolukoodi järeldus
Voolukoodi järeldus

Kuna olen harjunud kokkupanekul töötama registritasandil, oli komponendimakrode kasutamine mõnikord keeruline ja masendav. See oli peamiselt tingitud sellest, et ma ei teadnud Flowcode'i programmeerimisstruktuuri. Ainsad kohad, kus olen kasutanud C- või ASM -plokke, olid väljundite sisse lülitamine katkestusrutiini sees ja Do_KeyPressed rutiinis klaviatuuri katkestamise keelamine/lubamine. PIC sisestatakse ka SLEEP -i ASM -ploki abil, kui EEPROM -i või RTC -d ei leita.

Abi erinevate I²C -käskude kasutamisel saadi Flowcode'i abifailidest. Käskude edukaks kasutamiseks on vaja täpselt teada, kuidas erinevad I²C -seadmed töötavad. Vooluahela projekteerimine nõuab disainerilt kõigi asjakohaste andmelehtede olemasolu. See ei ole Flowcode'i puudus.

Flowcode pidas tõepoolest proovile vastu ja on väga soovitatav inimestele, kes soovivad alustada tööd Microchipi mikroprotsessorite sarjaga.

PIC -i voolukoodi programmeerimine ja konfiguratsioon määrati vastavalt piltidele

Samm 11: valikuline I2C releeplaat

Valikuline I2C releeplaat
Valikuline I2C releeplaat
Valikuline I2C releeplaat
Valikuline I2C releeplaat
Valikuline I2C releeplaat
Valikuline I2C releeplaat

Protsessoriplaadil on juba päiseühendused 16 relee jaoks. Need väljundid on avatud kollektori transistorid kahe ULN2803 kiibi kaudu. Seda saab kasutada releede otse toiteks.

Pärast süsteemi esimesi katseid ei meeldinud mulle kõik protsessoriplaadi ja releede vahelised juhtmed. Kuna lisasin protsessoriplaadile I2C pordi, otsustasin kujundada releeplaadi I2C pordiga ühendamiseks. Kasutades 16 kanaliga MCP23017 I/O Port Expander kiipi ja ULN2803 transistori massiivi, vähendasin protsessori ja releede vahelisi ühendusi 4 juhtmeni.

Kuna ma ei mahtunud 16 releed 80 x 100 mm trükkplaadile, otsustasin teha kaks plaati. Iga MCP23017 kasutab ainult 8 porti 16 -st. Tahvel 1 tegeleb 8 väljundiga ja plaat 2 kahe lisaväljundiga. Ainus erinevus tahvlitel on iga tahvli aadressid. Seda saab hõlpsasti seadistada mini -hüppajaga. Igal plaadil on pistikud toiteallika ja I2C andmete tarnimiseks teisele plaadile.

MÄRGE:

Vajadusel näeb tarkvara ette ainult ühe plaadi, mis saab kasutada kõiki 16 porti. Kõik väljundrelee andmed on saadaval esimesel plaadil.

Kuna vooluahel on valikuline ja väga lihtne, ei loonud ma skeemi. Kui on piisavalt nõudlust, võin selle hiljem lisada.

12. samm: valikuline RF -link

Valikuline RF -link
Valikuline RF -link
Valikuline RF -link
Valikuline RF -link
Valikuline RF -link
Valikuline RF -link

Pärast projekti lõpetamist mõistsin peagi, et pean taimerisse tõmbama palju 220V vahelduvvoolu juhtmeid. Töötasin välja RF -lingi, kasutades standardseid 315MHz mooduleid, mis võimaldasid taimerit paigutada kapi sisse ja releelauad katuse sisse, kõigi 220 V juhtmestiku lähedale.

Link kasutab AtMega328P, mis töötab sagedusel 16 MHz. Nii saatja kui ka vastuvõtja tarkvara on sama ja režiimi valib mini -hüppaja.

Saatja

Saatja on lihtsalt ühendatud CPU I2C pordiga. Täiendavat seadistamist pole vaja, kuna AtMega328P kuulab samu andmeid nagu I2C releeplaadid.

Andmeid uuendatakse I2C pordis üks kord sekundis ja saatja saadab selle teabe RF -lingi kaudu. Kui saatja ei saa I2C andmeid umbes 30 sekundi jooksul, edastab saatja pidevalt andmeid, et kõik releed vastuvõtjaseadmesse välja lülitada.

Saatemooduli toite saab valida 12V ja 5V vahel, kasutades PC -plaadil olevat miniliitmikku. Toitan oma saatjat 12V toitega.

Vastuvõtja

Vastuvõtja kuulab saatja kodeeritud andmeid ja paigutab andmed I2C -pordi. Relee -plaat lihtsalt ühendatakse selle pordiga ja töötab samamoodi nagu see oli ühendatud CPU -plaadiga.

Kui vastuvõtja ei saa 30 sekundi jooksul kehtivaid andmeid, saadab vastuvõtja pidevalt andmeid I2C -pordi kaudu, et lülitada välja kõik releeplaatide releed.

Skeemid

Ühel päeval, kui selle järele on nõudlus. Arduino visand sisaldab kogu vajalikku teavet vooluahela ehitamiseks ilma vooluahela skeemita.

Vahemik

Minu paigalduses on saatja ja vastuvõtja üksteisest umbes 10 meetri kaugusel. Taimer on kapi sees ja relee ülemmäära peal.

13. samm: lõpptoode

Lõpptoode
Lõpptoode
Lõpptoode
Lõpptoode
Lõpptoode
Lõpptoode

Põhiseade paigaldati vanasse projekti kasti. See sisaldab järgmist:

- 220V/12V trafo

- Toiteplokk

- CPU plaat

- LCD ekraan

- Klaviatuur

- RF -lingi saatja

- Täiendav koduse kaugjuhtimispuldi seade, mis võimaldab mul kaugjuhtimispuldi kaudu tulesid sisse/välja lülitada

Releeüksus koosneb järgmistest osadest:

- 220V/12V trafo

- Toiteplokk

- RF -lingi vastuvõtja

- 2 x I2C releeplaati

Kõik lauad on kujundatud sama mõõtmetega, mistõttu on neid lihtne üksteise peale laduda 3 mm vahekaugustega.

Soovitan: