Sadržaj:

Arduino mjerači vremena: 8 projekata: 10 koraka (sa slikama)
Arduino mjerači vremena: 8 projekata: 10 koraka (sa slikama)

Video: Arduino mjerači vremena: 8 projekata: 10 koraka (sa slikama)

Video: Arduino mjerači vremena: 8 projekata: 10 koraka (sa slikama)
Video: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, Lipanj
Anonim
Arduino mjerači vremena: 8 projekata
Arduino mjerači vremena: 8 projekata

Arduino Uno ili Nano mogu generirati točne digitalne signale na šest namjenskih pinova pomoću tri ugrađena mjerača vremena. Za postavljanje im je potrebno samo nekoliko naredbi, a za pokretanje ne koriste cikluse CPU -a!

Korištenje mjerača vremena može biti zastrašujuće ako krenete od potpune podatkovne tablice ATMEGA328, koja ima 90 stranica posvećenih njihovom opisu! Nekoliko ugrađenih Arduino naredbi već koriste mjerače vremena, na primjer millis (), delay (), tone (), AnalogWrite () i servo biblioteku. No da biste iskoristili njihovu punu snagu, morat ćete ih postaviti kroz registre. Ovdje dijelim neke makroe i funkcije kako bi ovo bilo lakše i transparentnije.

Nakon vrlo kratkog pregleda mjerača vremena, slijedite 8 cool projekata koji se oslanjaju na generiranje signala pomoću mjerača vremena.

Korak 1: Potrebne komponente

Potrebne komponente
Potrebne komponente

Za izradu svih 8 projekata trebat će vam:

  • Arduino Uno ili kompatibilan
  • Prototip štita s mini protoborom
  • 6 kratkospojnih kabela za matičnu ploču
  • 6 kratkih kratkospojnika za matičnu ploču (napravite sami od priključne žice od punog jezgra 10 cm)
  • 2 krokodilska odvoda
  • 1 bijela LED dioda od 5 mm
  • otpornik od 220 ohma
  • otpornik od 10 kOhm
  • potenciometar od 10 kOhm
  • 2 keramička kondenzatora od 1 muF
  • 1 elektrolitički kondenzator od 10 muF
  • 2 diode, 1n4148 ili slično
  • 2 mikro servo motora SG90
  • 1 8Ohm zvučnik
  • 20 m tanke (0,13 mm) emajlirane žice

Korak 2: Pregled Arduino mjerača vremena za generiranje signala

Timer0 i timer2 su 8-bitni mjerači vremena, što znači da mogu brojati najviše od 0 do 255. Timer1 je 16-bitni mjerač vremena, pa može brojati do 65535. Svaki mjerač vremena ima dva povezana izlazna pina: 6 i 5 za timer0, 9 i 10 za timer1, 11 i 3 za timer2. Odbrojavanje se povećava pri svakom ciklusu Arduino sata ili po stopi koja se smanjuje za faktor predskale, koji je ili 8, 64, 256 ili 1024 (32 i 128 su također dopušteni za timer2). Mjerači vremena broje od 0 do 'TOP', a zatim ponovno (brzi PWM) ili prema dolje (fazno ispravni PWM). Vrijednost 'TOP' tako određuje frekvenciju. Izlazni pinovi mogu postaviti, resetirati ili okrenuti vrijednost registra usporedbe izlaza, tako da oni određuju radni ciklus. Samo timer1 ima mogućnost neovisnog postavljanja frekvencije i ciklusa rada za oba izlazna pina.

Korak 3: LED treptanje

Image
Image
LED treptanje
LED treptanje
LED treptanje
LED treptanje

Najniža frekvencija koja se može postići pomoću 8-bitnih mjerača vremena je 16MHz/(511*1024) = 30, 6Hz. Dakle, kako bi LED dioda trepnula s 1Hz, potreban nam je timer1, koji može dosegnuti frekvencije 256 puta manje, 0,12 Hz.

Spojite LED s anodom (dugačka noga) na pin9 i spojite njegovu katodu s otpornikom od 220 Ohma na masu. Učitajte kôd. LED dioda će treperiti na točno 1Hz s radnim ciklusom od 50%. Funkcija loop () je prazna: mjerač vremena se inicijalizira pri setup () i ne zahtijeva dodatnu pažnju.

Korak 4: LED prigušivač

Image
Image
LED prigušivač
LED prigušivač
LED prigušivač
LED prigušivač

Impulsna širina modulacije učinkovit je način za regulaciju intenziteta LED diode. S odgovarajućim upravljačkim programom također je poželjna metoda za regulaciju brzine elektromotora. Budući da je signal 100% uključen ili 100% isključen, ne troši se snaga na serijski otpor. U osnovi, to je kao da LED treperi brže nego što oko može pratiti. 50Hz je u načelu dovoljno, ali ipak se može činiti da malo treperi, a kad se LED ili oči pomaknu, može doći do dosadnog, neprekidnog "traga". Koristeći predznak od 64 s 8-bitnim timerom, dobivamo 16MHz/(64*256) = 977Hz, što odgovara svrsi. Odabiremo timer2, tako da timer1 ostaje dostupan za ostale funkcije i ne ometamo funkciju Arduino time () koja koristi timer0.

U ovom primjeru radni ciklus, a time i intenzitet, regulira se potenciometrom. Druga LED dioda može se neovisno regulirati istim timerom na pinu 3.

Korak 5: Digitalno-analogni pretvarač (DAC)

Image
Image
Digitalno-analogni pretvarač (DAC)
Digitalno-analogni pretvarač (DAC)
Digitalno-analogni pretvarač (DAC)
Digitalno-analogni pretvarač (DAC)

Arduino nema pravi analogni izlaz. Neki moduli uzimaju analogni napon za regulaciju parametra (kontrast zaslona, prag otkrivanja itd.). Sa samo jednim kondenzatorom i otpornikom, timer1 se može koristiti za stvaranje analognog napona s razlučivošću od 5mV ili boljom.

Niskopropusni filtar može 'prosječiti' PWM signal do analognog napona. Kondenzator je spojen preko otpornika na PWM pin. Karakteristike su određene PWM frekvencijom i vrijednostima otpornika i kondenzatora. Rezolucija 8-bitnih mjerača vremena bila bi 5V/256 = 20mV, pa se odlučujemo da Timer1 dobije 10-bitnu rezoluciju. RC krug je niskopropusni filter prvog reda i imat će neke valove. Vremenska skala RC kruga trebala bi biti mnogo veća od razdoblja PWM signala kako bi se smanjila valovitost. Razdoblje koje dobivamo za 10-bitnu preciznost je 1024/16MHz = 64mus. Koristimo li 1muF kondenzator i 10kOhm otpornik, RC = 10ms. Vrhunac talasa je najviše 5V*0,5*T/(RC) = 16mV, što se ovdje smatra dovoljnim.

Imajte na umu da ovaj DAC ima vrlo visoku izlaznu impedanciju (10 kOhm), pa će napon značajno pasti ako privuče struju. Da bi se to izbjeglo, može se međuspremnik opampati ili se može izabrati druga kombinacija R i C, na primjer 1 kOhm s 10 muF.

U primjeru se DAC izlazom upravlja potenciometrom. Drugi nezavisni DAC kanal može se pokrenuti pomoću timera1 na pinu 10.

Korak 6: Metronom

Image
Image
Metronom
Metronom
Metronom
Metronom

Metronom pomaže u praćenju ritma tijekom sviranja glazbe. Za vrlo kratke impulse, izlaz arduino timera može se poslati izravno na zvučnik, što će proizvesti jasno čujne klikove. Potenciometrom se frekvencija otkucaja može regulirati od 40 do 208 otkucaja u minuti, u 39 koraka. Tajmer1 je potreban za potrebnu preciznost. Vrijednost 'TOP', koja određuje frekvenciju, mijenja se unutar funkcije loop (), a to zahtijeva pažnju! Ovdje vidite da se WGM način rada razlikuje od ostalih primjera koji imaju fiksnu frekvenciju: ovaj način rada, s TOP postavljenim registom OCR1A, ima dvostruko međuspremljenje i štiti od nedostajanja TOP -a i dugog zastoja. Međutim, to znači da možemo koristiti samo 1 izlazni pin.

Korak 7: Zvučni spektar

Image
Image
Zvučni spektar
Zvučni spektar
Zvučni spektar
Zvučni spektar

Ljudi mogu čuti više od 3 reda veličina zvučnih frekvencija, od 20Hz do 20kHz Ovaj primjer generira cijeli spektar pomoću potenciometra. Između zvučnika i Arduina postavljen je kondenzator od 10 μF za blokiranje istosmjerne struje. Tajmer 1 proizvodi kvadratni val. Način generiranja valnog oblika ovdje je PWM s ispravnom fazom. U tom načinu rada brojač počinje brojati unatrag kada dosegne vrh, što rezultira impulsima koji imaju srednju vrijednost fiksiranu, čak i kad se radni ciklus razlikuje. Međutim, to također rezultira razdobljem koje je (gotovo) dvostruko, a događa se i da s predskalom 8 timer1 pokriva cijeli zvučni spektar, bez potrebe za promjenom predskale. Također ovdje, budući da se vrijednost TOP-a mijenja u pokretu, korištenje OCR1A kao vrha smanjuje greške.

Korak 8: Servo motori

Image
Image
Servo motori
Servo motori
Servo motori
Servo motori

Postoje moćne servo knjižnice, ali ako imate samo dva serva za pogon, mogli biste to učiniti i izravno s timer1, i tako smanjiti CPU, korištenje memorije i izbjeći prekide. Popularni SG90 servo prima signal od 50Hz, a duljina impulsa kodira položaj. Idealno za mjerač vremena 1. Učestalost je fiksna pa se oba izlaza na pin9 i pin 10 mogu koristiti za neovisno upravljanje servo pogonima.

Korak 9: Dvostruki napon i pretvarač

Dvostruki napon i pretvarač
Dvostruki napon i pretvarač
Dvostruki napon i pretvarač
Dvostruki napon i pretvarač
Dvostruki napon i pretvarač
Dvostruki napon i pretvarač

Ponekad vaš projekt zahtijeva napon veći od 5 V ili negativni napon. Možda će se pokrenuti MOSFET, pokrenuti piezo element, napajati opamp ili resetirati EEPROM. Ako je struja dovoljno mala, do ~ 5mA, pumpa za punjenje mogla bi biti najjednostavnije rješenje: samo 2 diode i dva kondenzatora spojena na impulsni signal iz mjerača vremena omogućuju udvostručenje arduino 5V na 10V. U praksi postoje 2 diodne kapi, pa će to više biti 8,6 V u praksi za udvostručivač, ili -3,6 V za pretvarač.

Učestalost kvadratnog vala trebala bi biti dovoljna da ispumpa dovoljno naboja kroz diode. Kondenzator od 1 muF pomiče 5muC promjene kad se napon promijeni između 0 i 5V, pa za struju od 10mA frekvencija mora biti najmanje 2kHz. U praksi je bolja veća frekvencija jer smanjuje valovitost. S timer2 koji broji od 0 do 255 bez predmjera, frekvencija je 62,5 kHz, što dobro radi.

Korak 10: Bežični prijenos energije

Image
Image
Bežični prijenos energije
Bežični prijenos energije
Bežični prijenos energije
Bežični prijenos energije

Nije neuobičajeno puniti pametni sat bez kabela, ali isti lako može biti dio Arduino projekta. Zavojnica s visokofrekventnim signalom može prenositi snagu na drugu obližnju zavojnicu indukcijom, bez električnog kontakta.

Prvo pripremite zavojnice. Koristio sam papirnatu rolu promjera 8,5 cm i emajliranu žicu promjera 0,13 mm za izradu 2 zavojnice: primarna s 20 zavoja, sekundarna s 50 zavoja. Samoinduktivnost ove vrste zavojnice s N namota i radijusom R je ~ 5muH * N^2 * R. Dakle, za N = 20 i R = 0,0425 daje L = 85muH, što je potvrđeno ispitivačem komponenti. Proizvodimo signal s frekvencijom od 516 kHz, što rezultira impedancijom od 2pi*f*L = 275Ohm. To je dovoljno visoko da Arduino ne prelazi u struju.

Za najučinkovitiji rad zavojnice željeli bismo koristiti pravi izvor izmjenične struje. Postoji trik koji se može učiniti: dva izlaza mjerača vremena mogu se pokrenuti u suprotnoj fazi, obrnuvši jedan od izlaza. Kako bismo bili još sličniji sinusnom valu, koristimo PWM s korekcijom faze. Na ovaj način, između pina 9 i 10, napon se izmjenjuje između 0V, pina 9 +5V, oba 0V, pina 10 +5V. Učinak je prikazan na slici iz traga opsega (s predskalom 1024, ovaj opseg igračaka nema veliku propusnost).

Spojite primarnu zavojnicu na pinove 9 i 10. Spojite LED na sekundarnu zavojnicu. Kad se sekundarna zavojnica približi primarnoj, LED svijetli jako.

Preporučeni: