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

Geanimeerde RGB Wandklok – Arduino Nano & Bluetooth Gestuurd Tijdstuk

Onderdelen en benodigdheden

Onderdeel Aantal Opmerking
Arduino Nano R3 1
HC-06 Bluetooth-module 1
Maxim Integrated DS3231MPMB1 Peripheral Module 1
RGB LED-strip 1
3D-printbare onderdelen 1

Benodigde tools en machines

  • Soldeerbout (generiek)
  • 3D-printer (generiek)

Over dit project

Geanimeerde RGB Wandklok – Arduino Nano & Bluetooth Gestuurd Tijdstuk

Als je je herinnert, presenteerden we eerdere klokontwerpen als de INFINITY MIRROR CLOCK en de 7-SEGMENT DIGITAL CLOCK. Nu zijn we terug met een ander, speciaal en heel mooi tijdstuk.

Geen twijfel, je zult deze wandklok liefhebben. Voor dit project gebruikten we opnieuw een RGB-led. En een 3D-printer is natuurlijk heel belangrijk! We hebben enkele van de benodigde onderdelen voor onze WANDKLOK ontworpen en geproduceerd. En het is niet alleen een klok, het bevat ook verschillende ANIMATIES. Je kunt de klok ook als animatie gebruiken als je wilt.

Hoe bedien je deze klok en animaties, vraag je je af? Geen zorgen. We hebben het in een heel simpele applicatie voor je ontwikkeld. Je kunt de link downloaden.

Arduino is onmisbaar. We gebruikten de Arduino Nano om ruimte te besparen. Ons RGB WANDKLOK-project, met een kleine elektronische schakeling, zal je niet teleurstellen. We willen je niet langer op het spantouw houden, dus we nodigen je uit om onze video hieronder te bekijken!

Geanimeerde RGB Wandklok – Arduino Nano & Bluetooth Gestuurd Tijdstuk
Geanimeerde RGB Wandklok – Arduino Nano & Bluetooth Gestuurd Tijdstuk
Geanimeerde RGB Wandklok – Arduino Nano & Bluetooth Gestuurd Tijdstuk
Geanimeerde RGB Wandklok – Arduino Nano & Bluetooth Gestuurd Tijdstuk
Geanimeerde RGB Wandklok – Arduino Nano & Bluetooth Gestuurd Tijdstuk
Geanimeerde RGB Wandklok – Arduino Nano & Bluetooth Gestuurd Tijdstuk

Code

Arduino Nano-code

#include <DS3231.h>
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 6
#define PIN2 7
#define NUMPIXELS 60
DS3231 rtc(SDA, SCL);
Time t;
int hr;
int mnt;
int sc;
char data;
char color_select;
int h_red_deger=255;
int h_green_deger=0;
int h_blue_deger=0;
int m_red_deger=0;
int m_green_deger=255;
int m_blue_deger=0;
int s_red_deger=255;
int s_green_deger=255;
int s_blue_deger=0;
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel pixels2 = Adafruit_NeoPixel(12, PIN2, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip2 = Adafruit_NeoPixel(12, PIN2, NEO_GRB + NEO_KHZ800);
int delayval = 10;

void setup() {
  Serial.begin(9600);
  rtc.begin();
#if defined (__AVR_ATtiny85__)
  if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
#endif
  pixels.begin();
  pixels2.begin();
  strip.begin();
  strip.show();
  strip2.begin();
  strip2.show();
}

void loop() {
  while(Serial.available() > 0) {
    delay(10);
    char c = Serial.read();
    data=c;
    if(data=='m') {
      data=' ';
      t = rtc.getTime();
      hr=t.hour;
      mnt=t.min;
      sc=t.sec;
      while(data!='m') {
        data=Serial.read();
        if(data=='+') { hr++; }
        if(data=='-') { hr--; }
        for(int i=0;i<12;i++){pixels2.setPixelColor(i, pixels2.Color(0,255,10));}
        pixels2.show();
        if(hr>=12){hr=hr-12;}
        if(hr<0){hr=hr+12;}
        pixels2.setPixelColor(hr, pixels2.Color(255,0,0));
        pixels2.show();
        delay(100);
        pixels2.setPixelColor(hr, pixels2.Color(0,0,0));
        pixels2.show();
        delay(100);
      }
      rtc.setTime(hr,mnt,sc);
      if(data=='m') {
        data=' ';
        t = rtc.getTime();
        hr=t.hour;
        mnt=t.min;
        sc=t.sec;
        while(data!='m') {
          data=Serial.read();
          if(data=='+') { mnt++; if(mnt==60) {mnt=0;} }
          if(data=='-') { if(mnt==0) {mnt=60;} mnt--; }
          for(int k=0;k<60;k++){pixels.setPixelColor(k, pixels.Color(0,0,0));}
          for(int k=0;k<60;k++){pixels.setPixelColor(k, pixels.Color(25,25,255));k=k+4;}
          pixels.setPixelColor(mnt, pixels.Color(0,250,0));
          pixels.show();
          delay(100);
          pixels.setPixelColor(mnt, pixels.Color(0,0,0));
          pixels.show();
          delay(100);
        }
      }
      rtc.setTime(hr,mnt,sc);
      data=' ';
    }
    if(data=='H') { color_select=data; }
    if(data=='M') { color_select=data; }
    if(data=='S') { color_select=data; }
    if(data=='A') {
      data=' ';
      colorWipe(strip.Color(255, 0, 0), 50); // Rood
      colorWipe(strip.Color(0, 255, 0), 50); // Groen
      colorWipe(strip.Color(0, 0, 255), 50); // Blauw
      //colorWipe(strip.Color(0, 0, 0, 255), 50); // Wit RGBW
      theaterChase(strip.Color(127, 127, 127), 50); // Wit
      theaterChase(strip.Color(127, 0, 0), 50); // Rood
      theaterChase(strip.Color(0, 0, 127), 50); // Blauw
      rainbow(20);
      rainbowCycle(20);
      theaterChaseRainbow(50);
    }
    if(data=='r' && color_select=='H') {
      h_red_deger=Serial.parseInt();
      pixels2.setPixelColor(hr, pixels2.Color(h_red_deger,h_green_deger, h_blue_deger));
      pixels2.show();
    }
    if(data=='g' && color_select=='H') {
      h_green_deger=Serial.parseInt();
      pixels2.setPixelColor(hr, pixels2.Color(h_red_deger,h_green_deger, h_blue_deger));
      pixels2.show();
    }
    if(data=='b' && color_select=='H') {
      h_blue_deger=Serial.parseInt();
      pixels2.setPixelColor(hr, pixels2.Color(h_red_deger,h_green_deger, h_blue_deger));
      pixels2.show();
    }
    if(data=='r' && color_select=='M') {
      m_red_deger=Serial.parseInt();
      pixels.setPixelColor(mnt, pixels.Color(m_red_deger,m_green_deger,m_blue_deger));
      pixels.show();
    }
    if(data=='g' && color_select=='M') {
      m_green_deger=Serial.parseInt();
      pixels.setPixelColor(mnt, pixels.Color(m_red_deger,m_green_deger,m_blue_deger));
      pixels.show();
    }
    if(data=='b' && color_select=='M') {
      m_blue_deger=Serial.parseInt();
      pixels.setPixelColor(mnt, pixels.Color(m_red_deger,m_green_deger,m_blue_deger));
      pixels.show();
    }
    if(data=='r' && color_select=='S') {
      s_red_deger=Serial.parseInt();
      pixels.setPixelColor(sc, pixels.Color(s_red_deger,s_green_deger,s_blue_deger));
      pixels.show();
    }
    if(data=='g' && color_select=='S') {
      s_green_deger=Serial.parseInt();
      pixels.setPixelColor(sc, pixels.Color(s_red_deger,s_green_deger,s_blue_deger));
      pixels.show();
    }
    if(data=='b' && color_select=='S') {
      s_blue_deger=Serial.parseInt();
      pixels.setPixelColor(sc, pixels.Color(s_red_deger,s_green_deger,s_blue_deger));
      pixels.show();
    }
  }
  t = rtc.getTime();
  hr=t.hour;
  mnt=t.min;
  sc=t.sec;
  pixels.setPixelColor(sc, pixels.Color(s_red_deger,s_green_deger,s_blue_deger));
  pixels.setPixelColor(mnt, pixels.Color(m_red_deger,m_green_deger,m_blue_deger));
  pixels.show();
  for(int i=0;i<12;i++){
    if(i==hr) {i++;}
    pixels2.setPixelColor(i, pixels2.Color(0,255,0));
  }
  pixels2.show();
  if(hr>=12){hr=hr-12;}
  pixels2.setPixelColor(hr, pixels2.Color(h_red_deger,h_green_deger,h_blue_deger));
  pixels2.show();
  delay(10);
  pixels.setPixelColor(sc, pixels.Color(0,0,0));
  for(int k=0;k<60;k++){pixels.setPixelColor(k, pixels.Color(0,0,0));}
  for(int k=0;k<60;k++){pixels.setPixelColor(k, pixels.Color(25,25,255));k=k+4;}
  pixels.setPixelColor(mnt, pixels.Color(0,0,0));
  pixels.show();
}

void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i

Schema's

Geanimeerde RGB Wandklok – Arduino Nano & Bluetooth Gestuurd Tijdstuk

Besturing via je telefoon
clockconnect__Ieit1qA91l.apk

Productieproces

  1. Koekeklok: geschiedenis, vakmanschap en moderne evolutie
  2. Arduino POV-klok: Bouw een Persistence-of-Vision LED-display
  3. Een stijlvolle wandklok bouwen met Adafruit 60-LED Neopixel Ring & Arduino
  4. DIY Arduino Woordklok – Bouw een Elegant Real-Time Display
  5. Bouw een Aangepaste LED Hoofdklok met Alarm – Zichtbaar vanaf 12 Meter
  6. 3D RGB Arduclock – Bluetooth LED Tijdstuk met Real-Time Clock
  7. Bouw een Italiaanse Woordklok met Arduino Nano, NeoPixel, LCD en RTC
  8. JX Wave Generator – Arduino-compatibele DDS-oscillator met OLED-display
  9. Bouw een Berlijnse Klok met Arduino UNO – DIY LED-matrix klok
  10. Bouw een Precieze 7-Segment Klok met Arduino Pro Mini & DS1302 RTC
  11. Oneindige Spiegel Klok: Oneindige Elegantie Trefst Nauwkeurige Tijd