Fungsi untuk Memanipulasi Waktu dalam Arduino

Arduino menyediakan empat fungsi manipulasi waktu, yaitu delay(), delayMicroseconds(), millis(), dan micros().

Fungsi delay()

Cara kerja fungsi Delay () cukup sederhana. Fungsi ini menerima argumen bilangan bulat (bilangan). Bilangan ini merepresentasikan waktu (diukur dalam milidetik). Program harus menunggu sampai pindah ke baris kode berikutnya ketika bertemu fungsi ini. Namun, masalahnya adalah, fungsi delay() bukanlah cara yang baik untuk membuat program menunggu, karena dikenal sebagai fungsi “blocking”.

Sintaks : delay (ms) ;

dimana, ms merupakan waktu dalam milisekon untuk tunda (unsigned long).

Contoh

Fungsi delayMicroseconds()

Fungsi delayMicroseconds() menerima argumen integer tunggal (bilangan). Bilangan ini menunjukkan waktu dan diukur dalam mikrodetik. Ada seribu mikrodetik dalam milidetik, dan sejuta mikrodetik dalam satu detik. Saat ini, nilai terbesar yang dapat menghasilkan penundaan akurat adalah 16383. Ini mungkin berubah dalam rilis Arduino masa depan. Untuk penundaan lebih lama dari beberapa ribu mikrodetik, maka harus menggunakan fungsi delay() sebagai gantinya.

Sintaks : delayMicroseconds (us) ;

dimana, us merupakan bilangan mikrodetik untuk tunda (unsigned int)

Contoh

Fungsi millis()

Fungsi ini digunakan untuk menghasilkan jumlah milidetik yang berlalu sejak Arduino mulai menjalankan program saat ini. Jumlah ini akan melimpah (kembali ke nol), setelah sekitar 50 hari.

Sintaks : time = millis()

Contoh kode program di bawah ini akan mencetak pada port serial jumlah milidetik yang dilewati sejak Arduino mulai menjalankan kode tersebut.

Harap dicatat bahwa nilai hasil untuk millis () adalah tipe data unsigned long, kesalahan logika dapat terjadi jika seorang programmer mencoba melakukan aritmatika dengan tipe data yang lebih kecil seperti int. Bahkan yang tipe signed long dapat mengalami kesalahan.

Fungsi micros()

Fungsi micros() menghasilkan jumlah mikrodetik dari waktu, papan Arduino mulai menjalankan program saat ini. Jumlah ini kembali ke nol setelah sekitar 70 menit. Pada papan Arduino 16 MHz (misalnya Duemilanove dan Nano), fungsi ini memiliki resolusi empat mikrodetik (misalnya Nilai yang dikembalikan selalu kelipatan empat). Pada Arduino 8 MHz (misalnya LilyPad), fungsi ini memiliki resolusi delapan mikrodetik.

Sintaks : time = micros()

Contoh

 

Artikel Terkait

About the Author: Webagus

webagus.id adalah website yang menyajikan berbagai artikel dari berbagai bidang ilmu. Melalui slogannya "Saluran Artikel Bagus" website webagus.id berusaha menyajikan artikel-artikel bagus dari berbagai sumber.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *