Daftar Isi:

Stopwatch Arduino yang Sederhana dan Praktis: 4 Langkah
Stopwatch Arduino yang Sederhana dan Praktis: 4 Langkah

Video: Stopwatch Arduino yang Sederhana dan Praktis: 4 Langkah

Video: Stopwatch Arduino yang Sederhana dan Praktis: 4 Langkah
Video: Membuat Stopwatch Sederhana - Project Arduino #21 2024, September
Anonim
Stopwatch Arduino yang Sederhana dan Praktis
Stopwatch Arduino yang Sederhana dan Praktis

Cari web untuk stopwatch Arduino. Anda mungkin baru saja melakukannya, jika Anda di sini. Dari pengalaman pribadi, saya dapat memberi tahu Anda bahwa stopwatch mana pun di internet terlalu rumit (dalam kode, untuk pemula), atau terlalu disederhanakan, dan tidak praktis, seperti yang terus menghitung detik tanpa mengatur ulang.

Kamu juga berpikir begitu, kan? Nah coba tebak. Saya melakukannya, dan terlebih lagi, saya langsung mengambil input saya dari fungsi millis() - baris angka tanpa akhir (hingga 49 hari, atau apa pun). Bagian terbaik? Itu hanya satu baris.

Menyetel ulang, adalah bagian paling sulit dari stopwatch. Untuk perantara, programmer, jika Anda belum melakukannya, lanjutkan dan coba lakukan ini sendiri, dengan detik, menit, dan jam bersama-sama. Anda akan mendapatkan apa yang saya bicarakan.

Untuk pemula, baca terus, dan nikmati kejeniusan pikiran saya.

Hanya bercanda, tetapi solusi yang saya buat cukup rapi. Berikut ini adalah:

Langkah 1: Solusinya

Solusinya
Solusinya

Jadi masalahnya adalah mengatur ulang. Apa yang kita inginkan adalah siklus angka yang terus menerus dan berulang, dari keluaran angka berurutan tanpa akhir (milis() - pada dasarnya menghitung milidetik, atau sebenarnya 1,024 milidetik, tapi terserah).

Hal pertama yang terlintas dalam pikiran adalah menggunakan perbedaan, seperti time1 -time2 dan penundaan. Lupakan itu. Dibutuhkan setidaknya enam baris kode, dan pernyataan if untuk boot.

Jadi, inilah cara melakukannya. Kami memiliki batas (59). Kami ingin semuanya dari 0 hingga 59 berulang berulang-ulang. Bagaimana?

Bagaimana jika… kita ambil sisa… dari fungsi mili dibagi 59…. Bingo!

Jadi, seharusnya seperti ini:

(60 [sebagai nilai awal karena batasnya adalah 59] + milis() / 1000 [1000 milidetik adalah satu detik]) % 60

Oke, biar saya jelaskan. (%) atau modulus, pada dasarnya adalah operator seperti (+) yang menemukan sisanya. Seperti 9% 2 = 1.

Jadi:

  • sisa (60 + 0) % 60 = 0
  • sisa (60 + 1) % 60 =1
  • sisa (60 + 58) % 60 = 58
  • sisa (60 + 59) % 60 = 59
  • sisa (60 + 60) % 60 = 60
  • sisa (60 + 61) % 60 = 1

Lihat!

Sekarang, untuk bagian-bagiannya.

Langkah 2: Bagian

Bagian
Bagian

Tidak banyak, sama sekali

  1. Arduino apa saja
  2. Tampilan apa pun (saya menggunakan OLED 0,96", tetapi Anda dapat menggunakan apa pun yang Anda miliki, pastikan untuk memasukkan variabel yang tepat ke dalam fungsi tampilan layar Anda.)

Itu dia.

Langkah 3: Kode

Ini dia. Itu cukup jelas dikomentari, jadi seharusnya tidak ada masalah. Pustaka dan init untuk 0.96 OLED ada dalam kode. Ganti dengan tampilan Anda sendiri jika berbeda.

// 0.96 perpustakaan OLED

#termasuk

#termasuk

#termasuk

#termasuk

// 0.96 OLED Init

#definisikan OLED_RESET 4

Adafruit_SSD1306 tampilan (OLED_RESET);

int detik;

int menit;

int jam;

batalkan pengaturan() {

// Beberapa lagi Init OLED 0.96"

display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

tampilan.clearDisplay(); display.setTextSize(2); display.setTextColor(PUTIH); }

lingkaran kosong() {

detik = (60 + milis() / 1000) % 60;

menit = (60 + milis() / 6000) % 60; jam = (25 + milis() / 3600000) % 25;

tampilan.clearDisplay();

display.setCursor(0, 22); // cetak jumlah jam sejak reset display.print(hours); display.print("h:");

// cetak jumlah menit sejak reset

display.print(menit);

display.print("m:");

// mencetak jumlah detik sejak reset display.print(seconds); display.print("s");

display.setCursor(0, 0);

display.print("Stopwatch"); display.drawLine(0, 18, 128, 18, PUTIH); tampilan.tampilan();

}

Langkah 4: En Final…

En Final…
En Final…

Jadi itu saja! Sekarang lakukan apa yang Anda inginkan dengannya. Atur waktu beberapa telur, atau ambil alih lingkungan Anda.

Semangat, Aarush

Direkomendasikan: