Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Reloj Espejo Infinito: Elegancia infinita y hora precisa

Componentes y suministros

Reloj Espejo Infinito: Elegancia infinita y hora precisa
Reloj en tiempo real (RTC)
× 1
Reloj Espejo Infinito: Elegancia infinita y hora precisa
Arduino Nano R3
× 1
Reloj Espejo Infinito: Elegancia infinita y hora precisa
Resistencia 10k ohm
× 3

Sobre este proyecto

Estamos ante un diseño maravilloso que podéis regalaros a vosotros mismos: Reloj Espejo Infinito. ¿No queréis que el espejo que poseéis tenga una apariencia infinita y se use al mismo tiempo para dar la hora? Estamos muy contentos de compartir con vosotros este proyecto que está preparado con LEDs RGB que se usan ampliamente hoy en día. Podéis aprender a hacer un reloj de espejo infinito viendo vuestro video.

Código

Código ArduinoArduino
#include <Adafruit_NeoPixel.h>
#include <stdio.h>
#include <DS1302.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 8
#define NUMPIXELS 60
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);
namespace {
byte ysaat;
byte ydak;
byte saat;
byte dak;
byte sn;
byte kontrol=0;
const int kCePin = 5; // Chip Enable
const int kIoPin = 6; // Input/Output
const int kSclkPin = 7; // Serial Clock
DS1302 rtc(kCePin, kIoPin, kSclkPin);
}
void printTime() {
// Obtener la hora y fecha actual del chip.
Time t = rtc.time();
saat=t.hr;
dak=t.min;
sn=t.sec;
if(saat>=12){saat=saat-12;}
pixels.setPixelColor(5*saat, pixels.Color(25,25,255));
pixels.setPixelColor(dak, pixels.Color(0,200,10));
pixels.setPixelColor(sn, pixels.Color(255,0,0));
pixels.show();
//Serial.println(t.sec);
//pixels.setPixelColor(t.hr, pixels.Color(0,0,0));
//pixels.setPixelColor(t.sec-1, pixels.Color(0,0,0));
pixels.show();
if(sn==0) {
pixels.setPixelColor(dak-1, pixels.Color(0,0,0));
pixels.setPixelColor(dak, pixels.Color(0,200,10));
pixels.show();
for(int i=1;i<60;i++) {
pixels.setPixelColor(i, pixels.Color(0,0,0));
}
}
if(dak==0) {
pixels.setPixelColor(59, pixels.Color(0,0,0));
}
}
void animasyon() {
colorWipe(strip.Color(255, 0, 0), 25); // Rojo
colorWipe(strip.Color(0, 255, 0), 25); // Verde
colorWipe(strip.Color(0, 0, 255), 25); // Azul
theaterChase(strip.Color(127, 127, 127), 50); // Blanco
theaterChase(strip.Color(127, 0, 0), 50); // Rojo
theaterChase(strip.Color(0, 0, 127), 50); // Azul
for(int i=1;i<60;i++) {
pixels.setPixelColor(i, pixels.Color(0,0,0));
}
}
void colorWipe(uint32_t c, uint8_t wait) {
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, c);
strip.show();
delay(wait);
}
}
void theaterChase(uint32_t c, uint8_t wait) {
for (int j=0; j<10; j++) {
//hacer 10 ciclos de persecución
for (int q=0; q < 3; q++) {
for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
strip.setPixelColor(i+q, c); //encender cada tercer pixel
}
strip.show();
delay(wait);
for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
strip.setPixelColor(i+q, 0); //apagar cada tercer pixel
}
}
}
}
void yenisaat() {
//kontrol=0;
saat=ysaat;
dak=ydak;
Time t(2018, 2, 23,ysaat, ydak, 0, Time::kFriday);
rtc.time(t);
}
int clockSet =10;
int up=11;
int down=12;
void setup() {
Serial.begin(9600);
#if defined (__AVR_ATtiny85__)
if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
#endif
strip.begin();
strip.show();
pixels.begin();
pinMode( clockSet,INPUT);
rtc.writeProtect(false);
rtc.halt(false);
}
void loop() {
if (kontrol==1) {
pixels.setPixelColor(5*ysaat, pixels.Color(25,25,255));
pixels.show();
delay(100);
pixels.setPixelColor(5*ysaat, pixels.Color(0,0,0));
pixels.show();
delay(100);
if (digitalRead(up)==HIGH) {
ysaat++;
while(digitalRead(up)==HIGH);
if(ysaat==12){ysaat=0;}
}
if (digitalRead(down)==HIGH) {
ysaat--;
while(digitalRead(down)==HIGH);
if(ysaat==255){ysaat=11;}
}
pixels.setPixelColor(5*ysaat, pixels.Color(25,25,255));
pixels.show();
delay(100);
pixels.setPixelColor(5*ysaat, pixels.Color(0,0,0));
pixels.show();
delay(100);
yenisaat();
if(digitalRead(clockSet)==HIGH) {
while(digitalRead(clockSet)==HIGH) {
pixels.setPixelColor(kontrol, pixels.Color(255,255,255));
pixels.show();
}
pixels.setPixelColor(kontrol, pixels.Color(0,0,0));
pixels.show();
kontrol++;
ysaat=saat;ydak=dak;
}
}
if (kontrol==2) {
if(digitalRead(clockSet)==HIGH) {
kontrol++;
while(digitalRead(clockSet)==HIGH) {
}
ysaat=saat;ydak=dak;
}
if (digitalRead(up)==HIGH) {
ydak++;
while(digitalRead(up)==HIGH);
if(ydak==60){ysaat=0;}
}
if (digitalRead(down)==HIGH) {
ydak--;
while(digitalRead(down)==HIGH);
if(ydak==255){ydak=59;}
}
pixels.setPixelColor(ydak, pixels.Color(0,205,10));
pixels.show();
yenisaat();
delay(100);
pixels.setPixelColor(ydak, pixels.Color(0,0,0));
pixels.show();
delay(100);
}
if (kontrol==3) {
kontrol=0;
yenisaat();
}
while (kontrol==0) {
if(digitalRead(up)==HIGH) {
animasyon ();
}
if(digitalRead(clockSet)==HIGH) {
kontrol++;
while(digitalRead(clockSet)==HIGH);
ysaat=saat;ydak=dak;}
printTime();
}
}

Piezas personalizadas y cajas

Reloj Espejo Infinito: Elegancia infinita y hora precisa Reloj Espejo Infinito: Elegancia infinita y hora precisa Reloj Espejo Infinito: Elegancia infinita y hora precisa

Esquemáticos

Reloj Espejo Infinito: Elegancia infinita y hora precisa

Proceso de manufactura

  1. Reloj de cuco: historia, artesanía y evolución moderna
  2. La Ciencia y el Arte de los Espejos Modernos
  3. Infinity Gears: Caja de cambios de 41 etapas que alcanza 346 trillones de años de rotación
  4. Reloj POV con Arduino: Construye una pantalla LED de persistencia de visión
  5. Reloj de Palabras DIY con Arduino: Construye una Pantalla Elegante en Tiempo Real
  6. Higrómetro de espejo enfriado DIY con Arduino: Monitorización precisa de temperatura y humedad
  7. Espejo infinito caleidoscopio DIY: Construye una impresionante pantalla de luces LED
  8. Construye un Reloj Maestro LED Personalizado con Alarma – Visible desde 12 Metros
  9. Reloj de Palabras en Italiano con Arduino Nano, NeoPixel, LCD y RTC
  10. Construye un Reloj Berlín con Arduino UNO – Reloj de Matriz LED DIY
  11. Generador de reloj en Verilog: Guía de diseño e implementación