Časovač pro ovládání nastavení expozice UV. Jednoduchý časovač na PIC16F628A

Jedná se o obvod jednoduchého časovače postaveného na mikrokontroléru PIC16F628A a indikátoru LCD 1602. Myšlenka časovače je převzata z portugalského webu s elektronikou.

Mikrokontrolér PIC16F628A v tomto obvodu je taktován z interního oscilátoru, který je dostatečně přesný pro tento případ, ale protože kolíky 15 a 16 zůstávají neobsazené, mohl by být pro větší přesnost použit externí krystalový rezonátor.

Časovač na PIC16F628A. Popis práce

Jak již bylo zmíněno dříve, tento projekt byl vytvořen na základě existujícího projektu, ale ve skutečnosti jsou obě schémata navzájem odlišná, a proto byl kód téměř úplně přepsán. Časovač má tři tlačítka pro ovládání: „START / STOP“, „MIN“ a „SEC“

  1. „START / STOP“ - pro spuštění a pozastavení časovače.
  2. „MIN“ - pro nastavení minut. Počet minut je nastaven od 0 do 99 a poté vše začíná znovu od 0.
  3. „SEC“ - pro nastavení sekund. Druhá je také nastavena od 0 do 59 a pak znovu od 0.

Současné stisknutí „MIN“ a „SEC“ vynuluje časovač během provozu.

Když časovač dosáhne 00:00, a zvukový signál (3 krátká a 1 dlouhá pípnutí) a rozsvítí se LED HL1. Jako emitor zvuku se používá elektromagnetický bzučák. Poté, když je stisknuto jedno z tlačítek, je časovač resetován a LED HL1 zhasne.

Když časovač odpočítává na kolíku 13 (RB7) je vysoká úroveň, a když se časovač zastaví, objeví se nízká logická úroveň. Tento pin lze použít k ovládání externích výkonných zařízení. časovač je napájen ze stabilizovaného zdroje.

Propojka J1 se používá ke kalibraci časovače. Když je zavřený, časovač přejde do režimu nastavení. Pomocí tlačítek „MIN“ a „SEC“ můžete zvýšit / snížit hodnotu interního parametru, což vám umožní zpomalit nebo zrychlit časovač. Tato hodnota je uložena v EEPROM. Pokud v tomto režimu stisknete tlačítko START / STOP, tento parametr se resetuje na výchozí hodnotu.

Kód je psán a kompilován pomocí mikroC PRO pro PIC.

Parametry projektu:

  • Generátor: INTOSC
  • Frekvence generátoru: 4 MHz
  • Časovač hlídacího psa: deaktivováno
  • Časovač zapnutí: součástí dodávky
  • RA5 / MCLR / VPP: Zakázáno
  • Brown-out: povoleno

Fotografie dokončeného časovače.

Tento článek publikoval diagram časovače odpočítávání 59 minut 59 sekund. Časový obvod je sestaven na mikroobvodu Atmega8. Tento článek představuje dvě možnosti, desku plošných spojů v balíčku DIP28 a desku plošných spojů v balíčku mikrokontroléru TQFP32. Obvody jsou stejné, liší se pouze v případě mikroobvodu, vyberte a sestavte libovolné tištěný spoj.

Také bych chtěl poznamenat, že deska s plošnými spoji je vyložena pro displej 0802 na řadiči HD44780. Můžete nainstalovat displej 1602, stačí pro něj předělat desku plošných spojů nebo jej připojit k nástěnnému držáku (běžící vpřed, existuje firmware pro 0802 a 1602).

Časovač má čtyři nezávislá a konfigurovatelná nastavení času, která lze použít pro různé situace bez neustálého nastavování času.

Tento časovač lze použít k odhalení fotorezistu a pájecí masky. Pokud vám rozsah časovače 59 minut 59 sekund vyhovuje, můžete tento časovač bezpečně použít pro některé další vaše potřeby.

Časový obvod

Deska s časovačem

Deska s plošnými spoji pro odpočítávání v balíčku DIP28.

Horní strana.

Spodní strana.

Deska plošných spojů s odpočítáváním v balíčku TQFP32.

Horní strana.

Spodní strana.

Algoritmus pro práci s časovačem

1. Po blikání mikrokontroléru, aby se požadované časové hodnoty zaznamenávaly do paměti, stiskněte tlačítko na kodéru na vypnutém zařízení a zapněte napájení. Poté, co se na displeji zobrazí „ OK!", uvolněte tlačítko kodéru a časovač je připraven k práci.

2. Chcete-li nastavit čas, vyberte požadované nastavení otočením enkodéru dlouze stiskněte tlačítko enkodéru. Na displeji poté začnou blikat sekundy. Otáčením kodéru nastavte požadovaný počet sekund.

Chcete-li ukončit nastavení času, stiskněte dlouze tlačítko kodéru a počkejte na zprávu „ OK!", uvolněte tlačítko. Čas v tomto nastavení lze považovat za nastavený. Totéž uděláme se zbývajícími třemi nastaveními času.

3. Časovač se spouští krátkým stisknutím tlačítka enkodéru, zpráva „ Časovač!„, to znamená, že časovač je připraven odpočítávat, druhé krátké stisknutí spustí odpočítávání a na displeji se zobrazí“

Časovač lze zastavit během odpočítávání, proto musíte krátce stisknout tlačítko kodéru, časovač se zastaví a na displeji se zobrazí " Časovač P"(zátěž se vypne) a LED bude blikat, aby se pokračovalo v počítání, znovu krátce stiskněte tlačítko enkodéru a odpočítávání bude pokračovat (zátěž se zapne).

Můžete také zrušit odpočítávání. Chcete-li to provést, během odpočítávání nebo během pauzy dlouze stiskněte tlačítko kodéru, na displeji se zobrazí „ Konec!"a zátěž bude odpojena. Po uvolnění tlačítka přejde časovač do hlavní nabídky.

4. Na konci odpočítávání se na obrazovce zobrazí „ Konec!", LED bude blikat a vydávat bzučák a zátěž bude odpojena. Chcete-li vypnout boozer a přejít do hlavní nabídky, musíte krátce nebo dlouho stisknout tlačítko enkodéru (na tom nezáleží).

Také jsem chtěl přidat, nápisy se mohou lišit v závislosti na vybraném firmwaru, ale podstata nastavení a používání časovače se nemění.

Provoz časovače

Video časovače pro vystavení fotorezistu a pájecí masky.

Toto video ukazuje algoritmus pro provoz a načasování tohoto časovacího obvodu. Obvod je sestaven prkénko na prkénko pro demonstraci.

Další video z činnosti tohoto časovacího obvodu pro expozici s připojenou zátěží.

Rád bych poznamenal, že se jedná o první verzi časovače a není v ní žádný buser, takže na konci odpočítávání není slyšet žádný signál.

Přečtěte si články na původním webu, nepodporujte zloděje.

Fotografie odpočítávacího časovače

Dám několik fotografií sestavené desky časovače pro expozici. Toto je první verze bez boozeru, nedávejte jí prosím pozor.

Stáhněte si schéma časovače

Firmware je k dispozici v několika verzích pro displeje 0802 a 1602. S písmeny latinky a cyrilice existují také firmwares s obráceným otáčením kodéru. Pokud to pro vás není vhodné otočit nějakým směrem, zvolte reverzní nebo výchozí firmware.

Závěr

Po několika revizích byl na desku přidán buser, který signalizuje konec odpočítávání (můžete zkontrolovat, jak to píská v proteusu, a pokud ho nepotřebujete, jednoduše jej nepájíte do obvodu) a objevil se další výstup Zvyk... Po uplynutí doby odpočítávání se na port PC4 nastaví logická jednotka a drží se tam, dokud nestisknete tlačítko na kodéru, které vypne buser a přenese obvod do hlavní nabídky.

Pro usnadnění je pin PC4 směrován do samostatného konektoru na desce časovače XT2. Jak použít tento signál nebo jej nepoužívat pro některé ze svých potřeb, rozhodněte se sami, hlavní je, že tam je, nepotřebujete ho - to je další otázka.

Objeví se otázky, zeptejte se jich v komentářích, nespouštějte na internetu při hledání odpovědi, alespoň to není respekt k autorovi.

Toto končí, všechny stejné odpočítávání.

Tento projekt je časová UV UV pásová lampa. Rozsah časovače je od 1 do 9999 sekund (~ 2,8 hodiny). Jak ukázala praxe, pro vystavení fotorezistu stačí 90–120 sekund.

Pro projekt budete potřebovat:

Některé poznámky:

  1. Mějte na paměti, že k fungování je nutný indikátor konkrétní model: kem-5461ar. Pokud pro tento model není indikátor, budete muset předefinovat čísla v kódu, jak to udělat, viz "Analýza kódu"
  2. Je také lepší brát ne příliš vysoké elektrolyty, protože je lze „umístit“ na desku, jak vidíte na fotografii níže.
  3. Mikrokontrolér je sešitý po odpájení všech komponentů na desku, k tomu jsou k dispozici kontakty: MISO, SCK, MOSI
Princip činnosti:

Napájení "lampa" 12V. Veškerá pracovní logika je svázána s atmega8a MK. Napájení mikrokontroléru a indikátoru 3,3 V se dodává přes regulátor napětí 3,3 V AMS1117.
Pomocí kodéru se nastaví doba expozice, poté stisknutím spodního tlačítka se spustí proces osvětlení, zatímco ovládání pomocí kodéru je deaktivováno. Jakmile čas vyprší, osvětlení se zastaví. Horní tlačítka jsou resetována. Resetování se provádí jednoduše sepnutím resetovacího kontaktu na zem.

Vývojový proces:

Lepíme pásku do fotorámečku:

Shromáždil jsem prototyp založený na atmega8515 a všechna tlačítka byla zpracována externími přerušeními, ale s přechodem na nižší model jsem musel jedno přerušení opustit, protože atmega8 má 2 proti 3 pro 8515.

Kontrola prototypu na běžné kazetě:

S vývojovým procesem je vše standardní: leptáme desku, vrtáme díry, pájíme komponenty z SMD na obrazovku a kodér. Navíc jsme do kodéru vložili chorusové kondenzátory 104 (100 nF), abychom zabránili odskakování kontaktů při spuštění tlačítek.

Analýza kódu:

Projekt lze stáhnout z github. Projekt je napsán v jazyce C pomocí CVAVR.
Pokud tedy požadovaný indikátor nebyl nalezen, musíte změnit hodnoty v tomto poli:

// Číslice pro nepodepsaná čísla znaků kem-5461ar \u003d (//PB7...PB0 // FBGCDpDEA 0b11010111, // 0 0b01010000, // 1 0b01100111, // 2 0b01110101, // 3 0b11110000, // 4 0b10110101, / / 5 0b10110111, // 6 0b01010001, // 7 0b11110111, // 8 0b11110101, // 9 0b00100000 // -);

Zadané pole je maska \u200b\u200bpro port B. Jak můžete vidět z komentáře ke kódu, zde jsou bity umístěny od pinu 7 portu B k pinu 0 portu B (//PB7...PB0). Také v komentáři je uvedeno, který pin, který segment svítí (// FBGCDpDEA): 7-F, 6-B atd. Segment se zapne působením 5V na nohu. Příklad „0“ ukazuje, že segmenty G a Dp (bod) jsou vypnuté. Port B je konfigurován jako výstup:

// Inicializace portu B DDRB \u003d (1<

Za přepínání číslic jsou zodpovědné bity 0-3 portu C. Porty konfigurujeme následovně:

// Inicializace portu C DDRC \u003d (0<

Vytvořte masku pro povolení vybíjení:

// číslice. unsigned char digit \u003d (0b11111101, // 1 číslice zleva. 0b11111011, // 2 číslice zleva. 0b11110111, // 3 číslice zleva. 0b11111110 // 4 číslice zleva.);

Nyní, chcete-li na indikátoru zobrazit všechna 4 čísla, stačí poslat každý cyklus na port C jeden z prvků číselného pole, například: PORTC \u003d číslice ;, kde krok je bit, který je třeba rozsvítit, a na port B poslat prvek požadovaného prvku číselného pole: PORTB \u003d čísla, kde digitByNumbers je číslo od 0 do 10 - číslice, 11 - pomlčka.

Mikrokontrolér atmega8a má schopnost zvládnout dvě externí přerušení. Chcete-li to provést, musíte se připojit k nohám PD2, PD3. Pro práci s kodérem se používají externí přerušení. Na PD2 je připojen pin kodéru, který je zodpovědný za rotaci. Když je toto přerušení spuštěno, kodér byl otočen. Chcete-li zjistit, kterým směrem byl kodér natočen, přečtěte hodnotu z jiného kontaktu. vysoká nebo nízká úroveň na tomto kontaktu udává směr otáčení:

// Externí přerušení 0 servisní rutina přerušení void ext_int0_isr (void) (// Přečíst hodnoty portu D4 a pokud je úroveň vysoká, // odečíst jednu, pokud je nízká, přidat jednu. If (PIND.4) (if (digitByNumbers< 9) { digitByNumbers++; } } else { if(digitByNumbers > 0) (digitByNumbers--;)))

Druhé přerušení je zodpovědné za tlačítko na kodéru a pohybuje číslicemi, což vám umožňuje nastavit 4místná čísla. Proměnná digitNumber je v tomto případě číslo číslice:

// Externí přerušení 1 servisní rutina přerušení void ext_int1_isr (void) (if (digitNumber \u003d\u003d 0) (digitNumber \u003d 3;) else (digitNumber--;))

Poslední věcí je povolit externí přerušení a povolit jim #asm ("sei"). Umožňujeme přerušení nastavením následujících hodnot v registrech GICR, MCUCR, GIFR:

// Inicializace externího přerušení // INT0: zapnuto // INT0 režim: vzestupná hrana // INT1: zapnuto // INT1 režim: sestupná hrana GICR | \u003d (1<

Nakonec přerušení časovače. Časovač se spustí, když stisknete tlačítko Start. Protože ke zpracování tlačítka start nestačila vnější přerušení, neustále kontrolujeme hladinu na noze mikrokontroléru a pokud se změní, zapněte časovač.

Funkce displeje tohoto zařízení spočívá v tom, že samostatný posuvný registr ( 74HC4094) pro každý sedmisegmentový indikátor. Sériový výstup z prvního registru lze připojit ke vstupu druhého atd. K vyplnění všech indikátorů je třeba zaslat speciální kombinaci sériových dat.

Výhodou tohoto přístupu je, že nemusíte neustále aktualizovat segmenty, ve skutečnosti stačí vyplnit údaje v registrech a je to. To vede k tomu, že displej začne svítit jasněji, eliminuje se efekt blikání a uvolní se zdroje mikrokontroléru, které mohou být k dispozici pro další, důležitější práci. Kromě toho jsou k ovládání tohoto displeje zapotřebí pouze tři datové řádky, což je velmi užitečné, pokud nemáme dostatek I / O portů. Nevýhodou tohoto přístupu je, že segmenty čerpají více proudu než v multiplexovaném režimu. Na schématu také vidíte piezo bzučák, stabilizátor napětí (220V -\u003e 5V) a relé.

Segmenty jsou spojeny chaoticky, a to proto, že PCB je snadnější oddělit tímto způsobem. Segmenty můžete spojit, jak chcete, ale odpovídajícím způsobem je třeba upravit „tabulku segmentů“ ve zdrojovém kódu.

Ovládání zařízení:
- Dvě tlačítka se používají k nastavení času odpočítávání v krocích po 10 sekundách;
- Třetí tlačítko (start / stop) pro spuštění a zastavení;
- Když odpočítávání skončí, časovač vypne zátěž a zapne zvukový signál;
- První dvě tlačítka jsou během procedury odpočítávání deaktivována;
- Poslední nastavený čas se uloží do EEPROM. EEPROM uloží nastavení po vypnutí a po zapnutí časovač zobrazí dříve uložený čas;
- Mikrokontrolér přejde do režimu spánku po dvou minutách nečinnosti a spotřeba proudu se sníží na méně než 5 mA;
- Stisknutím tlačítka start / stop se probudí.

Nastavení pojistkových bitů mikrokontroléru

Archiv k článku "Časovač pro vystavení fotorezistu na Attiny2313"
Popis: Zdrojový kód (Bascom), soubor firmwaru mikrokontroléru, projekt Proteus, PCB Eagle
Velikost souboru: 298,48 KB Počet stažení: 1 068

Toto zařízení se zrodilo „rychle“ po několika zničených polohách desek plošných spojů s fotorezistem. Zařízení je velmi jednoduché - je to časovač, který vám umožní zapnout ultrafialové lampy na dobu od 5 sekund do 9 minut 55 sekund (moje typická doba expozice se čtyřmi lampami Vito 8W je jedna a půl minuty). S maskou jsem zatím neexperimentoval, ale doufám, že to bude mít dost času.
Provoz časovače začíná stisknutím tlačítka SET (vstup do režimu nastavení). Poté pomocí tlačítek +/- nastavte požadovaný čas. Pokud po dobu 5 sekund nestisknete nic, zařízení to interpretuje jako konec vstupu a uloží nastavený čas do energeticky nezávislé paměti. Odpovídající značka se zobrazí na obrazovce. Poté zařízení přejde do pohotovostního režimu a zobrazí nastavený čas ve formátu „minutes.seconds“.
Stisknutím tlačítka START se aktivuje relé a rozsvítí se světla. Odpočítávání začíná. Proces lze sledovat na obrazovce. Na konci nastaveného časového období časovač automaticky vypne lampy a na obrazovce zobrazí pomlčky - znamení úspěšného dokončení cyklu. Z tohoto stavu je odstraněn stisknutím libovolného tlačítka.
V archivu připojuji desku a firmware pro řadič. Indikátor je obyčejný, LED se společnou katodou. Deska spotřebovává v pohotovostním režimu asi 15 mA, když je relé zapnuto, asi 60 mA (v závislosti na použitém relé).
K napájení lamp můžete použít standardní tlumivky se startéry, ale použil jsem desky z úsporných lamp s nízkou spotřebou. I když je nákup nových „pomocníků v domácnosti“ levnější než nákup tlumivek. Ano, a zabírají méně místa a ke spuštění lamp dochází téměř okamžitě.
Tělo bylo vyrobeno ze zbytků nábytkové dřevotřísky, uvnitř jako reflektor jsem použil běžnou potravinářskou fólii. Jako držáky na lampy jsem použil držáky na plastové trubky. Deska elektroniky je napájena transformátorem s nízkým výkonem (z čínského rádia).

Vypadá to takto:

Sestavené zařízení vypadá velmi jednoduše:

A jak vlastně lampy vypadají uvnitř:

Deska řadiče a firmware:

Firmware s nastavením časovače na 5 sekund.