Tartalomjegyzék:

8 csatornás programozható időzítő: 13 lépés
8 csatornás programozható időzítő: 13 lépés

Videó: 8 csatornás programozható időzítő: 13 lépés

Videó: 8 csatornás programozható időzítő: 13 lépés
Videó: ATMT 502 HU - 16 csatornás távirányító időzítővel 2024, Július
Anonim
8 csatornás programozható időzítő
8 csatornás programozható időzítő
8 csatornás programozható időzítő
8 csatornás programozható időzítő
8 csatornás programozható időzítő
8 csatornás programozható időzítő

Bevezetés

1993 óta használom a Microchip PIC mikrokontroller sorozatát a projektjeimhez, és minden programozásomat összeszerelő nyelven végeztem, a Microchip MPLab IDE segítségével. A projektjeim az egyszerű közlekedési lámpáktól és a villogó LED -ektől az R/C modellek USB joystick interfészeiig és az iparban használt kapcsolóberendezés -analízisekig terjedtek. A fejlesztés sok napot vett igénybe, és néha több ezer sornyi összeszerelő kódot.

Miután megkaptam a Matrix Multimedia Flowcode 4 Professional programot, meglehetősen szkeptikus voltam a szoftverrel kapcsolatban. Túl könnyűnek tűnt elhinni. Úgy döntöttem, hogy kipróbálom, és kipróbáltam az összes komponens makrót, mindezt nagy sikerrel. A Flowcode használatának legjobb része az volt, hogy az egyszerű projekteket egyetlen éjszaka alatt lehetett kódolni. Miután játszottam az I²C -vel és a DS1307 valós idejű órával, úgy döntöttem, hogy a 8 csatornás időzítőt Flowcode használatával tervezem. Nem lévén kicsi és könnyű projekt, azt hittem, hogy ez nagyszerű projekt lesz Flowcode megtanítására.

Mikroprocesszor és egyéb összetevők kiválasztása

A szükséges I/O érintkezők száma miatt egyértelmű volt, hogy 40 tűs eszközre lesz szükség. A PIC 18F4520 -at választották, elsősorban a 32K programmemóriája és az 1536 bájt adatmemória miatt. Minden felhasznált alkatrész szabványos átmenő furatú eszköz, amely lehetővé teszi az áramkör szükség szerinti építését Vero kártyára. Ez is segített a kenyérsütő deszkán való fejlesztésben.

1. lépés: A projekt célkitűzései

Projekt céljai
Projekt céljai

Célkitűzések

- Pontos időmérés, akkumulátor tartalékkal.

- Minden programot és adatot meg kell őrizni, még áramkimaradás után is.

- Egyszerű felhasználói felület.

- Programozási rugalmasság.

Időtartás

Az áramszünetekre hajlamos területen lakva, a szabványos 50/60Hz az elektromos vezetékekről nem lesz elegendő a pontos időméréshez. A valós idejű óra elengedhetetlen volt, és több RTC chip tesztelése után az egyszerű oszcillátor és az akkumulátor tartalék konfigurációja miatt a DS1307 mellett döntöttem. Elég pontos időmérést csak a DS1307 -hez csatlakoztatott 32,768 kHz -es kristály segítségével sikerült elérni. A pontosság 2 másodpercen belül volt egy 2 hónapos próbaidőszak alatt, 4 különböző típusú kristályt használva.

Adatmegőrzés

Az időzítő program összes adatát meg kell őrizni, még áramkimaradás esetén is. Akár 100 különböző programmal és különféle konfigurációs adatokkal világossá vált, hogy a PIC 256 bájtos fedélzeti EEPROM-ja nem lesz elég nagy. A 24LC256 I²C EEPROM tárolja az összes programozási információt.

Egyszerű felhasználói felület

A felhasználói felület mindössze 2 elemből, egy 16 x 4 soros LCD kijelzőből, LED háttérvilágítással és 4 x 3 billentyűzetből áll. Minden programozás csak néhány gomb megnyomásával végezhető el. A kezelőfelület kiegészítéseként hallható piezo zümmögő és vizuálisan villogó LCD háttérvilágítás található.

2. lépés: Rugalmasság programozása

Programozási rugalmasság
Programozási rugalmasság

A program rugalmasságának biztosítása érdekében az időzítő 100 programot tartalmaz, amelyeket egyedileg lehet beállítani. Minden programhoz beállítható a bekapcsolási idő, a kikapcsolási idő, a kimeneti csatornák és a hét napja. Minden programnak három módja van:

- Auto: Bekapcsolási idő, Kikapcsolási idő, Kimeneti csatorna és a hét napja van beállítva.

- Ki: Az egyes programok letilthatók a beállítások törlése nélkül. A program újbóli engedélyezéséhez

egyszerűen válasszon másik módot.

- Nap/Éjszaka: Bekapcsolás, Kikapcsolás, Kimeneti csatorna és a hét napja van beállítva. Ugyanaz, mint az Auto mód, de működik

csak sötétben kapcsolja be a kimeneteket a be- és kikapcsolási időpontok között. Ez lehetővé teszi a teljes nappali/éjszakai vezérlést is

a rugalmasság, hogy a lámpákat napnyugtakor felkapcsolják, és napkeltekor lekapcsolják.

1. példa: 20:00 után bekapcsolja a lámpát, és napkeltekor lekapcsolja:

Bekapcsolva: 20:00, Ki: 12:00, 2. példa: Napnyugtakor felkapcsolja a lámpát, és 23:00 órakor lekapcsolja.

Bekapcsolva: 12:00

Ki: 23:00

3. példa: Napnyugtakor bekapcsolja a lámpát, és napkeltekor lekapcsolja.

Bekapcsolva: 12:01

Ki: 12:00

További opciók állnak rendelkezésre, amelyek mindegyike a 100 be/ki programtól függetlenül működik.

Aktív programcsatornák: Több program kikapcsolása helyett az egyes kimeneti csatornák letilthatók a programok megváltoztatása nélkül.

Kiegészítő bemenetek: Két digitális bemenet áll rendelkezésre, amelyek lehetővé teszik bizonyos kimeneti csatornák meghatározott ideig történő bekapcsolását. Használható például bizonyos lámpák bekapcsolására, amikor késő este érkezik haza, amikor megnyom egy gombot a távirányítón, vagy más lámpák bekapcsolására, amikor a ház riasztása bekapcsol.

Kiegészítő kimenetek: Két további kimenet áll rendelkezésre (a 8 kimeneti csatornán kívül). Bekapcsolásra programozhatók bizonyos kimeneti csatornákkal vagy digitális bemenetekkel. A telepítés során 6-8 kimenetem vezérli az öntözést, amely 24V-on működik. A 6-8 csatornákat használom az egyik segédkimenet bekapcsolására, az öntözőrendszer 24 V-os tápellátásának bekapcsolására.

Manuális bekapcsolás: A főképernyőn az 1-8 gombokkal manuálisan lehet be- vagy kikapcsolni a csatornákat.

3. lépés: Hardver

Hardver
Hardver

Tápegység: A tápegység egyenirányítóból, simító kondenzátorból és 1 amperos biztosítékból áll a túlterhelés elleni védelem érdekében. Ezt az ellátást egy 7812 és 7805 szabályozó szabályozza. A 12 V -os tápegység a kimeneti relék meghajtására szolgál, az összes többi áramkör pedig az 5 V -os tápegységről kapja a tápfeszültséget. Mivel a 7805 szabályozó a 7812 szabályozó kimenetéhez van csatlakoztatva, a teljes áramot 1 amperre kell korlátozni a 7812 szabályozón keresztül. Célszerű ezeket a szabályozókat megfelelő hűtőbordára szerelni.

I²C busz: Bár a Flowcode lehetővé teszi az I²C hardveres vezérlést, úgy döntöttem, hogy a szoftver I²C konfigurációját használom. Ez nagyobb rugalmasságot tesz lehetővé a csapok hozzárendelésében. Bár lassabb (50 kHz), mégis kiválóan teljesít a hardveres I²C buszhoz képest. A DS1307 és a 24LC256 is csatlakozik ehhez az I²C buszhoz.

Valós idejű óra (DS1307): Az indítás során az RTC 0 és 7 regiszterét olvassuk, hogy megállapítsuk, tartalmaz-e érvényes idő- és konfigurációs adatokat. A helyes beállítás után az RTC idő beolvasásra kerül, és a PIC -be betöltött idő. Ez az egyetlen alkalom, amikor az időt leolvassák az RTC -ből. Az indítás után 1 Hz -es impulzus lesz jelen az RTC 7. érintkezőjén. Ez az 1 Hz -es jel az RB0/INT0 -hoz van csatlakoztatva, és egy megszakítási szolgáltatási rutinon keresztül a PIC -idő másodpercenként frissül.

Külső EEPROM: Minden programadat és opció a külső EEPROM -on tárolódik. Az EEPROM adatok betöltődnek az indításkor, és az adatok másolata a PIC memóriában tárolódik. Az EEPROM adatok csak a programbeállítások módosításakor frissülnek.

Nappali/éjszakai érzékelő: A standard fényfüggő ellenállást (LDR) használják nappali/éjszakai érzékelőként. Mivel az LDR -ek sokféle formában és változatban kaphatók, mindegyik különböző ellenállási értékekkel azonos fényviszonyok között, analóg bemeneti csatornát használtam a fényszint leolvasásához. A nappali és az éjszakai szint állítható, és bizonyos rugalmasságot tesz lehetővé a különböző érzékelők számára. Bizonyos hiszterézis beállításához beállíthatók a nappali és éjszakai értékek. Az állapot csak akkor változik, ha a fényerő a Nap alatt, vagy az Éjszakai beállítási pontok felett van, több mint 60 másodpercig.

LCD kijelző: 4 soros, 16 karakteres kijelzőt használ, mivel az összes adat nem jeleníthető meg egy 2 soros kijelzőn. A projekt tartalmaz néhány egyéni karaktert, amelyet az LCD_Custom_Char makró határoz meg.

Kiegészítő bemenetek: Mindkét bemenet pufferelt NPN tranzisztorral. +12V és 0V is rendelkezésre áll a csatlakozón, lehetővé téve a rugalmasabb csatlakozást a külső csatlakozásokhoz. Például távirányító vevő csatlakoztatható a tápegységhez.

Kimenetek: Minden kimenet elektromosan el van választva az áramkörtől egy 12 V -os relével. A használt relék 250 V váltakozó áramúak, 10 amperre vannak méretezve. A normál esetben nyitott és általában zárt érintkezők a terminálokhoz kerülnek.

Billentyűzet: A használt billentyűzet 3 x 4 mátrixú billentyűzet, és csatlakoztatva van PORTB: 2..7.

4. lépés: A billentyűzet megszakítja

A billentyűzet megszakítja
A billentyűzet megszakítja
A billentyűzet megszakítja
A billentyűzet megszakítja
A billentyűzet megszakítja
A billentyűzet megszakítja

Ki akartam használni a PORTB Interrupt on Change interrupt -ot bármely gombnyomásra. Ehhez egy egyedi megszakítást kellett létrehozni a Flowcode -ban, hogy biztosítsa a PORTB irány és az adatok helyes beállítását minden billentyűzet megszakítás előtt és után. A gomb minden megnyomásakor vagy elengedésekor megszakítás jön létre. A megszakítási rutin csak akkor reagál, ha megnyom egy gombot.

EGYEDI MEGSZAKÍTÁS

Kód engedélyezése

portb = 0b00001110; trisb = 0b11110001;

intcon. RBIE = 1;

intcon2. RBIP = 1;

intcon2. RBPU = 1;

rcon. IPEN = 0;

Kezelői kód

if (intcon & (1 << RBIF))

{FCM_%n ();

portb = 0b00001110;

trisb = 0b11110001;

wreg = portb;

clear_bit (intcon, RBIF);

}

Problémák találhatók

Egy megszakítás alatt a megszakítási szolgáltatási rutinnak NO feltételek mellett meg kell hívnia minden más makrót, amelyet valahol a program többi részében használhatnak. Ez végül verem túlcsordulási problémákhoz vezet, mivel a megszakítás egyidejűleg történhet, amikor a főprogram is ugyanabban az alprogramban van. Ezt a kód fordításakor a Flowcode Súlyos hibának is nevezi.

A billentyűzet egyéni kódjában a GetKeyPadNumber alatt van egy ilyen hívás a Delay_us makróhoz, ami verem túlcsordulást okoz. Ennek kiküszöbölése érdekében eltávolítottam a Delay_us (10) parancsot, és lecseréltem 25 sorra: „wreg = porta;” parancsokat. Ez a parancs PORTA -t olvas, és értékét a W regiszterbe helyezi, csak azért, hogy késleltessen. Ez a parancs egyetlen utasításra lesz fordítva, hasonlóan az assembler movf porta, 0. A projektben használt 10 MHz -es órajelhez minden utasítás 400ns lesz, és a 10us késleltetéshez 25 ilyen utasításra volt szükségem.

Megjegyzés a 3. ábra második sorában: GetKeypadNumber Egyéni kód, hogy az eredeti delay_us (10) parancs le lett tiltva a „//” jelzéssel. Ez alatt hozzáadtam a 25 „wreg = porta;” parancsokat, hogy új 10us késleltetést kapjon. Ha a Keypad_ReadKeypadNumber egyéni kódon belül nincs makróhívás, a billentyűzet makró mostantól használható egy megszakítási szolgáltatási rutinon belül.

Meg kell jegyezni, hogy a Flowcode billentyűzet és az eBlocks komponensek nem használnak szabványos felhúzó ellenállásokat a bemeneti vonalakon. Ehelyett 100K lehúzható ellenállást használ. A billentyűzeten a fejlesztés során tapasztalt interferencia miatt a 100K ellenállásokat 10K -ra cserélték, az összes 10K ellenállást pedig 1K5 -re. A billentyűzet működését 200 mm -es vezetékekkel tesztelték.

5. lépés: Az időzítő használata

Az időzítő használata
Az időzítő használata
Az időzítő használata
Az időzítő használata
Az időzítő használata
Az időzítő használata

Minden képernyő úgy van beállítva, hogy minden szükséges információt megjelenítsen ahhoz, hogy a felhasználó gyorsan módosíthassa a beállításokat. A 4. sor segíti a navigációt a menükben és a programbeállításokban. A normál működés során összesen 22 képernyő áll rendelkezésre.

1. VONAL: Idő és állapot

Az aktuális napot és időt mutatja, majd az állapot ikonok:

A - Azt jelzi, hogy az A Aux bemenet aktiválódott, és az Aux Input A időzítő fut.

B - Azt jelzi, hogy a B Aux bemenet aktiválódott, és a Aux B bemenet időzítő fut.

C - Azt jelzi, hogy a C Aux kimenet be van kapcsolva.

D - Azt jelzi, hogy a D Aux kimenet be van kapcsolva.

} - Nappali/éjszakai érzékelő állapota. Ha jelen van, azt jelzi, hogy éjszaka van.

2. sor: Program kimenetek

Megjeleníti azokat a csatornákat, amelyeket a különböző programok bekapcsoltak. A csatornák kimeneti számukban jelennek meg, és a „-” jelzi, hogy az adott kimenet nincs bekapcsolva. Azok a csatornák, amelyek le vannak tiltva az „Aktív programkimenetek” menüpontban, továbbra is itt jelennek meg, de a valós kimenetek nem kerülnek beállításra.

3. VONAL: Valódi kimenetek

Megmutatja, hogy mely csatornákat kapcsolják be a különböző programok, az A és B Aux bemenetek, vagy a felhasználó által beállított kézi kimenetek. A 0 megnyomásával az összes manuálisan aktivált kimenet kikapcsol, és az Aux kimenet A & B időzítői visszaállnak.

LINE 4: Menü és gombok (minden menüben)

A „*” és „#” gombok funkcióját jelzi.

A középső rész azt jelzi, hogy mely számgombok (0-9) aktívak a kiválasztott képernyőn.

Az Aux Input A & B bemeneti állapotát a Nyitott vagy Zárt kapcsoló ikon is jelzi.

A kimenetek manuálisan be- és kikapcsolhatók a billentyűzet megfelelő gombjának megnyomásával.

A menükben a Csillag és a Hash gombok segítségével navigálhat a különböző programlehetőségek között. A 0-9 gombokkal lehet beállítani az opciókat. Ha több opció áll rendelkezésre egyetlen képernyőn vagy programozási menüben, akkor a Hash billentyűvel lépkedhet a különböző lehetőségek között. Az éppen kiválasztott opciót mindig a képernyő bal oldalán található „>” karakter jelzi.

0-9 Adja meg az időértékeket

1-8 Csatornaválasztás módosítása

14 36 Lépés a programok között, 1 lépés hátra, 4 lépés hátra 10 program, 3 lépés előre, 6 lépés előre 10

programok

1-7 A hét napjainak beállítása. 1 = vasárnap, 2 = hétfő, 3 = kedd, 4 = szerda, 5 = csütörtök, 6 = péntek, 7 = szombat

0 A főképernyőn törölje az összes kézi felülbírálást, valamint az A és B bemenet időzítőit. Más menükben változások

kiválasztott lehetőségek

# A főképernyőn letiltja az összes kézi felülírást, A és B bemeneti időzítőt és programkimenetet, amíg

a következő esemény.

* és 1 Indítsa újra az időzítőt

* és 2 Törölje az összes programot és opciót, állítsa vissza az alapértelmezett beállításokat.

* és 3 Állítsa az időzítőt készenléti állapotba. Az időzítő újbóli bekapcsolásához nyomja meg bármelyik gombot.

Bármilyen időérték helytelen bevitele során az LCD háttérvilágítása ötször felvillan, jelezve a hibát. Ezzel egy időben megszólal a csengő. A Kilépés és a Következő parancs csak akkor működik, ha az aktuális bejegyzés helyes.

LCD háttérvilágítás

Az első indításkor az LCD háttérvilágítása 3 percre bekapcsol, kivéve, ha:

- Hardverhiba van (EEPROM vagy RTC nem található)

- Az idő nincs beállítva az RTC -ben

Az LCD háttérvilágítása ismét bekapcsol 3 percre a billentyűzet bármely felhasználói bemenetén. Ha az LCD háttérvilágítása ki van kapcsolva, akkor bármely billentyűparancs először bekapcsolja az LCD háttérvilágítását, és figyelmen kívül hagyja a megnyomott gombot. Ez biztosítja, hogy a felhasználó el tudja olvasni az LCD kijelzőt a billentyűzet használata előtt. Az LCD háttérvilágítása szintén bekapcsol 5 másodpercre, ha az A vagy B bemenet be van kapcsolva.

6. lépés: Menüképernyőképek

Menü képernyőképek
Menü képernyőképek
Menü képernyőképek
Menü képernyőképek
Menü képernyőképek
Menü képernyőképek

A billentyűzet segítségével az összes opció könnyen programozható. A képek némi információt nyújtanak arról, hogy az egyes képernyők mit tesznek.

7. lépés: A rendszer tervezése

A rendszer tervezése
A rendszer tervezése

Minden fejlesztés és tesztelés kenyérsütőn történt. A rendszer összes szakaszát nézve három modulra bontottam a rendszert. Ezt a döntést elsősorban az Eagle ingyenes verziójának NYÁK -méretkorlátozásai (80 x 100 mm) okozták.

1. modul - Tápegység

2. modul - CPU kártya

3. modul - Relé tábla

Úgy döntöttem, hogy minden alkatrésznek könnyen beszerezhetőnek kell lennie, és nem akarok felületre szerelhető alkatrészeket használni.

Nézzük végig mindegyiket.

8. lépés: Tápegység

Tápegység
Tápegység
Tápegység
Tápegység
Tápegység
Tápegység
Tápegység
Tápegység

A tápegység egyenes irányú, és a CPU -t és a relélapokat 12V és 5V feszültséggel táplálja.

A feszültségszabályozókat tisztességes hűtőbordákra szereltem, és a tápellátáshoz túlértékelt kondenzátorokat is használtam.

9. lépés: CPU -kártya

CPU kártya
CPU kártya
CPU kártya
CPU kártya
CPU kártya
CPU kártya
CPU kártya
CPU kártya

Minden alkatrész, kivéve az LCD -képernyőt, a billentyűzetet és a reléket, a CPU -kártyára van szerelve.

Sorkapocslécekkel bővítették a tápegység, a két digitális bemenet és a fényérzékelő közötti kapcsolatokat.

A fejlécek és foglalatok lehetővé teszik az LCD képernyő és a billentyűzet egyszerű csatlakoztatását.

A relék kimeneteihez az ULN2803 -at használtam. Már tartalmazza az összes szükséges hajtásellenállást és visszafelé irányuló diódát. Ez biztosította, hogy a CPU kártya továbbra is elkészíthető az Eagle ingyenes verziójával. A relék a két ULN2803 -hoz vannak csatlakoztatva. Az alsó ULN2803 a 8 kimenethez, a felső ULN2803 pedig a két kiegészítő kimenethez használható. Minden segédkimenet négy tranzisztorral rendelkezik. A relékhez való csatlakozások szintén a fejrészeken/aljzatokon keresztül történnek.

A PIC 18F4520 programozó aljzattal volt felszerelve, hogy lehetővé tegye a könnyű programozást a PicKit 3 programozó segítségével.

JEGYZET:

Észre fogja venni, hogy a tábla további 8 tűs IC -t tartalmaz. A felső IC egy PIC 12F675, és digitális bemenetre van csatlakoztatva. Ezt a NYÁK -tervezés során adták hozzá. Ez megkönnyíti a digitális bemenet előfeldolgozását. Alkalmazásomban az egyik digitális bemenet csatlakozik a riasztórendszeremhez. Ha a riasztó megszólal, bizonyos fények felkapcsolnak a házamban. A riasztórendszer élesítése és hatástalanítása különböző hangjelzéseket ad a szirénán. A PIC 12F675 használatával most meg tudom különböztetni az élesítést/hatástalanítást és a valódi riasztást. A 12F675 programozó aljzattal is rendelkezik.

Továbbá gondoskodtam egy I2C portról a fejrészen/foglalaton keresztül. Ez a későbbiekben jól jön a relé táblákkal.

A tábla tartalmaz néhány jumpert, amelyeket forrasztani kell, mielőtt felszerelné az IC aljzatokat.

10. lépés: Folyamatkód -következtetés

Folyamatkód Következtetés
Folyamatkód Következtetés
Folyamatkód Következtetés
Folyamatkód Következtetés
Folyamatkód Következtetés
Folyamatkód Következtetés

Mivel az összeszerelésnél regiszter szinten szoktam dolgozni, néha nehéz és frusztráló volt az összetevő makrók használata. Ez elsősorban annak köszönhető, hogy nem ismerem a Flowcode programozási szerkezetét. Az egyetlen hely, ahol a C vagy ASM blokkokat használtam, a kimenetek bekapcsolása volt egy megszakítási rutinon belül, és a Do_KeyPressed rutinon a billentyűzet megszakításának letiltása/engedélyezése. A PIC szintén ASM blokk segítségével kerül az SLEEP -be, ha az EEPROM vagy RTC nem található.

A különböző I²C parancsok használatával kapcsolatos segítséget a Flowcode súgófájlokból szereztük be. A parancsok sikeres használata előtt pontosan ismernie kell a különböző I²C eszközök működését. Az áramkör tervezéséhez a tervezőnek rendelkeznie kell minden vonatkozó adatlappal. Ez nem a Flowcode hiányossága.

A Flowcode valóban kiállta a próbát, és erősen ajánlott azoknak, akik szeretnének elkezdeni dolgozni a Microchip mikroprocesszorokkal.

A PIC folyamatáramú programozása és konfigurálása a képek szerint történt

11. lépés: Opcionális I2C relé kártya

Opcionális I2C relé kártya
Opcionális I2C relé kártya
Opcionális I2C relé kártya
Opcionális I2C relé kártya
Opcionális I2C relé kártya
Opcionális I2C relé kártya

A CPU kártya már rendelkezik fejléc csatlakozással 16 reléhez. Ezek a kimenetek nyitott kollektor tranzisztorok a két ULN2803 chipen keresztül. Ez használható a relék közvetlen táplálására.

A rendszer első tesztjei után nem tetszett az összes vezeték a CPU kártya és a relék között. Mivel beépítettem egy I2C portot a CPU kártyába, úgy döntöttem, hogy megtervezem a relé táblát, hogy csatlakozzon az I2C porthoz. Egy 16 csatornás MCP23017 I/O portbővítő chip és egy ULN2803 tranzisztor tömb segítségével 4 vezetékre csökkentettem a CPU és a relék közötti kapcsolatokat.

Mivel nem tudtam 16 relét elhelyezni egy 80 x 100 mm -es NYÁK -on, úgy döntöttem, hogy két táblát készítek. Minden MCP23017 16 portból csak 8 -at használ. Az 1. kártya kezeli a 8 kimenetet, a 2. kártya pedig a két kiegészítő kimenetet. Az egyetlen különbség a táblákon az egyes táblák címe. Ez könnyen beállítható egy mini jumperrel. Minden tábla csatlakozóval rendelkezik, amely áramot és I2C adatokat szolgáltat a másik kártyához.

JEGYZET:

Szükség esetén a szoftver csak egy kártyát biztosít, amely mind a 16 portot képes használni. Minden kimeneti relé adat elérhető az első táblán.

Mivel az áramkör opcionális és nagyon egyszerű, nem készítettem sematikus rajzot. Ha van elég kereslet, később hozzá tudom tenni.

12. lépés: Opcionális RF -kapcsolat

Opcionális RF kapcsolat
Opcionális RF kapcsolat
Opcionális RF kapcsolat
Opcionális RF kapcsolat
Opcionális RF kapcsolat
Opcionális RF kapcsolat

A projekt befejezése után hamar rájöttem, hogy sok 220 V -os hálózati vezetéket kell húznom az időzítőhöz. Kidolgoztam egy RF kapcsolatot szabványos 315 MHz -es modulok segítségével, amelyek lehetővé tették az időzítő elhelyezését egy szekrényben, és a relé táblákat a tetőn belül, közel a 220 V -os vezetékekhez.

A link 16 MHz -en futó AtMega328P -t használ. Az adó és a vevő szoftvere ugyanaz, és az üzemmódot egy mini jumper választja ki.

Adó

Az adó egyszerűen csatlakoztatva van a CPU I2C portjához. Nincs szükség további beállításokra, mivel az AtMega328P ugyanazokat az adatokat hallgatja, mint az I2C relé táblák.

Az adatok másodpercenként egyszer frissülnek az I2C porton, és az adó ezeket az információkat az RF linken keresztül küldi el. Ha az adó körülbelül 30 másodpercig nem kap I2C adatokat, az adó folyamatosan továbbítja az adatokat, hogy kikapcsolja a vevőegység összes reléjét.

A távadó modul tápellátása 12V és 5V között választható a PC -kártyán található mini jumperrel. A távadót 12V -ról táplálom.

Vevő

A vevő hallgatja az adó kódolt adatait, és az adatokat egy I2C portra helyezi. A relé kártya egyszerűen csatlakozik ehhez a porthoz, és ugyanúgy működik, mint a CPU kártyához.

Ha a vevő 30 másodpercig nem kap érvényes adatokat, a vevő folyamatosan küld adatokat az I2C porton, hogy kikapcsolja a relékártyák összes reléjét.

Vázlatok

Egy nap, ha van rá igény. Az Arduino vázlat minden szükséges információt tartalmaz az áramkör kapcsolási rajz nélküli felépítéséhez.

Hatótávolság

Az én telepítésemben az adó és a vevő körülbelül 10 méterre vannak egymástól. Az időzítő egy szekrényben van, a relé pedig a mennyezet tetején.

13. lépés: Végtermék

Végtermék
Végtermék
Végtermék
Végtermék
Végtermék
Végtermék

A főegységet egy régi projektdobozba helyezték. A következőket tartalmazza:

- 220V/12V transzformátor

- Tápegység

- CPU kártya

- LCD kijelzö

- Billentyűzet

- RF link adó

- További otthoni távirányító vevőegység, amely lehetővé teszi a lámpák be- és kikapcsolását a távirányítón keresztül

A reléegység a következőkből áll:

- 220V/12V transzformátor

- Tápegység

- RF Link vevő

- 2 x I2C relé tábla

Minden táblát azonos méretűre terveztek, így 3 mm -es távtartókkal könnyű egymásra halmozni őket.

Ajánlott: