Salah satu projek pertama yang dibina oleh pemula menggunakan papan Arduino ialah jam ringkas, mengira masa. Pada asasnya, jam sedemikian adalah berdasarkan modul RTC yang disambungkan ke Arduino ( Masa sebenar Jam atau Jam Masa Nyata). Di pasaran hari ini komponen elektronik tersedia model yang berbeza RTC yang berbeza dalam ketepatan dan harga. Model biasa termasuk DS1302, DS1307, DS3231.
Tetapi jam boleh dibuat pada Arduino tanpa menggunakan RTC, terutamanya jika anda tidak boleh mendapatkan modul sedemikian. Sudah tentu, ketepatannya dalam kes ini akan menjadi kecil, jadi projek itu sepatutnya dianggap sebagai projek latihan.
Prinsip operasi jam tangan sedemikian agak mudah. Setiap kali anda menghidupkan jam Arduino ini, anda perlu menetapkannya kepada masa semasa, sama seperti mana-mana jam analog. Sudah tentu adalah lebih baik untuk tidak menggunakan jam tangan sedemikian dalam anda Kehidupan seharian apabila mereka aktif untuk masa yang lama tanpa but semula dan penyesuaian selanjutnya, kerana penyahsegerakan dengan masa semasa semasa operasi jangka panjang boleh menjadi penting.
Jam tangan ini boleh dipasang menggunakan jam biasa papan roti, kerana ia tidak memerlukan banyak komponen. Pautan utama kami di sini ialah papan Arduino Uno. Untuk memaparkan masa, anda boleh mengambil paparan LCD 16x2. Untuk menukar tetapan masa, anda perlu menyambungkan dua butang (untuk jam dan minit). Butang disambungkan ke Aduino melalui perintang 10KΩ. Untuk menukar kecerahan paparan anda memerlukan potensiometer 10 kOhm. Gambar rajah sambungan untuk semua komponen ini ke papan Arduino Uno dibentangkan di bawah.
Sekarang anda perlu memprogramkan Arduino. Kod ringkas (lakaran) yang membolehkan anda memaparkan masa pada skrin LCD diberikan di bawah.
#termasuk
   Terima kasih kerana berminat dengan projek maklumat tapak web.
   Jika anda mahu menarik dan bahan berguna keluar lebih kerap dan iklan kurang,
   Anda boleh menyokong projek kami dengan menderma sebarang jumlah untuk pembangunannya.
Selamat petang, hari ini saya akan berkongsi arahan untuk membuat jam dengan termometer bilik( Jam Arduino DIY). Jam terus berjalan Arduino UNO, skrin grafik WG12864B digunakan untuk memaparkan masa dan suhu. Sebagai sensor suhu - ds18b20. Tidak seperti kebanyakan jam lain, saya tidak akan menggunakan RTS (Jam Masa Sebenar), tetapi akan cuba melakukannya tanpa modul tambahan ini.
Litar Arduino dibezakan oleh kesederhanaannya, dan sesiapa sahaja boleh mula belajar Arduino. Anda boleh membaca tentang cara menyambungkan perpustakaan dan flash Arduino dalam artikel kami.
Mari kita mulakan.
Untuk mencipta jam ini kita perlukan:
Arduino UNO (Atau mana-mana yang lain Serasi Arduino bayar)
- Skrin grafikWG12864B
- Penderia suhu ds18b20
- Perintang 4.7 Kom 0.25 W
- Perintang 100 ohm 0.25 W
- Petak bateri untuk 4 bateri AA
- Kotak padanan
- Fail yang baik
- Pengilat kuku (warna hitam atau badan)
- Beberapa plastik atau kadbod nipis
- Pita elektrik
- Wayar penyambung
- Papan litar
- Butang
- Besi pematerian
- Pateri, rosin
- Pita bermuka dua
Menyediakan skrin grafik.
Pada pandangan pertama, menyambungkan skrin menimbulkan banyak masalah dan kesukaran. Tetapi jika anda mula-mula memahami jenis mereka, ia akan menjadi lebih mudah dan lebih jelas. Terdapat banyak jenis dan jenis skrin pada pengawal ks0107/ks0108. Semua skrin biasanya dibahagikan kepada 4 jenis:
Pilihan A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
Pilihan B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ Memaparkan AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, QSG644-88 Topway LD128, QSG64-1288, QSG641W, Digit480000 8 64F, TM12864L-2, 12864J-1
Pilihan C: Shenzhen Jinghua Displays Co Ltd. JM12864
Pilihan D: Wintek-Cascades WD-G1906G, Wintek - GEN/WD-G1906G/KS0108B, Wintek/WD-G1906G/S6B0108A, TECDIS/Y19061/HD61202, Varitronix/MGLS19262/HD61202
Senarainya tidak lengkap, ada banyak. Yang paling biasa dan, pada pendapat saya, mudah ialah WG12864B3 V2.0. Paparan boleh disambungkan ke Arduino melalui siri atau pelabuhan selari. Apabila menggunakan dengan Arduino UNO, lebih baik memilih sambungan melalui port bersiri– maka kita hanya memerlukan 3 output mikropengawal, bukannya sekurang-kurangnya 13 talian apabila disambungkan melalui port selari. Semuanya bersambung dengan mudah. Terdapat satu lagi nuansa: anda boleh menemui dua pilihan paparan yang dijual, dengan potensiometer terbina dalam (untuk melaraskan kontras) dan tanpanya. Saya memilih, dan saya menasihati anda untuk melakukan perkara yang sama, dengan yang terbina dalam.
Ini mengurangkan bilangan bahagian dan masa pematerian. Ia juga bernilai memasang perintang pengehad arus 100 Ohm untuk lampu latar. Dengan menyambungkan 5 volt secara terus, terdapat risiko untuk membakar lampu latar.
WG12864B – Arduino UNO
1 (GND) - GND
2 (VCC) - +5V
4 (RS) – 10
5 (R/W) – 11
6 (E) – 13
15 (PSB) – GND
19 (BLA) – melalui perintang - +5V
20 (BLK) – GND
Cara paling mudah ialah memasang segala-galanya di belakang skrin dan mengeluarkan 5 wayar daripadanya yang menyambung ke Arduino UNO. Hasil akhir sepatutnya kelihatan seperti ini:
Bagi yang masih memilih sambungan selari Saya akan menyediakan jadual sambungan.
Dan gambar rajah untuk skrin pilihan B:
Beberapa sensor boleh disambungkan ke satu talian komunikasi. Satu sudah cukup untuk jam tangan kami. Kami menyambung wayar dari pin "DQ" ds18b20 ke "pin 5" Arduino UNO.
Menyediakan papan dengan butang.
Untuk menetapkan masa dan tarikh pada jam tangan kami akan menggunakan tiga butang. Untuk kemudahan, kami menyolder tiga butang pada papan litar dan mengeluarkan wayar.
Kami menyambung seperti berikut: kami menyambung wayar biasa kepada ketiga-tiga butang ke "GND" Arduino. Butang pertama, yang digunakan untuk memasuki mod tetapan masa dan bertukar mengikut masa dan tarikh, disambungkan ke "Pin 2". Yang kedua, butang untuk meningkatkan nilai, adalah untuk "Pin 3", dan yang ketiga, butang untuk menurunkan nilai, adalah untuk "Pin 4".
Menyatukan semuanya.
Untuk mengelakkan litar pintas, skrin hendaklah terlindung. Kami membungkusnya dalam bulatan dengan pita elektrik, dan seterusnya belakang Kami melampirkan jalur bahan penebat pada pita bermuka dua, dipotong mengikut saiz. Kadbod tebal atau plastik nipis akan sesuai. Saya menggunakan plastik daripada tablet untuk kertas. Hasilnya adalah seperti berikut:
Di hadapan skrin, di sepanjang tepi, kami gam pita buih dua sisi, lebih baik hitam.
Sambungkan skrin ke Arduino:
Tambahan daripada petak bateri sambung ke "VIN" Arduino, tolak ke "GND". Kami meletakkannya di belakang Arduino. Sebelum memasangnya dalam kes itu, jangan lupa untuk menyambungkan sensor suhu dan papan dengan butang.
Menyediakan dan mengisi lakaran.
Penderia suhu memerlukan perpustakaan OneWire.
Output ke skrin dijalankan melalui perpustakaan U8glib:
Untuk mengedit dan mengisi lakaran, anda perlu memasang kedua-dua perpustakaan ini. Terdapat dua cara untuk melakukan ini. Hanya buka pembungkusan arkib ini dan letakkan fail yang tidak dibungkus dalam folder "perpustakaan" yang terletak dalam folder pemasangan Arduino IDE. Atau pilihan kedua ialah memasang perpustakaan secara langsung dalam persekitaran pengaturcaraan. Tanpa membongkar arkib yang dimuat turun, dalam IDE Arduino, pilih menu Sketch - Connect Library. Di bahagian paling atas senarai juntai bawah, pilih "Tambah.Zip perpustakaan". Dalam kotak dialog yang muncul, pilih perpustakaan yang ingin anda tambahkan. Buka menu Lakaran sekali lagi - Sambung Perpustakaan. Di bahagian paling bawah senarai juntai bawah anda sepatutnya melihat perpustakaan baharu. Kini perpustakaan boleh digunakan dalam program. Jangan lupa untuk memulakan semula Arduino IDE selepas semua ini.
Penderia suhu beroperasi menggunakan protokol One Wire dan mempunyai alamat unik untuk setiap peranti - kod 64-bit. Tidak praktikal untuk mencari kod ini setiap kali. Oleh itu, anda mesti terlebih dahulu menyambungkan sensor ke Arduino, muat naik lakaran yang terdapat dalam menu Fail – Contoh – Suhu Dallas – OneWireSearch. Seterusnya, lancarkan Alat - Port Monitor. Arduino mesti mencari sensor kami, tulis alamatnya dan bacaan suhu semasa. Kami menyalin atau hanya menulis alamat penderia kami. Buka lakaran Arduino_WG12864B_Term, cari baris:
Byte addr=(0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97);//alamat penderia saya
Kami menulis alamat penderia anda antara pendakap kerinting, menggantikan alamat penderia saya.
Stok:
//u8g.setPrintPos(44, 64); u8g.print(saat); // Keluaran saat untuk mengawal ketepatan pergerakan
Berfungsi untuk memaparkan detik di sebelah tulisan "Data". Ini adalah perlu untuk pemasangan yang tepat peredaran masa.
Jika jam pantas atau ketinggalan, anda harus menukar nilai dalam baris:
Jika (micros() - prevmicros >494000) ( // tukar kepada sesuatu yang lain untuk membetulkannya ialah 500000
Saya secara empirikal menentukan nombor di mana jam berjalan dengan agak tepat. Jika jam anda pantas, anda harus meningkatkan nombor ini; jika ia ketinggalan, kurangkannya. Untuk menentukan ketepatan langkah, anda perlu memaparkan saat. Selepas penentukuran tepat nombor, detik boleh dikomentari dan dengan itu dikeluarkan dari skrin.
Dalam artikel ini kita akan melihat cara membuat jam yang tepat berasaskan Arduino atau cip jam masa nyata mikropengawal AVR DS1307. Masa akan dipaparkan pada paparan LCD.
Apa yang perlu
- komputer dengan Arduino IDE dipasang;
- Cip DS1307 atau modul RTC berdasarkannya;
- komponen daripada senarai elemen.
Anda boleh menggantikan Papan Arduino kepada pengawal Atmel, tetapi pastikan ia mempunyai pin input dan output yang mencukupi dan mempunyai pelaksanaan perkakasan antara muka I2C. Saya menggunakan ATMega168A-PU. Jika anda akan menggunakan mikropengawal yang berasingan, maka anda memerlukan pengaturcara, sebagai contoh, AVR MKII ISP.
Diandaikan bahawa pembaca sudah biasa dengan papan roti, pengaturcaraan dalam IDE Arduino dan mempunyai sedikit pengetahuan tentang bahasa pengaturcaraan C. Kedua-dua program di bawah tidak memerlukan penjelasan lanjut.
pengenalan
Bagaimanakah mikropengawal menjejaki masa dan tarikh? Mikropengawal konvensional mempunyai fungsi pemasa yang bermula dari sifar apabila voltan bekalan digunakan, dan kemudian mula mengira. Dalam dunia Arduino, kita boleh menggunakan fungsi millis() untuk mengetahui berapa milisaat telah berlalu sejak bekalan kuasa digunakan. Apabila anda mengalih keluar dan menggunakan semula kuasa, ia akan mula mengira dari awal. Ini tidak begitu mudah apabila ia datang untuk bekerja dengan jam dan tarikh.
Di sinilah penggunaan cip RTC (Jam Masa Sebenar) akan menjadi mudah. Litar mikro ini dengan bateri 3V atau beberapa sumber kuasa lain memantau masa dan tarikh. Jam/kalendar menyediakan maklumat tentang saat, minit, jam, hari dalam seminggu, tarikh, bulan dan tahun. Cip berfungsi dengan betul dengan bulan yang berlangsung 30/31 hari dan dengan tahun lompat. Komunikasi adalah melalui bas I2C (bas I2C tidak dibincangkan dalam artikel ini).
Jika voltan rel kuasa utama Vcc jatuh di bawah voltan bateri Vbat, RTC secara automatik bertukar kepada penggunaan kuasa yang rendah daripada bateri sandaran. Bateri sandaran- ini biasanya bateri kecil (dalam bentuk "syiling", "tablet") dengan voltan 3 volt, disambungkan antara pin 3 dan sarungnya. Dengan cara ini, cip masih akan menjejaki masa dan tarikh, dan apabila kuasa digunakan pada litar utama, mikropengawal akan menerima masa dan tarikh semasa.
Dalam projek ini kami akan menggunakan DS1307. Untuk cip ini, pin 7 ialah pin SQW/OUT (output gelombang persegi). Anda boleh menggunakan pin ini untuk menyalakan LED dan memberi amaran kepada mikropengawal untuk menangkap masa. Kami akan melakukan kedua-duanya. Di bawah ialah penjelasan tentang operasi pin SQW/OUT.
Daftar kawalan DS1307 digunakan untuk mengawal operasi pin SQW/OUT.
Bit 7: Kawalan Output (OUT) Bit ini mengawal tahap output pin SQW/OUT apabila output gelombang persegi dimatikan. Jika SQWE = 0, tahap logik pada pin SQW/OUT ialah 1 jika OUT = 1 dan 0 jika OUT = 0. Pada mulanya, bit ini biasanya 0. Bit 4: Square Wave Enable (SQWE) Bit ini, apabila ditetapkan kepada logik 1, membolehkan pengayun keluaran. Kekerapan denyutan gelombang persegi bergantung pada nilai bit RS0 dan RS1. Apabila frekuensi gelombang persegi ditetapkan kepada 1 Hz, daftar jam dikemas kini semasa kejatuhan gelombang persegi. Pada mulanya, bit ini biasanya 0. Bit 1 dan 0: Frequency Select (RS) Bit ini mengawal frekuensi output gelombang persegi apabila output gelombang persegi dihidupkan. Jadual berikut menyenaraikan frekuensi gelombang persegi yang boleh dipilih menggunakan bit ini. Bit ini biasanya pada mulanya ditetapkan kepada 1.meja ini akan membantu anda dengan kekerapan:
Kekerapan nadi | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|---|
1 Hz | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
4.096 kHz | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
8.192 kHz | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
32.768 kHz | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 |
Jika anda menyambungkan LED dan perintang ke pin 7 dan mahu LED berkelip pada frekuensi 1 Hz, anda mesti menulis nilai 0b00010000 pada daftar kawalan. Jika anda mahukan denyutan 4.096 kHz, maka anda akan menulis 0b000100001. Dalam kes ini, anda memerlukan osiloskop untuk melihat denyutan, kerana LED akan berkelip dengan cepat sehingga kelihatan sentiasa menyala. Kami akan menggunakan denyutan dengan frekuensi 1 Hz.
Perkakasan
Ditunjukkan di bawah skema struktur apa yang kita perlukan.
Kami diperlukan:
- Penyambung ISP (Dalam Pengaturcaraan Sistem, pengaturcaraan dalam litar) untuk menyalakan perisian tegar mikropengawal;
- butang untuk menetapkan masa dan tarikh;
- mikropengawal untuk komunikasi dengan RTC melalui bas I2C;
- paparan untuk menunjukkan tarikh dan masa.
Gambarajah skematik:
![](https://i1.wp.com/radioprog.ru/uploads/media/articles/0001/01/852e804423de2b4dedae86d41eda193472bc624a.png)
Senarai elemen
Di bawah ialah tangkapan skrin daripada Eagle:
![](https://i2.wp.com/radioprog.ru/uploads/media/articles/0001/01/d26249c71feada100d6736347ff16d86bbd8d084.png)
Perisian
Dalam tutorial ini kami akan menggunakan dua lakaran berbeza: satu lakaran yang menulis masa dan tarikh kepada RTC, dan satu lakaran yang membaca masa dan tarikh daripada RTC. Kami melakukan ini kerana dengan cara ini anda boleh mendapatkan lebih banyak lagi pandangan penuh tentang apa yang berlaku. Kami akan menggunakan skema yang sama untuk kedua-dua program.
Mula-mula kita akan menulis masa dan tarikh ke dalam RTC, yang serupa dengan menetapkan masa pada jam tangan.
Kami menggunakan dua butang. Satu untuk menambah jam, minit, tarikh, bulan, tahun dan hari dalam seminggu, dan yang kedua untuk memilih antaranya. Aplikasi ini tidak membaca keadaan mana-mana penderia kritikal, jadi kami akan menggunakan gangguan untuk menyemak sama ada butang ditekan dan untuk mengendalikan lantunan kenalan.
Kod berikut menetapkan nilai dan menulisnya ke RTC:
Program ini dimulakan dengan ucapan alu-aluan ringkas. Mesej ini memberitahu kami bahawa kuasa dihidupkan, LCD berfungsi dan program telah dimulakan. Oleh kerana lakaran berfungsi hanya untuk menunjukkan cara menulis data dari Arduino ke RTC DS1307, ia tidak mempunyai fungsi tambahan (menyemak sama ada nilai berada dalam julat yang boleh diterima; menggelung apabila menekan butang untuk meningkatkan nilai, iaitu, menetapkan semula kepada 0, apabila nilai, sebagai contoh, minit melebihi 60, dsb.)
// Termasuk fail pengepala #include
Kesimpulan
Dalam artikel ini, kami melihat cip DS1307 dari Maxim Integrated dan menulis dua program demo: satu untuk menetapkan masa dan tarikh dan satu untuk membaca masa dan tarikh. Untuk menyemak sama ada butang ditekan, kami menggunakan gangguan, yang turut menghapuskan pengaruh lantunan kenalan.
Foto dan video
Menetapkan masa
Masa membaca
Jadi, jam masa sebenar. Perkara kecil yang berguna ini menyelesaikan masalah berkaitan masa yang paling berguna. Katakan anda mengawal penyiraman pada pukul 5 pagi di dacha anda. Atau menghidupkan dan mematikan lampu detik tertentu. Mengikut tarikh anda boleh mula memanaskan di mana-mana rumah. Perkara itu agak menarik dan berguna. Dan lebih khusus lagi? Kami akan melihat jam masa nyata DS1302 untuk platform Arduino yang popular.
Dari artikel ini anda akan belajar:
selamat hari, wahai pembaca sekalian blok kip-world! apa khabar? Tulis dalam komen, adakah anda berminat dengan robotik? Apakah maksud topik ini kepada anda?
Saya tidak boleh berhenti memikirkan perkara ini seminit. Saya bermimpi dan melihat bila kita akhirnya akan sampai ke tahap di mana semua orang mampu membeli pembantu robot peribadi. Tidak kira apa yang dia lakukan, memungut sampah, memotong rumput, mencuci kereta.
Saya boleh bayangkan bagaimana algoritma yang kompleks mereka mesti mengandungi dalam "otak" mereka.
Lagipun, kita akan sampai ke tahap di mana kita akan flash perisian dengan cara yang sama seperti pada komputer peribadi. Muat turun juga program aplikasi. Jahit pada lengan, kaki, tukar cakar, manipulator.
Tonton filem "I Robot", " Kecerdasan buatan", "Star Wars".
Jepun telah lama melaksanakan pembangunan mereka. Kenapa kita lebih teruk?? Kami mempunyai sedikit populariti. Saya tahu beberapa pembangun. Saya boleh mengiranya dengan jari saya. Kami sedang melakukan sesuatu yang lain. Kami adalah penjual semula. Kami hanya membeli kit siap, robot, mainan dan segala macam sampah.
Mengapa kita tidak membangunkan ini:
Atau ini:
Saya menghabiskan pemikiran saya dengan kuat. Mari kita bincangkan tentang menyambungkan Pemasa Jam Masa Nyata DS1302 kepada Arduino.
Jam masa nyata DS1302
Pengawal Arduino tidak mempunyai jam sendiri. Oleh itu, jika perlu, ia mesti ditambah dengan litar mikro DS1302 khas.
Untuk bekalan kuasa, papan ini boleh menggunakan baterinya sendiri, atau dikuasakan terus dari papan Arduino.
Jadual pinout:
Gambar rajah sambungan dengan Arduino UNO:
Kaedah untuk pengaturcaraan Arduino untuk berfungsi dengan DS1302
Adalah penting untuk memuat turun perpustakaan yang sah daripada sumber yang boleh dipercayai.
Perpustakaan membolehkan anda membaca dan menulis parameter masa nyata. Saya berikan penerangan ringkas di bawah:
#termasuk
iarduino_RTC SEBUAH OBJEK ( NAMA [, RST_OUTPUT [, CLK_OUTPUT [, DAT_OUTPUT ]]] );
// Cipta objek.
Fungsi mula ();// Mulakan operasi modul RTC.
Fungsi tetapkan masa( SEK [, MIN [, JAM [, HARI [, BULAN [, TAHUN [, HARI]]]]]] ); // Menetapkan masa.
Fungsi masa lapang ([ LINE ] ); // Baca masa.
fungsi masa kejap ( PARAMETER [FREKUENSI] ); // Menyebabkan fungsi gettime menjadi "berkedip" parameter yang ditentukan masa.
fungsi tempoh ( MINIT ); // Menunjukkan tempoh minimum untuk mengakses modul dalam beberapa minit.
Pembolehubah detik// Mengembalikan saat dari 0 hingga 59.
Pembolehubah minit// Mengembalikan minit dari 0 hingga 59.
Pembolehubah Jam// Mengembalikan jam dari 1 hingga 12.
Pembolehubah Jam// Mengembalikan jam dari 0 hingga 23.
Pembolehubah tengah hari// Kembali tengah hari 0 atau 1 (0 pagi, 1 petang).
Pembolehubah hari// Mengembalikan hari dalam bulan dari 1 hingga 31.
Pembolehubah hari minggu// Mengembalikan hari dalam seminggu dari 0 hingga 6 (0 ialah Ahad, 6 ialah Sabtu).
Pembolehubah bulan// Mengembalikan bulan dari 1 hingga 12.
Pembolehubah tahun// Mengembalikan tahun dari 0 hingga 99.
Kami menulis program yang mudah. Menetapkan masa semasa dalam modul RTC (DS1302):
Arduino
#termasuk
#termasuk iarduino_RTCtime(RTC_DS1302, 6, 7, 8); persediaan batal() ( kelewatan(300); bersiri. mula (9600); masa. mula (); masa. settime(0, 51, 21, 27, 10, 15, 2); // 0 saat, 51 min, 21 jam, 27 Oktober 2015, Selasa gelung kosong() ( jika (millis() % 1000 == 0 ) ( // jika 1 saat telah berlalu bersiri. println (masa . gettime ( "d-m-Y, H:i:s, D" ) ); // masa paparan kelewatan(1); // jeda selama 1 ms supaya tidak memaparkan masa beberapa kali dalam 1 ms |
Membaca masa semasa daripada modul RTC (DS1302) dan output ke "Port bersiri":
#termasuk
Saya perlu membuat sesuatu yang lebih besar entah bagaimana. Jam dinding dengan kecerahan automatik.
Jam ini sesuai untuk bilik besar, seperti lorong pejabat atau apartmen yang besar.
Membuat jam dinding yang besar tidak begitu sukar menggunakan arahan ini.
Untuk menganggarkan saiz jam tangan, anda boleh mengandaikan bahawa satu segmen jam tangan akan menjadi saiz kertas A4, yang akan memudahkan penggunaan bingkai foto dengan saiz yang sesuai.
Langkah 1. Komponen jam dinding yang besar.
Wayar, pateri, besi pematerian, jalur LED
Arduino Nano
Penukar DC-DC LM2596
4 meter jalur LED WS2811
sensor cahaya
jam masa sebenar DS3231
suis mikro
Apa yang saya gunakan untuk projek ini:
Langkah 8. Program jam.
Selepas beberapa kali bermain-main, saya berjaya mendapatkan jam tangan yang benar-benar memenuhi keperluan saya. Saya pasti anda boleh melakukan lebih baik daripada saya.
Kod ini diulas dengan baik dan tidak sukar untuk anda memahaminya; mesej penyahpepijatan juga diulas dengan sangat baik.
Jika anda perlu menukar warna jam dinding yang digunakan, anda perlu menukar pembolehubah pada baris 22 ( int ledColor = 0x0000FF; // Warna yang digunakan (dalam hex)). Anda boleh menemui senarai warna dan kod heksnya pada halaman: https://github.com/FastLED/FastLED/wiki/Pixel-refe…
Jika anda menghadapi masalah memuat turun, gunakan cermin: http://bit.ly/1Qjtgg0
Lakaran akhir saya boleh dimuat turun.
Langkah 9. Buat nombor menggunakan polisterin.
Pangkalan pemotong
Badan kerja pemotong
Borang am pemotong
Hasil pemotong
Potong setiap segmen ke dalam templat yang dicetak pada permulaan.
Polistirena boleh dipotong dengan pisau tajam, yang agak sukar, atau dengan peranti mudah yang diperbuat daripada dawai nichrome atau tali gitar dan beberapa keping papan OSB.
Anda boleh melihat bagaimana saya melakukannya dalam imej di atas.
Untuk menghidupkan pemotong saya menggunakan bekalan kuasa 12v.
Hasil daripada pemotongan, anda harus mendapatkan empat segmen untuk jam besar, salah satunya ditunjukkan dalam foto.
Langkah 10. Lekatkan nombor dan tutup semuanya dengan peresap. Jam dinding besar terakhir.
Bercahaya pada siang hari
Bercahaya pada waktu malam
Selepas memotong keempat-empat nombor dan titik jam dinding, lekatkan semuanya pada kadbod bersama-sama Jalur LED(Saya menggunakan pita bermuka dua untuk memudahkan proses)
Untuk menghilangkan yang keras lampu led Saya menggunakan dua helai kertas di atas nombor polistirena. Untuk kemudahan dan estetika, saya menggunakan kertas saiz A2 yang dilipat dua.
Selepas melengkapkan semua langkah ini, saya meletakkan pemasangan jam dinding besar yang terhasil ke dalam bingkai foto besar yang sepadan.
Jam tangan ini ternyata sangat mengagumkan dan menarik perhatian. Saya fikir bahawa jam dinding yang besar akan menghiasi banyak bilik dengan sempurna.
Bersentuhan dengan