Stopwatch guna Adruino|SimpleTimer.h

Tutorial ini akan menunjukkan cara-cara menghasilkan coding stopwatch menggunakan SimpleTimer.h Library.

Jika anda belum tahu tentang SimpleTimer.h Library boleh click di sini untuk memahami Simple.Timer.h Library sebelum memulakan tutorial ini.

Langkah #1

Pertama sekali kita harus memahami bagaimana stopwatch berfungsi. Stopwatch berfungsi dengan membuat kiraan yang menaik setiap satu saat.

Jadi kita harus mencipta coding kiraan yang menaik setiap 1 saat seperti coding di bawah:

#include <SimpleTimer.h>

int saat;

SimpleTimer timer1;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  timer1.setInterval(1000,MyStopwatch);
}

void loop() {
  // put your main code here, to run repeatedly:
  timer1.run();
}

void MyStopwatch() {
  saat = saat + 1;
  Serial.print(saat);
  Serial.println();
}

Dengan menggunakan coding di atas anda akan dapat melihat kiraan menaik di serial monitor

Langkah #2

Struktur stopwatch

Seterusnya kita harus mencipta struktur paparan seperti gambar di atas.

Sebelum itu kita perlu list maklumat yang kita tahu tentang stopwatch iaitu:

  • Memaparkan nilai saat,minit dan jam
  • 1 nilai minit bersamaan 60 saat dan 1 nilai jam bersamaan 60 minit
  • nilai saat dan minit tidak melebihi 60

Maklumat di atas akan digunakan untuk mengolah coding sebelum ini.

  • Declare variable minit dan jam di bahagian DEFINING AREA .
int minit = 0;
int jam = 0;

  • Cipta condition di mana saat tidak melebihi 60 dan nilai minit akan ditambah 1 setiap kali saat = 60.
  if (saat == 60 ){
      saat = 0;
      minit = minit + 1;
  } 

  • Begitu juga untuk minit dan jam.
  if(minit == 60){
     minit = 0;
     jam = jam + 1;
  }

  • Serial print kesemua value mengikut urutan
  Serial.print(jam);
  Serial.print(".");
  Serial.print(minit);
  Serial.print(".");
  Serial.print(saat);
  Serial.println();

  • Masukkan condition dan serial print ke dalam SUB-ROUTINE stopwatch.
void MyStopwatch() {
  saat = saat + 1;
  if (saat == 60 ){
      saat = 0;
      minit = minit + 1;
  } 
  if(minit == 60){
     minit = 0;
     jam = jam + 1;
  }
  Serial.print(jam);
  Serial.print(".");
  Serial.print(minit);
  Serial.print(".");
  Serial.print(saat);
  Serial.println();
}

Langkah #3

Pada tahap ini anda telah lengkapkan value-value yang perlu ada dalam stopwatch. Cuma paparan pada serial monitor perlu diperbaiki untuk nampak lebih kemas.

  • Cipta timer baharu di ruangan DEFINING AREA.
SimpleTimer timer1,timer2;

  • Cipta condition supaya setiap value yang terpapar pada serial monitor mempunyai 2 digit di dalam SUB-ROUTINE baharu.
void MonitorDisplay() {
  if (saat<10 && minit<10 && jam<10){
      Serial.print("0");
      Serial.print(jam);
      Serial.print(".0");
      Serial.print(minit);
      Serial.print(".0");
      Serial.print(saat);
      Serial.println();
  }
  if (saat>9 && minit<10 && jam<10){
      Serial.print("0");
      Serial.print(jam);
      Serial.print(".0");
      Serial.print(minit);
      Serial.print(".");
      Serial.print(saat);
      Serial.println();
  }
  if (saat>9 && minit>9 && jam<10){
      Serial.print("0");
      Serial.print(jam);
      Serial.print(".");
      Serial.print(minit);
      Serial.print(".");
      Serial.print(saat);
      Serial.println();
  }
  if (saat<10 && minit>9 && jam<10){
      Serial.print("0");
      Serial.print(jam);
      Serial.print(".");
      Serial.print(minit);
      Serial.print(".0");
      Serial.print(saat);
      Serial.println();
  }
  if (saat>9 && minit>9 && jam>9){
      Serial.print(jam);
      Serial.print(".");
      Serial.print(minit);
      Serial.print(".");
      Serial.print(saat);
      Serial.println();
  }
  if (saat>9 && minit<10 && jam>9){
      Serial.print(jam);
      Serial.print(".0");
      Serial.print(minit);
      Serial.print(".");
      Serial.print(saat);
      Serial.println();
  }
  if (saat<10 && minit>9 && jam>9){
      Serial.print(jam);
      Serial.print(".");
      Serial.print(minit);
      Serial.print(".0");
      Serial.print(saat);
      Serial.println();
  }
}

  • Setup timer baru tadi di ruangan VOID SETUP.
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  timer1.setInterval(1000,MyStopwatch);
  timer2.setInterval(1000,MonitorDisplay);
}

Tambahan:
anda boleh ubah suai kelajuan timer untuk menjalankan ‘test run’ bagi memastikan timer anda berfungsi seperti yang dijangka dan pastikan kedua-dua timer berada dlam kelajuan yang sama.
  • Run timer dalam VOID LOOP.
void loop() {
  // put your main code here, to run repeatedly:
  timer1.run();
  timer2.run();
}

Dengan ini coding stopwatch anda telah lengkap dan sedia untuk berfungsi. Anda boleh upload coding dan lihat hasilnya di serial monitor.

Selamat mencuba.

Tinggalkan Jawapan

Masukkan butiran anda dibawah atau klik ikon untuk log masuk akaun:

WordPress.com Logo

Anda sedang menulis komen melalui akaun WordPress.com anda. Log Out /  Tukar )

Twitter picture

Anda sedang menulis komen melalui akaun Twitter anda. Log Out /  Tukar )

Facebook photo

Anda sedang menulis komen melalui akaun Facebook anda. Log Out /  Tukar )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: