Obsah:

Časovače Arduino: 8 projektov: 10 krokov (s obrázkami)
Časovače Arduino: 8 projektov: 10 krokov (s obrázkami)

Video: Časovače Arduino: 8 projektov: 10 krokov (s obrázkami)

Video: Časovače Arduino: 8 projektov: 10 krokov (s obrázkami)
Video: Светодиодные прожекторы. Вскрываем, определяем тип драйвера и соединения, меняем светодиоды. 2024, November
Anonim
Časovače Arduino: 8 projektov
Časovače Arduino: 8 projektov

Arduino Uno alebo Nano môže generovať presné digitálne signály na šiestich vyhradených kolíkoch pomocou troch vstavaných časovačov. Na ich nastavenie je potrebných iba niekoľko príkazov a na spustenie nepoužívajú žiadne cykly CPU!

Používanie časovačov môže byť zastrašujúce, ak začnete z úplného datového listu ATMEGA328, ktorý má 90 stránok venovaných ich popisu! Niekoľko vstavaných príkazov Arduino už používa časovače, napríklad millis (), delay (), tone (), AnalogWrite () a servo knižnica. Ale aby ste využili ich plný výkon, budete ich musieť nastaviť prostredníctvom registrov. Zdieľam tu niekoľko makier a funkcií, aby to bolo jednoduchšie a transparentnejšie.

Po veľmi krátkom prehľade časovačov sledujte 8 skvelých projektov, ktoré sa spoliehajú na generovanie signálu pomocou časovačov.

Krok 1: Požadované komponenty

Požadované komponenty
Požadované komponenty

Na vykonanie všetkých 8 projektov budete potrebovať:

  • Arduino Uno alebo kompatibilné
  • Prototyp štítu s malým protoboardom
  • 6 prepojovacích káblov na chlieb
  • 6 krátkych prepojovacích mostíkov (vyrobte si z 10 cm pevného jadra)
  • 2 krokodílové vývody
  • 1 biela 5mm LED
  • odpor 220 ohmov
  • odpor 10 kOhm
  • potenciometer 10 kOhm
  • 2 keramické kondenzátory 1 mF
  • 1 elektrolytický kondenzátor 10 uF
  • 2 diódy, 1n4148 alebo podobné
  • 2 mikro servomotory SG90
  • 1 8Ohm reproduktor
  • 20 m tenkého (0,13 mm) smaltovaného drôtu

Krok 2: Prehľad časovačov Arduino na generovanie signálu

Timer0 a Timer2 sú 8-bitové časovače, čo znamená, že môžu počítať najviac 0 až 255. Časovač 1 je 16-bitový časovač, takže môže počítať až 65 535. Každý časovač má dva priradené výstupné kolíky: 6 a 5 pre časovač 0, 9 a 10 pre časovač 1, 11 a 3 pre časovač 2. Časovač sa zvyšuje v každom cykle hodín Arduino alebo rýchlosťou, ktorá je znížená o faktor predvoľby, ktorý je buď 8, 64, 256 alebo 1024 (32 a 128 sú tiež povolené pre časovač 2). Časovače počítajú od 0 do „TOP“a potom znova (rýchle PWM) alebo nadol (fázovo správne PWM). Hodnota „TOP“teda určuje frekvenciu. Výstupné piny je možné nastaviť, resetovať alebo preklopiť na hodnotu registra porovnávania výstupov, takže tieto určujú pracovný cyklus. Iba časový spínač 1 má schopnosť nezávisle nastaviť frekvenciu a pracovné cykly pre oba výstupné kolíky.

Krok 3: LED bliká

Image
Image
LED bliká
LED bliká
LED bliká
LED bliká

Najnižšia frekvencia, ktorú je možné dosiahnuť s 8-bitovými časovačmi, je 16 MHz/(511*1024) = 30, 6 Hz. Aby LED blikala s frekvenciou 1 Hz, potrebujeme časovač1, ktorý môže dosiahnuť frekvencie 256 -krát menšie, 0,12 Hz.

Pripojte LED diódu s jej anódou (dlhá noha) k pinu 9 a jej katódu s odporom 220 Ohm k zemi. Nahrajte kód. LED dióda bude blikať presne 1 Hz s pracovným cyklom 50%. Funkcia loop () je prázdna: časovač sa inicializuje pri nastavení () a nepotrebuje ďalšiu pozornosť.

Krok 4: LED stmievač

Image
Image
LED stmievač
LED stmievač
LED stmievač
LED stmievač

Pulzná šírková modulácia je účinný spôsob regulácie intenzity LED diódy. Pri správnom ovládači je to tiež preferovaný spôsob regulácie rýchlosti elektromotorov. Pretože je signál buď 100% zapnutý, alebo 100% vypnutý, na sériový odpor sa nemrhá energiou. V zásade je to ako blikanie LED diódy rýchlejšie, ako môže oko sledovať. 50 Hz je v zásade dostačujúcich, ale stále sa môže zdať, že trochu blikajú a keď sa LED alebo oči pohnú, môže dôjsť k nepríjemnému nesúvislému „chodníku“. Použitím prescale 64 s 8-bitovým časovačom dostaneme 16 MHz/(64*256) = 977 Hz, čo zodpovedá účelu. Vyberáme timer2, aby časovač1 zostal k dispozícii pre ďalšie funkcie, a nerušili sme funkciu Arduino time (), ktorá používa timer0.

V tomto prípade je pracovný cyklus, a teda aj intenzita, regulovaný potenciometrom. Druhú LED diódu je možné nezávisle ovládať rovnakým časovačom na kolíku 3.

Krok 5: prevodník digitálneho signálu na analógový (DAC)

Image
Image
Digitálne analógový prevodník (DAC)
Digitálne analógový prevodník (DAC)
Digitálne analógový prevodník (DAC)
Digitálne analógový prevodník (DAC)

Arduino nemá skutočný analógový výstup. Niektoré moduly používajú na reguláciu parametra (kontrast displeja, prah detekcie atď.) Analógové napätie. S jediným kondenzátorom a odporom je možné časovač 1 použiť na vytvorenie analógového napätia s rozlíšením 5 mV alebo lepším.

Nízkopriepustný filter môže „priemerovať“signál PWM na analógové napätie. Kondenzátor je pripojený cez odpor na pin PWM. Charakteristiky sú určené frekvenciou PWM a hodnotami odporu a kondenzátora. Rozlíšenie 8-bitových časovačov by bolo 5V/256 = 20mV, preto sme sa rozhodli pre Timer1, aby sme získali 10-bitové rozlíšenie. RC obvod je nízkopriepustný filter prvého rádu a bude mať určité zvlnenie. Na zníženie zvlnenia by časový rozsah RC obvodu mal byť oveľa väčší ako perióda signálu PWM. Obdobie, ktoré získame pre 10-bitovú presnosť, je 1024/16MHz = 64mus. Ak použijeme kondenzátor 1 uF a odpor 10 kOhm, RC = 10 ms. Zvlnenie medzi špičkami je najviac 5 V*0,5*T/(RC) = 16 mV, čo sa tu považuje za dostatočné.

Všimnite si toho, že tento DAC má veľmi vysokú výstupnú impedanciu (10 kOhm), takže napätie bude výrazne klesať, ak bude odoberať prúd. Aby sa tomu zabránilo, môže byť pufrovaný opampom alebo môže byť zvolená iná kombinácia R a C, napríklad 1 kOhm s 10 uF.

V tomto prípade je výstup DAC riadený potenciometrom. Druhý nezávislý kanál DAC je možné spustiť s časovačom 1 na kolíku 10.

Krok 6: Metronóm

Image
Image
Metronóm
Metronóm
Metronóm
Metronóm

Metronóm pomáha sledovať rytmus pri prehrávaní hudby. Pri veľmi krátkych impulzoch je možné výstup arduino časovača privádzať priamo do reproduktora, ktorý produkuje jasne počuteľné kliknutia. S potenciometrom je možné regulovať frekvenciu úderov od 40 do 208 úderov za minútu, v 39 krokoch. Časovač1 je potrebný na požadovanú presnosť. Hodnota ‘TOP’, ktorá určuje frekvenciu, je upravená vo funkcii loop () a to si vyžaduje pozornosť! Tu vidíte, že režim WGM sa líši od ostatných príkladov, ktoré majú pevnú frekvenciu: tento režim, s TOP nastaveným registrom OCR1A, má dvojité ukladanie do vyrovnávacej pamäte a chráni pred chýbajúcim TOP a dlhou chybou. To však znamená, že môžeme použiť iba 1 výstupný kolík.

Krok 7: Zvukové spektrum

Image
Image
Zvukové spektrum
Zvukové spektrum
Zvukové spektrum
Zvukové spektrum

Ľudia môžu počuť viac ako 3 rády zvukových frekvencií, od 20 Hz do 20 kHz. Tento príklad generuje celé spektrum pomocou potenciometra. Medzi reproduktor a Arduino je vložený 10 uF kondenzátor, ktorý blokuje jednosmerný prúd. Časovač 1 vytvára štvorcovú vlnu. Režim generovania priebehu je tu PWM s korektnou fázou. V tomto režime počitadlo začne odpočítavať, keď dosiahne vrchol, čo má za následok impulzy, ktoré majú svoj pevný priemer, aj keď sa pracovný cyklus líši. Výsledkom je však aj obdobie (takmer) dvojnásobné a jednoducho sa stane, že s predvoľbou 8 časový spínač 1 pokryje celé počuteľné spektrum bez toho, aby bolo potrebné predzmenku meniť. Tiež tu, pretože hodnota TOP sa mení na cestách, používanie OCR1A ako hornej časti znižuje chyby.

Krok 8: Servomotory

Image
Image
Servomotory
Servomotory
Servomotory
Servomotory

Existujú výkonné servo knižnice, ale ak máte na pohon iba dve servá, môžete to urobiť aj priamo pomocou časovača1, a tým obmedziť využitie procesora, pamäte a vyhnúť sa prerušeniam. Populárne servo SG90 má signál 50 Hz a dĺžka impulzu kóduje polohu. Ideálne pre časovač 1. Frekvencia je pevná, takže oba výstupy na pine 9 a pine 10 je možné použiť na nezávislé riadenie serv.

Krok 9: Zdvojnásobovač napätia a menič

Zdvojnásobovač napätia a menič
Zdvojnásobovač napätia a menič
Zdvojnásobovač napätia a menič
Zdvojnásobovač napätia a menič
Zdvojnásobovač napätia a menič
Zdvojnásobovač napätia a menič

Niekedy váš projekt vyžaduje napätie vyššie ako 5 V alebo záporné napätie. Môže to byť spustenie MOSFETu, spustenie piezoelektrického prvku, napájanie operačného zosilňovača alebo reset EEPROM. Ak je odber prúdu dostatočne malý, až ~ 5 mA, môže byť nabíjacie čerpadlo najjednoduchším riešením: iba 2 diódy a dva kondenzátory pripojené k impulznému signálu z časovača umožňujú zdvojnásobiť arduino 5 V na 10 V. V praxi existujú 2 diódové kvapky, takže v praxi to bude viac ako 8,6 V pre zdvojovač alebo -3,6 V pre menič.

Frekvencia štvorcovej vlny by mala byť dostatočná na čerpanie dostatočného náboja cez diódy. Kondenzátor 1 mF sa pohybuje o 5 mC pri zmene napätia medzi 0 a 5 V, takže pre prúd 10 mA musí byť frekvencia najmenej 2 kHz. V praxi je lepšia vyššia frekvencia, pretože znižuje zvlnenie. S časovačom2, ktorý počíta od 0 do 255 bez predvoľby, funguje frekvencia 62,5 kHz.

Krok 10: Bezdrôtový prenos energie

Image
Image
Bezdrôtový prenos energie
Bezdrôtový prenos energie
Bezdrôtový prenos energie
Bezdrôtový prenos energie

Nabíjanie inteligentných hodiniek bez káblov nie je neobvyklé, ale to isté môže byť jednoducho súčasťou projektu Arduino. Cievka s vysokofrekvenčným signálom môže prenášať energiu na inú blízku cievku indukciou bez elektrického kontaktu.

Najprv pripravte cievky. Na výrobu 2 zvitkov som použil papierový kotúč s priemerom 8,5 cm a smaltovaný drôt s priemerom 0,13 mm: primárny s 20 závitmi, sekundárny s 50 závitmi. Samoindukčnosť tohto typu cievky s N vinutím a polomerom R je ~ 5 mH * N^2 * R. Takže pre N = 20 a R = 0,0425 dáva L = 85 mH, čo bolo potvrdené testerom súčiastok. Produkujeme signál s frekvenciou 516 kHz, čo má za následok impedanciu 2pi*f*L = 275Ohm. To je dostatočne vysoké, aby sa Arduino neprepínalo.

Aby bola cievka čo najefektívnejšia, chceli by sme použiť skutočný zdroj striedavého prúdu. Existuje trik, ktorý je možné vykonať: dva výstupy časovača je možné spustiť v opačnej fáze, obrátením jedného z výstupov. Aby sme to ešte viac podobali sínusovej vlne, používame fázovo správny PWM. Týmto spôsobom sa medzi kolíkom 9 a 10 strieda napätie medzi 0 V, pin 9 +5 V, obe 0 V, pin 10 +5 V. Účinok je znázornený na obrázku zo stopy rozsahu (s prednastavením 1024 tento ďalekohľad nemá veľkú šírku pásma).

Pripojte primárnu cievku k pinom 9 a 10. Pripojte LED k sekundárnej cievke. Keď sa sekundárna cievka priblíži k primárnej, cievka LED sa rozsvieti jasne.

Odporúča: