Tonton di ATmega8. Termometer dua saluran, jam pada ATmega8, DS18B20, DS1307, LCD1602 Jam sederhana pada mikrokontroler atmega8

Konsep jam dengan angka besar

Secara struktural, perangkat ini akan terdiri dari dua papan - satu di atas yang lain. Papan pertama adalah matriks LED yang membentuk jam dan menit, yang kedua adalah bagian daya (kontrol LED), logika dan catu daya. Desain ini akan membuat jam tangan lebih ringkas (tanpa casing, kira-kira 22cm x 9cm, tebal 4-5 sentimeter) + memungkinkan matriks disekrup ke proyek lain jika terjadi kesalahan.

Bagian daya akan dibangun berdasarkan driver UL2003 dan sakelar transistor. Logis - pada Atmega8 dan DS1307. Catu daya: 220V - transformator; logika 5V (melalui 7805), bagian daya - 12V (melalui LM2576ADJ). Akan ada kompartemen terpisah untuk baterai 3V untuk catu daya otonom jam waktu nyata - DS1307.

Saya berpikir untuk menggunakan Atmega8 dan DS1307 (saya berencana untuk menggantung jam dari langit-langit, sehingga jika terjadi pemadaman listrik saya tidak perlu mencari-cari pengaturan setiap saat), namun, tata letak papan akan menyiratkan kemungkinan mengoperasikan perangkat tanpa DS1307 (untuk pertama kalinya, dan mungkin selamanya - cara kerjanya).

Jadi, bergantung pada konfigurasinya, algoritma pengoperasian program jam adalah sebagai berikut:

Atmega8– penghitung waktu berdasarkan pengatur waktu. Bekerja dalam satu siklus tanpa jeda: polling keyboard, mengatur waktu (jika perlu), menampilkan 4 digit dan pemisah.

Atmega8+DS1307. Bekerja dalam satu siklus tanpa jeda: polling keyboard, mengatur waktu DS1307 (jika perlu), membaca waktu dari DS1307, menampilkan 4 digit dan pemisah. Atau opsi lain - membaca dari DS1307 pada pengatur waktu, sisanya dalam satu lingkaran (saya belum tahu cara terbaiknya).

Segmen tersebut terdiri dari 4 buah LED merah yang dihubungkan secara seri. Satu digit – 7 segmen dengan anoda bersama. Saya tidak berencana memisahkan segmen dengan menggunakan pola angka delapan, seperti yang dilakukan pada indikator konvensional.

Bagian daya dari jam

Bagian daya jam dibangun pada driver UL2003 dan sakelar transistor VT1 dan VT2.

UL2003 bertanggung jawab untuk mengendalikan segmen indikator, kuncinya adalah untuk mengendalikan digit.

Pemisah jam dan menit dikontrol secara terpisah (sinyal K8).

Segmen, bit, dan pemisah dikendalikan oleh mikrokontroler dengan menerapkan potensial positif (yaitu menerapkan +5V) ke K1-K8, Z1-Z4.

Sinyal ke segmen dan bit harus disuplai secara sinkron dan dengan frekuensi tertentu untuk memastikan keluaran informasi yang dinamis (jam dan menit).

Transistor BCP52 dapat digunakan sebagai transistor VT1 (BCP53).

Skema bagian daya jam dengan angka besar

Papan sirkuit tercetak dari indikator tujuh segmen untuk jam dengan angka besar

Seperti yang saya katakan sebelumnya, jam akan terdiri dari dua papan sirkuit tercetak - papan indikator + logika dan bagian daya.

Mari kita mulai dengan desain dan pembuatan papan sirkuit indikator.

Pengembangan papan sirkuit tercetak untuk indikator tujuh segmen untuk jam dengan angka besar

Papan sirkuit tercetak dari indikator tujuh segmen untuk jam dengan angka besar dalam format "awam" terletak di akhir artikel, di file terlampir. Anda dapat membaca tentang teknologi pembuatan papan sirkuit cetak menggunakan metode LUT.

Jika Anda melakukan semuanya dengan benar, PCB yang sudah jadi akan terlihat seperti ini.

Papan sirkuit tercetak yang sudah jadi dari indikator tujuh segmen untuk jam dengan angka besar

Perakitan indikator tujuh segmen

Karena papan indikator memiliki dua sisi, hal pertama yang harus dilakukan adalah melakukan transisi antar lapisan. Saya melakukan ini dengan menggunakan kaki bagian yang tidak perlu - saya memasukkannya melalui lubang dan menyoldernya di kedua sisi. Ketika semua transisi selesai, saya membersihkannya dengan file yang rata dan halus - ternyata sangat rapi dan bagus.

Botol antar lapisan pada papan indikator

Langkah selanjutnya sebenarnya adalah merakit indikator. Mengapa kita membutuhkan satu pak LED merah (hijau, putih, biru). Misalnya, saya mengambil ini.

Bersiap untuk merakit indikator

Saat memasang dioda, jangan lupa bahwa kita membuat indikator dengan anoda umum - mis. Dioda "+" harus dihubungkan bersama. Anoda umum pada PCB adalah potongan tembaga berukuran besar. Pastikan untuk memperhatikan titik pemisah anoda.

Lokasi anoda pada papan sirkuit cetak indikator

Hasilnya, setelah 2 jam kerja keras, Anda akan mendapatkan ini:

Indikator tujuh segmen

Bagian digital dari jam

Kami akan merakit bagian digital jam dengan jumlah besar sesuai skema berikut:

Diagram jam dengan angka besar

Rangkaian jamnya cukup transparan, jadi saya tidak melihat ada gunanya menjelaskan cara kerjanya. Papan sirkuit tercetak dalam format *.lay dapat diunduh di akhir artikel. Perhatikan bahwa papan sirkuit tercetak terutama dirancang untuk komponen yang dipasang di permukaan.

Jadi, basis elemen yang saya gunakan:

1. Jembatan dioda DFA028 (yang ringkas untuk pemasangan di permukaan bisa digunakan);
2. Regulator tegangan LM2576ADJ pada housing D2PAK, 78M05 pada housing HSOP3-P-2.30A;
3. Saklar transistor BCP53 (housing SOT223) dan BC847 (housing SOT23);
4. Mikrokontroler Atmega8 (TQFP);
5. Jam waktu nyata DS1307 (SO8);
6. Catu daya 14V 1,2A dari beberapa perangkat lama;
7. Bagian yang tersisa adalah jenis apa pun, ukurannya sesuai untuk pemasangan pada papan sirkuit tercetak.

Tentu saja, jika Anda ingin menggunakan paket komponen lain, Anda perlu melakukan beberapa perubahan pada PCB.

Perhatikan nilai resistansi R3 dan R4 - nilai tersebut harus persis seperti yang ditunjukkan pada diagram - tidak lebih, tidak kurang. Hal ini dilakukan untuk memberikan tepat 12V pada keluaran pengatur tegangan LM2576ADJ. Jika masih belum dapat menemukan nilai resistor tersebut, maka nilai resistansi R4 dapat dihitung dengan menggunakan rumus:

R4=R3(12/1.23-1) atau R4=8.76R3

Merakit bagian digital. Versi 1, tanpa DS1307

Jika, saat membuat papan sirkuit tercetak untuk jam tangan, Anda mengikuti rekomendasi yang tercantum di dalamnya, maka tidak perlu diingatkan bahwa sebelum perakitan, papan sirkuit tercetak harus dibor, semua korsleting yang terlihat di dalamnya harus dihilangkan, dan papannya harus diolesi cairan rosin? Kemudian kami mulai merakit jam tangan.

Saya sarankan memulai dengan merakit catu daya dan baru kemudian memasang bagian digital. Ini adalah rekomendasi umum untuk perangkat perakitan mandiri. Mengapa? Hanya karena jika catu daya dirakit dengan kesalahan, Anda dapat membakar semua perangkat elektronik bertegangan rendah yang seharusnya ditenagai oleh catu daya ini.

Jika semuanya dilakukan dengan benar, catu daya akan segera berfungsi. Kami memeriksa perakitan catu daya - mengukur tegangan pada titik kontrol.

Gambar tersebut menunjukkan titik uji di mana tegangan suplai harus diperiksa. Jika voltase sesuai dengan yang dinyatakan, Anda dapat mulai merakit bagian digital jam tangan. Jika tidak, kami memeriksa pemasangan dan fungsionalitas elemen catu daya.

Titik uji dan nilai tegangan untuk catu daya jam

Setelah memeriksa catu daya, kami melanjutkan ke perakitan bagian digital jam - memasang semua elemen lainnya pada papan sirkuit tercetak. Kami memeriksa adanya hubungan pendek terutama pada kaki-kaki mikrokontroler Atmega dan driver UL2003.

Pemasangan bagian digital jam

Harap dicatat bahwa kami merakit jam TANPA memasang jam real-time DS1307, namun semua pengkabelan chip ini harus diselesaikan. Di masa depan, jika diperlukan, ini akan menghemat waktu kita dalam memodifikasi jam untuk versi kedua, di mana jam real-time independen yang terpisah pada DS1307 akan tetap digunakan.

Pengujian awal mikrokontroler ATMEGA8

Untuk memeriksa kebenaran dan fungsionalitas mikrokontroler, kita memerlukan:

1. Pemrogram, misalnya.
2. untuk pemrograman dalam sirkuit mikrokontroler.
3. Program AVRDUDESHELL.

Kami menghubungkan papan jam ke kabel data. Kami menghubungkan kabel data ke programmer. Pemrogram untuk komputer tempat program AVRDUDESHELL diinstal. Papan jam tidak boleh dihubungkan ke catu daya 220V.

Pembacaan data yang berhasil dari mikrokontroler oleh program AVRDUDESHELL

Jika timbul masalah saat membaca sekring, periksa pemasangannya - mungkin ada korsleting atau “koneksi hilang” di suatu tempat. Tip lainnya - mungkin mikrokontroler berada dalam mode pemrograman kecepatan rendah, lalu alihkan saja programmer ke mode ini (


- alarm.
– termometer.

1. Fungsi.

– indikasi. Bergantian.

PLUSMINUS

2. Pengaturan.

2.2. Dengan menekan sebuah tombolMENUMENGATUR

Kelompok JAM:

- menit;

- jam tangan;

PLUS atau MINUS);

Dengan".

Kelompok Alar:

PadaMATI" jika dinonaktifkan;

Kelompok diSP:

tc

tt

E.F., AR

P

Kelompok LiGH:

A", pada yang lebih muda" PadaDARI

L_ ".

L¯ ".

L".

2.4. Dengan menahan tombolPLUS/ MINUS

3. Catatan.

subjek .

Video program berjalan tidak penggunaserigala2000.

– jam tangan dengan koreksi akurasi digital.
- alarm.
– termometer.
– indikasi pada indikator tujuh segmen.
– penyesuaian otomatis kecerahan indikator.

1. Fungsi.

– jam, format tampilan waktu 24 jam, jam:menit.

– koreksi akurasi digital. Koreksi harian dimungkinkan ±25 detik. Nilai yang ditetapkan 1 jam 0 menit 30 detik akan ditambahkan/dikurangi dari waktu saat ini.

- alarm. Pada waktu yang ditentukan, sinyal ganda pendek terdengar selama satu menit. Anda dapat mematikan suara lebih cepat dari jadwal dengan menekan salah satu tombol. Saat jam alarm diaktifkan, sebuah titik ditampilkan dalam digit terkecil saat waktu ditampilkan.

– termometer. Kisaran suhu terukur adalah -55,0 125,0 o C. Jika suhu di atas 99,9 atau di bawah -9,9 o C, sepersepuluh derajat tidak ditampilkan.

– indikasi. Bergantian.

– animasi yang dapat disesuaikan untuk mengubah bacaan.

– penggunaan memori non-volatile mikrokontroler untuk menyimpan pengaturan saat listrik dimatikan.

– jika pada mode utama Anda menekan tombolPLUS, maka waktu akan ditampilkan pada indikator jika Anda mengkliknyaMINUS- suhu. Ketika tombol dilepaskan, perubahan pembacaan otomatis dilanjutkan.

– penyesuaian otomatis kecerahan indikator tergantung pada pencahayaan.

2. Pengaturan.

2.1. Saat daya dihidupkan, jam berada dalam mode utama.

2.2. Dengan menekan sebuah tombolMENUmemasuki mode pengaturan dan memilih sekelompok parameter untuk diinstal. Dalam grup, parameter yang akan disetel dipilih menggunakan tombolMENGATUR. Tersedia untuk instalasi pada gilirannya:

Kelompok JAM:

- menit;

- jam tangan;

– detik (reset ke nol saat Anda menekan tombolPLUS atau MINUS);

– nilai koreksi. Pada angka paling penting simbol " Dengan".

Kelompok Alar:

– aktivasi jam alarm. Pada indikator "Pada"jika jam alarm diaktifkan, "MATI" jika dinonaktifkan;

– menit saat alarm berbunyi;

– waktu jam alarm.

Kelompok diSP:

– waktu indikasi waktu saat ini. Di angka tertinggi ada simbol "tc". Rentang pengaturan 0−99 detik. Jika diatur ke 0, waktu tidak akan ditampilkan;

– waktu indikasi suhu. Di angka tertinggi ada simbol "tt". Rentang pengaturan 0−99 detik. Jika diatur ke 0, suhu tidak akan ditampilkan;

– pemilihan efek animasi. Di angka tertinggi ada simbol "E.F.". Jika disetel ke 0, perubahan informasi akan dilakukan tanpa efek, jika mode otomatis dipilih (simbol " A"), maka efeknya akan berubah satu per satu. Jika mode dipilihR, maka efeknya akan berubah secara acak.

– pilih kecepatan animasi. Pada angka paling penting simbol "P". Rentang pengaturannya adalah 0±99. Satu unit setara dengan sekitar 2 ms, semakin tinggi nilainya, semakin lambat animasinya.

Kelompok LiGH:

– mengaktifkan kontrol otomatis kecerahan indikator. Pada angka paling penting simbol "A", pada yang lebih muda" Pada" jika pengaturan otomatis diaktifkan, "DARI" jika kecerahan diatur secara manual;

– ambang kecerahan minimum untuk mode otomatis. Di angka tertinggi ada simbol "L_ ".

– ambang kecerahan maksimum untuk mode otomatis. Di angka tertinggi ada simbol "L¯ ".

– tingkat kecerahan dalam mode manual. Di angka tertinggi ada simbol "L".

2.3. Parameter yang disetel berkedip.

2.4. Dengan menahan tombolPLUS/ MINUSparameternya diatur dengan cepat.

3. Catatan.

1. Untuk ambang kecerahan minimum dan maksimum, rentang pengaturannya adalah 0 99, namun program memberlakukan batasan: minimum tidak boleh lebih besar atau sama dengan maksimum dan sebaliknya.

2. Saat mengatur parameter kecerahan, informasi pada indikator ditampilkan dengan nilai kecerahan yang dipilih.

3. Perlu membandingkan kecepatan animasi dan waktu menampilkan informasi. Jika animasi lambat dan waktu tampilan singkat dipilih, informasi mungkin tidak memiliki waktu untuk diperbarui sepenuhnya sebelum shift berikutnya.

Sebuah topik telah dibuat untuk membahas materi artikel.

Video program berjalan tidak penggunaserigala2000.

Jam elektronik yang dibangun dengan mikrokontroler Atmega8 ini dilengkapi dengan tampilan LED yang mudah dibaca, jam alarm dengan fungsi snooze, dan fungsi pemulihan daya.

Spesifikasi jam tangan

  • format tampilan waktu: jam, menit;
  • jam alarm dengan fungsi tunda;
  • kontrol sederhana menggunakan 2 tombol;
  • Dukungan pengoperasian baterai;
  • tegangan suplaitage: 7…12V / 0,2 A;
  • dimensi dua papan sirkuit tercetak: 60x21 mm, 58x44 mm.

Diagram skema jam ditunjukkan pada gambar di bawah ini. Rangkaian jam harus diberi daya dengan tegangan konstan pada kisaran 7...12V. Ini bisa berupa apa saja dengan beban arus minimal 200 mA.

Buzzer dengan generator dapat dihubungkan ke konektor CON5 pada papan, yang akan bertindak sebagai sinyal alarm. Tombol dihubungkan ke terminal SA1 dan SA2 pada papan sirkuit tercetak, yang digunakan untuk memasukkan pengaturan dan mengoperasikan jam.

Mengatur waktu dan alarm

Saat Anda menekan tombol SA1, kita masuk ke menu jam "Set1", di mana kita memiliki kemampuan untuk mengatur waktu saat ini, dan menekan sebentar tombol SA1 lagi akan membawa kita ke menu pengaturan waktu alarm "Set2".

Untuk memilih dan mengubah pengaturan, gunakan tombol SA2. Setelah memilih mode pengaturan waktu dan mode pengaturan alarm, digit pertama akan mulai berkedip di layar, setelah itu Anda dapat mengatur puluhan jam menggunakan tombol SA2.

Menekan SA1 lagi akan menyebabkan digit kedua berkedip dan menggunakan SA2 Anda dapat mengatur satuan jam. Dua penekanan SA1 berikutnya akan memungkinkan Anda menyetel puluhan menit dan satuan menit. Saat menyetel jam dan menit, hanya satu digit yang selalu disetel. Menekan SA1 untuk kelima kalinya akan mengembalikan jam tangan ke pengoperasian normal. Selain itu, jangka waktu yang lama tanpa menekan tombol apa pun akan menghentikan prosedur instalasi.

Saat jam berjalan, menekan lama tombol SA2 akan menyalakan/mematikan alarm. Saat alarm diaktifkan, waktu mulai ditampilkan selama beberapa detik. Status alarm ditunjukkan dengan titik yang terletak di digit keempat. Saat alarm aktif, indikator ini akan menyala.

Setelah menyalakan alarm, Anda dapat menekan tombol apa saja untuk mematikannya selama sekitar 5 menit, dan fungsi tunda akan diaktifkan. Fakta ini ditunjukkan dengan titik berkedip pada digit keempat indikator. Setelah 5 menit, alarm akan berbunyi kembali. Dengan menekan tombol apa saja lagi, ini dapat ditunda selama 5 menit lagi, dan seterusnya.

Sinyal alarm mati total setelah menekan lama tombol SA2, atau sekitar satu setengah menit tidak adanya reaksi dari pengguna.

Pengoperasian jam telah diuji di Proteus:

Jika selama pengoperasian jam tangan ternyata jam tangan tertinggal atau terburu-buru, Anda dapat mencoba mengurangi atau menambah nilai kapasitor C1.

(34,7 Kb, unduhan: 1,923)

Tonton di ATmega8.

  • 10 alarm untuk setiap hari dalam seminggu.
  • Sinyal tunda, jika alarm tidak dimatikan, akan mati setelah sekitar 5 menit.
  • Dua jam alarm pada kaki MK terpisah, dapat dihidupkan/dimatikan.
  • Dua sensor suhu DS18B20 (di rumah dan di luar ruangan).
  • Pemilihan tampilan suhu (zero blanking).
  • Pengatur waktu 99 jam.
  • Kecerahan indikator dapat disesuaikan untuk siang dan malam hari.
  • Parameter variabel dengan lancar mengubah kecerahan.
  • Ketika 220 volt hilang, konsumsi baterai kurang dari 40 mikroamp.
  • Alarm berbunyi dalam mode daya apa pun.
  • Jam tangan dapat menampilkan hingga 8 mode.
  • Rangkaiannya dapat menggunakan indikator dengan common anoda atau katoda.

Jam tangan dapat menampilkan hingga 8 mode, yang mana Anda dapat memilih salah satu dari lima belas format tampilan, waktu tampilannya, dan berapa kali jam tangan tersebut dilewati.

Format tampilan.
0

Tanggal, Hari dalam seminggu, Jam-menit.

1

Jam-menit-detik.

2

Jam dan menit.

3

Jam-menit, Hari dalam seminggu.

4

Hari_bulan_hari dalam seminggu.

5

Hari bulan tahun.

6

Hari bulan tahun hari minggu.

7
8

Sensor suhu 1 (sensor rumah).

9

Sensor suhu 2 (sensor luar).

A

Sensor suhu 1, Jam-menit.

B

Sensor suhu 2, Jam-menit.

C

Sensor suhu 1, sensor suhu 2.

D

Sensor suhu 1, sensor suhu 2.

E

Hari dalam seminggu nomor bulan tahun.

F

Hari bulan tahun.

Dalam mode di mana sepersepuluh derajat tidak ditunjukkan, titik menentukan lebih dari 0,5 derajat.

Tombol F - keluar dari mode. Pilihan 3 mode utama.
Tombol SET - memasuki mode yang dipilih. Selanjutnya, pindah ke parameter berikutnya (bidang berkedip).
Tombol PLUS - tambah/hidup. Dalam mode SETUP, gulir ke seluruh menu utama.
Tombol MINUS - minus/__(mati). Dalam mode SETUP, gulir ke seluruh menu utama.

Semua mode, kecuali mode nol dan pengatur waktu, memiliki penghentian waktu. Jika tidak ada penekanan selama lebih dari 30 detik, mode disetel ke nol.

Modus PANGGILAN

Modus PENYIAPAN.
Untuk menulis nilai ke EEPROM, Anda perlu mengonfirmasi semua nilai di submode dengan menekan SET.
Contoh: CAHAYA ->SET-> L.ooooo ->SET-> НО4ь L.2 ->SET-> CAHAYA .

Modus PELABUHAN.

Modus jam.

Menyesuaikan detik. Menekan MINUS akan mengatur ulang detik ke nol. Jika lebih dari 31 detik, maka menitnya bertambah.
Berikutnya adalah pengaturan menit dan jam.
Dipasang:
hari, bulan, tahun dan hari dalam seminggu.
Koreksi jam. Nilai ini ditambah atau dikurangi setiap jam. Langkah 0,008 detik. (50 nilai), nilai maksimum 0,391. Contoh perhitungan: dengan koreksi sama dengan nol maka diukur penyimpangan jamnya, misalnya dalam 5 hari jam telah berjalan 3 detik, maka koreksinya tepat 3/(5*24)=0,025.

Atur mode LIHAT.

Dalam mode nol, jam secara bergantian menampilkan hingga 8 mode, yang mana salah satu dari sepuluh format tampilan dan waktu tampilannya dipilih (meja atas).
1 mode pilihan.
R 5 pilih salah satu dari lima belas format tampilan.
Dengan 03 waktu dalam hitungan detik mode yang dipilih akan terlihat.
N 0 berapa kali untuk dilewati (Jangan tunjukan) mode. Contoh:
1 r0 c03n0
2 r5 c03n0
3 r4 c02n1
r0; r5; r4; r0; r5; r4; r0; r5; r4; r0; r5; r4; ..
r4; — terlihat, r4; - dirindukan.
Ketika waktu menunjukkan pukul 00, mode dinonaktifkan.

Mode USt Bud. Pengaturan alarm.

Bip sinyal alarm - PWM.
Pin sinyal alarm - mulut dalam 1 tunas keluaran.
Keduanya Shim dan keluaran.
Penundaan sinyal.
Mengatur jumlah penundaan sinyal.
Saat mati Tunda (00) mematikan alarm dengan menekan tombol apa saja.
Saat aktif alarm ditunda tombol F, ketika tombol SET PLUS MINUS ditekan, sinyal mati, tetapi akan berfungsi kembali setelah sekitar 5 menit.
Saat penundaan sinyal aktif, dalam mode nol, titik pada digit terakhir akan berkedip.
Nonaktifkan penundaan (jika tidak ada sinyal). Dalam mode 0, menekan SET aktif. modus ini. Adanya penundaan aktif menginduksi simbol tersebut HAI di tempat perkenalan ke-4. Menekan PLUS MINUS akan mematikan penundaan.

Modus DS18B20.

Modus ringan.

Modus sinyal.

Atur ulang mode.

Tindakan dalam mode nol.

F - pemilihan mode.
SET - mode pembatalan penundaan sinyal
PLUS - Atur mode LIHAT.
MINUS - mengatur alarm.

Setiap jam, selama satu detik, pin PB2(16) disetel.

Untuk menghemat uang, penundaan sinyal dilarang dalam mode baterai. Pengatur waktu juga berhenti.

Sumber WinAVR-20060421. Firmware anoda, katoda dan firmware untuk rangkaian dengan indikator besar. Dengan transisi otomatis ke waktu musim panas/musim dingin.
Tidak ada peralihan ke waktu musim panas/musim dingin.
Diagram untuk indikator besar. Dikirim oleh Alexei.



Saya memberi perhatian Anda diagram dan desain sederhana “ Termometer dua saluran, jam pada ATmega8, DS18B20, DS1307, LCD (ZhK) 1602«.
Desainnya memungkinkan Anda menampilkan waktu, tanggal, bulan, hari dalam seminggu, dan suhu saat ini dari dua sensor suhu digital pada indikator simbol dua baris.

Diagram termometer dan jam dua saluran

Desainnya dirangkai pada mikrokontroler ATmega8-16PU, chip jam real-time DS1307 dalam paket DIP, sensor suhu digital DS18B20, dan indikator LCD LCD1602


Diagram perangkat dibuat dalam program
Sensor suhu terhubung ke konektor DS1 dan DS2:
— pin 1 — ke pin GND sensor
— pin 2 — ke pin DQ sensor
— pin 3 — ke pin Vcc sensor

Sambungan sensor pada diagram tidak sesuai dengan papan sirkuit tercetak.
Program ini disesuaikan dengan papan sirkuit tercetak, Anda perlu menghubungkan:
— Sensor pertama ke PB1 (pin ke-15)
— Sensor ke-2 ke PB2 (pin ke-16)

Saya menarik perhatian Anda untuk menghubungkan pin port D mikrokontroler ke pin indikator:
- PD0 mikrokontroler - untuk menyematkan D7 indikator
- PD1 mikrokontroler - untuk menyematkan D6 indikator
- PD2 mikrokontroler - untuk menyematkan D5 indikator
- PD3 mikrokontroler - untuk menyematkan D4 indikator
Koneksi ini dipilih untuk menyederhanakan tata letak track pada papan sirkuit cetak

Detail yang digunakan dalam desain:

Layar LCD berbentuk 2 baris, 16 karakter negatif, karakter putih dengan latar belakang biru tua dengan lampu latar putih. Anda juga dapat menggunakan indikator dua baris, 16 karakter sintesis karakter (simbolis), dengan atau tanpa dukungan Sirilik, yang mendukung sistem perintah pengontrol tipe HD44780:
— STN (FSTN) Negatif (biru atau hitam) dengan lampu latar (ini digunakan dalam desain) — indikator tersebut hanya berfungsi dengan lampu latar
— FSTN Positif, TN Positif, HTN Positif — dengan atau tanpa lampu latar
Indikator LCD Cina yang digunakan tidak memiliki alfabet Sirilik bawaan, oleh karena itu, untuk kejelasan menampilkan hari dalam seminggu pada indikator, karakter khusus ditulis ke dalam RAM generator karakter (CGRAM) - “P”, “n” , “t”, “Ch”, “b” dan dua karakter dalam bentuk kebalikan “D” dan “U”.

Papan sirkuit tercetak dari termometer dan jam dua saluran

Desainnya dirakit pada papan sirkuit cetak satu sisi, semua bagian yang digunakan adalah "output"
Papan sirkuit tercetak perangkat dibuat dalam program.
Ada tiga jumper di papan - P1, P2, P3
Resonator kuarsa dipasang "berbaring" di papan, badan resonator disolder dengan jumper ke bantalan kontak di papan di bawah resonator.

Deskripsi pengoperasian termometer dan jam dua saluran

Dasar dari desain "D" termometer dua saluran, jam" adalah mikrokontroler ATmega8 dalam paket DIP dengan frekuensi clock 1 MHz dari osilator internal dengan rangkaian RC internal. Bit FUSE disetel secara default, tidak perlu mengubah apa pun.
Chip jam waktu nyata digunakan untuk menentukan waktu saat ini DS1307, yang menghitung detik, menit, jam, tanggal bulan, bulan, hari dalam seminggu dan tahun dengan kompensasi tahun kabisat berlaku hingga tahun 2100.
Hanya yang berikut ini yang ditampilkan:
- waktu saat ini - jam dan menit
- tanggal bulan
- bulan
- hari di minggu ini
Dua sensor suhu digital digunakan sebagai sensor suhu DS18В20, yang memungkinkan Anda mengukur suhu saat ini mulai dari -45 derajat hingga +125 derajat Celcius dengan akurasi 0,5 derajat.
Suhu saat ini dari setiap sensor ditampilkan dengan resolusi 0,1 °C
Sebelum nilai setiap suhu, simbol “D” dan “U” ditampilkan dalam bentuk terbalik:
- "D" - suhu di dalam rumah
— “U” — suhu luar

Operasi program diatur oleh interupsi luapan dari pengatur waktu T1 yang terjadi setiap 4 detik. Waktu saat ini diperbarui setiap 4 detik, suhu saat ini dari sensor diperbarui secara bergantian, setiap 4 detik.

Perangkat ini diberi daya dari sumber daya yang stabil dengan tegangan 5 Volt, Anda dapat menggunakan pengisi daya dari ponsel, atau sumber daya otonom - baterai. Konsumsi arus tergantung pada kecerahan lampu latar (nilai resistor R3) dan dalam kasus tertentu adalah 12 mA.

Perangkat ini dikendalikan oleh dua tombol:
— S1 — “Seleksi”
— S2 — “Instalasi”

Saat perangkat dihidupkan untuk pertama kali (atau setiap kali dihidupkan tanpa adanya catu daya cadangan DS1307 - BAT1), perangkat masuk ke mode instalasi "Penuh". Dalam hal ini, perlu untuk mengatur tahun, bulan, tanggal, hari dalam seminggu dan waktu saat ini - jam dan menit. Dalam mode ini, informasi penjelasan tidak diterjemahkan ke dalam bahasa Rusia (tidak seperti indikasi hari dalam seminggu), semua penjelasan ditampilkan dalam bahasa Inggris (instalasi lengkap sangat jarang dilakukan, tidak sulit untuk dipahami):

Menetapkan Tahun:
Kursor berkedip berbentuk persegi panjang putih menunjukkan di mana dan apa yang perlu dimasukkan:
— dengan tombol “Instal” — kami menyetelnya ke puluhan tahun
- menggunakan tombol "Pilih" - lanjutkan ke pengaturan satuan tahun
— menggunakan tombol “Pengaturan” — mengatur nilai satuan tahun
— dengan tombol “Pilih” — lanjutkan ke pengaturan berikutnya

Menyetel bulan menjadi “Bulan”
- mirip dengan pengaturan tahun

Menetapkan hari dalam bulan “Data”:
- mirip dengan pengaturan tahun

Menetapkan hari dalam seminggu “Minggu”:
- Mirip dengan pengaturan tahun, dengan - 1 - Sen, 2 - Sel, 3 - Rab, 4 - Kam, 5 - Jum, 6 - Sab, 7 - Sun

Menyetel waktu saat ini “Jam_Menit”
Misalnya, waktu saat ini adalah 17 jam 39 menit:
— dengan tombol “Instal” — kita atur puluhan jam — 1
— menggunakan tombol “Pilih” — lanjutkan ke pengaturan satuan jam
— menggunakan tombol “Pengaturan” — mengatur satuan jam — 7
— dengan tombol “Pilih” — masuk ke pengaturan puluhan menit — 4
— menggunakan tombol “Pengaturan” — atur satuan menit ke -0
— detik sudah ditunjukkan pada tampilan sebagai “00”
— tepat pada 17 jam 40 menit tekan tombol “Pilih” dan waktu saat ini 17 jam 40 menit 00 detik akan direkam di DS1307

Dalam mode pengoperasian, tombol “Pilih” dan “Instal” memungkinkan Anda beralih ke mode berikut:
Tombol pilih— koreksi waktu (dalam hal ini, hanya waktu saat ini “Jam_Menit” yang diatur seperti dijelaskan di atas)
tombol "Instal".- Instalasi "Penuh".
Untuk masuk ke mode yang diinginkan, Anda harus menekan tombol yang sesuai dan menahannya hingga tampilan layar bersih. Setelah membersihkan tampilan, lepaskan tombol dan setelah beberapa saat kita beralih ke mode yang dipilih.

Desain dikembangkan dan diuji pada papan tempat memotong roti; tidak dirakit dalam perangkat keras.
Ada banyak komentar tentang perangkat yang tidak berfungsi dan papan sirkuit tercetak tidak sesuai dengan diagram sirkuit.
Diputuskan untuk membuat ulang perangkat di perangkat keras.
Di bawah ini adalah foto perangkat rakitan menurut sirkuit, papan sirkuit tercetak, dan firmware yang dipublikasikan di halaman ini.
Perangkat segera mulai bekerja, tidak ada masalah yang terlihat.
Papan sirkuit tercetak dibuat menggunakan metode LUT. Karena kesalahan dalam memasang sirkuit mikro di papan, sirkuit tersebut harus disolder dan diatur ulang (dan ada lubang di wanita tua itu), yang menyebabkan kerusakan pada konduktor yang dicetak dan, akibatnya, tampilannya tidak terlalu bagus. bagus, jumper P2 dipasang di sisi konduktor yang dicetak (tidak dibor lubangnya), sensor DS1 dihubungkan dengan kabel yang panjangnya sekitar 1 meter (sehingga berada pada ketinggian sekitar 30 cm dari lantai, DS2 Sensor dihubungkan dengan kabel sepanjang 5 meter dan dibawa keluar jendela Konektor untuk menghubungkan sensor diambil dari pendingin komputer lama.

Ada satu masalah - RTC DS1307 tidak langsung menyala, alasannya adalah damar di antara pin kuarsa. Setelah mencuci papan, jam mulai bekerja.

(10,8 KiB, 1.990 hit)

(27,3 KiB, 1.471 hit)

(390,1 KiB, 1.288 hit)

(51,7 KiB, 2.476 hit)

Unduh dari YandexDisk (selain itu - lembar data dalam bahasa Rusia)

Anda dapat memesan semua bagian yang diperlukan untuk merakit "Termometer saluran ganda, jam pada ATmega8, DS18B20, Ds1307", termasuk mikrokontroler terprogram, di toko online situs web