Member baru? Bingung? Perlu bantuan? Silakan baca panduan singkat untuk ikut berdiskusi.

Welcome to Forum Sains Indonesia. Please login or sign up.

Juni 28, 2022, 04:07:55 PM

Login with username, password and session length

Topik Baru

Artikel Sains

Anggota
  • Total Anggota: 26,754
  • Latest: sainsftw
Stats
  • Total Tulisan: 139,633
  • Total Topik: 10,390
  • Online today: 75
  • Online ever: 441
  • (Desember 17, 2011, 09:48:51 AM)
Pengguna Online
Users: 0
Guests: 38
Total: 38

Aku Cinta ForSa

ForSa on FB ForSa on Twitter

Gimana cara agar push button bisa aktif ketika di tekan tahan?

Dimulai oleh Edo Meiyansyah, Januari 17, 2017, 07:35:19 PM

« sebelumnya - berikutnya »

0 Anggota dan 1 Pengunjung sedang melihat topik ini.

Edo Meiyansyah

Saya ingin bertanya gimana cara agar push button mengaktifkan sesuatu dengan syarat ditekan tahan selama yang diinginkan? Misal tekan tahan selama 5 sekon dengan mikrocontroller ATMEGA dan compiler CODEVISION AVR terimakasih sebelumnya :)

herlambang


void main (void){
   while(1){ // loop
      unsigned int tombol_counter = 0;
      while(!tombol){ // jangan lupa inisialisasi pin tombol sebagai input (aktif low) di fungsi inisialisasi
         tombol_counter++;
         delay_ms(1);
         if (tombol_counter >= 5000){
            lampu_led = ~lampu_led; // jangan lupa inisialisasi pin tombol sebagai output di fungsi inisialisasi
            tombol_counter = 0;
         }
      }
   }
}   

Ini bukan program komplit, tapi cuman potongan aja ane ngetik di notepad.
Jadi instruksi while(!tombol) adalah untuk mendeteksi tombol ditekan terus apa tidak jika tidak tombol counter akan tetap nol. jika iya tombol counter akan di naikkan nilainya 1 setiap 1mili second.
Instruksi if (tombol_counter >= 5000) maksudnya untuk mengecek apakan tombol sudah ditekan selama 5000 * 1ms which is 5 detik. Jika sudah mencapai 5 detik toggle lampu_led untuk berubah state dan kosongkan variable tombol_counter.
Jika tombol ditekan terus menerus led akan berkedip setiap 5detik.
built-in double watchdog! ^^"   *Problem Solved*