- Pracovní vysvětlení:
- Součásti:
- Programování:
- Návrh obvodů a desek plošných spojů pomocí EasyEDA:
- Výpočet a objednání vzorků PCB online:
V tomto projektu použijeme mikrokontrolér PIC pro dálkové ovládání několika zátěží střídavým proudem pouze pomocí IR dálkového ovladače. Podobný projekt IR dálkově ovládané domácí automatizace již byl proveden také s Arduino, ale zde jsme jej navrhli na PCB pomocí online designéra a simulátoru EasyEDA PCB a využili své služby navrhování PCB k objednání desek PCB, jak je znázorněno v následující části článek.
Na konci tohoto projektu budete moci přepínat (ZAPNUTO / VYPNUTO) jakoukoli zátěž střídavým proudem pomocí běžného dálkového ovladače z pohodlí vaší židle / postele. Aby byl tento projekt zajímavější, povolili jsme také funkci pro ovládání rychlosti ventilátoru pomocí Triaku. To vše lze provést jednoduchým kliknutím na IR ovladači. Pro tento projekt můžete použít kterýkoli z vašich dálkových ovladačů TV / DVD / MP3. Různé infračervené signály z dálkového ovladače jsou přijímány mikrokontrolérem, který poté ovládá příslušná relé prostřednictvím obvodu budiče relé. Tato relé se používají k připojení a odpojení AC zátěží (světla / ventilátor).
Pracovní vysvětlení:
Fungování tohoto projektu je poměrně snadné pochopit. Po stisknutí tlačítka na IR dálkovém ovladači odešle sekvenci kódu ve formě kódovaných pulzů s modulační frekvencí 38 kHz. Tyto impulsy jsou přijímány snímačem TSOP1738 a poté čteny řadičem. Kontrolér poté dekóduje přijatý sled pulzů na hexadecimální hodnotu a porovná ji s předdefinovanými hexadecimálními hodnotami v našem programu.
Pokud dojde k jakékoli shodě, pak regulátor provede relativní operaci spuštěním příslušného relé / triaku a odpovídající výsledek je také indikován LED na palubě. Zde v tomto projektu jsme použili 4 žárovky (malé žárovky) různých barev jako světelné zátěže a další žárovka (větší žárovka) je pro účely demonstrace považována za ventilátor.
Zvolili jsme klávesu 1 pro přepnutí relé1, 2 pro přepnutí relé2, 3 pro přepnutí relé3, 4 pro přepnutí relé4 a Vol + pro zvýšení rychlosti ventilátoru a Vol- pro snížení rychlosti ventilátoru.
Poznámka: Zde jsme místo ventilátoru použili 100wattovou žárovku.
Existuje mnoho typů infračervených dálkových ovladačů dostupných pro různá zařízení, ale většina z nich pracuje s frekvencí 38 kHz. Zde v tomto projektu ovládáme domácí spotřebiče pomocí dálkového ovladače IR TV a pro detekci IR signálů používáme IR přijímač TSOP1738. Tento snímač TSOP1738 dokáže snímat frekvenční signál 38 kHz. Fungování IR dálkového ovladače a TSOP1738 je podrobně popsáno v tomto článku: IR vysílač a přijímač
Náš mikrokontrolér PIC pracuje při + 5 V a relé pracují při + 12V, proto používáme transformátor ke snížení napětí 220 V stř. A jeho nápravu pomocí úplného můstkového usměrňovače. Toto usměrněné stejnosměrné napětí je poté regulováno na + 12V a + 5V pomocí integrovaných obvodů regulátoru 7812, respektive 7805.
Ke spuštění relé používáme tranzistory jako BC547, které mohou fungovat jako elektronický spínač pro zapnutí / vypnutí relé na základě signálu z mikrokontroléru PIC. Dále k ovládání rychlosti ventilátoru používáme TRIAC. TRIAC je výkonový polovodič, který je schopen řídit výstupní napětí; tato funkce se používá k řízení rychlosti ventilátoru.
Také jsme použili Triac Driver k ovládání Triaku pomocí našeho mikrokontroléru PIC. Tento ovladač se používá k poskytování pulzu úhlu střelby Triaku, takže lze řídit výstupní výkon. Zde jsme použili 6 úrovní řízení rychlosti. Pokud je úroveň 0, ventilátor se vypne. Když bude úroveň 1, pak rychlost bude 1/5 plné rychlosti. Když bude úroveň 2, pak bude rychlost 2/5 plné rychlosti, respektive pro ostatní. Aktuální úroveň rychlosti lze sledovat pomocí palubního 7segmentového displeje.
Blokové schéma projektu je uvedeno níže.
Součásti:
Níže jsou uvedeny komponenty potřebné k sestavení tohoto projektu:
- Mikrokontrolér PIC18f2520 -1
- TSOP1738 -1
- Dálkové ovládání IR TV / DVD -1
- Tranzistor BC547 -4
- Relé 12 voltů -4
- Žárovka s držákem -5
- Připojovací vodiče -
- EasyEda PCB -1
- 16x2 LCD
- Napájení 12v
- Svorkovnice 2 piny `-8
- Konektor svorkovnice 3 piny -1
- Transformátor 12-0-12 -1 -
- Regulátor napětí 7805 -1
- Regulátor napětí 7812-1
- Kondenzátor 1000uf -1
- Kondenzátor 10uf -1
- Kondenzátor 0,1uf -1
- Kondenzátor 0,01uf 400V `-1
- 10k -5
- 1k -5
- 100ohm -7
- Společný katodový segment -1
- Dioda 1n4007 -10
- BT136 triak -1
- Záhlaví muž / žena -
- LED diody -6
- Optočlen Moc3021 -1
- Optočlen MTC2E nebo 4N35 -1
- 20MHz krystal -1
- 33pf kondenzátor -2
- 5,1 V zenerova dioda -1
- 47 ohm 2 wattový rezistor -1
Všechny tyto komponenty se běžně používají a lze je snadno zakoupit. Pokud však hledáte nejlepší nákup online, doporučujeme vám LCSC.
LCSC je skvělý online obchod, kde můžete nakupovat elektronické komponenty pro všechny druhy projektů. Obsahují asi 25 000 druhů komponent a nejlepší je, že prodávají i malé množství zboží pro malé projekty a mají také globální přepravu.
Dekódování IR dálkového ovladače:
Jak již bylo řečeno, pro svůj projekt můžete použít jakýkoli dálkový ovladač. Musíme ale vědět, pro jaký druh signálu je generován z konkrétního dálkového ovladače. Pro každý jednotlivý klíč na dálkovém ovladači bude ekvivalentní hodnota HEX pro tento klíč. Pomocí této hodnoty HEX můžeme rozlišit mezi každým klíčem na straně našeho mikrokontroléru. Než se tedy rozhodneme použít dálkový ovladač, měli bychom znát hodnotu HEX pro klíče přednastavené v tomto konkrétním dálkovém ovladači. V tomto projektu jsme použili dálkový ovladač NEC. Hodnoty HEX pro klíče na dálkovém ovladači NEC jsou uvedeny níže.
Jak si můžete všimnout, hodnota HEX má 7 znaků, z nichž se liší pouze poslední dvě, a proto můžeme rozlišovat mezi každou klávesou pouze poslední dvě číslice.
Kruhový diagram:
Schéma projektu je uvedeno níže.
Výše uvedené schéma bylo usnadněno pomocí editoru schémat esayEDA, protože poskytuje rozvržení všech komponent použitých v tomto projektu. Rovněž nevyžaduje instalaci a lze jej použít online na cestách.
Pinouts a hodnoty komponent jsou jasně specifikovány ve výše uvedeném schématu. Schematický soubor si můžete také stáhnout zde.
Programování:
Program pro tento projekt se provádí pomocí MPLABX, kód je také velmi jednoduchý a snadno srozumitelný. Celý kód bude uveden na konci tohoto kurzu, dále je vysvětleno několik důležitých částí programu.
Na začátku kódu bychom měli zahrnout požadované knihovny, definovat piny a deklarovat proměnné.
#zahrnout
Poté jsme vytvořili jednoduchou funkci zpoždění pomocí smyčky „pro“.
void delay (int time) {for (int i = 0; i
Poté jsme inicializovali časovač pomocí následující funkce
void timer () // 10 -> 1us {T0PS0 = 0; T0PS1 = 0; T0PS2 = 0; PSA = 0; // Zdroj časovače je z Prescaler T0CS = 0; // Prescaler získá hodiny z FCPU (5MHz) T08BIT = 0; // 16 BITOVÝ REŽIM TMR0IE = 1; // Povolit TIMER0 Přerušení PEIE = 1; // Povolit periferní přerušení GIE = 1; // Globálně povolit INT TMR0ON = 1; // Nyní spusťte časovač! }
Nyní v hlavní funkci jsme dali směr k vybraným pinům a inicializovali časovač a externí přerušení int0 pro detekci překročení nuly.
ADCON1 = 0b00001111; TRISB1 = 0; TRISB2 = 1; TRISB3 = 0; TRISB4 = 0; TRISB5 = 0; TRISC = 0x00; TRISA = 0x00; PORTA = 0xc0; TRISB6 = 0; RB6 = 1; relé1 = 0; relé2 = 0; relé3 = 0; relé4 = 0; rly1LED = 0; rly3LED = 0; rly2LED = 0; rly4LED = 0; fanLED = 0; i = 0; ir = 0; tric = 0; časovač (); INTEDG0 = 0; // Přerušení na sestupné hraně INT0IE = 1; // Povolit externí přerušení INT0 (RB0) INT0IF = 0; // Vymaže INT0 externí bit příznaku přerušení PEIE = 1; // Povolit periferní přerušení GIE = 1; // Povolit INTs globálně
Nyní zde nepoužíváme žádný režim přerušení nebo snímání a porovnání k detekci infračerveného signálu. Zde jsme právě použili digitální pin ke čtení dat, stejně jako jsme četli tlačítko. Kdykoli signál klesne nebo klesne, jednoduše použijeme metodu odskakování a spustíme časovač. Kdykoli pin změní svůj stav na jiný, časové hodnoty se uloží do pole.
IR vzdálené odesílání logiky 0 jako 562,5us a logiky 1 jako 2250us. Kdykoli časovač čte kolem 562,5us, předpokládáme to 0 a když časovač čte kolem 2250us, předpokládáme to jako 1. Pak to převedeme na hex.
Příchozí signál z dálkového ovladače obsahuje 34 bitů. Uložíme všechny bajty do pole a poté dekódujeme poslední bajt, který se má použít.
while (ir == 1); INT0IE = 0; while (ir == 0); TMR0 = 0; while (ir == 1); i ++; dat = TMR0; if (dat> 5000 && dat <12000) {} else {i = 0; INT0IE = 1; } if (i> = 33) {GIE = 0; zpoždění (50); cmd = 0; for (j = 26; j <34; j ++) {if (dat> 1000 && dat <2000) cmd << = 1; else if (dat> 3500 && dat <4500) {cmd- = 0x01; cmd << = 1; }} cmd >> = 1;
Výše uvedená část kódu přijímá a dekóduje IR signál pomocí časových přerušení a ukládá odpovídající hodnotu HEX do proměnné cmd. Nyní můžeme porovnat tuto hodnotu HEX (proměnná cmd) s našimi předdefinovanými hodnotami HEX a přepnout relé, jak je znázorněno níže
if (cmd == 0xAF) {relé1 = ~ relé1; rly1LED = ~ rly1LED; } else if (cmd == 0x27) {relé2 = ~ relé2; rly2LED = ~ rly2LED; } else if (cmd == 0x07) {relé3 = ~ relé3; rly3LED = ~ rly3LED; } else if (cmd == 0xCF) {relé4 = ~ relé4; rly4LED = ~ rly4LED; } else if (cmd == 0x5f) {speed ++; if (rychlost> 5) {rychlost = 5; }} else if (cmd == 0x9f) {rychlost--; if (rychlost <= 0) {rychlost = 0; }}
Nyní, abychom věděli, na kterém místě náš ventilátor aktuálně pracuje, měli bychom použít 7segmentový displej. Následující řádky slouží k instrukci pinů 7segmentového displeje.
if (speed == 5) // vypnuto 5x2 = 10ms triger // rychlost 0 {PORTA = 0xC0; // zobrazení 0 RB6 = 1; fanLED = 0; } else if (speed == 4) // 8 ms trigger // speed 1 {PORTA = 0xfc; // zobrazení 1 RB6 = 1; fanLED = 1; } else if (speed == 3) // 6 ms trigger // speed 2 {PORTA = 0xE4; // zobrazení 2 RB6 = 0; fanLED = 1; } else if (speed == 2) // 4ms trigger // speed 3 {PORTA = 0xF0; // zobrazení 3 RB6 = 0; fanLED = 1; } else if (speed == 1) // 2ms trigger // speed 4 {PORTA = 0xD9; // zobrazení 4 RB6 = 0; fanLED = 1; } else if (speed == 0) // 0ms trigger // speed 5 full power {PORTA = 0xD2; // zobrazení 5 RB6 = 0; fanLED = 1; }
Níže uvedená funkce slouží k externímu přerušení a časovému přetečení. Tato funkce je zodpovědná za detekci přechodu nuly a řízení triaku.
void interrupt isr () {if (INT0IF) {delay (speed); tric = 1; pro (int t = 0; t <100; t ++); tric = 0; INT0IF = 0; } if (TMR0IF) // Zkontrolujte, zda se jedná o TMR0 Přetečení ISR {TMR0IF = 0; }}
Konečná deska plošných spojů pro tuto IR dálkově ovládanou domácí automatizaci vypadá takto:
Návrh obvodů a desek plošných spojů pomocí EasyEDA:
K návrhu této domácí automatizace dálkového ovládání jsme použili EasyEDA, což je bezplatný online nástroj EDA pro bezproblémové vytváření obvodů a desek plošných spojů. Dříve jsme si objednali několik desek plošných spojů od společnosti EasyEDA a stále využíváme jejich služeb, protože jsme našli celý proces, od kreslení obvodů až po objednání desek plošných spojů, pohodlnější a efektivnější ve srovnání s jinými výrobci desek plošných spojů. EasyEDA nabízí kreslení obvodů, simulace, návrh desek plošných spojů zdarma a také nabízí vysoce kvalitní, ale nízkou cenu přizpůsobené služby PCB. Zde si přečtěte kompletní výukový program Jak používat Easy EDA pro vytváření schémat, rozložení desek plošných spojů, simulace obvodů atd.
EasyEDA se každým dnem zlepšuje; přidali mnoho nových funkcí a vylepšili celkový uživatelský komfort, což usnadňuje a umožňuje EasyEDA návrh obvodů. Brzy se chystají spustit jeho verzi pro stolní počítače, kterou lze stáhnout a nainstalovat do počítače pro offline použití.
V aplikaci EasyEDA můžete své návrhy obvodů a desek plošných spojů zveřejnit, aby je mohli ostatní uživatelé kopírovat nebo upravovat a využívat tak výhody. U této automatizace dálkového ovládání pro domácnost jsme také zveřejnili celé naše rozvržení obvodů a desek plošných spojů .
Níže je snímek horní vrstvy rozložení PCB od EasyEDA, můžete zobrazit libovolnou vrstvu (horní, dolní, horní, spodní, spodní atd.) Desky plošných spojů výběrem vrstvy z okna „Vrstvy“.
Výpočet a objednání vzorků PCB online:
Po dokončení návrhu desky plošných spojů můžete kliknout na ikonu Fabrication output , která vás přenese na stránku objednávky desky plošných spojů. Zde si můžete prohlédnout svoji PCB v Gerber Vieweru nebo stáhnout soubory Gerber z vaší PCB a poslat je libovolnému výrobci, je také mnohem jednodušší (a levnější) objednat si ji přímo v EasyEDA. Zde můžete vybrat počet desek plošných spojů, které chcete objednat, kolik měděných vrstev potřebujete, tloušťku desky plošných spojů, hmotnost mědi a dokonce i barvu desky plošných spojů. Poté, co vyberete všechny možnosti, klikněte na „Uložit do košíku“ a dokončete objednávku. Poté během několika dní obdržíte desky plošných spojů.
Tuto desku plošných spojů si můžete přímo objednat nebo stáhnout soubor Gerber pomocí tohoto odkazu.
Po několika dnech objednání desek plošných spojů jsme dostali desky plošných spojů. Tabule, které jsme obdrželi, jsou zobrazeny níže.
Jakmile jsme obdrželi desky plošných spojů, namontoval jsem všechny požadované komponenty přes desku plošných spojů a konečně máme připravenou naši IR dálkově ovládanou domácí automatizaci, zkontrolujte tento obvod fungující v ukázkovém videu na konci článku.