Proses manufaktur
| × | 1 | ||||
| × | 1 | ||||
| × | 15 | ||||
| × | 15 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 190 | ||||
| × | 10 | ||||
| × | 12 | ||||
| × | 4 | ||||
| × | 1 |
| ||||
| ||||
|
Pertama Anda harus mengunduh perpustakaan berikut (tautan diberikan di akhir halaman ini) 1. Wire.h
2. RTClib.hDaftar Suku Cadang
Tonton videonya
Ini adalah Modul jam RTC
Ini adalah Sirkuit Arduino
Koneksi Kabel RTC
Sakelar RTC
Identifikasi Anoda dan Katoda
Diagram Sirkuit (COMMON ANODE)
JIKA ANDA MENGGUNAKAN COMMON CATHODE LED LAKUKAN PERUBAHAN SEBAGAI BERIKUT
catu daya
/* 4 digit tampilan 7 segmen:http://www.sparkfun.com/products/9483 Lembar Data:http://www.sparkfun.com/datasheets/Components/LED/ 7-Segment/YSD-439AR6B-35.pdf */// sambungan diubah oleh niq_ro dari http://nicuflorica.blogspot.com// dataseet:http://www.tme.eu/ro/Document/dfc2efde2e22005fd28615e298ea2655/KW4 -563XSA.pdf// Kode dimodifikasi oleh BMIAK Basnayaka// http://www.setnfix.comint digit1 =11; int angka2 =10;int angka3 =9; int angka4 =6;int angka5 =5; int angka6 =3; //Pin pemetaan dari Arduino ke ATmega DIP28 jika Anda membutuhkannya//http://www.arduino.cc/en/Hacking/PinMappingint segA =0; //Menampilkan pin 11int segB =1; //Menampilkan pin 7int segC =2; //Menampilkan pin 4int segD =4; //Menampilkan pin 2int segE =7; //Menampilkan pin 1int segF =8; //Menampilkan pin 10int segG =12; //Menampilkan pin 5int segDP =13; // Menampilkan pin 3#include#include "RTClib.h"RTC_DS1307 RTC;// Fungsi tanggal dan waktu menggunakan RTC DS1307 yang terhubung melalui I2C dan Wire lib// sketsa asli dari http://learn.adafruit .com/ds1307-real-time-clock-breakout-board-kit/// tambahkan bagian dengan SQW=1Hz dari http://tronixstuff.wordpress.com/2010/10/20/tutorial-arduino-and-the- i2c-bus/// tambahkan bagian dengan penyesuaian manual http://www.bristolwatch.com/arduino/arduino_ds1307.htmbyte SW0 =A0;byte SW1 =A2;byte SW2 =A1;byte SWT =A3;int Adhr=0; int Admnt=0;int D =0;int Z =0;// gunakan untuk heksa dalam konversi zecimallong zh, uh, ore;long zm, um, miniti;void setup() { //Serial.begin(57600); Kawat.mulai(); RTC.mulai(); // RTC.adjust(DateTime(F(__DATE__), F(__TIME__)));// jika Anda perlu mengatur jam... hapus saja // dari baris di atas ini// kode bagian untuk menginstal LEDWire.beginTransmission (0x68);Wire.write(0x07); // pindahkan pointer ke alamat SQW// Wire.write(0x00); // mematikan pin SQW Wire.write(0x10); // mengirimkan 0x10 (hex) 00010000 (biner) ke register kontrol - menyalakan gelombang persegi pada 1Hz// Wire.write(0x13); // mengirim 0x13 (hex) 00010011 (biner) 32kHzWire.endTransmission(); pinMode(segA, OUTPUT); pinMode(segB, OUTPUT); pinMode(segC, OUTPUT); pinMode(segD, OUTPUT); pinMode(segE, OUTPUT); pinMode(segF, OUTPUT); pinMode(segG, OUTPUT); pinMode(segDP, OUTPUT); pinMode(digit1, OUTPUT); pinMode(digit2, OUTPUT); pinMode(digit3, OUTPUT); pinMode(digit4, OUTPUT); pinMode(digit5, OUTPUT); pinMode(digit6, OUTPUT);//Serial.begin(9600);pinMode(SW0, INPUT); // TIDAK. tekan tombol switchpinMode(SW1, INPUT); // TIDAK. tekan tombol switchpinMode(SW2, INPUT); // TIDAK. tekan tombol switchpinMode(SWT, INPUT); // TIDAK. tekan tombol switchdigitalWrite(SW0, HIGH); // pull-up ondigitalWrite(SW1, HIGH);digitalWrite(SW2, HIGH);digitalWrite(segDP, LOW);}void loop() { DateTime now =RTC.now(); panjang HR =sekarang.jam()*1000; long timp =(HR*10)+sekarang.menit()*100+sekarang.detik(); Adhr =sekarang.jam(); Admnt=now.minute();int DIM =0;if (timp> =250000)timp=timp-240000;//---------------------- ----------------------------------//12/24 jam sial //--------- ---------------------------------------------jika (timp <130000 ){digitalWrite(segDP, LOW);}if (digitalRead(SWT)==0){delay(300); if (D ==0) { D =1;delay(200);} else{D =0;}}if (D ==0){ if (timp> =130000){timp=timp-120000;digitalWrite( segDP, HIGH);}}if (timp> =130000){ digitalWrite(segDP, LOW);}if ((D==1)&(timp <130000))digitalWrite(segDP, LOW);//--- -------------------------------------------------- - //int timp =(now.minute(), DEC);// displayNumber(12); // ini adalah angka yang akan ditampilkan untuk(int i =100; i>0; i--) { if (timp> =100000) displayNumber01(timp); lain displayNumber02(timp); } for(int i =100; i>0; i--) { if (timp> =100000) displayNumber03(timp); lain displayNumber04(timp); } for(int i =100; i>0; i--) { if (timp> =100000) displayNumber05(timp); lain displayNumber06(timp); } if (digitalRead(SW0)==0){delay(100);Z=1; Atur waktu(); }// tahan sakelar untuk menyetel waktu}void set_time() { byte menit1 =0; byte jam1 =0; byte menit =0; byte jam =0; jam=Adhr; menit=Admnt; jika ((jam &0x0f)> 9) jam =jam + 6; jika (jam> 0x24) jam =1; // Tengah malam 12.00 akan ditampilkan sebagai 12:00 (Dengan LED PM menyala) atau 24:00 //jika (jam> 0x24) jam =1; // Tengah malam 12.00 akan ditampilkan sebagai 0:00 jika ((menit &0x0f)> 9) menit =menit + 6; jika (menit> 0x59) menit =0; while (!(Z==0)){ // set saklar waktu harus dilepaskan untuk keluar int TST =digitalRead(SW2); while (TST==0) // setel jam { jam++; // mengubah heksa menjadi zecimal:zh =jam / 16; eh =jam - 16 * zh; bijih =10 * zh + eh; zm =menit / 16; um =menit - 16 * zm; miniti =10 * zm + um; jika ((jam &0x0f)> 9) jam =jam + 6; jika (jam> 0x24) jam =1; // Tengah malam 12.00 akan ditampilkan sebagai 12:00 (Dengan LED PM menyala) atau 24:00 //jika (jam> 0x24) jam =1; // Tengah malam 12.00 akan ditampilkan sebagai 0:00 jika (jam <=9) delay(1); untuk(int i =400; i>0; i--) { displayNumber01(bijih*10000+miniti*100); } TST =digitalRead(SW2); } while (!(digitalRead(SW1))) // setel menit { menit++; // mengubah heksa menjadi zecimal:zh =jam / 16; eh =jam - 16 * zh; bijih =10 * zh + eh; zm =menit / 16; um =menit - 16 * zm; miniti =10 * zm + um; untuk(int i =400; i>0; i--) { displayNumber01(bijih*10000+miniti*100); } jika ((menit &0x0f)> 9) menit =menit + 6; jika (menit> 0x59) menit =0; if (menit>=9) delay(1); } Wire.beginTransmission (0x68); // aktifkan DS1307 Wire.write(0); // mulai dari mana Wire.write(0x00); //detik Wire.write(menit); //menit Wire.write(0x80 | jam); //jam (waktu 24 jam) Wire.write(0x06); // Hari 01-07 Wire.write(0x01); // Tanggal 0-31 Wire.write(0x05); // bulan 0-12 Wire.write(0x09); // Tahun 00-99 Wire.write(0x10); // Kontrol 0x10 menghasilkan gelombang persegi 1 HZ pada pin 7. Wire.endTransmission(); // mengubah heksa menjadi zecimal:zh =jam / 16; eh =jam - 16 * zh; bijih =10 * zh + eh; zm =menit / 16; um =menit - 16 * zm; miniti =10 * zm + um; untuk(int i =400; i>0; i--) { displayNumber01(bijih*10000+miniti*100); }tunda(100); //Serial.print(digitalRead(SW0));if (digitalRead(SW0)==0) Z =0; penundaan (300); }//Serial.print(SW2);}void displayNumber01(long toDisplay) {#define DISPLAY_BRIGHTNESS 25#define DIGIT_ON HIGH#define DIGIT_OFF LOW for(int digit =6; digit> 0; digit--) { //Aktifkan sebuah digit untuk waktu yang singkat switch(digit) { case 1:digitalWrite(digit1, DIGIT_ON); merusak; kasus 2:digitalWrite(digit2, DIGIT_ON); //digitalWrite(segDP, RENDAH); merusak; kasus 3:digitalWrite(digit3, DIGIT_ON); merusak; kasus 4:digitalWrite(digit4, DIGIT_ON); merusak; kasus 5:digitalWrite(digit5, DIGIT_ON); merusak; kasus 6:digitalWrite(digit6, DIGIT_ON); merusak; } lightNumber(untukMenampilkan % 10); toDisplay /=10; delayMicroseconds(DISPLAY_BRIGHTNESS); //Matikan semua segmen lightNumber(10); //Matikan semua digit digitalWrite(digit1, DIGIT_OFF); digitalWrite(digit2, DIGIT_OFF); digitalWrite(digit3, DIGIT_OFF); digitalWrite(digit4, DIGIT_OFF); digitalWrite(digit5, DIGIT_OFF); digitalWrite(digit6, DIGIT_OFF);}} void displayNumber02(long toDisplay) {#define DISPLAY_BRIGHTNESS 25#define DIGIT_ON HIGH#define DIGIT_OFF LOW for(int digit =6; digit> 0; digit--) { //Aktifkan satu digit untuk waktu yang singkat sakelar(digit) { case 1:lightNumber(10); merusak; kasus 2:digitalWrite(digit2, DIGIT_ON); //digitalWrite(segDP, RENDAH); merusak; kasus 3:digitalWrite(digit3, DIGIT_ON); merusak; kasus 4:digitalWrite(digit4, DIGIT_ON); merusak; kasus 5:digitalWrite(digit5, DIGIT_ON); merusak; kasus 6:digitalWrite(digit6, DIGIT_ON); merusak; } lightNumber(untukMenampilkan % 10); toDisplay /=10; delayMicroseconds(DISPLAY_BRIGHTNESS); //Matikan semua segmen lightNumber(10); //Matikan semua digit digitalWrite(digit1, DIGIT_OFF); digitalWrite(digit2, DIGIT_OFF); digitalWrite(digit3, DIGIT_OFF); digitalWrite(digit4, DIGIT_OFF); digitalWrite(digit5, DIGIT_OFF); digitalWrite(digit6, DIGIT_OFF);}} void displayNumber03(long toDisplay) {#define DISPLAY_BRIGHTNESS 25#define DIGIT_ON HIGH#define DIGIT_OFF LOW for(int digit =6; digit> 0; digit--) { //Aktifkan satu digit untuk waktu yang singkat sakelar(digit) { kasus 1:digitalWrite(digit1, DIGIT_ON); merusak; kasus 2:digitalWrite(digit2, DIGIT_ON); merusak; kasus 3:digitalWrite(digit3, DIGIT_ON); merusak; kasus 4:digitalWrite(digit4, DIGIT_ON); merusak; kasus 5:digitalWrite(digit5, DIGIT_ON); merusak; kasus 6:digitalWrite(digit6, DIGIT_ON); merusak; } lightNumber(untukMenampilkan % 10); toDisplay /=10; delayMicroseconds(DISPLAY_BRIGHTNESS); //Matikan semua segmen lightNumber(10); //Matikan semua digit digitalWrite(digit1, DIGIT_OFF); digitalWrite(digit2, DIGIT_OFF); digitalWrite(digit3, DIGIT_OFF); digitalWrite(digit4, DIGIT_OFF); digitalWrite(digit5, DIGIT_OFF); digitalWrite(digit6, DIGIT_OFF);}} void displayNumber04(long toDisplay) {#define DISPLAY_BRIGHTNESS 25#define DIGIT_ON HIGH#define DIGIT_OFF LOW for(int digit =6; digit> 0; digit--) { //Aktifkan satu digit untuk waktu yang singkat sakelar(digit) { case 1:lightNumber(10); merusak; kasus 2:digitalWrite(digit2, DIGIT_ON); merusak; kasus 3:digitalWrite(digit3, DIGIT_ON); merusak; kasus 4:digitalWrite(digit4, DIGIT_ON); merusak; kasus 5:digitalWrite(digit5, DIGIT_ON); merusak; kasus 6:digitalWrite(digit6, DIGIT_ON); merusak; } lightNumber(untukMenampilkan % 10); toDisplay /=10; delayMicroseconds(DISPLAY_BRIGHTNESS); //Matikan semua segmen lightNumber(10); //Matikan semua digit digitalWrite(digit1, DIGIT_OFF); digitalWrite(digit2, DIGIT_OFF); digitalWrite(digit3, DIGIT_OFF); digitalWrite(digit4, DIGIT_OFF); digitalWrite(digit5, DIGIT_OFF); digitalWrite(digit6, DIGIT_OFF);}} void displayNumber05(long toDisplay) {#define DISPLAY_BRIGHTNESS 25#define DIGIT_ON HIGH#define DIGIT_OFF LOW for(int digit =6; digit> 0; digit--) { //Aktifkan satu digit untuk waktu yang singkat sakelar(digit) { kasus 1:digitalWrite(digit1, DIGIT_ON); merusak; kasus 2:digitalWrite(digit2, DIGIT_ON); merusak; kasus 3:digitalWrite(digit3, DIGIT_ON); merusak; kasus 4:digitalWrite(digit4, DIGIT_ON); merusak; kasus 5:digitalWrite(digit5, DIGIT_ON); merusak; kasus 6:digitalWrite(digit6, DIGIT_ON); merusak; } lightNumber(untukMenampilkan % 10); toDisplay /=10; delayMicroseconds(DISPLAY_BRIGHTNESS); //Matikan semua segmen lightNumber(10); //Matikan semua digit digitalWrite(digit1, DIGIT_OFF); digitalWrite(digit2, DIGIT_OFF); digitalWrite(digit3, DIGIT_OFF); digitalWrite(digit4, DIGIT_OFF); digitalWrite(digit5, DIGIT_OFF); digitalWrite(digit6, DIGIT_OFF);}} void displayNumber06(long toDisplay) {#define DISPLAY_BRIGHTNESS 25#define DIGIT_ON HIGH#define DIGIT_OFF LOW for(int digit =6; digit> 0; digit--) { //Aktifkan satu digit untuk waktu yang singkat sakelar(digit) { case 1://digitalWrite(digit1, DIGIT_ON); merusak; kasus 2:digitalWrite(digit2, DIGIT_ON); merusak; kasus 3:digitalWrite(digit3, DIGIT_ON); merusak; kasus 4:digitalWrite(digit4, DIGIT_ON); merusak; kasus 5:digitalWrite(digit5, DIGIT_ON); merusak; kasus 6:digitalWrite(digit6, DIGIT_ON); merusak; } lightNumber(untukMenampilkan % 10); toDisplay /=10; delayMicroseconds(DISPLAY_BRIGHTNESS); //Matikan semua segmen lightNumber(10); //Matikan semua digit digitalWrite(digit1, DIGIT_OFF); digitalWrite(digit2, DIGIT_OFF); digitalWrite(digit3, DIGIT_OFF); digitalWrite(digit4, DIGIT_OFF); digitalWrite(digit5, DIGIT_OFF); digitalWrite(digit6, DIGIT_OFF);}} //Diberi angka, nyalakan segmen tersebut//Jika angka ==10, matikan numbervoid lightNumber(int numberToDisplay) {//Common Anode ********* ****************#menentukan SEGMENT_ON HIGH#menentukan SEGMENT_OFF LOW/* Common Cathode ***************** #menentukan SEGMENT_ON LOW # tentukan SEGMENT_OFF HIGH*/ sakelar (angkaToDisplay){ case 0:digitalWrite(segA, SEGMENT_ON); digitalWrite(segB, SEGMENT_ON); digitalWrite(segC, SEGMENT_ON); digitalWrite(segD, SEGMENT_ON); digitalWrite(segE, SEGMENT_ON); digitalWrite(segF, SEGMENT_ON); digitalWrite(segG, SEGMENT_OFF); merusak; kasus 1:digitalWrite(segA, SEGMENT_OFF); digitalWrite(segB, SEGMENT_ON); digitalWrite(segC, SEGMENT_ON); digitalWrite(segD, SEGMENT_OFF); digitalWrite(segE, SEGMENT_OFF); digitalWrite(segF, SEGMENT_OFF); digitalWrite(segG, SEGMENT_OFF); merusak; kasus 2:digitalWrite(segA, SEGMENT_ON); digitalWrite(segB, SEGMENT_ON); digitalWrite(segC, SEGMENT_OFF); digitalWrite(segD, SEGMENT_ON); digitalWrite(segE, SEGMENT_ON); digitalWrite(segF, SEGMENT_OFF); digitalWrite(segG, SEGMENT_ON); merusak; kasus 3:digitalWrite(segA, SEGMENT_ON); digitalWrite(segB, SEGMENT_ON); digitalWrite(segC, SEGMENT_ON); digitalWrite(segD, SEGMENT_ON); digitalWrite(segE, SEGMENT_OFF); digitalWrite(segF, SEGMENT_OFF); digitalWrite(segG, SEGMENT_ON); merusak; kasus 4:digitalWrite(segA, SEGMENT_OFF); digitalWrite(segB, SEGMENT_ON); digitalWrite(segC, SEGMENT_ON); digitalWrite(segD, SEGMENT_OFF); digitalWrite(segE, SEGMENT_OFF); digitalWrite(segF, SEGMENT_ON); digitalWrite(segG, SEGMENT_ON); merusak; kasus 5:digitalWrite(segA, SEGMENT_ON); digitalWrite(segB, SEGMENT_OFF); digitalWrite(segC, SEGMENT_ON); digitalWrite(segD, SEGMENT_ON); digitalWrite(segE, SEGMENT_OFF); digitalWrite(segF, SEGMENT_ON); digitalWrite(segG, SEGMENT_ON); merusak; kasus 6:digitalWrite(segA, SEGMENT_ON); digitalWrite(segB, SEGMENT_OFF); digitalWrite(segC, SEGMENT_ON); digitalWrite(segD, SEGMENT_ON); digitalWrite(segE, SEGMENT_ON); digitalWrite(segF, SEGMENT_ON); digitalWrite(segG, SEGMENT_ON); merusak; kasus 7:digitalWrite(segA, SEGMENT_ON); digitalWrite(segB, SEGMENT_ON); digitalWrite(segC, SEGMENT_ON); digitalWrite(segD, SEGMENT_OFF); digitalWrite(segE, SEGMENT_OFF); digitalWrite(segF, SEGMENT_OFF); digitalWrite(segG, SEGMENT_OFF); merusak; kasus 8:digitalWrite(segA, SEGMENT_ON); digitalWrite(segB, SEGMENT_ON); digitalWrite(segC, SEGMENT_ON); digitalWrite(segD, SEGMENT_ON); digitalWrite(segE, SEGMENT_ON); digitalWrite(segF, SEGMENT_ON); digitalWrite(segG, SEGMENT_ON); merusak; kasus 9:digitalWrite(segA, SEGMENT_ON); digitalWrite(segB, SEGMENT_ON); digitalWrite(segC, SEGMENT_ON); digitalWrite(segD, SEGMENT_ON); digitalWrite(segE, SEGMENT_OFF); digitalWrite(segF, SEGMENT_ON); digitalWrite(segG, SEGMENT_ON); merusak; // semua segmen AKTIF kasus 10:digitalWrite(segA, SEGMENT_OFF); digitalWrite(segB, SEGMENT_OFF); digitalWrite(segC, SEGMENT_OFF); digitalWrite(segD, SEGMENT_OFF); digitalWrite(segE, SEGMENT_OFF); digitalWrite(segF, SEGMENT_OFF); digitalWrite(segG, SEGMENT_OFF); merusak; }// Akhir coding, BUDHUSARANAI, Semoga berhasil. }
Proses manufaktur
Komponen dan persediaan Arduino Nano R3 × 1 Maxim Integrated DS3231M - ±5ppm, I2C Real-Time Clock × 1 Sakelar Tombol Tekan, Sesaat × 2 Modul matriks led 32x8 × 1 Alat dan mesin yang diperlukan Besi solder (generik) Aplikasi dan layan
Komponen dan persediaan Arduino Nano R3 × 1 matriks LED × 1 Resistor foto × 1 Breadboard (generik) × 1 DS3231 × 1 Aplikasi dan layanan online Arduino IDE Tentang proyek ini Membaca tampilan jam di sebuah ruangan pa
Komponen dan persediaan Arduino UNO × 1 Adafruit LCD Standar - 16x2 Putih di Atas Biru × 1 Sakelar Tombol Tekan SparkFun 12mm × 4 Resistor 10k ohm × 4 Resistor 221 ohm Yah, 220 ohm... × 2 Potensiometer Putaran Tunggal- 100k ohm × 1
Komponen dan persediaan Arduino UNO × 1 Adafruit LCD Standar - 16x2 Putih di Atas Biru × 1 Sakelar Tombol Tekan SparkFun 12mm × 1 Ukuran Setengah Papan Tempat Memotong Roti Perma-Proto × 1 Kabel jumper (generik) × 1 Resistor 1k ohm × 1