Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Oneindige Spiegel Klok: Oneindige Elegantie Trefst Nauwkeurige Tijd

Onderdelen en Benodigdheden

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

Over Dit Project

We hebben een prachtig ontwerp dat je zowel voor jezelf kunt maken als als cadeau: de Oneindige Spiegel Klok. Wil je niet dat de spiegel die je bezit een oneindig uiterlijk heeft en tegelijkertijd de tijd aangeeft? We zijn erg blij om dit project met je te delen, gemaakt met RGB LED's die vandaag de dag wijd worden gebruikt. Je kunt leren hoe je een oneindige spiegelklok maakt door de video te bekijken.

Code

Arduino Code
#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;
  const int kIoPin = 6;
  const int kSclkPin = 7;
  DS1302 rtc(kCePin, kIoPin, kSclkPin);
}
void printTime() {
  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();
  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);
  colorWipe(strip.Color(0, 255, 0), 25);
  colorWipe(strip.Color(0, 0, 255), 25);
  theaterChase(strip.Color(127, 127, 127), 50);
  theaterChase(strip.Color(127, 0, 0), 50);
  theaterChase(strip.Color(0, 0, 127), 50);
  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++) {
    for (int q=0; q < 3; q++) {
      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, c);
      }
      strip.show();
      delay(wait);
      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, 0);
      }
    }
  }
}
void yenisaat() {
  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();
  }
}

Aangepaste Onderdelen en Behuizingen

Oneindige Spiegel Klok: Oneindige Elegantie Trefst Nauwkeurige Tijd
Oneindige Spiegel Klok: Oneindige Elegantie Trefst Nauwkeurige Tijd
Oneindige Spiegel Klok: Oneindige Elegantie Trefst Nauwkeurige Tijd

Schema's

Oneindige Spiegel Klok: Oneindige Elegantie Trefst Nauwkeurige Tijd

Productieproces

  1. Koekeklok: geschiedenis, vakmanschap en moderne evolutie
  2. De Wetenschap en Vakmanschap van Moderne Spiegels
  3. Infinity Gears: 41-traps tandwielkast met 346 quintiljoen jaar rotatie
  4. Arduino POV-klok: Bouw een Persistence-of-Vision LED-display
  5. DIY Arduino Woordklok – Bouw een Elegant Real-Time Display
  6. DIY Arduino Koelspiegel-hygrometer: Precieze temperatuur- en vochtigheidsmeting
  7. DIY Kaleidoscoop Oneindige Spiegel – Bouw een Indrukwekkende LED-lichtdisplay
  8. Bouw een Aangepaste LED Hoofdklok met Alarm – Zichtbaar vanaf 12 Meter
  9. Bouw een Italiaanse Woordklok met Arduino Nano, NeoPixel, LCD en RTC
  10. Bouw een Berlijnse Klok met Arduino UNO – DIY LED-matrix klok
  11. Verilog Clock Generator: Ontwerp & Implementatie Gids