Sisällysluettelo:

Ohjelmoitava 8 -kanavainen ajastin: 13 vaihetta
Ohjelmoitava 8 -kanavainen ajastin: 13 vaihetta

Video: Ohjelmoitava 8 -kanavainen ajastin: 13 vaihetta

Video: Ohjelmoitava 8 -kanavainen ajastin: 13 vaihetta
Video: Как проверить генератор. За 3 минуты, БЕЗ ПРИБОРОВ и умений. 2024, Marraskuu
Anonim
Ohjelmoitava 8 -kanavainen ajastin
Ohjelmoitava 8 -kanavainen ajastin
Ohjelmoitava 8 -kanavainen ajastin
Ohjelmoitava 8 -kanavainen ajastin
Ohjelmoitava 8 -kanavainen ajastin
Ohjelmoitava 8 -kanavainen ajastin

Johdanto

Olen käyttänyt Microchipin PIC -mikrokontrollerivalikoimaa projekteihini vuodesta 1993 lähtien ja tehnyt kaikki ohjelmointini kokoonpanokielellä käyttäen Microchip MPLab IDE: tä. Projektini vaihtelivat yksinkertaisista liikennevaloista ja vilkkuvista LED -valoista USB -ohjaussauvaliitäntöihin R/C -malleihin ja teollisuudessa käytettäviin kytkinlaitteiden analysoijiin. Kehittäminen kesti monta päivää ja joskus tuhansia rivejä assembler -koodia.

Vastaanotettuaan Matrix Multimedia Flowcode 4 Professionalin olin melko skeptinen ohjelmiston suhteen. Se näytti liian helpolta uskoa. Päätin kokeilla sitä ja testasin kaikkia eri komponenttimakroja menestyksekkäästi. Paras osa Flowcoden käyttöä oli se, että yksinkertaiset projektit voitiin koodata yhdessä yössä. Kun olen pelannut I²C: n ja DS1307 -reaaliaikaisen kellon kanssa, päätin suunnitella 8 -kanavaisen ajastimen Flowcodea käyttäen. Koska en ole pieni ja helppo projekti, uskoin, että tämä olisi loistava projekti opettaa itselleni Flowcode.

Mikroprosessorin ja muiden komponenttien valinta

Tarvittavien I/O -nastojen määrän vuoksi oli selvää, että tarvitaan 40 -nastainen laite. PIC 18F4520 valittiin lähinnä sen 32K ohjelmamuistin ja 1536 tavun datamuistin vuoksi. Kaikki käytetyt komponentit ovat vakioreikälaitteita, mikä mahdollistaa piirin rakentamisen tarvittaessa Vero-levylle. Tämä auttoi myös leipälaudan kehittämisessä.

Vaihe 1: Hankkeen tavoitteet

Projektin tavoitteet
Projektin tavoitteet

Tavoitteet

- Tarkka ajan pitäminen, akun varauksella.

- Kaikki ohjelmat ja tiedot on säilytettävä, vaikka virta katkeaa.

- Yksinkertainen käyttöliittymä.

- Ohjelmoinnin joustavuus.

Ajankäyttö

Elää alueella, joka on altis sähkökatkoille, standardi 50/60 Hz sähkölinjoista ei riitä tarkkaan ajan pitämiseen. Reaaliaikainen kello oli välttämätön, ja testattuaan useita RTC-siruja päätin valita DS1307: n yksinkertaisen oskillaattorin ja akun varakonfiguraation vuoksi. Melko tarkka ajanotto saatiin käyttämällä vain 32,768 kHz: n kiteitä, jotka oli kytketty DS1307: een. Tarkkuus oli 2 sekunnin sisällä 2 kuukauden koeajan aikana käyttäen 4 erilaista kiteitä.

Tietojen säilyttäminen

Kaikki ajastinohjelman tiedot on säilytettävä myös sähkökatkon aikana. Jopa 100 eri ohjelman ja eri määritystietojen ansiosta kävi selväksi, että PIC: n sisäisen EEPROM: n 256 tavua eivät ole riittävän suuria. 24LC256 I²C EEPROM -laitetta käytetään kaikkien ohjelmatietojen tallentamiseen.

Yksinkertainen käyttöliittymä

Käyttöliittymä koostuu vain kahdesta osasta, 16 x 4 rivin LCD -näytöstä LED -taustavalolla ja 4 x 3 -näppäimistöstä. Kaikki ohjelmoinnit voidaan suorittaa vain muutaman painikkeen painalluksella. Käyttöliittymän lisäyksiä ovat kuultava pietsosummeri ja visuaalisesti vilkkuva LCD -taustavalo.

Vaihe 2: Joustavuuden ohjelmointi

Ohjelmoinnin joustavuus
Ohjelmoinnin joustavuus

Ohjelman riittävän joustavuuden varmistamiseksi ajastimessa on 100 ohjelmaa, jotka voidaan asettaa yksilöllisesti. Jokaiselle ohjelmalle voidaan asettaa Päälle -aika, Pois -aika, Lähtökanavat ja Viikonpäivä. Jokaisessa ohjelmassa on kolme tilaa:

- Auto: On Time, Off time, Output Channel ja viikonpäivä on asetettu.

- Pois: Yksittäinen ohjelma voidaan poistaa käytöstä poistamatta asetuksia. Jos haluat ottaa ohjelman uudelleen käyttöön, valitse vain toinen tila.

- Päivä/yö: On Time, Off time, Output Channel ja viikonpäivä on asetettu. Toimii samalla tavalla kuin automaattitila, mutta toimii

kytke lähdöt päälle vain päälle ja pois päältä, kun on pimeää. Tämä mahdollistaa myös täyden päivä-/yöohjauksen

lisää joustavuutta sytyttää valot auringonlaskun aikaan ja sammuttaa auringonlaskun aikaan.

Esimerkki 1: Sytyttää valon klo 20.00 jälkeen ja sammuttaa valon auringonnousun aikaan:

Päällä: 20:00, Pois: 12: 00, Esimerkki 2: Sytyttää valon auringonlaskun aikaan ja sammuttaa valon klo 23.00.

Päällä: 12:00

Pois: 23:00

Esimerkki 3: Sytyttää valon auringonlaskun aikaan ja sammuttaa valon auringon noustessa.

Päällä: 12:01

Pois: 12:00

Saatavana lisävaihtoehtoja, jotka kaikki toimivat itsenäisesti 100 On/Off -ohjelmasta.

Ohjelmakanavat aktiiviset: Useiden ohjelmien sammuttamisen sijaan yksittäiset lähtökanavat voidaan poistaa käytöstä ilman ohjelmien vaihtamista.

Aputulot: Käytettävissä on kaksi digitaalituloa, joiden avulla tietyt lähtökanavat voidaan kytkeä päälle tietyn ajan. Sitä voidaan käyttää esimerkiksi tiettyjen valojen sytyttämiseen, kun tulet kotiin myöhään illalla, kun kauko -ohjaimen painiketta painetaan, tai sytyttämään eri valot, kun talon hälytys laukeaa.

Apulähdöt: Saatavana on kaksi lisälähtöä (8 lähtökanavan lisäksi). Ne voidaan ohjelmoida käynnistymään tietyillä lähtökanavilla tai digitaalisilla tuloilla. Asennuksessani minulla on lähdöt 6-8, jotka ohjaavat kastelua, joka toimii 24 V: lla. Käytän kanavia 6-8 kytkeäkseni yhden apulähdön päälle, kytkeäkseni 24 V: n virtalähteen kastelujärjestelmään.

Manuaalinen päälle: Päänäytössä painikkeilla 1-8 voidaan kytkeä kanavat päälle tai pois manuaalisesti.

Vaihe 3: Laitteisto

Laitteisto
Laitteisto

Virtalähde: Virtalähde koostuu tasasuuntaajasta, tasoituskondensaattorista ja 1 ampeerin sulakkeesta ylikuormitussuojaa varten. Tätä syöttöä säädetään sitten 7812- ja 7805 -säätimillä. 12 V: n syöttöjännitettä käytetään lähtöreleiden ohjaamiseen, ja kaikki muut piirit saavat virran 5 V: n virtalähteestä. Koska 7805 -säädin on kytketty 7812 -säätimen lähtöön, kokonaisvirta on rajoitettava 1 ampeeriin 7812 -säätimen kautta. Nämä säätimet on suositeltavaa asentaa sopivaan jäähdytyselementtiin.

I²C -väylä: Vaikka Flowcode mahdollistaa laitteiston I²C -ohjauksen, päätin käyttää ohjelmistoa I²C. Tämä mahdollistaa joustavamman nastamäärityksen. Vaikka se on hitaampaa (50 kHz), se toimii silti erinomaisesti laitteisto I²C -väylään verrattuna. Sekä DS1307 että 24LC256 on liitetty tähän I²C -väylään.

Reaaliaikainen kello (DS1307): Käynnistyksen aikana RTC-rekisterit 0 ja 7 luetaan sen määrittämiseksi, sisältääkö se kelvollisia aika- ja määritystietoja. Kun asetukset on tehty oikein, RTC -aika luetaan ja aika ladataan PIC: hen. Tämä on ainoa aika, jolloin aika luetaan RTC: stä. Käynnistyksen jälkeen RTC: n nastassa 7 on 1 Hz: n pulssi. Tämä 1 Hz: n signaali on kytketty RB0/INT0: een, ja keskeytyspalvelurutiinin kautta PIC -aika päivitetään joka sekunti.

Ulkoinen EEPROM: Kaikki ohjelmatiedot ja vaihtoehdot tallennetaan ulkoiseen EEPROMiin. EEPROM-tiedot ladataan käynnistyksen yhteydessä ja kopio tiedoista tallennetaan PIC-muistiin. EEPROM -tiedot päivitetään vain, kun ohjelma -asetuksia muutetaan.

Päivä-/yöanturi: Päivä-/yöanturina käytetään tavallista valosta riippuvaa vastusta (LDR). Koska LDR: itä on monia muotoja ja lajikkeita, joilla kaikilla on erilaiset vastusarvot samoissa valo -olosuhteissa, käytin analogista tulokanavaa valotason lukemiseen. Päivä- ja yötasot ovat säädettävissä ja mahdollistavat jonkin verran joustavuutta eri antureille. Hystereesin asettamiseksi voidaan asettaa päivä- ja yöarvojen yksilölliset arvot. Tila muuttuu vain, jos valotaso on alle päivän tai yön asetuspisteiden yläpuolella yli 60 sekuntia.

Nestekidenäyttö: 4-rivinen, 16-merkkinen näyttö, koska kaikkia tietoja ei voitu näyttää 2-rivisellä näytöllä. Projekti sisältää joitakin mukautettuja merkkejä, jotka on määritetty LCD_Custom_Char -makrossa.

Aputulot: Molemmat tulot on puskuroitu NPN -transistorilla. Liittimessä on myös +12V ja 0V, mikä mahdollistaa joustavammat liitännät ulkoisiin liitäntöihin. Esimerkiksi kaukosäätimen vastaanotin voidaan kytkeä virtalähteeseen.

Lähdöt: Kaikki lähdöt on sähköisesti erotettu piiristä 12 V: n releellä. Käytetyt releet on nimetty 250 V AC: lle 10 ampeerilla. Normaalisti avoimet ja normaalisti suljetut koskettimet tuodaan liittimiin.

Näppäimistö: Näppäimistö on 3 x 4 -matriisinäppäimistö, ja se on liitetty PORTB: 2..7.

Vaihe 4: Näppäimistön keskeytykset

Näppäimistö keskeyttää
Näppäimistö keskeyttää
Näppäimistö keskeyttää
Näppäimistö keskeyttää
Näppäimistö keskeyttää
Näppäimistö keskeyttää

Halusin käyttää PORTB -keskeytyksen muutoksen keskeytystä millä tahansa näppäimen painalluksella. Tätä varten Flowcode -ohjelmaan oli luotava mukautettu keskeytys sen varmistamiseksi, että PORTB -suunta ja tiedot on asetettu oikein ennen ja jälkeen jokaisen näppäimistön keskeytyksen. Keskeytys luodaan aina, kun painiketta painetaan tai vapautetaan. Keskeytysrutiini reagoi vain, kun näppäintä painetaan.

MUKAUTETTU KESKEYTYS

Ota koodi käyttöön

portb = 0b00001110; trisb = 0b11110001;

intcon. RBIE = 1;

intcon2. RBIP = 1;

intcon2. RBPU = 1;

rcon. IPEN = 0;

Käsittelijän koodi

jos (intcon & (1 << RBIF))

{FCM_%n ();

portb = 0b00001110;

trisb = 0b11110001;

wreg = portb;

clear_bit (intcon, RBIF);

}

Ongelmia löydetty

Keskeytyksen aikana keskeytyspalvelurutiinin on NO -olosuhteissa kutsuttava muita makroja, joita voidaan käyttää jossakin muualla ohjelmassa. Tämä johtaa lopulta pinon ylivuoto -ongelmiin, koska keskeytys voi tapahtua samaan aikaan, kun myös pääohjelma on samassa aliohjelmassa. Flowcode tunnistaa tämän myös vakavaksi virheeksi koodia koottaessa.

Näppäimistön mukautetussa koodissa GetKeyPadNumber -kohdassa on tällainen kutsu Delay_us -makroon, mikä aiheuttaa pinon ylivuodon. Tämän ratkaisemiseksi olen poistanut Delay_us (10) -komennon ja korvannut sen 25 rivillä "wreg = porta;" komentoja. Tämä komento lukee PORTA ja asettaa sen arvon W -rekisteriin vain viiveen saamiseksi. Tämä komento kootaan yhdeksi ohjeeksi, joka muistuttaa assembler movf porta, 0. Projektissa käytetylle 10 MHz: n kellolle jokainen käsky on 400ns, ja 10us -viiveen saamiseksi tarvitsin 25 näistä ohjeista.

Huomaa kuvan 3 toisella rivillä: GetKeypadNumber Custom Code, että alkuperäinen delay_us (10) -komento on poistettu käytöstä merkillä //. Tämän alle olen lisännyt 25 "wreg = porta;" komentoja uuden 10us -viiveen saamiseksi. Kun mukautetun Keypad_ReadKeypadNumber -koodin sisällä olevia makroja ei kutsuta, näppäimistömakroa voidaan nyt käyttää keskeytyspalvelurutiinin sisällä.

On huomattava, että Flowcode-näppäimistö- ja eBlocks-komponentit eivät käytä tulolinjojen vakio-vetovastusvastuksia. Sen sijaan se käyttää 100K alasvetovastuksia. Näppäimistöstä löydettyjen häiriöiden vuoksi kehityksen aikana 100K vastukset korvattiin 10K ja kaikki 10K vastukset 1K5. Näppäimistön toimivuus testattiin 200 mm johtojen kanssa.

Vaihe 5: Ajastimen käyttäminen

Ajastimen käyttäminen
Ajastimen käyttäminen
Ajastimen käyttäminen
Ajastimen käyttäminen
Ajastimen käyttäminen
Ajastimen käyttäminen

Kaikki näytöt on asetettu osoittamaan kaikki tarvittavat tiedot, jotta käyttäjä voi tehdä nopeita muutoksia asetuksiin. Riviä 4 käytetään helpottamaan navigointia valikoissa ja ohjelmavaihtoehdoissa. Normaalikäytössä on käytettävissä yhteensä 22 näyttöä.

Rivi 1: Aika ja tila

Näyttää nykyisen päivän ja ajan sekä tilakuvakkeet:

A - Ilmaisee, että Aux -tulo A laukaistiin ja Aux -tulon A ajastin on käynnissä.

B - Ilmaisee, että Aux -tulo B laukaistiin ja Aux -tulon B ajastin on käynnissä.

C - Ilmaisee, että Aux -lähtö C on kytketty päälle.

D - Osoittaa, että Aux -lähtö D on kytketty päälle.

} - Päivä/yö -anturin tila. Jos läsnä, osoittaa, että on yö.

LINE 2: Ohjelmalähdöt

Näyttää kanavat, jotka eri ohjelmat ovat käynnistäneet. Kanavat näytetään niiden lähtönumeroina, ja "-" osoittaa, että tietty lähtö ei ole päällä. Kanavat, jotka on poistettu käytöstä ohjelmalähtöjen aktiivisena, näytetään edelleen tässä, mutta todellisia lähtöjä ei aseteta.

LINE 3: Todelliset lähdöt

Näyttää, mitkä kanavat eri ohjelmat, Aux -tulot A & B tai käyttäjän asettamat manuaaliset lähdöt ottavat käyttöön. Painamalla 0 -näppäintä kaikki manuaalisesti aktivoidut lähdöt kytketään pois päältä ja Aux Output A & B -ajastimet nollataan.

LINE 4: Valikko- ja näppäinvaihtoehdot (kaikissa valikoissa)

Osoittaa “*” - ja “#” -näppäinten toiminnan.

Keskiosa osoittaa, mitkä numeronäppäimet (0-9) ovat aktiivisia valitulle näytölle.

Aux -tulon A & B tulon tila näkyy myös avoimen tai suljetun kytkimen kuvakkeen avulla.

Lähdöt voidaan kytkeä päälle/pois manuaalisesti painamalla vastaavaa näppäimistön näppäintä.

Kaikissa valikoissa Star- ja Hash -näppäimiä käytetään eri ohjelmavaihtoehtojen selaamiseen. Näppäimiä 0-9 käytetään asetusten määrittämiseen. Jos yhdellä näytöllä tai ohjelmointivalikossa on useita vaihtoehtoja, Hash -näppäintä käytetään eri vaihtoehtojen selaamiseen. Nykyinen valittu vaihtoehto näkyy aina näytön vasemmalla puolella olevalla ">" -merkillä.

0-9 Anna aika-arvot

1-8 Kanavan valinnan muuttaminen

14 36 Vaihe ohjelmien läpi, 1 askel taaksepäin, 4 askelta taaksepäin 10 ohjelmaa, 3 askelta eteenpäin, 6 askelta eteenpäin 10

ohjelmia

1-7 Aseta viikonpäivät. 1 = sunnuntai, 2 = maanantai, 3 = tiistai, 4 = keskiviikko, 5 = torstai, 6 = perjantai, 7 = lauantai

0 Tyhjennä päänäytössä kaikki manuaaliset ohitukset sekä A- ja B -tulon ajastimet. Muissa valikoissa muutokset

valitut vaihtoehdot

# Poistaa päänäytöstä kaikki manuaaliset ohitukset, tulo A- ja tulo B -ajastimet ja ohjelmalähdöt, kunnes

seuraava tapahtuma.

* ja 1 Käynnistä ajastin uudelleen

* ja 2 Tyhjennä kaikki ohjelmat ja asetukset, palauta oletusasetukset.

* ja 3 Aseta ajastin valmiustilaan. Käynnistä ajastin uudelleen painamalla mitä tahansa näppäintä.

Minkä tahansa ajan arvon väärän syöttämisen aikana nestekidenäytön taustavalo vilkkuu 5 kertaa virheen ilmaisemiseksi. Samalla kuuluu summeri. Poistu ja Seuraava -komennot toimivat vain, kun nykyinen merkintä on oikea.

LCD -taustavalo

Ensimmäisen käynnistyksen yhteydessä nestekidenäytön taustavalo syttyy 3 minuutiksi, paitsi jos:

- Laitteessa on vika (EEPROM tai RTC ei löydy)

- Aika ei ole asetettu RTC: hen

Nestekidenäytön taustavalo syttyy jälleen 3 minuutiksi, kun käyttäjä syöttää näppäimistön. Jos nestekidenäytön taustavalo ei ole päällä, kaikki näppäimistökomennot kytkevät LCD -näytön taustavalon päälle ja jättävät huomiotta painetun näppäimen. Tämä varmistaa, että käyttäjä voi lukea nestekidenäytön ennen näppäimistön käyttöä. Nestekidenäytön taustavalo syttyy myös 5 sekunniksi, jos Aux -tulo A tai Aux -tulo B on aktivoitu.

Vaihe 6: Valikon näyttökuvat

Valikon näyttökuvat
Valikon näyttökuvat
Valikon näyttökuvat
Valikon näyttökuvat
Valikon näyttökuvat
Valikon näyttökuvat

Näppäimistön avulla jokainen vaihtoehto voidaan ohjelmoida helposti. Kuvat antavat tietoa siitä, mitä kukin näyttö tekee.

Vaihe 7: Järjestelmän suunnittelu

Järjestelmän suunnittelu
Järjestelmän suunnittelu

Kaikki kehitys ja testaus tehtiin leipälevyllä. Tarkasteltaessa kaikkia järjestelmän osia, jaoin järjestelmän kolmeen moduuliin. Tämä päätös johtui lähinnä Eaglen ilmaisen version PCB -kokorajoituksista (80 x 100 mm).

Moduuli 1 - Virtalähde

Moduuli 2 - CPU -kortti

Moduuli 3 - Relekortti

Päätin, että kaikkien komponenttien on oltava helposti saatavissa, enkä halunnut käyttää pinta -asennettavia komponentteja.

Käydään jokainen niistä läpi.

Vaihe 8: Virtalähde

Virtalähde
Virtalähde
Virtalähde
Virtalähde
Virtalähde
Virtalähde
Virtalähde
Virtalähde

Virtalähde on suoraan eteenpäin ja toimittaa suorittimelle ja relelevyille 12V ja 5V.

Asensin jännitesäätimet kunnollisille jäähdytyselementteille ja käytin myös yliarvostettuja kondensaattoreita.

Vaihe 9: CPU -kortti

CPU -kortti
CPU -kortti
CPU -kortti
CPU -kortti
CPU -kortti
CPU -kortti
CPU -kortti
CPU -kortti

Kaikki komponentit, paitsi LCD -näyttö, näppäimistö ja releet, on asennettu CPU -kortille.

Liittimet on lisätty helpottamaan liitäntöjä virransyötön, kahden digitaalitulon ja valoanturin välillä.

Nastatapit mahdollistavat helpon liitännän nestekidenäyttöön ja näppäimistöön.

Releiden lähdöissä käytin ULN2803. Se sisältää jo kaikki tarvittavat ajovastukset ja palautusdiodit. Tämä varmisti, että suoritinlevy voidaan silti valmistaa käyttämällä Eaglen ilmaista versiota. Releet on kytketty kahteen ULN2803: een. Alempaa ULN2803 käytetään kahdeksalle ulostulolle ja ylempää ULN2803 kahdelle lisälähdölle. Jokaisessa apulähdössä on neljä transistoria. Liitännät releisiin tapahtuvat myös liittimien tai pistorasioiden kautta.

PIC 18F4520 oli varustettu ohjelmointiliittimellä, joka mahdollistaa helpon ohjelmoinnin PicKit 3 -ohjelmoijan avulla.

HUOMAUTUS:

Huomaat, että levyllä on lisäksi 8 -nastainen IC. Ylin IC on PIC 12F675 ja liitetty digitaalituloon. Tämä lisättiin piirilevyn suunnittelun aikana. Tämä helpottaa digitaalitulon esikäsittelyä. Sovelluksessani yksi digitaalituloista on kytketty hälytysjärjestelmään. Jos hälytys soi, tietyt valot syttyvät talossani. Hälytysjärjestelmän kytkeminen päälle ja pois päältä antaa erilaisia piippauksia sireenille. Käyttämällä PIC 12F675 -laitetta voin nyt erottaa virran/poiskytkennän ja todellisen hälytyksen. 12F675 on varustettu myös ohjelmointiliitännällä.

Varasin myös I2C -portin otsikkotapin/pistorasian kautta. Tämä on hyödyllistä myöhemmin relelevyjen kanssa.

Taulu sisältää muutamia puseroita, jotka on juotettava ennen IC -kantojen asentamista.

Vaihe 10: Flowcode -johtopäätös

Flowcode -johtopäätös
Flowcode -johtopäätös
Flowcode -johtopäätös
Flowcode -johtopäätös
Flowcode -johtopäätös
Flowcode -johtopäätös

Koska olen tottunut työskentelemään rekisterin tasolla kokoonpanossa, komponenttimakrojen käyttö oli joskus vaikeaa ja turhauttavaa. Tämä johtui lähinnä siitä, että minulla ei ollut tietoa Flowcoden ohjelmointirakenteesta. Ainoat paikat, joissa olen käyttänyt C- tai ASM -lohkoja, olivat lähtöjen kytkeminen päälle keskeytysrutiinin sisällä ja Do_KeyPressed -rutiinissa näppäimistön keskeytyksen poistaminen käytöstä/ottaminen käyttöön. PIC asetetaan myös SLEEP -tilaan ASM -lohkon avulla, kun EEPROM- tai RTC -yhteyttä ei löydy.

Apua erilaisten I²C -komentojen käyttöön saatiin Flowcode -ohjetiedostoista. Ennen kuin komentoja voidaan käyttää onnistuneesti, sinun on tiedettävä tarkalleen, miten eri I²C -laitteet toimivat. Piirin suunnittelu edellyttää, että suunnittelijalla on kaikki asiaankuuluvat tietolomakkeet saatavilla. Tämä ei ole Flowcoden puute.

Flowcode vastasi todella testiä, ja sitä suositellaan henkilöille, jotka haluavat aloittaa työskentelyn Microchip -sarjan mikroprosessoreilla.

PIC: n virtauskoodin ohjelmointi ja konfigurointi asetettiin kuvien mukaan

Vaihe 11: Valinnainen I2C -relekortti

Valinnainen I2C -relelevy
Valinnainen I2C -relelevy
Valinnainen I2C -relelevy
Valinnainen I2C -relelevy
Valinnainen I2C -relelevy
Valinnainen I2C -relelevy

CPU -kortilla on jo otsikkoliitännät 16 releelle. Nämä lähdöt ovat avoimia kollektoritransistoreita kahden ULN2803 -sirun kautta, joita voidaan käyttää suoraan releiden virtalähteenä.

Järjestelmän ensimmäisten testien jälkeen en pitänyt kaikista CPU -levyn ja releiden välisistä johdoista. Kun sisällytin CPU -korttiin I2C -portin, päätin suunnitella relelevyn I2C -porttiin liitettäväksi. Käyttämällä 16 -kanavaista MCP23017 I/O -portin laajenninsirua ja ULN2803 -transistoriryhmää pienensin CPU: n ja releiden väliset liitännät 4 johtoon.

Koska en voinut sovittaa 16 relettä 80 x 100 mm: n piirilevylle, päätin tehdä kaksi levyä. Jokainen MCP23017 käyttää vain 8 sen 16 portista. Kortti 1 käsittelee 8 lähtöä ja kortti 2 molempia apulähtöjä. Ainoa ero taulukoissa on kunkin levyn osoitteet. Tämä on helppo asettaa mini -puserolla. Jokaisella kortilla on liittimet virran ja I2C -datan syöttämiseksi toiselle kortille.

HUOMAUTUS:

Tarvittaessa ohjelmistossa on vain yksi levy, joka voi käyttää kaikkia 16 porttia. Kaikki lähtöreledatat ovat saatavilla ensimmäisellä kortilla.

Koska piiri on valinnainen ja hyvin yksinkertainen, en luonut kaaviota. Jos kysyntää on tarpeeksi, voin lisätä sen myöhemmin.

Vaihe 12: Valinnainen RF -linkki

Valinnainen RF -linkki
Valinnainen RF -linkki
Valinnainen RF -linkki
Valinnainen RF -linkki
Valinnainen RF -linkki
Valinnainen RF -linkki

Projektin päätyttyä tajusin pian, että minun on vedettävä paljon 220 V: n AC -johtoja ajastimeen. Kehitin RF -linkin käyttäen 315 MHz: n vakiomoduuleja, jotka mahdollistivat ajastimen sijoittamisen kaapin sisään ja relelevyt katon sisään, lähellä kaikkia 220 V: n johtoja.

Linkki käyttää AtMega328P: tä, joka toimii 16 MHz: n taajuudella. Sekä lähettimen että vastaanottimen ohjelmisto on sama, ja tila valitaan miniliittimellä.

Lähetin

Lähetin on yksinkertaisesti kytketty CPU I2C -porttiin. Lisäasetuksia ei tarvita, koska AtMega328P kuuntelee samoja tietoja kuin I2C -relelevyt.

Tiedot päivitetään kerran sekunnissa I2C -portissa, ja lähetin lähettää nämä tiedot RF -linkin kautta. Jos lähetin ei vastaanota I2C -tietoja noin 30 sekuntiin, lähetin lähettää jatkuvasti tietoja sammuttaakseen kaikki releet vastaanottimelle.

Lähetinmoduulin virta voidaan valita 12 V: n ja 5 V: n välillä PC -kortilla olevalla miniliittimellä. Käytän lähettimen virtaa 12V: lla.

Vastaanotin

Vastaanotin kuuntelee lähettimen koodattua dataa ja sijoittaa tiedot I2C -porttiin. Relelevy yksinkertaisesti kytketään tähän porttiin ja toimii samalla tavalla kuin se oli kytketty CPU -korttiin.

Jos vastaanotin ei vastaanota kelvollisia tietoja 30 sekuntiin, vastaanotin lähettää jatkuvasti tietoja I2C -portista sammuttaakseen kaikki releiden levyt releiltä.

Kaaviot

Jonain päivänä, jos sille on kysyntää. Arduinon luonnos sisältää kaikki tarvittavat tiedot piirin rakentamiseksi ilman kytkentäkaaviota.

Alue

Asennuksessani lähetin ja vastaanotin ovat noin 10 metrin päässä toisistaan. Ajastin on kaapin sisällä ja releyksikkö katon päällä.

Vaihe 13: Lopputuote

Lopputuote
Lopputuote
Lopputuote
Lopputuote
Lopputuote
Lopputuote

Päälaite oli asennettu vanhaan laatikkoon. Se sisältää seuraavat:

- 220V/12V muuntaja

- Virtalähde

- CPU -kortti

- LCD -näyttö

- Näppäimistö

- RF Link -lähetin

- Ylimääräinen kodin kauko -vastaanotinyksikkö, jonka avulla voin kytkeä valot päälle/pois kaukosäätimen kautta

Releyksikkö koostuu seuraavista:

- 220V/12V muuntaja

- Virtalähde

- RF Link -vastaanotin

- 2 x I2C -relelevyä

Kaikki levyt on suunniteltu samalla mitalla, joten niiden pinoaminen päällekkäin on helppoa 3 mm: n välikappaleilla.

Suositeltava: