Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Relógio Espelho Infinito: Elegância Infinita Encontra Precisão no Tempo

Componentes e Materiais

Real Time Clock (RTC) × 1
Arduino Nano R3 × 1
Resistor 10k ohm × 3

Sobre o Projeto

Estamos diante de um design maravilhoso que você pode oferecer tanto como presente para si mesmo: Relógio Espelho Infinito. Você não gostaria que o espelho que possui tivesse uma aparência infinita e fosse usado ao mesmo tempo como relógio? Temos o prazer de compartilhar este projeto preparado com LEDs RGB amplamente utilizados hoje. Você pode aprender como fazer um relógio espelho infinito assistindo ao vídeo.

Código

Código Arduino Arduino
#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() {
  // Obtém a hora e data atuais do 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); // Vermelho
  colorWipe(strip.Color(0, 255, 0), 25); // Verde
  colorWipe(strip.Color(0, 0, 255), 25); // Azul
  theaterChase(strip.Color(127, 127, 127), 50); // Branco
  theaterChase(strip.Color(127, 0, 0), 50); // Vermelho
  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++) {
    // faz 10 ciclos de perseguição
    for (int q=0; q < 3; q++) {
      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, c); // liga cada terceiro pixel
      }
      strip.show();
      delay(wait);
      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, 0); // desliga cada terceiro 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();
  }
}

Peças Personalizadas e Gabinetes

Relógio Espelho Infinito: Elegância Infinita Encontra Precisão no Tempo
Relógio Espelho Infinito: Elegância Infinita Encontra Precisão no Tempo
Relógio Espelho Infinito: Elegância Infinita Encontra Precisão no Tempo

Esquemáticos

Relógio Espelho Infinito: Elegância Infinita Encontra Precisão no Tempo

Processo de manufatura

  1. Relógio Cuco: História, Artesanato e Evolução Moderna
  2. A Ciência e a Arte dos Espelhos Modernos
  3. Infinity Gears: Caixa de Engrenagens de 41 Estágios Alcança Rotação de 346 Quatrilhões de Anos
  4. Relógio POV com Arduino: Construa um Display LED de Persistência de Visão
  5. Gerador de Clock Verilog: Guia de Design e Implementação
  6. Relógio de Palavras DIY com Arduino – Construa um Display Elegante de Tempo Real
  7. Higrômetro de Espelho Resfriado DIY com Arduino: Monitoramento Preciso de Temperatura e Umidade
  8. Espelho Infinito Caleidoscópio DIY – Construa um Display de Luz LED Incrível
  9. Construa um Relógio Mestre LED Personalizado com Alarme – Visível a 12 Metros
  10. Relógio de Palavras em Italiano com Arduino Nano, NeoPixel, LCD e RTC