ENSIKLOPEDIA ELEKTRONIK RADIO DAN KEJURUTERAAN ELEKTRIK Arduino. Operasi input-output analog, berfungsi dengan bunyi. Ensiklopedia elektronik radio dan kejuruteraan elektrik Ensiklopedia elektronik radio dan kejuruteraan elektrik / Pereka amatur radio Walaupun operasi input-output digital membolehkan menyelesaikan pelbagai masalah, kehadiran penukar analog-ke-digital (ADC) terbina dalam dalam mikropengawal papan Arduino dan keupayaan untuk mengeluarkan isyarat analog menggunakan modulasi lebar denyut ( PWM) memastikan berfungsi dengan penderia analog dan semua jenis penggerak, mempengaruhi objek mengikut kadar isyarat kawalan. Tegasnya, dalam mod output, semua talian port Arduino hanya boleh menghantar isyarat diskret yang hanya mempunyai dua keadaan. Tetapi mikropengawal mampu mengubah keadaan ini dengan cepat, menghasilkan denyutan segi empat tepat. Jika denyutan ini digunakan pada mana-mana peranti yang mempunyai sifat inersia, maka ia akan mula berkelakuan seolah-olah voltan yang dibekalkan kepadanya adalah malar, sama dengan nilai purata nadi, dan berubah dengan lancar, dan bukan dalam lompatan antara tinggi dan rendah. peringkat logik. Dalam mod PWM, port menjana isyarat nadi frekuensi malar dan kitaran tugas berubah (ini ialah nisbah tempoh pengulangan nadi kepada tempohnya). Selalunya, bukannya kitaran tugas, mereka beroperasi dengan nilai songsangnya - kitaran tugas, yang boleh diubah daripada 0 (tiada denyutan) kepada 100% (nadi mengikuti, bergabung, tanpa jeda). Oleh itu, walaupun pada bila-bila masa tertentu voltan keluaran sepadan dengan tahap logik tinggi atau rendah, nilai puratanya adalah berkadar dengan kitaran tugas. Jika anda menyambungkan multimeter biasa ke output ini, ia akan menunjukkan nilai ini (sudah tentu, jika frekuensi nadi cukup tinggi). Dalam Arduino UNO, output D3, D5, D6, D9, D10 dan D11 boleh beroperasi dalam mod PWM. Mereka biasanya ditandakan di papan tulis dengan tanda "~" atau singkatan "PWM". Perlu diingatkan bahawa papan Arduino pengubahsuaian lain mungkin mempunyai lebih kurang output sedemikian. Dalam kes paling mudah, PWM boleh digunakan untuk mengawal kecerahan LED. Peranti ini boleh dikatakan bebas inersia, tetapi penglihatan manusia mempunyai inersia yang mencukupi sehingga urutan kelipan LED pantas dianggap sebagai cahaya berterusan dengan kecerahan bergantung pada faktor isian. Output diskret yang mampu menjana PWM dikonfigurasikan untuk menggunakan mod ini secara lalai, jadi tidak perlu memanggil fungsi pinMode() untuk mengendalikannya dalam mod ini. Untuk menetapkan kitaran tugas isyarat PWM, terdapat fungsi standard analogWrite(N, M), di mana N ialah nombor pin, M ialah nombor yang berkadar dengan kitaran tugas yang diperlukan. Ia mesti terletak dalam julat dari 0 hingga 255, dengan 0 sepadan dengan kitaran tugas sifar (paras rendah malar pada output), 255 - 100% kitaran tugas (tahap tinggi malar pada output). Gambar rajah pemasaan voltan keluaran pada nilai tertentu M dan, dengan itu, kitaran tugas litar pintas ditunjukkan dalam Rajah. 1.
Sebagai contoh, pertimbangkan yang diberikan dalam jadual. 1 program yang secara beransur-ansur meningkatkan kecerahan LED yang disambungkan ke output digital D9, dan kemudian mengurangkannya secara beransur-ansur. Ia adalah berdasarkan contoh standard3.AnalogFading yang disertakan dengan IDE Arduino. Penghitungan nilai kitaran tugas nadi dilaksanakan di sini menggunakan pengendali gelung untuk yang telah dibincangkan dalam [1]. Jadual 1. Untuk menerima isyarat analog daripada peranti luaran dalam Arduino, input A0-A5 bertujuan, yang secara lalai ditetapkan kepada keadaan yang diperlukan untuk ini, jadi tiada permulaan tambahan diperlukan. ADC terbina dalam Arduino UNO menjana kod binari 10-bit dan menukar voltan input, yang terletak dalam julat dari 0 hingga +5 V, kepada integer dari 0 hingga 1023 (210-1). Untuk membaca hasil penukaran, gunakan fungsi analogRead(N), dengan N ialah nombor input analog. Anda boleh menyambungkan pelbagai penderia kepada input analog Arduino, voltan keluaran yang berkadar dengan nilai yang diukur (perintang pembolehubah, termistor, photoresistor, dll.). Walau bagaimanapun, perlu diingat bahawa hanya voltan dari 0 hingga +5 V boleh dibekalkan kepada input analog. Jika voltan keluaran sensor terletak dalam julat yang berbeza atau mempunyai kekutuban negatif, isyarat mesti diletakkan terlebih dahulu dalam lingkungan yang ditentukan. julat. Input analog ditinjau pada kadar kurang daripada 10 kHz [2], yang mungkin tidak mencukupi untuk menganalisis beberapa isyarat yang berubah dengan pantas. Kehadiran input analog membolehkan anda menukar Arduino menjadi voltmeter digital mudah yang mengukur voltan DC dari 0 hingga +5 V dan menghantar hasil pengukuran ke komputer. Untuk melakukan ini, hanya muatkan program yang diberikan dalam jadual ke dalam Arduino. 2. Jadual 2 Sila ambil perhatian bahawa dalam program rujukan voltan ADC Uref (dalam milivolt) dan faktor penukaran kod keluaran ADC kepada voltan Ku dinyatakan sebagai pemalar. Nilai pekali dikira dengan membahagikan voltan rujukan yang diberikan dengan 1023. Pekali biasanya pecahan, jadi pemalar Ki adalah jenis apungan (nombor titik terapung). Pemalar Uref mempunyai jenis yang sama untuk mengira pekali dengan betul. Oleh kerana bahagian kanan formula hanya mengandungi pemalar, pekali tidak dikira oleh mikropengawal semasa melaksanakan program, tetapi oleh pengkompil itu sendiri pada peringkat terjemahannya. Semua ini membolehkan anda meningkatkan ketepatan voltmeter dengan mengukur dengan multimeter nilai tepat voltan rujukan pada pin Uref papan Arduino dan menulisnya ke dalam program, memberikannya kepada pemalar Uref. Anda boleh membaca tentang cara lain untuk meningkatkan ketepatan penukaran analog-ke-digital dalam [3, 4]. Apabila program yang dimaksudkan sedang berjalan, LED TX pada papan berkelip, menunjukkan bahawa maklumat sedang dipindahkan melalui port bersiri. LED RX tidak menyala kerana komputer tidak menghantar apa-apa kembali. Terminal IDE Arduino terbina dalam memaparkan maklumat yang diterima (Rajah 2) - hasil pengukuran voltan bateri galvanik 3332.
Arduino boleh memberikan bukan sahaja cahaya, tetapi juga isyarat bunyi. Untuk melakukan ini, anda perlu menyambungkan pemancar bunyi piezo, contohnya ZP-1, ke salah satu outputnya (Rajah 3).
Untuk bekerja dengan bunyi, fungsi khas disediakan: nada(N, F, T), di mana N ialah nombor pin di mana denyutan segi empat tepat akan dijana; F - frekuensi bunyi, Hz; T - tempoh bunyi, ms. Parameter terakhir adalah pilihan. Jika tiada, bunyi akan berterusan. Untuk mematikannya, fungsi noTone(N) disediakan. Sudah tentu, pemancar bunyi piezoceramic hampir tidak boleh dipanggil peranti main balik berkualiti tinggi, dan isyarat yang dihasilkan oleh mikropengawal mempunyai bentuk segi empat tepat, bagaimanapun, penggunaan fungsi ini membolehkan anda memainkan melodi mudah. Satu contoh diberikan dalam jadual. 3. Ini adalah contoh program yang diubah suai sedikit 02.Digital oneMelody, termasuk dalam IDE Arduino. Memandangkan adalah menyusahkan untuk menetapkan kekerapan setiap nota melodi secara manual, fail pitches.h dilampirkan pada program dalam pengepalanya menggunakan arahan #include. Operasi ini bersamaan dengan memasukkan teks penuh fail ini dalam program. Dalam kes ini, ia mengandungi senarai nama nota yang boleh dimainkan dan frekuensinya. Jadual 3 Pemancar bunyi mesti disambungkan ke output D8. Untuk atur cara, melodi ialah jujukan pemalar daripada jenis yang sama (nilai frekuensi), yang digabungkan dengan mudah menjadi tatasusunan - senarai bernombor unsur-unsur jenis yang sama. Apabila mengisytiharkan tatasusunan, anda mesti menyenaraikan semua elemennya atau menunjukkan jumlah bilangannya. Sila ambil perhatian bahawa penomboran elemen tatasusunan sentiasa bermula dari sifar. Dalam contoh yang sedang dipertimbangkan, dua tatasusunan digunakan: melodi int[] mengandungi nama not melodi, Tempoh nota int[] - tempohnya dalam milisaat. Untuk merujuk kepada elemen tatasusunan, nyatakan namanya dengan nombor siri yang disertakan dalam kurungan segi empat sama. Untuk dapat menukar bilangan not dalam melodi dengan mudah, ia dikira menggunakan fungsi sizeof(V), yang mengembalikan bilangan bait yang diduduki oleh hujahnya (pembolehubah atau tatasusunan daripadanya) dalam memori mikropengawal. Dalam kes ini, tatasusunan melodi menduduki 16 bait, dan panjang elemen intnya ialah dua bait. Oleh itu, pembolehubah Nota menerima nilai 8 dan ini ialah berapa kali badan gelung for akan diulang, satu demi satu memainkan not. Jika anda menambah lebih daripada satu nota pada tatasusunan melodi[], nilai Nota akan berubah dengan sewajarnya. Anda hanya perlu ingat untuk menambah tatasusunan noteDurations[] dengan tempoh nota ini. Memandangkan melodi dilaksanakan sekali sahaja, semua operasi yang diperlukan diletakkan di dalam fungsi setup(). Untuk melaksanakan semula, anda perlu menetapkan semula mikropengawal kepada keadaan asalnya dengan menekan butang RESET yang terletak pada papan Arduino Program untuk Arduino yang dibincangkan dalam artikel boleh dimuat turun dari ftp://ftp.radio.ru/pub/2016/09/aninout.zip. Kesusasteraan
Pengarang: D. Lekomtsev Lihat artikel lain bahagian Pereka amatur radio. Baca dan tulis berguna komen pada artikel ini. Berita terkini sains dan teknologi, elektronik baharu: Kandungan alkohol bir hangat
07.05.2024 Faktor risiko utama untuk ketagihan perjudian
07.05.2024 Kebisingan lalu lintas melambatkan pertumbuhan anak ayam
06.05.2024
Berita menarik lain: ▪ Permainan sukan yang paling menarik ▪ Pemusnah elektrik masa depan ▪ Sisa-sisa plankton akan menceritakan tentang iklim purba Suapan berita sains dan teknologi, elektronik baharu
Bahan-bahan menarik Perpustakaan Teknikal Percuma: ▪ bahagian tapak untuk amatur radio permulaan. Pemilihan artikel ▪ Perkara Undang-undang sivil. Bahagian II. katil bayi ▪ artikel Bilakah lonceng angin pertama kali dibuat? Jawapan terperinci ▪ pasal Pemandu kren. Arahan standard mengenai perlindungan buruh ▪ artikel Surround Headphones. Ensiklopedia elektronik radio dan kejuruteraan elektrik
Tinggalkan komen anda pada artikel ini: Semua bahasa halaman ini Laman utama | Perpustakaan | artikel | Peta Laman | Ulasan laman web www.diagram.com.ua |