Saya suka arloji bercahaya, dan ketika saya membutuhkan arloji lainnya, saya segera memasangnya di papan tempat memotong roti ATtiny85, indikator tujuh segmen TM1637 dan jam waktu nyata DS1307. Namun, selama perakitan, perasaan bahwa pengontrol yang lebih sederhana dapat disingkirkan tidak meninggalkan saya. Dan itu ternyata benar.
Penafian
Penulis tidak memiliki latar belakang teknik dan pekerjaan tidak terkait dengan mikrokontroler, karena pasti semuanya begitu-begitu. Selain itu, tidak ada optimalisasi konsumsi energi - kami, Arduino, belum menerimanya!
Perangkat keras
Pertama-tama, saya mempelajari solusi yang tersedia, dan tidak menemukan contoh siap pakai untuk menghubungkan DS1307 dua kawat ke ATtiny13. Karena
RTC telah diganti dengan DS1302 tiga kawat. Dua kaki lagi mengambil koneksi layar. Pada setengah kaki dari Reset, ada tombol untuk mengatur waktu menggunakan
StackOverflow dan sepasang resistor.
Koneksi elemen terakhir
Diagram koneksi (dari staticmain )Demi kebaikan, Anda masih memerlukan resistor 4,7-10 K dari kaki mikrokontroler PB1 dan PB2 (tengah atas) ke power plus dan kapasitor 0,1μF antara plus dan minus, tetapi ia bekerja tanpa mereka.
Bagian perangkat lunak
Jumlah kaki pada ATtiny13 bukan satu-satunya masalah. Memori yang tersedia juga kecil - hanya 1Kb, akibatnya perpustakaan yang sudah jadi tidak cocok. Solusinya adalah dengan menggunakan paket
MicroCore dan perpustakaan kompak untuk
TM1637 . Tidak ada yang ditemukan untuk DS1302, jadi saya harus membuatnya sendiri berdasarkan repositori
ini . Kode tontonan yang dihasilkan tersedia di
GitHub .
Petunjuk langkah demi langkah untuk mereka yang ingin mengulang
Daftar Bagian- Mikrokontroler ATtiny13
- Tampilan pada TM1637
- Jam Real Time DS1302
- Kuarsa pada 32768Hz
- Tombol
- Sepasang resistor pada 1K dan 10K
- Dudukan baterai 3 volt
- Papan tempat memotong roti dan jumper atau papan sirkuit
Jika Anda menggunakan Ali-Express, maka semuanya akan memakan waktu sekitar 100 rubel.- Sebagai seorang programmer - Arduino dengan sketsa ArduinoISP, disertakan dalam contoh, diunggah ke dalamnya. Jika Anda, seperti saya, gunakan Arduino Nano dan pin 10-13 untuk terhubung, maka Anda perlu batalkan komentar pada baris 81
#define USE_OLD_STYLE_WIRING
Setelah memuat sketsa di antara kaki-kaki tanah dan membuang Arduino, Anda harus meletakkan kapasitor pada 10mF, meskipun beberapa dijahit tanpa itu.

Proses firmware ATtiny13 melalui Arduino yang sedikit berdebu
- Agar Arduino IDE dapat bekerja dengan ATtiny13, isi MicroCore ditambahkan ke folder% Program (x86)% / Arduino / hardware. Setelah itu, di IDE, di bagian Tools, papan ATtiny13 dipilih dengan pengaturan: BOD dinonaktifkan, LBO diaktifkan, Clock 9.6 osc internal.


- Sumber Git sudah berisi pustaka yang diperlukan untuk bekerja dengan ds1302 dan TM1637, yang dikonfigurasi untuk bekerja pada pin (lihat file header pustaka), masing-masing gambar koneksi, jadi cukup unduh repositori dan unggah clock.ino ke ATtiny13. Firmware akan mengambil hampir semua ruang yang tersedia.

Perangkat rakitan di papan tempat memotong roti. Titik hijau menunjukkan lokasi pemasangan ATtiny untuk firmware (kabel daya jingga plus sangat kelihatan buruk).
- Karena kekhasan menghubungkan tombol, peringkat resistor yang tidak akurat dan tegangan suplai, mungkin perlu untuk mengubah ambang respons analogRead di clock.ino (baris ke-26).
- Rencananya adalah membuat papan menggunakan metode LUT, tetapi printer mogok dalam proses, sehingga verifikasi papan yang dihasilkan ditunda tanpa batas waktu sampai diperbaiki.
Alih-alih sebuah kesimpulan
Microcircuit TM1637, yang mengontrol indikator tujuh segmen, memiliki output dua pin, yang statusnya dapat dikirim melalui antarmuka. Namun, mereka tidak terpisah pada modul tampilan, dan perpustakaan yang digunakan tidak mendukungnya.
Adalah mungkin untuk membiakkan papan untuk indikator yang lebih besar dengan menempatkan sirkuit mikro dan mikrokontroler pada satu papan sirkuit tercetak, tetapi bagi saya sepertinya dalam hal ini lebih mudah untuk membeli yang sudah jadi. Meskipun, bagi saya, ini bisa menjadi perancang radio yang bagus.