Isi kandungan:

Pemasa Arduino: 8 Projek: 10 Langkah (dengan Gambar)
Pemasa Arduino: 8 Projek: 10 Langkah (dengan Gambar)

Video: Pemasa Arduino: 8 Projek: 10 Langkah (dengan Gambar)

Video: Pemasa Arduino: 8 Projek: 10 Langkah (dengan Gambar)
Video: Tonton Sampai Habis !!! Belajar Arduino Di Jamin Bisa 2024, Jun
Anonim
Pemasa Arduino: 8 Projek
Pemasa Arduino: 8 Projek

Arduino Uno atau Nano dapat menghasilkan isyarat digital yang tepat pada enam pin khusus dengan menggunakan tiga pemasa terbina dalam. Mereka hanya memerlukan beberapa perintah untuk mengatur dan tidak menggunakan siklus CPU untuk dijalankan!

Menggunakan pemasa boleh menakutkan jika anda memulakan dari lembaran data penuh ATMEGA328, yang mempunyai 90 halaman khusus untuk penerangannya! Beberapa arahan Arduino terbina dalam sudah menggunakan pemasa, misalnya milis (), tunda (), nada (), AnalogWrite () dan pustaka servo. Tetapi untuk menggunakan kuasa sepenuhnya, anda perlu menyiapkannya melalui daftar. Saya berkongsi di sini beberapa makro dan fungsi untuk menjadikannya lebih mudah dan telus.

Selepas gambaran keseluruhan pemasa yang sangat singkat, ikuti 8 projek hebat yang bergantung pada penjanaan isyarat dengan pemasa.

Langkah 1: Komponen yang Diperlukan

Komponen yang Diperlukan
Komponen yang Diperlukan

Untuk membuat semua 8 projek, anda memerlukan:

  • Arduino Uno atau serasi
  • Perisai prototaip dengan protoboard mini
  • 6 kabel pelompat papan roti
  • 6 jumper papan roti pendek (buat diri anda dari wayar penyambung teras 10cm)
  • 2 plumbum buaya
  • 1 LED putih 5mm
  • perintang 220 Ohm
  • perintang 10kOhm
  • potensiometer 10kOhm
  • 2 kapasitor 1muF seramik
  • 1 kapasitor 10muF elektrolitik
  • 2 diod, 1n4148 atau yang serupa
  • 2 motor servo mikro SG90
  • 1 8Ohm pembesar suara
  • 20m wayar enamel nipis (0.13mm)

Langkah 2: Gambaran keseluruhan Pemasa Arduino untuk Penjanaan Isyarat

Timer0 dan timer2 adalah pemasa 8-bit, yang bermaksud bahawa mereka boleh mengira dari 0 hingga 255 paling banyak. Timer1 adalah pemasa 16-bit, sehingga dapat menghitung hingga 65535. Setiap pemasa mempunyai dua pin output yang berkaitan: 6 dan 5 untuk pemasa0, 9 dan 10 untuk pemasa1, 11 dan 3 untuk pemasa2. Pemasa akan bertambah pada setiap pusingan jam Arduino, atau pada kadar yang dikurangkan oleh faktor preskala, yaitu 8, 64, 256 atau 1024 (32 dan 128 juga dibenarkan untuk pemasa2). Pemasa dikira dari 0 hingga ‘TOP’ dan kemudian berulang lagi (PWM pantas) atau ke bawah (PWM betul fasa). Oleh itu, nilai ‘TOP’ menentukan frekuensi. Pin output dapat mengatur, menetapkan semula, atau membalik pada nilai Daftar Perbandingan Hasil, sehingga mereka menentukan kitaran tugas. Hanya pemasa1 yang dapat mengatur frekuensi dan kitaran tugas untuk kedua-dua pin output secara bebas.

Langkah 3: LED Berkelip

Image
Image
LED Berkelip
LED Berkelip
LED Berkelip
LED Berkelip

Frekuensi terendah yang dapat dicapai dengan pemasa 8-bit adalah 16MHz / (511 * 1024) = 30, 6Hz. Oleh itu, untuk membuat LED berkelip dengan 1Hz, kita memerlukan pemasa1, yang dapat mencapai frekuensi 256 kali lebih kecil, 0.12 Hz.

Sambungkan LED dengan anodnya (kaki panjang) ke pin9 dan sambungkan katodnya dengan perintang 220 Ohm ke tanah. Muat naik kod. LED akan berkelip tepat pada 1Hz dengan kitaran tugas 50%. Fungsi loop () kosong: pemasa diinisialisasi pada setup () dan tidak memerlukan perhatian lebih lanjut.

Langkah 4: Dimmer LED

Image
Image
Dimmer LED
Dimmer LED
Dimmer LED
Dimmer LED

Modulasi lebar nadi adalah kaedah yang berkesan untuk mengatur intensiti LED. Dengan pemacu yang betul, ini juga merupakan kaedah pilihan untuk mengatur kelajuan elektromotor. Oleh kerana isyaratnya disala 100% atau 100% mati, tidak ada daya yang disia-siakan pada rintangan siri. Pada dasarnya, seperti memancarkan LED lebih cepat daripada yang dapat diikuti oleh mata. Prinsipnya 50Hz mencukupi, tetapi ia mungkin kelihatan sedikit berkelip dan ketika LED atau mata bergerak, 'jejak' yang tidak berterusan yang menjengkelkan mungkin berlaku. Menggunakan prescale 64 dengan pemasa 8-bit, kita memperoleh 16MHz / (64 * 256) = 977Hz, yang sesuai dengan tujuannya. Kami memilih timer2, supaya timer1 tetap tersedia untuk fungsi lain, dan kami tidak mengganggu fungsi Arduino time (), yang menggunakan timer0.

Dalam contoh ini kitaran tugas, dan dengan demikian intensitasnya, diatur oleh potensiometer. LED kedua boleh diatur secara bebas dengan pemasa yang sama pada pin 3.

Langkah 5: Digital-to-Analog Converter (DAC)

Image
Image
Penukar Digital ke Analog (DAC)
Penukar Digital ke Analog (DAC)
Penukar Digital ke Analog (DAC)
Penukar Digital ke Analog (DAC)

Arduino tidak mempunyai output analog yang sebenar. Beberapa modul mengambil voltan analog untuk mengatur parameter (kontras paparan, ambang pengesanan dll). Dengan hanya satu kapasitor dan perintang, pemasa1 dapat digunakan untuk membuat voltan analog dengan resolusi 5mV atau lebih baik.

Penapis lulus rendah dapat 'rata-rata' memberi isyarat PWM ke voltan analog. Kapasitor disambungkan melalui perintang ke pin PWM. Ciri-ciri ditentukan oleh frekuensi PWM dan nilai perintang dan kapasitor. Resolusi pemasa 8-bit adalah 5V / 256 = 20mV, jadi kami memilih Timer1 untuk mendapatkan resolusi 10-bit. Litar RC adalah penapis lorong rendah pesanan pertama dan ia akan mempunyai sedikit riak. Skala masa litar RC harus jauh lebih besar daripada jangka masa isyarat PWM untuk mengurangkan riak. Tempoh yang kita dapat untuk ketepatan 10-bit adalah 1024 / 16MHz = 64mus. Sekiranya kita menggunakan kapasitor 1muF dan perintang 10kOhm, RC = 10ms. Riak puncak ke puncak paling banyak 5V * 0.5 * T / (RC) = 16mV, yang dianggap mencukupi di sini.

Perhatikan bahawa DAC ini mempunyai impedans keluaran yang sangat tinggi (10kOhm), jadi voltan akan turun dengan ketara jika menarik arus. Untuk mengelakkannya, ia dapat disangga dengan opamp, atau kombinasi R dan C lain dapat dipilih, misalnya 1kOhm dengan 10muF.

Dalam contohnya, output DAC dikemudikan dengan potensiometer. Saluran DAC bebas kedua boleh dijalankan dengan pemasa1 pada pin 10.

Langkah 6: Metronome

Image
Image
Metronome
Metronome
Metronome
Metronome

Metronom membantu untuk mengikuti rentak ketika bermain muzik. Untuk denyutan yang sangat pendek, output pemasa arduino dapat diberikan terus ke pembesar suara, yang akan menghasilkan klik yang dapat didengar dengan jelas. Dengan potensiometer, frekuensi rentak dapat diatur dari 40 hingga 208 denyut seminit, dalam 39 langkah. Pemasa1 diperlukan untuk ketepatan yang diperlukan. Nilai ‘TOP’, yang menentukan frekuensi, diubah dalam fungsi gelung (), dan yang memerlukan perhatian! Anda lihat di sini bahawa mod WGM berbeza dengan contoh lain yang mempunyai frekuensi tetap: mod ini, dengan TOP yang ditetapkan oleh daftar OCR1A, mempunyai buffering berganda dan melindungi daripada TOP yang hilang dan mendapat gangguan yang panjang. Namun, ini bermakna kita hanya boleh menggunakan 1 pin output.

Langkah 7: Spektrum Bunyi

Image
Image
Spektrum Bunyi
Spektrum Bunyi
Spektrum Bunyi
Spektrum Bunyi

Manusia dapat mendengar lebih dari 3 pesanan magnitud frekuensi suara, dari 20Hz hingga 20kHz Contoh ini menghasilkan spektrum penuh dengan potensiometer. Kapasitor 10muF diletakkan di antara pembesar suara dan Arduino untuk menyekat arus DC. Pemasa1 menghasilkan gelombang persegi. Mod penjanaan gelombang di sini adalah PWM yang betul-betul fasa. Dalam mod itu, penghitung mula mengira ke belakang ketika mencapai puncak, yang menghasilkan denyutan yang rata-rata tetap, bahkan ketika kitaran tugas berbeza. Walau bagaimanapun, ia juga menghasilkan periode yang (hampir) dua kali lipat, dan kebetulan bahawa dengan prescale 8, timer1 merangkumi spektrum penuh yang dapat didengar, tanpa perlu mengubah prescale. Juga di sini, kerana nilai TOP sedang diubah dalam perjalanan, menggunakan OCR1A sebagai top mengurangkan gangguan.

Langkah 8: Motor Servo

Image
Image
Servo Motors
Servo Motors
Servo Motors
Servo Motors

Terdapat perpustakaan servo yang kuat, tetapi jika anda hanya mempunyai dua servo untuk memandu, anda juga boleh melakukannya secara langsung dengan pemasa1, dan dengan itu mengurangkan CPU, penggunaan memori, dan mengelakkan gangguan. Servo SG90 yang popular mengambil isyarat 50Hz, dan panjang nadi mengekod kedudukannya. Sesuai untuk pemasa1. Frekuensi tetap, jadi kedua output pada pin9 dan pin 10 dapat digunakan untuk mengarahkan servo secara bebas.

Langkah 9: Pengganda Voltan dan Penyongsang

Pengganda Voltan dan Penyongsang
Pengganda Voltan dan Penyongsang
Pengganda Voltan dan Penyongsang
Pengganda Voltan dan Penyongsang
Pengganda Voltan dan Penyongsang
Pengganda Voltan dan Penyongsang

Kadang kala projek anda memerlukan voltan yang lebih tinggi daripada 5V atau voltan negatif. Ini mungkin untuk menjalankan MOSFET, menjalankan elemen piezo, untuk mengaktifkan opamp, atau menetapkan semula EEPROM. Sekiranya undian semasa cukup kecil, hingga ~ 5mA, pam pengecas mungkin merupakan penyelesaian termudah: hanya 2 dioda dan dua kapasitor yang disambungkan ke isyarat berdenyut dari pemasa yang memungkinkan untuk menggandakan arduino 5V hingga 10V. Dalam praktiknya, terdapat 2 penurunan diod, jadi lebih seperti 8.6V dalam praktik untuk penggandaan, atau -3.6V untuk penyongsang.

Kekerapan gelombang persegi harus mencukupi untuk mengepam muatan yang cukup melalui dioda. Kapasitor 1muF menggerakkan perubahan 5muC apabila voltan berubah antara 0 dan 5V, jadi untuk arus 10mA, frekuensi mestilah sekurang-kurangnya 2kHz. Dalam praktiknya, frekuensi yang lebih tinggi lebih baik, kerana mengurangkan riak. Dengan pengiraan timer2 dari 0 hingga 255 tanpa preskala, frekuensi adalah 62.5kHz, yang berfungsi dengan baik.

Langkah 10: Pemindahan Kuasa Tanpa Wayar

Image
Image
Pemindahan Kuasa Tanpa Wayar
Pemindahan Kuasa Tanpa Wayar
Pemindahan Kuasa Tanpa Wayar
Pemindahan Kuasa Tanpa Wayar

Adalah tidak biasa untuk mengecas jam tangan pintar tanpa kabel, tetapi yang sama dengan mudah boleh menjadi sebahagian daripada projek Arduino. Gegelung dengan isyarat frekuensi tinggi dapat memindahkan kuasa ke gegelung berdekatan yang lain melalui aruhan, tanpa hubungan elektrik.

Sediakan gegelung terlebih dahulu. Saya menggunakan gulungan kertas berdiameter 8.5cm dan dawai enamel berdiameter 0.13mm untuk membuat 2 gegelung: primer dengan 20 putaran, sekunder dengan 50 putaran. Induktansi diri gegelung jenis ini dengan belitan N dan jejari R ialah ~ 5muH * N ^ 2 * R. Jadi untuk N = 20 dan R = 0.0425 memberikan L = 85muH, yang disahkan dengan komponen penguji. Kami menghasilkan isyarat dengan frekuensi 516kHz, menghasilkan impedansi 2pi * f * L = 275Ohm. Ini cukup tinggi sehingga Arduino tidak mengalami arus berlebihan.

Untuk menjalankan gegelung dengan paling berkesan, kami ingin menggunakan sumber AC yang sebenar. Ada muslihat yang dapat dilakukan: dua output pemasa dapat dijalankan dalam fasa yang berlawanan, dengan membalikkan salah satu output. Untuk menjadikannya lebih mirip dengan gelombang sinus, kami menggunakan PWM Phase-correct. Dengan cara ini, antara pin 9 dan 10, voltan bergantian antara kedua 0V, pin 9 + 5V, kedua-dua 0V, pin 10 + 5V. Kesannya ditunjukkan dalam gambar dari jejak skop (dengan preskala 1024, skop mainan ini tidak mempunyai lebar jalur yang banyak).

Sambungkan gegelung utama ke pin 9 dan 10. Sambungkan LED ke gegelung sekunder. Apabila gegelung sekunder didekatkan ke primer, LED menyala dengan terang.

Disyorkan: