Mengukur dengan micros()
Termasuk bagian Pengaturan Waktu Tanpa Delay dalam perjalanan Arduino di Coddy. Pelajaran 16 dari 18.
millis() menghitung milidetik penuh, yang terlalu kasar untuk durasi singkat: tekan selama 2.5 ms akan terbaca sebagai 2 atau 3. micros() adalah jenis jam yang sama, tetapi menghitung mikrodetik, sepersejuta detik: ada 1000 mikrodetik dalam setiap milidetik.
Di Uno, nilainya naik dalam langkah 4 mikrodetik, dan fungsi ini juga mengembalikan unsigned long. Untuk mengukur durasi, baca nilainya sebelum dan sesudah, lalu kurangkan:
unsigned long start = micros();
int reading = analogRead(A0);
unsigned long took = micros() - start;
Serial.println(took); // sekitar 110: analogRead() memerlukan sekitar 0.1 msKarena menghitung begitu cepat, micros() kehabisan angka jauh lebih cepat daripada millis(): setelah sekitar 70 menit, hitungannya dimulai lagi dari 0. Gunakan untuk durasi singkat, dan gunakan millis() untuk durasi yang lebih dari beberapa menit.
Tantangan
MudahUkur berapa lama tombol ditekan, dalam mikrodetik:
- saat tombol ditekan, simpan
micros()dipressedAt - saat tombol dilepas, cetak
micros() - pressedAt
Tekan Jalankan, ketuk tombol, lalu Periksa.
Coba sendiri
const int buttonPin = 2;
bool wasPressed = false;
unsigned long pressedAt = 0;
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
bool pressed = digitalRead(buttonPin) == LOW;
if (pressed && !wasPressed) {
// tombol baru saja ditekan: catat waktunya
}
if (!pressed && wasPressed) {
// tombol baru saja dilepas: cetak berapa lama tombol ditekan, dalam mikrodetik
}
wasPressed = pressed;
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pengaturan Waktu Tanpa Delay
1millis()
Jam millis()Waktu dalam unsigned longLED Berkedip Tanpa JedaDua LED, Dua KecepatanLED Berkedip Saat Tombol Mengubah StatusLampu dengan Pengatur Waktu4Pengaturan Waktu yang Presisi
Mengukur dengan micros()Saat millis() Berputar KembaliStopwatch TombolLatihan sendiri: Playground Arduino