Isi kandungan:

Jam Penggera Binari Berasaskan Arduino: 13 Langkah (dengan Gambar)
Jam Penggera Binari Berasaskan Arduino: 13 Langkah (dengan Gambar)

Video: Jam Penggera Binari Berasaskan Arduino: 13 Langkah (dengan Gambar)

Video: Jam Penggera Binari Berasaskan Arduino: 13 Langkah (dengan Gambar)
Video: WEBINAR NASIONAL MGTIK MADRASAH KAB. SUKABUMI BERSAMA UBSI KAMPUS SUKABUMI 2024, Julai
Anonim
Image
Image

Oleh Basement EngineeringFollow More oleh pengarang:

Kaunter Laser Rakyat DIY
Kaunter Laser Rakyat DIY
Membina Perahu Memandu Sendiri (ArduPilot Rover)
Membina Perahu Memandu Sendiri (ArduPilot Rover)
Membina Perahu Memandu Sendiri (ArduPilot Rover)
Membina Perahu Memandu Sendiri (ArduPilot Rover)
Lampu Samping Tempat Tidur yang Sempurna dan Dok Telefon
Lampu Samping Tempat Tidur yang Sempurna dan Dok Telefon
Lampu Samping Tempat Tidur yang Sempurna dan Dok Telefon
Lampu Samping Tempat Tidur yang Sempurna dan Dok Telefon

Tentang: Hai, nama saya Jan dan saya pembuatnya, saya suka membina dan mencipta sesuatu dan saya juga pandai membaiki barang. Oleh kerana saya fikir saya selalu gemar membuat perkara baru dan itulah yang terus saya lakukan sehingga… Lebih Lanjut Mengenai Kejuruteraan Basement »

Hey, hari ini saya ingin menunjukkan cara membina salah satu projek terbaru saya, jam penggera binari saya.

Terdapat banyak jam Binari yang berbeza di internet, tetapi ini mungkin yang pertama, dibuat dari jalur LED yang berwarna-warni, yang juga dilengkapi fungsi penggera dan butang sentuh, untuk mengatur hal-hal seperti waktu dan warnanya.

Jangan biarkan penampilan yang rumit menakutkan anda. Dengan sedikit penjelasan, membaca binari sebenarnya tidak sekeras yang disangka. Sekiranya anda ingin mempelajari sesuatu yang baru, saya ingin menolong anda melakukannya di kemudian hari.

Izinkan saya memberitahu anda sedikit mengenai kisah di sebalik projek ini:

Pada asalnya saya merancang untuk membina jam "normal", yang menggunakan LED seperti tangannya, tetapi saya tidak mempunyai lampu LED yang mencukupi.

Sooo, apa yang anda lakukan apabila anda ingin memaparkan waktu dengan sebilangan kecil LED?

Anda pergi perduaan, dan itulah yang saya lakukan di sini.

Jam ini adalah versi ketiga seumpamanya. Saya membina prototaip yang sangat mudah tepat setelah idea projek memukul saya dan membawanya ke Maker Faire di Hannover, untuk melihat pendapat orang mengenainya. Semasa saya berada di sana, saya menerima banyak maklum balas positif dan menarik serta idea penambahbaikan.

Hasil daripada semua idea dan waktu berfikir, bermain-main dan memprogram, adakah jam penggera yang agak menarik ini, yang mempunyai lebih banyak ciri daripada versi 1.0 dan hari ini kita akan melalui setiap langkah proses pembinaan, sehingga anda dapat membina sendiri dengan mudah.

Terdapat juga Video yang sangat terperinci di Youtube, sekiranya anda tidak mahu membaca semuanya.

Langkah 1: Dapatkan Barang Anda

Dapatkan Barang Anda
Dapatkan Barang Anda
Dapatkan Barang Anda
Dapatkan Barang Anda
Dapatkan Barang Anda
Dapatkan Barang Anda

Berikut adalah sedikit senarai semua komponen dan alat yang anda perlukan untuk membina jam binari anda sendiri.

Elektronik:

  • 18 LED Ws2811 yang ditekankan (mis. Neopixels) pada jalur dengan 60 LED per m (ebay)
  • Arduino Nano (dengan pemproses ATMega328) (ebay)
  • Modul 1307 RTC (ebay)
  • Butang sentuh kapasitif 4X (ebay)
  • Sensor suhu digital bs18b20 (ebay)
  • LDR (ebay)
  • pembesar suara komputer riba / telefon pintar atau buzzer piezo
  • Transistor NPN 2222A (atau yang serupa)
  • pengepala lelaki
  • tajuk wanita bersudut (ebay)
  • Perintang 1kOhm
  • Perintang 4, 7kOhm
  • Perintang 10kOhm
  • Wayar
  • Lubang PCB prototaip 7x5cm 24x18 (ebay)
  • dawai perak (wayar perhiasan) (ebay)
  • Penyesuai mini usb 90 ° (ebay)

Bahan lain

  • Balut vinil
  • Skru kepala bebibir 4X 45mm m4 (ebay)
  • Mesin basuh logam 32X m4
  • Mur kunci 4X m4
  • Kacang 28X m4
  • Kekalahan PCB tembaga 4X 10mm m3 (ebay)
  • Skru 8X 8mm m3 (ebay)
  • kepingan aluminium
  • 2 mm lembaran akrilik susu
  • Lembaran akrilik jernih 2mm
  • Lembaran MDF 3 mm
  • pita dua sisi

Alat

  • kabel USB mini
  • komputer yang menjalankan Arduino IDE
  • Bit gerudi 3, 5 mm
  • Bit gerudi 4, 5 mm
  • latih tubi
  • pisau pemotong
  • mengatasi gergaji
  • ion pematerian
  • gunting pemotong logam
  • fail
  • kertas pasir

Templat (sekarang dengan dimensi)

  • PDF
  • Cabutan Pejabat Libre

Kod

  • Lakaran
  • Perpustakaan butang
  • Perpustakaan pemasa
  • Perpustakaan Jukebox
  • RTClib yang diubah suai
  • Perpustakaan Adafruit Neopixel
  • Perpustakaan Arduino-Temperature-Control

Langkah 2: Potong Panel Depan dan Belakang

Potong Panel Depan dan Belakang
Potong Panel Depan dan Belakang
Potong Panel Depan dan Belakang
Potong Panel Depan dan Belakang
Potong Panel Depan dan Belakang
Potong Panel Depan dan Belakang
Potong Panel Depan dan Belakang
Potong Panel Depan dan Belakang

Bahagian pertama yang akan kami buat ialah panel depan akrilik. Kami menandakan di mana kami mahu pemotongan kami pergi, sambil ingat, bahawa kami mahukan sedikit toleransi untuk pengamplasan. Kemudian kami mengikis akrilik dengan pisau pemotong kami. Setelah kita melakukannya selama 10 hingga 20 kali kita mempunyai alur. Kita kemudian boleh meletakkan kebun itu di tepi meja dan membengkokkan akrilik sehingga pecah.

Setelah panel depan dipotong mengikut ukuran, kami memotong panel belakang dari sekeping MDF. Kita boleh menggunakan gergaji untuk mengatasi ini tetapi pisau pemotong juga berfungsi. Kita hanya perlu mengepit MDF ke sekeping kayu sekerap dan mengikisnya dengan pisau pemotong kita sehingga pisau masuk dan kita mempunyai dua kepingan individu.

Sekarang kita pasangkan kedua panel bersama-sama dan pasangkan setiap sisi agar sesuai.

Setelah ini selesai, kami memotong templat pertama dan meletakkannya di kedua panel menggunakan beberapa pita dan mula menggerudi lubang yang ditandai.

Mula-mula kita menggerudi lubang 4, 5 mm ke setiap 4 sudut. Oleh kerana akriliknya sangat rapuh dan kita tidak mahu ia pecah, kita akan mulakan dengan gerudi kecil dan berusaha sehingga kita mencapai diameter lubang yang diinginkan. Kemudian kami menggunakan templat untuk memoles sudut ke bentuk yang betul.

Langkah 3: Selesaikan Panel Belakang

Selesaikan Panel Belakang
Selesaikan Panel Belakang
Selesaikan Panel Belakang
Selesaikan Panel Belakang
Selesaikan Panel Belakang
Selesaikan Panel Belakang
Selesaikan Panel Belakang
Selesaikan Panel Belakang

Buat masa ini, kita boleh meletakkan panel depan ke samping dan menempelkan templat kedua ke panel belakang, di mana kita perlu menggunakan bit gerudi 3, 5mm untuk mengebor lubang untuk pemadaman 4 pcb kita, serta 4 lubang yang menandakan tepi untuk tingkap belakang kecil.

Kami kemudian menggunakan gergaji coping kami untuk memotong tingkap dan melicinkan tepi, dengan fail. Anda juga tidak mahu lupa menggerudi lubang kabel USB mini (saya pernah mendengar tentang pembuat yang tidak begitu fokus, yang cenderung melakukan perkara seperti itu: D).

Oleh kerana sekarang kita sudah selesai memotong panel belakang, kita boleh terus membungkusnya dalam bungkus vinil. Kami hanya memotong dua keping ke ukuran yang betul dan menerapkan yang pertama ke satu sisi. Kemudian kami memotong pelek dan melepaskan tingkap. Pengering rambut dapat membantu membuat semua lubang kelihatan lagi, jadi kita juga boleh memotongnya. Setelah melakukan perkara yang sama untuk pihak lain, kami menggunakan templat seterusnya dan teknik mengikis dan memecahkan kami untuk membuat tetingkap akrilik kecil untuk panel belakang kami.

Langkah 4: Buat Panel LED

Buat Panel LED
Buat Panel LED
Buat Panel LED
Buat Panel LED
Buat Panel LED
Buat Panel LED

Sekarang kita melihat kemuncak projek ini, dalam erti kata yang paling harfiah. Panel LED.

Kami menggunakan gunting pemotong logam kami untuk memotong kepingan 12, 2cm x 8cm dari kepingan logam. Berhati-hatilah semasa melakukan ini, kerana gunting menghasilkan tepi yang sangat tajam. Kami akan menghaluskan mereka dengan fail kami dan beberapa kertas pasir. Kemudian kami menambah templat kami yang seterusnya untuk menggerudi lubang untuk skru dan wayar.

Masa untuk menyiapkan LED sebenar.

Pertama, kami memotongnya menjadi tiga jalur masing-masing 6 LED. Sebilangan jalur LED dilengkapi dengan lapisan pelekat yang sangat nipis atau tidak ada pelekat sama sekali, jadi kami akan melekatkan jalur kami ke sekeping pita dua sisi dan memotongnya dengan ukuran dengan pisau. Ini akan melekat pada plat logam dan, walaupun ini bukan penyelesaian profesional, akan melindungi pelindung tembaga dari permukaan logam di bawahnya.

Sebelum kita melekatkan jalur pada panel, kita membersihkannya dengan alkohol. Semasa memasang LED, kita harus memastikan bahawa meletakkannya di tempat yang tepat dan juga ke arah yang betul. Anak panah kecil pada jalur LED menunjukkan arah, di mana data bergerak melalui jalur.

Seperti yang anda lihat pada gambar kelima, garis data kami berasal dari sudut kiri atas panel, melalui jalur pertama hingga ke sebelah kanan, daripada kembali ke permulaan jalur berikut di sebelah kiri dan seterusnya. Jadi semua anak panah kita harus menunjuk ke sebelah kanan.

Mari panaskan ion pemateri kita dan masukkan timah ke alas tembaga, juga pada wayar kita. Garis data dihubungkan seperti yang baru saya nyatakan, sementara kami hanya menyambungkan pad tambah dan tolak jalur secara selari.

Setelah jalur dililit, kami menggunakan pisau untuk mengangkat hujung setiap jalur dengan hati-hati sambil menahan LED ke bawah, sehingga mereka tetap menunjuk ke atas. Kemudian kami meletakkan beberapa gam panas di bawahnya untuk melindungi sendi pematerian kami.

Setelah ini selesai dan, kami menambahkan beberapa pin header ke wayar yang masuk ke PCB. Panjang wayar itu kira-kira 16cm. Untuk lebih yakin, bahawa panel logam tidak kekurangan apa-apa, kami menggunakan Multimeter untuk mengukur rintangan antara semua pin. Sekiranya ia menunjukkan apa-apa di atas 1kOhm, semuanya baik-baik saja.

Sekarang kita dapat menghubungkannya dengan Arduino, menjalankan uji strandt dan menikmati warnanya.

Langkah 5: Buat Panduan Ringan

Buat Panduan Ringan
Buat Panduan Ringan
Buat Panduan Ringan
Buat Panduan Ringan
Buat Panduan Ringan
Buat Panduan Ringan
Buat Panduan Ringan
Buat Panduan Ringan

Sekiranya kita meletakkan panel led tepat di belakang akrilik susu, boleh menjadi agak sukar untuk membezakan LED individu. Ini akan menjadikan jam kita lebih sukar dibaca, daripada yang sudah ada.

Untuk menyelesaikan masalah ini, kita akan menjadikan diri kita sedikit panduan ringan. Untuk ini kita hanya memotong sekeping MDF lain, yang mempunyai ukuran yang sama dengan panel depan. Kemudian kita menambah templat lain dan menggerudi lapan belas lubang 3, 5mm untuk LED, serta empat lubang 4, 5 mm untuk skru ke dalamnya. Kami kemudian boleh menjepitnya ke panel depan dan menggunakan beberapa kertas pasir untuk menyelaraskan keduanya.

Seperti yang anda lihat pada gambar terakhir, cahaya kelihatan lebih fokus sekarang.

Langkah 6: Buat Bingkai Butang

Buat Bingkai Butang
Buat Bingkai Butang
Buat Bingkai Butang
Buat Bingkai Butang
Buat Bingkai Butang
Buat Bingkai Butang

Komponen lampiran terakhir, yang akan kita buat, adalah bingkai butang.

Kami, sekali lagi, memotong sekeping MDF dengan ukuran yang tepat dan menambahkan templat padanya, kemudian kami menggerudi semua lubang yang diperlukan dan menggunakan gergaji penyangga kami, untuk memotong bahagian tengahnya.

Rangka kami sepatutnya memegang 4 butang sentuh, sensor cahaya dan pembesar suara kecil kita di tempat. Sebelum kita melekatkannya pada bingkai, kita memotong beberapa helai penutup yang lebih kecil dari MDF. Kami kemudian melekatkan komponen kami ke penutup tersebut dan menambah wayar padanya.

Pad kuasa butang sentuh disambungkan secara selari, sementara setiap saluran output mendapat wayar individu. Ini juga merupakan saat yang baik untuk menguji apakah mereka semua bekerja. Oleh kerana sensor cahaya memerlukan 5 Volt di satu sisi, kita hanya boleh menghubungkannya ke pad penggera VCC dan memasang kabel ke kaki yang lain.

Setelah panel disiapkan, kami memotong sisi bingkai, untuk memberi ruang kepada mereka dan wayarnya.

Kemudian kami mengeluarkan habuk kayu dari semua kepingan dengan pembersih vakum dan menutupnya dalam bungkus vinil.

Kami menggunakan pisau ketepatan untuk mengeluarkan kepingan vinil, tepat di atas kawasan sensitif modul sentuh kami. Dengan pita dua sisi, kita boleh melampirkan butang kita sendiri ke MDF. Saya membuat butang saya dari busa getah, yang memberikan tekstur lembut dan lembut, tetapi anda boleh menggunakan bahan bukan logam yang anda mahukan.

Pada bingkai kami menggunakan pisau kami untuk membebaskan sedikit MDF sekali lagi, yang memberi kami permukaan yang mencengkam untuk hotglue. Kemudian kita akhirnya dapat melekatkan komponen ke sisi bingkai kita.

Langkah 7: Selesaikan PCB Utama

Memasukkan PCB Utama
Memasukkan PCB Utama
Memasukkan PCB Utama
Memasukkan PCB Utama
Memasukkan PCB Utama
Memasukkan PCB Utama

Mari tinggalkan bingkai seperti sekarang dan teruskan ke PCB. Anda dapat melihat susun atur PCB pada gambar pertama.

Kita mulakan dengan meletakkan komponen dengan profil terendah di papan litar. Komponen terkecil adalah jambatan wayar, yang saya ingat sedikit terlambat, jadi saya mula menggunakan perintang. Kami memasangkan komponen kami di tempat dan beralih ke set komponen yang lebih tinggi seterusnya.

Seterusnya kami mempunyai pin header wanita kami. Untuk menjimatkan sedikit ruang dan untuk menyambungkan elektronik kami dari sisi, kami memasangkannya dalam sudut 90 darjah.

Transistor tidak betul-betul sesuai dengan jarak lubang 2, 54mm dari PCB kami, jadi kami menggunakan tang kami dengan hati-hati membengkokkan kaki mereka ke bentuk, seperti yang ditunjukkan pada gambar kedua. Kami mula-mula memateri salah satu kaki mereka di tempatnya dan memutar PCB. Kami kemudian memanaskan semula sendi pematerian dan menggunakan jari atau sepasang tang untuk meletakkan komponen dengan betul. Sekarang kita boleh memasangkan dua kaki yang lain di tempatnya.

Selepas semua komponen kecil, kami memasangkan Arduino dan modul jam masa nyata kami di tempat. Modul RTC juga tidak sesuai dengan jarak lubang dengan baik, jadi kami hanya akan melengkapkan sisi, yang mempunyai 7 pad solder dengan pin header. Kami juga meletakkan beberapa pita di bawahnya, untuk mengelakkan litar pintas.

Oleh kerana semua komponen kami disolder di tempatnya, sekarang saatnya untuk membuat sambungan di sebelah lain papan. Untuk ini, kami akan mengeluarkan wayar yang tidak bertebat. Sepasang tang boleh digunakan, untuk meluruskannya. Kemudian kami memotong wayar menjadi kepingan yang lebih kecil dan memasangkannya ke PCB.

Untuk membuat sambungan, kami memanaskan sambungan pematerian dan memasukkan wayar. Kami kemudian menyimpan ion pematerian di atasnya, sehingga mencapai suhu yang betul dan pateri melampirkannya dan kami mendapat sambungan, yang kelihatan seperti yang terdapat dalam gambar. Sekiranya kita tidak memanaskan wayar, kita mungkin berakhir dengan sendi sejuk, yang akan kelihatan serupa dengan contoh lain dan tidak berfungsi dengan baik. Kita boleh menggunakan pemotong wayar kita, untuk menekan wayar ke bawah semasa menyolder dan memastikan bahawa ia meletakkan rata pada PCB. Pada jalan sambungan yang lebih lama, kami memasangkannya ke satu pad setiap 5 hingga 6 lubang sehingga kami sampai ke sudut atau komponen seterusnya.

Di sudut, kami memotong wayar di atas separuh pertama soldering dan solder hujungnya. Kami kemudian mengambil sekeping wayar baru dan terus dari sana dalam sudut yang betul.

Membuat sambungan wayar kosong itu agak sukar dan memerlukan sedikit kemahiran, jadi jika anda melakukan ini untuk pertama kalinya, pastinya bukan idea yang buruk untuk mempraktikkannya pada PCB sekerap, sebelum mencuba melakukannya pada yang sebenarnya.

Setelah selesai menyolder, kami menyemak semula sambungannya dan memastikan bahawa kami tidak menghasilkan litar pintas. Kemudian kita boleh meletakkan PCB di dalam bingkai butang dan menggunakannya sebagai rujukan untuk panjang wayar bingkai yang diperlukan. Kami kemudian memotong wayar dengan panjang yang betul dan menambahkan pin header lelaki padanya.

Semua sambungan 5V dan arde dari butang sentuh digabungkan menjadi penyambung 2pin, Kabel output 4 mendapat penyambung 4pin dan garis sensor cahaya serta wayar dua pembesar suara digabungkan menjadi penyambung tiga pin. Jangan lupa menandakan satu sisi setiap soket dan penyambung dengan alat tajam, atau pita, supaya anda tidak memasangnya secara tidak sengaja.

Langkah 8: Pasang Jam

Pasang Jam
Pasang Jam
Pasang Jam
Pasang Jam
Pasang Jam
Pasang Jam
Pasang Jam
Pasang Jam

Selepas ini saya kembali ke panel depan dan menggunakan pelekat dengan berhati-hati, yang terbuat dari kerajang pencetak laser lutsinar, sebagai sentuhan terakhir.

Walaupun saya menerapkannya dengan berhati-hati, saya tidak dapat memperoleh hasil yang bebas gelembung, yang sayangnya dapat dilihat dengan jelas setelah diperiksa lebih dekat. Kerajang juga tidak melekat di sudut, jadi saya tidak dapat mengesyorkan penyelesaian ini.

Ia mungkin boleh dilakukan dengan pelekat yang lebih baik, atau, jika anda pandai melukis, anda boleh menambahkan angka dengan tajam.

Sekarang kita mempunyai semua komponen dan dapat memasang jam kita.

Kita mulakan dengan meletakkan panduan cahaya dan panel depan bersama-sama. Setelah semua 4 baut masuk, kami menyelaraskan kedua panel dan kemudian mengetatkannya. Beberapa kacang kemudian muncul panel cahaya, di mana kita harus melihat arahnya. Kabel harus berada di bahagian atas.

Bahagian ketiga, adalah bingkai butang. Perlu diingat bahawa, apabila melihat dari sebelah depan, pembesar suara harus berada di sebelah kanan jam. Tarik kabel panel led anda ke tengah bingkai, sebelum anda memasangnya di tempatnya.

Sekarang kita meletakkan bahagian depan pemasangan dan beralih ke panel belakang. Dalam gambar, anda juga dapat melihat Adaptor USB mini 90 darjah buatan saya yang cantik. Saya mengaitkan anda penyesuai yang betul, jadi anda tidak perlu menghadapi masalah seperti ini. Anda hanya boleh memasangkan penyesuai anda dan jalankan kabel melalui lubang di panel belakang.

Kami mengambil skru M3 dan spacer PCB kami, untuk memperbaiki tingkap kecil. Penting untuk mengetatkan skru dengan berhati-hati, kerana kita tidak mahu merosakkan akrilik kita. Kemudian kami mengambil PCB kami, pasangkan penyesuai kami dan pasangkannya ke spacer. Bahagian komponen harus menghadap ke tingkap, sementara port USB Arduino menghadap ke bawah jam.

Kemudian kami pasangkan semua penyambung dari unit depan, sambil mengingat kekutuban dan memerhatikan semua wayar dengan teliti ke dalam jam. Kita kemudian boleh menutupnya dengan panel belakang dan mengetatkan 4 kacang kunci yang tinggal.

Pada akhirnya, anda ingin mempunyai mesin basuh di setiap sisi setiap panel, sementara panduan cahaya diletakkan tepat di belakang panel depan. Kami mempunyai satu kacang antara panduan cahaya dan panel yang dipimpin dan dua lagi, memisahkannya dari bingkai butang. Anda juga dapat melihatnya dalam gambar terakhir.

Oleh kerana saya menggunakan bolt pendek dengan panjang 40mm, saya hanya mempunyai 3 kacang yang menahan panel belakang dan bingkai. Dengan bolt 45 mm yang betul, anda akan menambah mur lain di sini, serta satu atau dua mesin basuh tambahan. Di akhir pemasangan, kami mempunyai kunci pengunci, supaya semuanya tetap di tempatnya.

Langkah 9: Muat naik Kod dan Kalibrasi Sensor Cahaya

Muat naik Kod dan Kalibrasi Sensor Cahaya
Muat naik Kod dan Kalibrasi Sensor Cahaya
Muat naik Kod dan Kalibrasi Sensor Cahaya
Muat naik Kod dan Kalibrasi Sensor Cahaya
Muat naik Kod dan Kalibrasi Sensor Cahaya
Muat naik Kod dan Kalibrasi Sensor Cahaya

Masa untuk memuat naik kod kami.

Mula-mula kita memuat turun semua fail yang diperlukan dan menyah zipnya. Kami kemudian membuka folder perpustakaan Arduino kami dan memasukkan semua perpustakaan baru ke dalamnya.

Sekarang kami membuka lakaran kalibrasi sensor cahaya, yang akan memberi kami nilai terang dan gelap untuk fungsi dimmer automatik jam. Kami memuat naiknya, buka monitor bersiri dan ikuti arahan di skrin.

Selepas itu kita buka kod sebenar jam binari dan ganti dua nilai dengan yang baru kita ukur.

Kami menutup semua tetingkap lain, memuat naik kod ke jam kami dan kami selesai.

Masa untuk bermain-main dengan alat baru kami.

Langkah 10: Pengenalan Pantas Sistem Binari

Pengenalan Pantas Sistem Perduaan
Pengenalan Pantas Sistem Perduaan
Pengenalan Pantas Sistem Perduaan
Pengenalan Pantas Sistem Perduaan
Pengenalan Pantas Sistem Perduaan
Pengenalan Pantas Sistem Perduaan
Pengenalan Pantas Sistem Perduaan
Pengenalan Pantas Sistem Perduaan

Sebelum kita teruskan, saya ingin menjawab satu soalan yang mungkin sudah terlintas di fikiran anda, "Bagaimana di dunia anda membaca jam ini?"

Baiklah, untuk ini saya ingin memberikan pengenalan ringkas mengenai sistem binari.

Kita semua biasa dengan Sistem perpuluhan, di mana setiap digit boleh mempunyai 10 keadaan yang berbeza, antara 0 hingga 9. Dalam binari setiap digit hanya boleh mempunyai dua keadaan, sama ada 1 atau 0 itu sebabnya anda boleh menggunakan sesuatu yang semudah paparkan nombor perduaan.

Untuk memaparkan nombor yang lebih parut daripada 9 dalam perpuluhan, kami menambah lebih banyak digit. Setiap digit dilengkapi dengan pengganda tertentu. Digit pertama dari kanan dilengkapi dengan pengganda 1 yang seterusnya adalah 10 dan digit berikutnya adalah 100. Dengan setiap digit baru pengganda adalah sepuluh kali lebih besar daripada digit sebelumnya. Jadi kita tahu bahawa nombor dua meletakkan satu digit di sebelah kiri, mewakili nombor 20. Sementara dua digit di sebelah kiri, ia mewakili 200.

Dalam sistem binari setiap digit juga dilengkapi dengan pengganda. Namun, kerana setiap digit hanya boleh mempunyai dua keadaan yang berbeza, setiap pengganda baru dua kali lebih besar daripada yang sebelumnya. Oh ya, digit binari dipanggil Bits. Oleh itu, mari kita lihat contoh pertama kita, jika kita meletakkan 1 di kedudukan terendah, ia adalah 1 sederhana, tetapi jika kita meletakkannya di kedudukan lebih tinggi seterusnya, di mana pengganda kita adalah 2, ia mewakili nombor 2 dalam binari.

Bagaimana dengan contoh yang sedikit lebih rumit di bahagian bawah gambar. Bit ketiga dan pertama dihidupkan. Untuk mendapatkan nombor perpuluhan yang ditunjukkan di sini, kita hanya menambah nilai dua bit. Jadi 4 * 1 + 1 * 1 atau 4 + 1 memberi kita nombor 5.

8 bit disebut sebagai bait, jadi mari kita lihat nombor apa yang kita dapat jika kita mengisi keseluruhan bait dengan satu.1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 iaitu 255 yang merupakan nilai tertinggi yang dapat dimiliki oleh satu bait.

Ngomong-ngomong, semasa dalam sistem perpuluhan digit dengan pengganda tertinggi selalu mendahului, anda mempunyai dua cara untuk menuliskan nombor secara binari. Kedua-dua kaedah tersebut disebut byte paling signifikan pertama (LSB) dan bait pertama paling signifikan (MSB). Sekiranya anda ingin membaca nombor perduaan, anda harus tahu yang mana satu daripada dua format yang digunakan. Oleh kerana lebih dekat dengan sistem perpuluhan, jam binari kami menggunakan varian MSB.

Mari kita kembali ke contoh dunia nyata kita. Seperti yang disorot dalam gambar keenam, jam kita mempunyai 4 bit untuk memaparkan jam. Daripada kami mempunyai 6 bit untuk minit dan juga 6 bit untuk yang kedua. Lebih jauh lagi kita mempunyai satu bit am / pm.

Baiklah, beritahu saya jam berapa dalam gambar ke-6, daripada melangkau ke gambar terakhir.. ….

pada bahagian jam kita mempunyai 2 + 1 iaitu 3 dan bit pm menyala jadi sudah petang. Selanjutnya pada minit 32 + 8, iaitu 40. Untuk detik kita mempunyai 8 + 4 + 2 iaitu 14. Jadi pukul 3:40:14 pm atau 15:40:14.

Tahniah, anda baru belajar membaca jam binari. Sudah tentu memerlukan beberapa membiasakan diri dan pada mulanya anda harus menambahkan nombor bersama-sama, setiap kali anda ingin tahu jam berapa, tetapi serupa dengan jam analog tanpa dail, anda akan terbiasa dengan corak LED lebih masa.

Dan itu adalah sebahagian daripada projek ini, mengambil sesuatu yang abstrak seperti sistem binari ke dunia nyata dan mengenalinya dengan lebih baik.

Langkah 11: Menggunakan Jam Penggera Binari

Menggunakan Jam Penggera Binari
Menggunakan Jam Penggera Binari
Menggunakan Jam Penggera Binari
Menggunakan Jam Penggera Binari
Menggunakan Jam Penggera Binari
Menggunakan Jam Penggera Binari

Sekarang kita akhirnya mahu bermain-main dengan jam, jadi mari kita lihat kawalannya dengan cepat.

Perisian ini dapat membezakan antara satu ketukan butang, satu ketukan dua kali dan satu ketukan panjang. Oleh itu, setiap butang boleh digunakan untuk pelbagai tindakan.

Ketukan dua kali pada butang atas atau bawah mengubah mod warna LED. Anda boleh memilih antara mod warna statik dan pudar yang berbeza serta mod suhu. Sekiranya anda menggunakan salah satu mod warna statik, menahan butang atas atau bawah akan mengubah warnanya. Dalam mod pudar, satu ketukan mengubah kelajuan animasi.

Untuk menetapkan mod redup, anda ketuk dua kali butang ok. Panel dipimpin menunjukkan mod set dengan berkelip berkali-kali.

  • Satu masa bermaksud tidak redup.
  • Dua kali bermaksud kecerahan dikawal oleh sensor cahaya.
  • Tiga kali dan LED mati secara automatik setelah 10 saat tidak aktif.
  • Empat kali dan kedua-dua mod redup digabungkan.

Menekan butang ok dengan lama akan membawa anda ke mod tetapan waktu, di mana anda boleh menggunakan anak panah atas dan bawah untuk mengubah nombor. Satu ketukan ke butang ok membawa anda dari jam ke minit, satu ketukan lagi dan anda boleh mengatur detik. Selepas itu, satu ketukan terakhir menjimatkan masa baru. Sekiranya anda memasuki mod tetapan waktu, anda hanya boleh menunggu selama 10 saat dan jam akan meninggalkannya secara automatik.

Seperti butang ok, menekan lama butang penggera membolehkan anda mengatur penggera. Ketik dua kali butang penggera mengaktifkan atau menyahaktifkan penggera.

Sekiranya jam berdering, anda ketuk satu kali butang penggera, untuk membiarkannya tidur selama 5 minit atau menahannya, untuk mematikan alarm.

Ini adalah semua fungsi yang ada selama ini. Saya mungkin menambah lebih banyak lagi pada masa akan datang yang anda dapat, jika anda memuat turun versi firmware terkini.

Langkah 12: Memahami Kod (pilihan)

Memahami Kod (pilihan)
Memahami Kod (pilihan)

Saya tahu bahawa ramai orang tidak suka pengaturcaraan. Nasib baik bagi mereka, di samping tidak diperlukan pengetahuan pengaturcaraan untuk membina dan menggunakan jam binari ini. Oleh itu, jika anda tidak mementingkan aspek pengaturcaraan, anda boleh melangkau langkah ini.

Walau bagaimanapun, jika anda berminat dengan bahagian pengekodan, saya ingin memberikan gambaran umum mengenai program ini.

Menjelaskan setiap sedikit butiran kod jam akan menjadi instruksinya sendiri, jadi saya akan membuatnya mudah dengan menjelaskan program dengan cara yang berorientasikan objek.

Sekiranya anda tidak tahu maksudnya, pengaturcaraan berorientasikan objek (OOP) adalah konsep kebanyakan bahasa pengaturcaraan moden seperti C ++. Ini membolehkan anda mengatur fungsi dan pemboleh ubah yang berbeza ke dalam kelas yang disebut. Kelas adalah templat dari mana anda boleh membuat satu atau beberapa objek. Setiap objek ini mendapat Nama dan kumpulan pemboleh ubahnya sendiri.

Contohnya, kod jam menggunakan beberapa objek MultiTouchButton seperti alarmButton. Itu adalah objek dari kelas MultiTouchButton, yang merupakan sebahagian daripada perpustakaan Button saya. Perkara yang menarik mengenai objek tersebut ialah, anda dapat berinteraksi dengannya seperti objek dunia nyata. Sebagai contoh, kita dapat memeriksa, jika butang penggera diketuk dua kali dengan memanggil alarmButton.wasDoubleTapped (). Tambahan pula, pelaksanaan fungsi ini tersembunyi dengan baik dalam fail yang berbeza dan kita tidak perlu risau untuk memecahkannya, dengan mengubah perkara lain dalam kod kita. Kemasukan cepat ke dunia pengaturcaraan berorientasikan objek, boleh didapati di laman web Adafruit.

Seperti yang anda lihat dalam grafik di atas, program jam mempunyai sekumpulan objek yang berbeza.

Kami baru sahaja bercakap mengenai objek butang, yang dapat menafsirkan isyarat input sebagai ketukan, ketukan dua kali atau tekan lama.

Kotak jukebox, seperti namanya, dapat membuat bising. Ia mempunyai beberapa melodi, yang dapat dimainkan melalui pembesar suara kecil.

Objek binaryClock menguruskan tetapan masa dan penggera, serta menonton penggera. Lebih jauh lagi, ini adalah masa dari modul rtc dan mengubahnya menjadi penyangga maklumat binari untuk ledPanel.

ColorController merangkumi semua fungsi kesan warna dan menyediakan colorBuffer untuk ledPanel. Ia juga menyelamatkan keadaannya di Arduinos EEProm.

Yang redup menjaga kecerahan jam. Ia mempunyai mod berbeza yang dapat dilalui oleh pengguna. Mod semasa juga disimpan di EEProm.

The ledPanel menguruskan penyangga yang berbeza untuk nilai warna, nilai kecerahan dan keadaan binari setiap LED. Setiap kali fungsi pushToStrip () dipanggil, ia akan menutupnya dan menghantarnya ke jalur led.

Semua objek "dihubungkan" melalui utama (file dengan fungsi setup dan loop), yang hanya merangkumi beberapa fungsi untuk melakukan 3 tugas penting.

  1. Mentafsirkan input pengguna - Ia mendapat input dari objek 4 butang dan memasukkannya melalui logik. Logik ini memeriksa keadaan jam semasa untuk menentukan, jika jam berada dalam keadaan normal, mod tetapan waktu atau deringan dan memanggil fungsi yang berbeza dari objek lain dengan sewajarnya.
  2. Menguruskan komunikasi antara objek - Ia sentiasa meminta objek binaryClock, jika ada maklumat baru yang tersedia atau jika penggera itu Berdering (). Sekiranya mempunyai Maklumat baru, ia akan mendapat maklumatBuffer dari binaryClock dan menghantarnya ke objek ledPanel. Sekiranya jam berdering, ia akan memulakan jukebox.
  3. Mengemas kini objek - Setiap objek program mempunyai prosedur pembaruan, yang digunakan untuk perkara seperti memeriksa input atau mengubah warna LED. Mereka perlu dipanggil berulang kali dalam fungsi gelung agar jam berfungsi dengan baik.

Itu akan memberi anda pemahaman umum tentang bagaimana setiap kod itu bekerjasama. Sekiranya anda mempunyai soalan yang lebih khusus, anda boleh bertanya kepada saya.

Oleh kerana Kod saya jauh dari sempurna, saya akan memperbaikinya di masa hadapan, jadi beberapa fungsi mungkin akan berubah. Perkara yang menarik mengenai OOP adalah, ia masih akan berfungsi dengan cara yang hampir sama dan anda masih boleh menggunakan grafik untuk memahaminya.

Langkah 13: Perkataan Akhir

Perkataan Akhir
Perkataan Akhir

Saya gembira kerana anda terus membaca hingga ke tahap ini. Ini bermakna projek saya tidak terlalu membosankan:).

Saya memasukkan banyak kerja ke dalam jam kecil ini dan lebih banyak lagi kerja dalam semua dokumentasi dan video, untuk memudahkan anda, membina Jam penggera Binari anda sendiri. Saya harap usaha saya sia-sia dan saya dapat mengaitkan anda dengan idea hebat untuk projek hujung minggu anda yang seterusnya atau sekurang-kurangnya, memberi anda inspirasi.

Saya ingin mendengar pendapat anda mengenai jam di komen di bawah:).

Walaupun saya cuba merangkumi setiap butiran, saya mungkin terlepas satu atau dua perkara. Oleh itu, jangan ragu untuk bertanya, jika masih ada pertanyaan.

Seperti biasa, terima kasih banyak kerana membaca dan senang membuat.

Peraduan LED 2017
Peraduan LED 2017
Peraduan LED 2017
Peraduan LED 2017

Naib Johan dalam Peraduan LED 2017

Disyorkan: