Hitung Pulsa dari Encoder
Hitung perubahan sinyal yang cepat tanpa melewatkan satu pun.
Hitung Pulsa dari Encoder adalah pelajaran Arduino & IoT Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Arduino & IoT Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Arduino & IoT Academy mencakup 4 pelajaran total.
Roda Pulsa
Sebuah encoder putar mengirimkan aliran pulsa listrik singkat saat berputar. Dengan menghitung pulsa tersebut, Anda dapat mengetahui seberapa jauh encoder berputar.
Terlalu Cepat untuk Dipolling
Putar encoder dengan cepat dan pulsa akan berlalu dalam hitungan mikrodetik. Perulangan biasa yang membaca pin akan melewatkan banyak pulsa.
Interupsi sebagai Solusi
Inilah tugas yang sempurna untuk interupsi. Perangkat keras menangkap setiap tepi untuk Anda, sehingga tidak ada pulsa yang terlewat tanpa diketahui. ⚡
Penghitung Volatile
Buat penghitung volatile yang dapat dinaikkan oleh ISR. Penandaan volatile membuat perulangan membaca jumlah total yang benar dan terbaru.
volatile long pulseCount = 0;Pasang Interupsi
Di dalam setup, arahkan attachInterrupt ke pin encoder dan gunakan RISING agar setiap pulsa memanggil pengendali penghitung Anda.
attachInterrupt(digitalPinToInterrupt(2), countPulse, RISING);ISR yang Singkat
Seluruh pengendali hanya melakukan satu hal: menambahkan satu ke penghitung. Singkat dan cepat, persis seperti ISR yang baik.
void countPulse() {
pulseCount++;
}Membaca Tanpa Sobekan
Untuk menyalin jumlah di dalam perulangan, jeda interupsi sebentar agar ISR tidak mengubahnya di tengah pembacaan dan menghasilkan nilai yang terpotong.
noInterrupts();
long c = pulseCount;
interrupts();Gunakan Jumlahnya
Sekarang perulangan dapat mencetak jumlah total, menghitung kecepatan, atau memberikan respons, sementara ISR terus menghitung pulsa baru di latar belakang.
Serial.println(c);Dari Pulsa Menjadi Putaran
Setiap encoder memiliki jumlah pulsa per putaran yang tetap. Bagi jumlah Anda dengan angka tersebut untuk mengetahui berapa putaran penuh yang terjadi.
Mengukur Kecepatan
Hitung pulsa dalam jangka waktu yang diketahui di dalam perulangan, lalu ubah laju tersebut menjadi kecepatan atau RPM untuk motor atau roda.
Atur Ulang Saat Diperlukan
Untuk memulai pengukuran baru, atur kembali penghitung ke nol. Jeda interupsi sekali lagi agar Anda tidak kehilangan pulsa yang tiba pada saat itu.
noInterrupts();
pulseCount = 0;
interrupts();Pemeriksaan Singkat
Mengapa kita menjeda interupsi sebentar saat membaca penghitung pulsa di dalam perulangan?
Rangkuman
Anda telah membuat penghitung pulsa: jumlah total volatile, ISR singkat, dan pembacaan yang aman di dalam perulangan. Sekarang Anda dapat mengukur putaran dan kecepatan dengan andal. 🎉
Belajar C++ dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Hitung Pulsa dari Encoder” gratis?
Ya — teks lengkap “Hitung Pulsa dari Encoder” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Arduino & IoT Academy, upgrade ke CoddyKit PRO. Kursus Arduino & IoT Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Hitung Pulsa dari Encoder”?
Hitung perubahan sinyal yang cepat tanpa melewatkan satu pun. Kamu berlatih Arduino & IoT Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Arduino & IoT Academy?
Tidak diperlukan pengalaman sebelumnya. Arduino & IoT Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Hitung Pulsa dari Encoder” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Arduino & IoT Academy ini?
Ya. Setiap pelajaran Arduino & IoT Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Polling versus Interupsi
- attachInterrupt pada Pin
- Tulis ISR yang Aman
- Hitung Pulsa dari Encoder