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

Jam LED Arduino RTC

Komponen dan persediaan

Arduino UNO
× 1
Jam Waktu Nyata (RTC)
× 1
Resistor 1k ohm
× 15
Melalui Resistor Lubang, 120 ohm
× 15
Regulator Linier (7805)
× 1
Kapasitor 22 pF
× 1
Kristal 16 MHz
× 1
Kapasitor 10 F
× 1
Baterai Sel Koin CR2032
× 1
Tempat Baterai, Lithium CR2032
× 1
LED 5 mm:Hijau
× 190
Bipolar - Transistor RF, NPN
× 10
PNP Transistor Serbaguna
× 12
Saklar Taktil, Digerakkan Atas
× 4
Catu Daya 60W PCIe 12V 5A yang cermat
× 1

Alat dan mesin yang diperlukan

Besi solder (generik)
Kawat Solder, Bebas Timah
Digilent Mastech MS8217 Autorange Digital Multimeter

Tentang proyek ini

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

Kode

  • KODE jam LED
KODE jam LEDArduino
Unduh kode ini dan unggah ke proyek
/* 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. }

Skema

Ini adalah kabel SSD dengan LED

Proses manufaktur

  1. Arduino pov vision clock
  2. Jam Kata Sederhana (Arduino)
  3. DIY Sederhana 20 kHz Arduino Oscilloscope pada LCD Nokia 5110
  4. Jam Master
  5. Smart Blinds
  6. Jam Kata Italia
  7. Arduino dengan Bluetooth untuk Mengontrol LED!
  8. Arduino Quadruped
  9. Jam Array 7-Segmen
  10. Input Analog Terisolasi untuk Arduino