Isi kandungan:

Jam Jimat Siang yang Mudah: 7 Langkah
Jam Jimat Siang yang Mudah: 7 Langkah

Video: Jam Jimat Siang yang Mudah: 7 Langkah

Video: Jam Jimat Siang yang Mudah: 7 Langkah
Video: Pantas saja Rejeki jadi SERET..jika menemukan 5 benda ini di sekitar Rumah musnahkan ⁉️ 2024, November
Anonim
Jam Penjimatan Siang yang Mudah
Jam Penjimatan Siang yang Mudah
Jam Penjimatan Siang yang Mudah
Jam Penjimatan Siang yang Mudah

Cerita

Projek ini dimulakan sebagai cabaran untuk saya belajar pengaturcaraan (pengekodan) dengan Arduino Uno dan satu paparan LCD 1602A, saya pertama kali ingin mendorong Arduino ke tahap yang tepat. Ini adalah projek untuk membina jam tanpa menggunakan modul RTC (modul Jam Waktu Sebenar) dan selanjutnya tidak menggunakan penundaan (); perintah kerana kelewatan (); perintah menghentikan kod untuk jangka masa yang ditentukan. Semasa saya menjalani kod menjaga masa asas, saya fikir ini mungkin sedikit biasa jadi saya memutuskan untuk menambah ciri penjimatan waktu siang sebagai tambahan novel untuk menambah banyak perkara dan mungkin menimbulkan sedikit minat dalam projek ini. Pada mulanya idea itu adalah novel semata-mata tetapi semakin saya menggunakannya dan menonton jam fizikal yang saya jalankan di meja saya semakin praktikal idea itu menjadi. Dengan menambahkan modul RTC dan menyesuaikan kod jam ini akan tepat bagi tahun-tahun yang akan datang dan dengan kos yang sangat rendah untuk pengeluar dan orang awam yang membeli jam tersebut.

Waktu Penjimatan Siang atau (DST) telah wujud selama lebih dari 100 tahun (Google, ia mempunyai sejarah yang cukup berwarna). Saya tidak mahu masuk ke dalam politik tetapi ini adalah latihan yang kasar dan menyakitkan yang tidak memudahkan hidup orang biasa (anda dan saya). Sebahagian besarnya kita menikmati waktu tambahan siang hari tetapi cara penggunaannya adalah kejam. Sudah tiba masanya untuk peningkatan besar kepada idea yang sangat lama.

Contoh ini mudah dihayati dengan dan dengan era digital dan kemajuan teknologi yang mudah diterapkan pada semua bentuk jam digital, tetapi dapat membantu kehancuran jam analog. Daripada lompatan 1 jam dari waktu standard ke waktu DST maka waktu DST ke waktu standard jam ini didasarkan pada perkembangan masa secara beransur-ansur dari titik balik matahari musim sejuk ke solstis musim panas kemudian kembali ke waktu standard pada titik balik musim sejuk berikutnya tahun demi tahun. Peralihan ini berlaku selama 180 hari dari setiap tempoh 6 bulan, penyesuaiannya adalah 20 saat sehari selama 360 hari dengan selebihnya 5 atau 6 hari ditambah dengan panjang solstis. Contoh saya di sini meningkat 1 minit sekali setiap tiga hari dalam kitaran 180 hari. Pada atau kira-kira 21 Jun setiap tahun jam penuh 1 jam lebih awal dan pada atau sekitar 21 Disember setiap tahun jam telah kembali ke waktu standard. Tahun lompat mudah dicatat terutamanya jika RTC digunakan. Hemisfera Selatan dengan mudah disesuaikan dengan jam ini juga, skala slaid hanya 6 bulan keluar dari fasa dari hemisfera utara.

Terdapat tiga tempat di dunia yang DST akan ada kecuali, wilayah khatulistiwa, dan kutub. Saya tidak fikir siang hari banyak berubah di khatulistiwa, saya tidak tahu sama ada kawasan tropika malah menggunakan DST dan tiangnya adalah cerita yang berbeza lagi, cuma 'APA' waktu di tiang pula?

Langkah 1: Mengenai Jam

Mengenai Jam
Mengenai Jam
Mengenai Jam
Mengenai Jam

Jam yang saya buat berdasarkan pada masa standard yang tidak pernah berbeza dari jam dunia yang diterima secara antarabangsa, ini dipaparkan pada baris pertama LCD 1602. Baris kedua adalah skala masa yang sama tetapi menunjukkan minit yang tidak dapat ditentukan dari satu titik balik matahari ke titik seterusnya. Dari solstis musim sejuk hingga solstis musim panas, set off meningkat satu minit setiap tiga hari hingga maksimum enam puluh minit. Dari solstis musim panas hingga solstis musim sejuk, set off menurun satu minit setiap tiga hari sehingga waktu standard dan waktu DST sama.

Untuk contoh ini, saya telah menggunakan waktu ketenteraan (jam 24 jam) dan waktu standard (jam 12 jam) Pagi dan PM untuk membantu mereka yang tidak biasa dengan skala waktu 24 jam, juga memberi ruang saya untuk menunjukkan nombor hari yang DST adalah ditetapkan dari. Kodnya boleh diubah untuk memaparkan jam 12 jam. Saya telah menambah tiga butang tekan yang disambungkan ke pin digital 2, 3 dan 4 untuk menyesuaikan masa. Butang ini hanya akan bertambah beberapa saat, minit atau jam sahaja. Butang adalah pilihan, jam akan tetap berfungsi dengan baik jika anda tidak memasukkan butang dan tidak perlu mengubah kodnya. Saya mengesyorkan sekurang-kurangnya menggunakan butang untuk menyesuaikan detik dan jika ketepatan lengkap tidak dapat dicapai teruskan jam di sisi perlahan, butang memajukan masa 1 saat sesaat.

Sekiranya anda memulakan jam dari Arduino IDE, akan memakan masa sekitar 5.5 hingga 6 saat untuk memuatkan dan boot sketsa, jika sketsa dimuat ke Arduino, kemudian pasangkannya ke kutil dinding atau bekalan kuasa, akan memakan masa sekitar 2.5 hingga 3 saat untuk boot dan berjalan.

Terdapat beberapa persediaan manual yang diperlukan apabila anda akhirnya menyiapkan jam untuk beroperasi.

Jam ini tidak menggunakan modul RTC dan tidak menggunakan "delay ();" arahan.

Sekiranya anda suka menggunakan RTC dengan Arduino, konsep ini masih boleh digunakan. RTC akan memberi anda semua maklumat yang anda perlukan untuk menambahkan masa EDSC. Kodnya mungkin agak berbeza dengan modul RTC, saya belum melihatnya. Anda cukup banyak jika anda melakukannya tetapi ia adalah cara yang baik untuk melatih otak anda.

Langkah 2: Apa yang Anda Perlu

Apa yang Anda Perlu
Apa yang Anda Perlu
Apa yang Anda Perlu
Apa yang Anda Perlu
Apa yang Anda Perlu
Apa yang Anda Perlu

SENARAI MEMBELI-BELAH

1 Arduino Uno atau Mega2569 (pin I2C adalah A4 dan A5 di UNO dan 20 dan 21 pada 2560 Mega)

Sama seperti Arduino yang lain, pin yang digunakan mungkin berbeza. Untuk itu, papan pengawal akan berfungsi. Anda perlu menulis semula kod untuk papan atau pengeluar itu.

1 1602 paparan LCD (warna pilihan anda)

Saya menggunakan pek belakang I2C dengan LCD, saya merasa lebih mudah dan cepat untuk disiapkan.

Wayar pelompat

BEKALAN PILIHAN

1 papan roti bersaiz sederhana

1-3 butang tekan kenalan sesaat

Perintang 1-3 K ohm

Instruksinya ini panjang, jadi saya tidak akan memasang pelekap atau kabinet yang saya gunakan untuk memaparkan jam. Sekiranya anda menyukai projek ini dan ingin membuat reka bentuk versi kekal mengikut kehendak anda. Reka bentuk ini sangat sesuai untuk saya kerana saya mempunyai semua yang saya perlukan di kotak sampah saya dan saya suka penampilannya.

CATATAN:

Untuk mengelakkan gangguan bekalan elektrik, jam terakhir saya digerakkan oleh panel solar yang saya ada di luar. Panel solar menyimpan bateri 12 volt dengan pengatur di atasnya untuk mengelakkan pengecasan berlebihan. Bateri ini disambungkan ke Arduino melalui soket kuasa di sebelah port USB. Saya memastikan port USB disambungkan ke grid untuk mengurangkan penggunaan bateri. Kedua-dua sumber kuasa dapat digunakan pada masa yang sama tanpa kerosakan pada Arduino. Bateri 12 volt boleh dicas hingga maksimum 14.5 volt yang terlalu tinggi untuk Arduino jadi saya menggunakan penukar buck untuk mengurangkan voltan bekalan dari bateri ke julat 9 hingga 12 volt. Bateri 12 volt yang saya kenakan akan bertahan 3 atau 4 hari jika hari-hari mendung. Pengatur yang saya gunakan akan memotong kuasa ke Arduino jika voltan bateri turun menjadi 11 volt. Bateri yang saya miliki berasal dari sistem lampu kecemasan untuk bangunan komersial, berukuran kira-kira satu perempat dari bateri kereta kecil. Sekiranya anda ingin menggunakan bateri kereta pastikan menyimpannya di tempat yang berventilasi baik (di luar), bateri kereta mengeluarkan gas hidrogen dan oksigen semasa mereka mengecas dan melepaskan, ini adalah gabungan peledak.

AMARAN

MENJAGA BATERAI DENGAN BAIK

KAWASAN BERENANG, DI LUAR

Langkah 3: Pendawaian

Pendawaian
Pendawaian

Saya telah menyediakan skema untuk semua sambungan dalam projek ini, jika anda menggunakan papan roti anda akan memerlukan papan ukuran sederhana, suis akan memerlukan ruang untuk disebarkan agar litar tidak membingungkan.

Paparan LCD 1602 mempunyai pek belakang I2C untuk kesederhanaan, jika anda menggunakan sambungan SPI, anda perlu mencari cara menggunakannya dan mengubah kodnya di awal lakaran. Saya tidak pernah menggunakan sambungan SPI sehingga pin 2, 3 dan 4 mungkin tidak tersedia untuk ketiga-tiga butang tekan.

Tiga butang tekan digunakan untuk menyesuaikan waktu pada jam. Mereka hanya memajukan masa (AHEAD). Pada penyesuaian akhir, simpan jam dalam kod di sebelah perlahan (kira-kira 1 hingga 2 saat sehari atau beberapa hari) dengan cara ini anda dapat memajukan masa jika perlu. Setiap butang memajukan masa kenaikan satu saat, butang bawah 2 saat sesaat, butang tengah 1 minit sesaat dan butang atas 1 jam sesaat. Tahap ketepatan yang cukup tinggi harus dilakukan supaya anda tidak perlu menyesuaikannya dengan kerap.

Sekiranya anda menyesuaikan detik, minit atau jam (contohnya jika minit dilanjutkan 58, 59, 00) jam akan maju ke jam berikutnya.

Ketiga-tiga butang ini adalah penambahan saat terakhir pada jam, ia berfungsi dengan baik tetapi mungkin ada cara yang lebih baik. Ingatlah bahawa jika anda merosakkan bahagian kod ini, "delay ();" arahan tidak boleh digunakan. Saya menggunakan kaedah ini kerana saya tidak perlu bimbang tentang pertukaran lantunan dan lonjakan pelik semasa berlalunya masa.

Langkah 4: Apa yang ditunjukkan oleh Paparan

Apa yang ditunjukkan oleh Paparan
Apa yang ditunjukkan oleh Paparan

Saya telah meletakkan banyak maklumat pada paparan LCD 1602 yang memerlukan penjelasan:

Baris 1 Atau garis sifar '0' ketika bercakap dalam kod, menunjukkan waktu piawai. Di sebelah kiri adalah 'STD', ini bermaksud 'STandarD' waktu.

Seterusnya di baris pertama di tengah adalah waktu standard tempatan anda. Jangan mulakan dengan waktu penjimatan siang, jam akan memaparkan ini pada baris kedua.

Skala waktu ini adalah jam 12 jam jadi di sebelah kanan adalah 'AM atau' PM 'untuk menunjukkan pagi atau selepas tengah hari.

Baris 2 Atau baris satu '1' ketika bercakap dalam kod, menunjukkan waktu penjimatan siang yang berbeza mengikut hari dalam setahun. 'DST' di sebelah kiri bermaksud 'Waktu Penjimatan Siang'

Di tengah barisan kedua adalah waktu ketenteraan tempatan anda yang merupakan jam 24 jam. Anda akan mendengarnya sebagai 'oh enam ratus jam' misalnya.

Di sebelah kanan adalah hari dalam setahun seperti yang dirujuk dari titik balik matahari musim sejuk, di Hemisfera Utara 21 Disember (lebih kurang) adalah hari nol '0' dan di Belahan Bumi Selatan 21 Jun (lebih kurang) adalah hari nol '0'.

Saya telah menyediakan dua fail.pdf untuk rujukan ketika pertama kali mengatur jam. Pilih fail yang merujuk ke hemisfera tempat anda tinggal.

Ketiga butang pada kenaikan detik, minit dan jam dari bawah ke atas.

Langkah 5: Penyediaan Lakaran

Penyediaan Lakaran
Penyediaan Lakaran

Terdapat beberapa baris kod yang perlu disediakan untuk permulaan awal. Sebilangan baris ini perlu diubah setiap kali anda memutuskan sambungan jam dan mengubah nilai pemboleh ubah dalam lakaran. Sekiranya anda memulakan jam untuk IDE, ia akan memakan masa sekitar 6 saat untuk dimuat dan dimulakan. Sekiranya anda memuatkan lakaran dari IDE kemudian putuskan jam dan mulakan semula dari kutil dinding atau bekalan kuasa sketsa akan dimuat dalam masa kira-kira 2.5 saat.

Baris 11 LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7);

Garis ini menangani paparan LCD dan menetapkan alamat yang betul dari pek belakang I2C. 0x27 adalah alamat mana-mana pek belakang yang saya beli. Sekiranya anda menghidupkan jam tetapi tidak ada data yang dipaparkan tetapi menyala alamatnya mungkin berbeza pada LCD anda. Saya akan meletakkan pautan di bawah untuk penerangan mengenai cara menukar alamat pek belakang LCD anda atau mencari alamatnya.

Garisan 24 int minitSt = 35;

Tetapkan minit permulaan untuk jam standard, biasanya tetapkan 5 minit sebelum anda memulakan jam untuk membolehkan masa penyediaan.

Garis 25 int jamSt = 18;

Tetapkan jam ke waktu STD (jam 24 jam) bermula. 6 PM adalah jam 18.

Baris 26 int DSTdays = 339;

Muat turun dan rujuk fail pdf "Skala Waktu Jam DST Mudah" (Belahan Bumi Utara atau Selatan) tempat anda tinggal, cari tarikhnya dan masukkan Hari # ke baris ini. (Lajur kiri). Contoh (24 Nov adalah hari # 339 di Hemisfera Utara dan hari # 156 di Hemisfera Selatan)

Baris 27 int DSTTahun = 2019;

Masukkan tahun semasa.

Baris 92 jika ((masterTime - sebelumnyaMasterTimeSt> = 1000) && (microTime - sebelumnyaMicroTimeSt> = 500)) {

"SebelumnyaMasterTimeSt" perlu dibandingkan dengan bilangan milisaat jadi '1000' ini mungkin perlu berubah menjadi 999 bergantung pada jam dalaman papan Arduino kemudian sesuaikanMicroTime sebelumnya untuk menyempurnakan jam. Jam dalaman walaupun 16MH mempunyai variasi dari satu papan ke papan yang lain.

"SebelumnyaMicroTimeSt" menyesuaikan jam dalaman untuk membantu mengira 1 saat yang tepat. Sekiranya jam terlalu cepat tingkatkan mikrodetik dan jika jam terlalu perlahan turunkan mikrodetik dan jika perlu turun milidetik ke 999 dan kemudian mulakan mikrodetik pada kira-kira 999, 990 atau tingkatkan kelajuan jam.

Setiap papan Arduino mempunyai kelajuan yang sedikit berbeza oleh itu nombor ini akan berubah dengan setiap papan yang anda gunakan. Sebahagian daripada kod belum diuji, ini adalah baris 248 untuk menjelaskan setiap tahun lompatan. Dalam beberapa minggu akan datang, saya akan mengujinya dan mencatat sebarang perubahan jika perlu.

Langkah 6: Nota Akhir

Nota Akhir
Nota Akhir

Projek ini mudah dibina tetapi konsep dan penyesuaian yang diperlukan dalam kod mungkin menjadi tugas, luangkan masa anda dan fikirkanlah, jam tidak akan habis sehingga akhir tahun 2037. Saya akan terus memerhatikan e-mel untuk soalan kerana saya pasti akan ada beberapa, saya bukan genius sastera sehingga beberapa keterangan saya mungkin sedikit berlumpur.

Terdapat dua fail.pdf yang disertakan, muat turun fail untuk hemisfera tempat anda tinggal, fail ini akan memberi anda maklumat yang diperlukan untuk memulakan jam dengan tepat.

Dengan maklumat yang dimanipulasi dalam lakaran akan mudah untuk memaparkan bukan sahaja waktu standard dan waktu DST tetapi juga hari dan tarikh pada LCD 2004A. Sekiranya anda menyukai cabaran yang diberikan oleh projek ini, cuba sambungkan paparan LCD 2004A kemudian tambahkan kod untuk memaparkan maklumat tambahan atau jika cukup minat ditunjukkan, saya akan melakukan variasi lain dari projek ini termasuk maklumat tambahan ini.

Saya telah berusaha untuk tidak terlibat dalam projek ini tetapi saya menemui tiga bidang di dunia yang dimaksudkan. Kutub Utara, Kutub Selatan dan Khatulistiwa.

Adakah DST perlu atau mungkin di Kutub Utara atau Selatan?

Pukul berapakah di Kutub Utara atau Selatan?

Apa arah yang akan anda lalui untuk meninggalkan Kutub Utara atau Kutub Selatan?

Dari Kutub Selatan apa arah yang akan anda lalui untuk sampai ke Austrailia, Amerika Utara, Eropah atau Asia?

Zon waktu apa Santa tinggal?

Adakah dia memerlukan DST?

Pukul berapa pula di Kutub Utara?

Apa arah yang dilalui Santa untuk menyampaikan semua hadiahnya?

Pada latitud apa DST berkesan?

Sekarang untuk Khatulistiwa;

Adakah jam ini boleh digunakan di Khatulistiwa?

Adakah mereka akan menggunakan skala Hemisfera Utara atau Selatan?

Berapakah tarikh untuk solstis musim sejuk dan solstis musim panas?

Pada latitud apa DST berkesan?

Adakah penguin memerlukan DST?

Adakah anda fikir saya pelik kerana memikirkan soalan-soalan ini?

Selamat membina semua orang!

filmnut

Langkah 7: Pautan Lain

Ini adalah pautan untuk menentukan atau menukar alamat pada pek belakang I2C:

www.instructables.com/id/1602-2004-LCD-Adapter-Addressing/

PiotrS telah menulis arahan yang sangat baik untuk alamat perkakasan I2C

playground.arduino.cc/Main/I2cScanner

Pautan ini akan mengimbas peranti I2C anda dan mengembalikan alamatnya

Disyorkan: