Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Hadiah Valentine: Penghitung Hari Bersama DIY

Bahan dan Komponen

Berikut komponen yang dibutuhkan untuk membuat penghitung hari bersama ini:

Tentang Proyek

Kisah ini dimulai pada September 2017, ketika saya baru memasuki tahun kedua di universitas dan bertemu dengan seorang gadis luar biasa. Saya pindah ke tempat tinggal bersama dia dan teman-temannya, dan akhirnya kami berbagi satu lantai rumah bersama, hanya kami berdua. Seiring waktu, kami menjadi teman terbaik dan setelah beberapa bulan, kami mulai pacaran. Hari kami mulai pacaran adalah 10.12.2017 (format Inggris).

Hampir satu tahun berlalu, dan saya sedang mencari ide untuk hari ulang tahun kami. Saya ingin membuat sesuatu yang terkait dengan bidang yang saya pelajari (elektronika), sehingga saya memutuskan untuk membuat sistem penghitung yang menghitung jumlah hari sejak kami mulai pacaran, lalu menempatkannya dalam bingkai foto bersama foto kami berdua.

Jika Anda sedang mencari ide untuk ulang tahun, atau hanya sekadar menelusuri, proyek ini menyenangkan untuk dilakukan. Semua detail akan saya bagikan di sini agar Anda dapat membuatnya sendiri.

Bagian paling sulit dari proyek ini adalah kodenya. Saya telah membuat templat contoh yang, ketika dikompilasi dan diunggah, akan menampilkan tanggal saya dan pacar saya, tetapi saya menambahkan komentar dalam kode agar Anda dapat mengedit dengan tanggal Anda sendiri.

Selamat mencoba!

Kode

File yang diperlukan: DaysCounter.ino

Untuk memulai, unduh Arduino IDE, perpustakaan RTC dalam format zip, dan perpustakaan seven segment dalam format zip. Simpan kedua perpustakaan ke dalam folder libraries tempat Arduino IDE terinstal.

Buka Arduino IDE, klik 'Sketch' > 'Include Library' > 'Add .ZIP Library', lalu ikuti kode di bawah ini.

Untuk menyesuaikan waktu, pada baris 7 di dalam kurung tertulis (2017, 12, 9, 0, 0, 0), ubah tiga angka pertama sesuai tanggal Anda mulai pacaran, misalnya 2014, 4, 6.

Kompilasi lalu pilih Upload. Jika semua langkah diikuti dengan benar, layar akan menampilkan jumlah hari Anda bersama pasangan.

#include <RTClib.h> #include <SevSeg.h> SevSeg sevseg; //Instantiate a seven segment controller object RTC_DS3231 rtc; DateTime dtBegin (2017, 12, 9, 0, 0, 0); //!!!! adjust time here!!!!! TimeSpan tsPassed; void showInfo(const DateTime& dt) { Serial.print("NOW:"); Serial.print(dt.year(), DEC); Serial.print('/'); Serial.print(dt.month(), DEC); Serial.print('/'); Serial.print(dt.day(), DEC); Serial.print(' '); Serial.print(dt.hour(), DEC); Serial.print(':'); Serial.print(dt.minute(), DEC); Serial.print(':'); Serial.print(dt.second(), DEC); Serial.print("\tPASSED:"); Serial.print(tsPassed.days(), DEC); Serial.print(' '); Serial.print(tsPassed.hours(), DEC); Serial.print(':'); Serial.print(tsPassed.minutes(), DEC); Serial.print(':'); Serial.print(tsPassed.seconds(), DEC); Serial.println(""); } //========================================= // //========================================= void delayWithUpdate(uint32_t parDelay){ uint32_t started=millis(); while (millis()< started+parDelay){ sevseg.refreshDisplay(); } } //========================= //========================= void setup(){ Serial.begin(9600); Serial.println(__TIME__); if (! rtc.begin()) { Serial.println("Couldn't find RTC"); //===Device will be frozen here. //?????????May be some error LED blinking would be good to use?????? while (1); } delay(1000); //!!!!! TO ADJUST A TIME: //1) uncomment a line below (under those comments) //2), upload the code again //3) COMMENT line back //4). uploand ONE MORE TIME rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); //line to adjust time byte numDigits = 4; byte digitPins[] = {7, 8, 9, 10}; //SEG: A B C D E F G . //PIN: 11 7 4 2 1 10 5 3 //ARDU: 2 3 4 5 11 12 13 6 //byte segmentPins[] = {2, 3, 4, 5, 11, 12, 13, 6}; byte segmentPins[] = {2, 3, 4, 5, 11, 12, 13, 6}; bool resistorsOnSegments = false; // 'false' means resistors are on digit pins byte hardwareConfig = COMMON_CATHODE; // See README.md for options bool updateWithDelays = false; // Default 'false' is Recommended bool leadingZeros = false; // Use 'true' if you'd like to keep the leading zeros bool disableDecPoint = true; // Use 'true' if your decimal point doesn't exist or isn't connected sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments, updateWithDelays, leadingZeros, disableDecPoint); sevseg.setBrightness(100); sevseg.setNumber(1234, 1); delayWithUpdate(1000); sevseg.setNumber(8888, 1); delayWithUpdate(1000); } //========================= //========================= void loop(){ sevseg.refreshDisplay(); DateTime now = rtc.now(); tsPassed = now-dtBegin; static uint32_t nextReportMillis=0; static uint16_t prevDaysPassed=0; if (tsPassed.days() != prevDaysPassed){ prevDaysPassed=tsPassed.days(); sevseg.setNumber(prevDaysPassed, 0); } sevseg.refreshDisplay(); if (millis()>nextReportMillis){ //===PRINT SOME INFO HERE showInfo(now); nextReportMillis=millis()+5000; } } 

Skematik

Salin dan tempel tautan berikut ke browser: https://www.circuito.io/app?components=512,11021]

Klik 'Add components', ketik:
RTC (tambahkan);
7 segment display 20mm (pilih generic, jangan pilih sparkfun);
Ikuti diagram dan sambungkan setiap pin menggunakan kabel jumper.

Proses manufaktur

  1. Proyek Dadu Digital Arduino: Buat Generator Angka Acak berbasis LCD
  2. Bangun Iron Man Arduino: Komponen, Sensor, dan Panduan Langkah demi Langkah
  3. Find Me: Pelacak Item Cerdas dengan Arduino dan Bluetooth
  4. Buat Lengan Robot Berbasis Arduino dan Cetak 3D – Panduan Langkah demi Langkah
  5. Pengontrol Kelembapan Arduino DIY dengan Relay – Pengaturan Tegangan Tinggi yang Aman
  6. Smart Parking Counter: Pelacakan Kendaraan Real-Time dengan Arduino, Processing, dan PHP
  7. Penghitung RPM Arduino Kecepatan Tinggi dengan Algoritma Baru
  8. Pong Matriks NeoPixel pada Arduino Nano: Buat Game Pong Neon
  9. Volant Joystick Arduino Kustom untuk Gaming
  10. Buat Penerima Radio FM Canggih dengan Arduino dan Modul TEA5767