» Elektronik » Arduino »Jam pergerakan dengan penggera dan pemasa di Arduino Uno

Jam perdana dengan penggera dan pemasa di Arduino Uno


Setelah menerima beberapa papan Arduino, dan pelbagai komponen radio untuk mengenali mikrokontroler, penulis memutuskan untuk melakukan sesuatu yang menarik dan pada masa yang sama berguna. Mempunyai stok sejumlah besar LED, idea itu muncul untuk mencipta jam binari.

Di sisi elektronik, jam perduaan tidak begitu rumit, tetapi penulis merumitkan tugas itu dan memutuskan untuk tidak menyimpan butang dan LED. Pada mulanya, projek ini menggunakan 22 LED, 6 butang, dan satu tweeter. Terdapat juga idea memasang jam tangan di Arduino Mega kerana bilangan pin yang lebih besar, tetapi pergeseran daftar 74HC595 ternyata menjadi keselamatan.

Bahan:
- Arduino Uno
- 2 papan roti bersaiz penuh
- LED merah 7 pcs
- LED hijau 7 pcs
- Blue LEDs 6 pcs
- 2 LED kuning dan putih
- Resistor 220 ohms 25 pcs
- Piezo buzzer 1 pc
- Butang butang 6 butang
- Penghantaran output Shift 74HC595 dalam pakej DIP-16 3 pcs
- Menyambung wayar 90 pcs
- Modul jam masa nyata berdasarkan cip RTC DS1307

Bagaimana semua akan berfungsi.
Terdapat kira-kira 10 jenis jam binari. Beberapa masa menunjukkan masa dalam format perpuluhan binari (BCD), yang lain sebagai nombor binari. Oleh kerana penulis tidak suka menonton BCD, dia memutuskan untuk membuat binari tulennya. Sesetengah orang merasa sukar untuk membaca, tetapi perbezaannya tidak besar, kerana menerjemahkan nombor dari binary ke perpuluhan adalah mudah. Juga prasyarat untuk pencipta jam tangan adalah petunjuk detik pada jam tangan.

Di samping itu, jam tangan mempunyai 6 butang:
Tetapkan - bertanggungjawab untuk mod tetapan jam / penggera dan menyimpan parameter dalam mod tetapan.
Mod - bertanggungjawab untuk menukar antara jam, penggera dan mod pemasa.
Atas - dalam tetapan jam / penggera / pemasa, meningkatkan parameter dengan satu. Dalam jam penggera dan pemasa, ia bertanggungjawab untuk mengaktifkan dan menyahaktifkan mod yang dipilih. Apabila isyarat dicetuskan, ia akan mematikan isyarat penggera / pemasa.
Turun - dalam tetapan jam / penggera / pemasa, ia akan mengurangkan parameter dengan satu. Pemasa akan berhenti seketika tanpa menetapkan semula undur. Apabila penggera dimatikan, ia akan memindahkan isyarat selama 5 minit.
24/12 - mengubah format masa.
Dim - bertanggungjawab untuk mematikan dan mematikan LED (apabila LED dimatikan, butang yang tinggal berhenti berfungsi).
Rajah rajah LED:
Jam perdana dengan penggera dan pemasa di Arduino Uno


Sambungan Komponen
Penulis akan menyambungkan semua LED dalam siri dan dengan perintang. Perintang disolder ke salah satu terminal LED, tidak kira yang mana satu. LED akan dihubungkan melalui daftar peralihan, cip ini mempunyai 16 kenalan.Nombor pin ini membolehkan anda menggunakan sejumlah besar pin, dengan hanya mengambil 3 pin pada Arduino.

Shift Register Pinout 74HC595:
Q0-Q7 adalah penemuan daftar di mana LED akan disambungkan.
Vcc - pin bekalan kuasa 5V akan digunakan padanya.
GND - tanah disambungkan ke GND pada Arduino.
OE - pin bertanggungjawab untuk pengaktifan terbalik terminal, tetapi ia tidak akan digunakan, ia hanya dipendekkan ke tanah.
MR adalah penjelasan pendaftaran terbalik, ia tidak perlu dikawal, oleh itu ia akan disambungkan kepada bekalan kuasa 5V.
ST_CP - pin bertanggungjawab untuk mengemas kini status pendaftaran. Semasa merakam keadaan, adalah perlu untuk memohon BAWAH kepadanya, selepas rakaman - TINGGI, untuk mengemas kini status output. Ia perlu dihubungkan dengan pin pada Arduino. Anda boleh menyambungkan pin ini dalam tiga daftar selari.
SH_CP - pin, bertanggungjawab untuk peralihan dengan 1 bit daftar. Ia perlu dihubungkan dengan pin pada Arduino. Mereka disambungkan pada mikrosirkuit juga selari.
DS - data sedang dihantar ke pin ini, ia disambungkan ke pin pada Arduino.
Q7 '- pin ini digunakan untuk sambungan lata dengan daftar lain 74HC595.

Rajah rajah:


Puzzler piezo akan disambungkan ke pin Arduino ketiga secara bersiri dengan perintang. Sebelum memasukkan tweeter dalam litar, penulis melihat pin yang menyokong PWM, kerana ini wajib untuknya. Pada Arduino Uno, PWM menyokong 3, 5, 6, 9, 10 dan 11 pin.


Butang disambung menggunakan perintang yang dibina ke dalam Arduino, dengan satu butang yang disambungkan ke tanah dan yang lain ke pin Arduino.


Oleh itu, reka bentuk akhir kelihatan:


Bina di Breadboard
Setelah mendapat butiran tambahan, penulis mula menyusun projek itu pada papan roti mengikut skim. Rupa akan dijangkakan, kerana Breadboard membatasi kebebasan dalam penempatan komponen, dan kabel menonjol tidak membuat kesenangan estetik. Tetapi papan suapan selepas semua dimaksudkan untuk model papan roti, tetapi bukan untuk peranti siap.


Kod program.
Mempunyai kelebihan dalam pengaturcaraan, penulis memutuskan untuk menulis kod sendiri, tanpa menggunakan perkembangan orang lain. Langkah pertama ialah menulis subrutin, ia bertanggungjawab untuk berkelip semua diod dan memberi isyarat piezo apabila dihidupkan. Fungsi ini membantu mengesahkan integriti litar, sama seperti yang dilaksanakan pada banyak peranti.

Lakaran itu agak besar, maka anda boleh mempertimbangkan ciri utamanya.

Kerja LED.
Memandangkan LED diakses melalui daftar shift, pertama sekali, adalah perlu untuk melaksanakan lebih banyak rutin untuk LED. Untuk operasi yang lebih mudah dengan diod, beberapa fungsi tambahan telah dilaksanakan. Pelbagai kesan animasi diod dilaksanakan. Apabila jam tidak ditetapkan, diod yang bertanggungjawab untuk jam dan minit akan mula berkelip (sebagai jam biasa berkelip apabila tidak ditetapkan). LED yang bertanggungjawab untuk detik juga mempunyai animasi mereka sendiri, diod dapat berjalan ke kiri dan ke kanan dalam mod penggera, atau dalam mod pengaturan jam.

Gelung utama.
Program ini dikonfigurasikan untuk berfungsi seperti berikut: jam memaparkan maklumat bergantung pada keadaan semasa, dan menukar keadaannya bergantung pada penggunaan butang dan peristiwa. Semuanya kelihatan seperti keadaan bersarang yang banyak. Keadaan dioda dikemas kini setiap kali selepas memeriksa status pemasa dan butang dengan panggilan ke pegang tangan mereka.

Juga, pengarang melakukan tugas yang baik untuk operasi yang betul dari butang input dan pemasa. Kod sumber lakaran boleh dimuat turun di bawah artikel.


Lancarkan susun atur
Selepas menghidupkan projek, pada pandangan pertama, peranti berfungsi dengan betul dan stabil. Tetapi penulis mendapati cacat, jam berada di belakang oleh satu saat sejam, untuk masa yang lama ia akan menjadi kesilapan besar.


Setelah mengkaji masalah ini, didapati Arduino Uno yang asal menggunakan resonator seramik, dan ia tidak mempunyai ketepatan untuk mengukur masa dalam tempoh yang panjang. Penyelesaian yang paling rasional adalah membeli jam waktu nyata, ditambah dengan modul ini, waktu pada jam tidak akan tersesat apabila dimatikan. Penulis membeli modul Grove RTC daripada Seeed Studio. Ia adalah papan selesai dengan cip jam. Penulis menghubungkan pin modul SDA dan SCL ke Arduino pada pin A4 dan A5, GND ke tanah. Oleh kerana kuasa 5V diduduki oleh papan jam, tidak ada tempat untuk menyambung modul. Penulis memutuskan untuk memodenkan modul itu dari salah satu pin digital, yang akan terus bertenaga.Juga, penulis perlu mengubah suai kod sumber dan menambah perpustakaan jam masa sebenar.


Watch assembly
Setelah menyelesaikan kerja panjang pada kod itu, sudah tiba masanya untuk memberikan peranti melihat lengkap dan memindahkannya dari papan roti ke papan litar bercetak. Pertama sekali, adalah perlu untuk membuat pendawaian untuk lembaga. Fritzing telah digunakan untuk ini, kerana penulis sudah mempunyai idea mengenai penampilan jam tangan itu, dan dia membina gambarajah peranti. Penulis juga secara manual mengesan papan, ia mengambil banyak masa.
Projek untuk pengeluaran papan litar bercetak:


Pembuatan PCB telah dipesan di China. Studio Seeed mempunyai perkhidmatan papan Fusion PCB. Melalui Fritzing, fail itu dieksport ke format Gerber Extended, banyak pengeluar papan bekerja dengannya. Dua minggu kemudian, penulis menerima yuran yang lama ditunggu-tunggu dalam mel tersebut.


Ia hanya tersisa untuk solder sudah sedikit bahagian berdebu ke papan. Hasil selesai selepas pematerian kelihatan jauh lebih baik daripada susun atur di Papan Breadboard.


Penulis projek ini bekerja keras untuk masa yang lama dan mendapat apa yang dia mahu - jam perduaan yang unik dengan pemasa dan jam penggera. Menggunakan petak bateri, jam tangan boleh diletakkan di mana-mana sahaja. Arduino memenuhi jangkaan dan mengatasi sepenuhnya tugas itu.

binclock-master.zip [23.53 Kb] (muat turun: 175)
10
10
10

Tambah komen

    • senyumtersenyumxaxaokdontknowyahoonea
      bosawalbodohyaya-yaagresifrahsia
      maaftariandance2dance3pengampunanmembantuminuman
      berhentikawan-kawanbaikgoodgoodwiseltolaklidah
      asapbertepuk tangancraymengisytiharkanderisivejangan dengarmuat turun
      panasberalunketawa1mdamesyuaratmoskingnegatif
      not_ipopcornmenghukumbacamenakutkanmenakutkancarian
      mengejekterima kasihinito_clueumnikakutbersetuju
      burukbeeeblack_eyeblum3memerahbermegahkebosanan
      ditapiskesenanganrahsia2mengancamkemenanganyusun_bespectacled
      shokrespektloldiingatiselamat datangkrutoyya_za
      ya_dobryipembantune_huliganne_othodifludlarangantutup

Kami menasihati anda untuk membaca:

Bawa ia untuk telefon pintar ...