Daftar Isi:
- Langkah 1: Interrupt Handler
- Langkah 2: Tetapkan Interval Waktu Berkala
- Langkah 3: Inisialisasi Interupsi
- Langkah 4: Tempat Menambahkan Kode Anda
Video: Arduino - Interupsi Berkala: 4 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Instruksi ini adalah tentang menggunakan interupsi periodik untuk pengaturan waktu dalam program Arduino. Ini adalah langkah untuk programmer Arduino pemula yang tahu bahwa Arduino dapat melakukan lebih banyak, tetapi tidak cukup tahu bagaimana mewujudkannya.
Jika ada masalah kinerja, saya berasumsi bahwa Anda menggunakan satu atau lebih fungsi delay(). Triknya adalah dengan menyingkirkan fungsi delay() dan menggantinya dengan interupsi. Fungsi delay() memaksa Arduino untuk tidak melakukan apa-apa sambil menunggu delay() selesai. Menggunakan interupsi memungkinkan program Anda untuk melakukan hal-hal lain sambil menunggu akhir penundaan. Biasanya ada banyak waktu mati yang tidak digunakan yang dapat digunakan untuk hal-hal lain saat menggunakan delay(). Menggunakan interupsi memecahkan masalah ini.
Langkah 1: Interrupt Handler
1. Tambahkan pengendali interupsi ke program Anda. Cukup salin dan tempel di suatu tempat di atas setup();
const unsigned long TIMER0_COUNT = 500; // Interval pengatur waktu 500 mdtk
// TIMER0 interrupt handler volatil waktu bool = false; ISR(TIMER0_COMPA_vect) { hitung panjang statis tanpa tanda tangan = 0; if (++hitungan > TIMER0_COUNT) { hitung = 0; waktu = benar; // waktu disetel ke true setiap TIMER0_COUNT md } // (waktu perlu dihapus dalam rutinitas utama) }
Langkah 2: Tetapkan Interval Waktu Berkala
2. Atur interval waktu. Rutinitas ini mendukung interupsi TIMER0, yang diatur untuk diaktifkan setiap ~1 mdtk.
"Interval" Anda adalah jumlah interupsi TIMER0 untuk diproses. Setiap interval adalah ~1 mdtk, jadi Anda benar-benar mengatur berapa banyak interupsi TIMER0 untuk dihitung sebelum mengaktifkan interval Anda. TKI, atur variabel TIMER0_COUNT ke berapa milidetik yang ingin Anda tunggu. Misalnya, gunakan 500 untuk satu setengah detik. Gunakan 3000 selama 3 detik.
Langkah 3: Inisialisasi Interupsi
3. Tambahkan kode "Inisialisasi TIMER0" ke metode setup() Anda. Sekali lagi, cukup salin dan tempel di setup().
// *** inisialisasi TIMER0 ***
kli(); // matikan semua interupsi TIMSK0 = 0; // matikan timer0 untuk jitter yang lebih rendah OCR0A = 0xBB; // jumlah interupsi sewenang-wenang TIMSK0 |= _BV(OCIE0A); // kembali ke interupsi sei(); // nyalakan kembali interupsi
Langkah 4: Tempat Menambahkan Kode Anda
4. Tambahkan kode "time check" ke metode loop() Anda. Salin dan tempel di loop().
jika (waktu) {
waktu = salah; // lakukan sesuatu di sini }
"Waktu = salah;" garis itu penting. Tanpa baris ini, baris "lakukan sesuatu di sini" akan dieksekusi setiap kali program mengeksekusi loop().
Tentu saja, Anda mengganti aktivitas Anda sendiri di baris "lakukan sesuatu di sini". Mulailah dengan mencetak beberapa teks atau mem-flash LED.
Kamu sudah selesai!
Direkomendasikan:
Sistem Peringatan Parkir Terbalik Mobil Arduino - Langkah demi Langkah: 4 Langkah
Sistem Peringatan Parkir Mundur Mobil Arduino | Langkah demi Langkah: Pada proyek kali ini, saya akan merancang Rangkaian Sensor Parkir Mundur Mobil Arduino sederhana menggunakan Sensor Ultrasonik Arduino UNO dan HC-SR04. Sistem peringatan mundur mobil berbasis Arduino ini dapat digunakan untuk Navigasi Otonom, Jarak Robot, dan r
Laporan Berkala Excel: 6 Langkah
Laporan Berkala Excel: Berikut adalah tip saya untuk laporan konsumsi berkala di Excel 2010. Dalam video tutorial di bawah ini, laporan ini memberi tahu kami tentang konsumsi spesifik listrik, air, oksigen, nitrogen per ton produk jadi, menurut mingguan, bulanan, kuartalan
Levitasi Akustik Dengan Arduino Uno Langkah-demi-Langkah (8-langkah): 8 Langkah
Akustik Levitation Dengan Arduino Uno Langkah-demi-Langkah (8-langkah): transduser suara ultrasonik L298N Dc female adapter power supply dengan pin dc laki-laki Arduino UNOBreadboardCara kerjanya: Pertama, Anda mengunggah kode ke Arduino Uno (ini adalah mikrokontroler yang dilengkapi dengan digital dan port analog untuk mengonversi kode (C++)
Robot Pelacakan RC Menggunakan Arduino – Langkah demi Langkah: 3 Langkah
Robot Pelacakan RC Menggunakan Arduino – Langkah demi Langkah: Hai teman-teman, saya kembali dengan sasis Robot keren lainnya dari BangGood. Semoga Anda telah melalui proyek kami sebelumnya – Spinel Crux V1 – Robot Terkendali Gerakan, Spinel Crux L2 – Arduino Pick and Place Robot with Robotic Arms dan The Badland Braw
Lengan Robot Arduino DIY, Langkah demi Langkah: 9 Langkah
Lengan Robot Arduino DIY, Langkah demi Langkah: Tutorial ini mengajarkan Anda cara membuat Lengan Robot sendiri