Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Анимированные настенные часы с RGB-подсветкой

Компоненты и расходные материалы

Arduino Nano R3
× 1
Периферийный модуль Maxim Integrated DS3231MPMB1
× 1
RGB Stribe Led
× 1
Детали для 3D-печати
× 1

Необходимые инструменты и машины

Паяльник (общий)
3D-принтер (общий)

Об этом проекте

Если вы помните, в предыдущих разделах мы представляли наши дизайнерские проекты часов, такие как INFINITY MIRROR CLOCK и 7-СЕГМЕНТНЫЕ ЦИФРОВЫЕ ЧАСЫ. Теперь мы снова с другими, особенными и довольно красивыми часами.

Нет сомнений, что эти настенные часы вам понравятся. В этом проекте мы снова использовали светодиод RGB. И, конечно же, 3D-принтер очень важен! Мы снова спроектировали и изготовили некоторые изделия, необходимые для НАСТЕННЫХ ЧАСОВ. И это не просто часы, это еще и разные АНИМАЦИИ. Вы также можете использовать часы в качестве анимации, если хотите.

Вы спросите, как вы управляете этими часами и анимацией? Не переживай. Мы разработали для вас очень простое приложение. Вы можете скачать ссылку.

Ардуино незаменим. Мы использовали Arduino Nano для экономии места. Наш проект НАСТЕННЫЕ ЧАСЫ RGB, который имеет небольшую электронную схему, вас не подведет. Мы не хотим больше вас волновать, поэтому приглашаем вас посмотреть наше видео ниже!

Код

  • Нано-код Arduino
Нано-код Arduino Arduino
Коды времени и анимации находятся в файлах
 #include  #include  #ifdef __AVR__ #include  # endif # define PIN 6 # define PIN2 7 # define NUMPIXELS 60DS3231 rtc (SDA, SCL); Время t; int hr; int mnt; int sc; данные char; 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 пикселей =Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); =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 (); # если определено (__AVR_ATtiny85__) if (F_CPU ==16000000) clock_prescale_set (clock_div_1); # endif // Конец специального кода брелка pixel.begin (); // Это инициализирует библиотеку NeoPixel. pixel2.begin (); strip.begin (); strip.show (); strip2.begin (); strip2.show (); //} void loop () {while (Serial.available ()> 0) // балансирующий курулуйкен {delay (10); char c =Serial.read (); data =c; если (данные =='м') {данные =''; t =rtc.getTime (); ч =t. час; mnt =t.min; sc =t.sec; в то время как (данные! ='м') {данные =Serial.read (); если (данные =='+') {hr ++; } if (data =='-') {hr--; } для (int я =0; я <12; я ++) {пикселей2.setPixelColor (я, пикселей2.Color (0,255,10));} пикселей2.show (); if (hr> =12) {hr =hr-12;} if (hr <0) {hr =hr + 12;} пикселей2.setPixelColor (час, пикселей2.Color (255,0,0)); pixel2.show (); задержка (100); пикселей2.setPixelColor (ч, пикселей2.Color (0,0,0)); pixel2.show (); задержка (100); } rtc.setTime (час, мнт, сб); если (данные =='м') {данные =''; t =rtc.getTime (); ч =t. час; mnt =t.min; sc =t.sec; в то время как (данные! ='м') {данные =Serial.read (); если (данные =='+') {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 ++) {пикселей. setPixelColor (k, пикселей.Color (25,25,255)); k =k + 4;} пикселей.setPixelColor (mnt, pixels.Color (0,250,0)); pixel.show (); задержка (100); pixel.setPixelColor (mnt, pixels.Color (0,0,0)); pixel.show (); задержка (100); }} rtc.setTime (час, мнт, сб); данные =''; } if (data =='H') {color_select =data; } if (data =='M') {color_select =data; } если (данные =='S') {color_select =data; } если (данные =='A') {данные =''; colorWipe (strip.Color (255, 0, 0), 50); // Красный colorWipe (strip.Color (0, 255, 0), 50); // Зеленый colorWipe (strip.Color (0, 0, 255), 50); // Синий // colorWipe (strip.Color (0, 0, 0, 255), 50); // Белый RGBW // Отправляем погоню за пикселями театра в ... TheaterChase (strip.Color (127, 127, 127), 50); // Белый TheaterChase (strip.Color (127, 0, 0), 50); // Красный TheaterChase (strip.Color (0, 0, 127), 50); // Голубая радуга (20); rainbowCycle (20); TheaterChaseRainbow (50); } если (данные =='r' &&color_select =='H') {h_red_deger =Serial.parseInt (); пикселей2.setPixelColor (ч, пикселей2.Color (h_red_deger, h_green_deger, h_blue_deger)); pixel2.show (); } если (данные =='g' &&color_select =='H') {h_green_deger =Serial.parseInt (); пикселей2.setPixelColor (ч, пикселей2.Color (h_red_deger, h_green_deger, h_blue_deger)); pixel2.show (); } если (данные =='b' &&color_select =='H') {h_blue_deger =Serial.parseInt (); пикселей2.setPixelColor (ч, пикселей2.Color (h_red_deger, h_green_deger, h_blue_deger)); pixel2.show (); } если (данные =='r' &&color_select =='M') {m_red_deger =Serial.parseInt (); пикселей.setPixelColor (mnt, pixels.Color (m_red_deger, m_green_deger, m_blue_deger)); pixel.show (); } если (данные =='g' &&color_select =='M') {m_green_deger =Serial.parseInt (); пикселей.setPixelColor (mnt, pixels.Color (m_red_deger, m_green_deger, m_blue_deger)); pixel.show (); } если (данные =='b' &&color_select =='M') {m_blue_deger =Serial.parseInt (); пикселей.setPixelColor (mnt, pixels.Color (m_red_deger, m_green_deger, m_blue_deger)); pixel.show (); } если (данные =='r' &&color_select =='S') {s_red_deger =Serial.parseInt (); пикселей.setPixelColor (sc, пикселей.Color (s_red_deger, s_green_deger, s_blue_deger)); pixel.show (); } если (данные =='g' &&color_select =='S') {s_green_deger =Serial.parseInt (); пикселей.setPixelColor (sc, пикселей.Color (s_red_deger, s_green_deger, s_blue_deger)); pixel.show (); } если (данные =='b' &&color_select =='S') {s_blue_deger =Serial.parseInt (); пикселей.setPixelColor (sc, пикселей.Color (s_red_deger, s_green_deger, s_blue_deger)); pixel.show (); }} t =rtc.getTime (); ч =t. час; mnt =t.min; sc =t.sec; пикселей.setPixelColor (sc, пикселей.Color (s_red_deger, s_green_deger, s_blue_deger)); пикселей.setPixelColor (mnt, pixels.Color (m_red_deger, m_green_deger, m_blue_deger)); pixel.show (); for (int i =0; i <12; i ++) {if (i ==hr) {i ++;} пикселей2.setPixelColor (i, pixels2.Color (0,255,0));} пикселей2.show (); if (hr> =12) {hr =hr-12;} пикселей2.setPixelColor (hr, pixels2.Color (h_red_deger, h_green_deger, h_blue_deger)); pixel2.show (); задержка (10); пикселей.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, пикселей.Color (25,25,255)); k =k + 4;} пикселей.setPixelColor (mnt, pixels.Color (0,0,0)); pixel.show (); } void colorWipe (uint32_t c, uint8_t wait) {for (uint16_t i =0; i  

Схема

управление с телефона clockconnect__Ieit1qA91l.apk

Производственный процесс

  1. Часы с кукушкой
  2. Часы видения Arduino pov
  3. Простые настенные часы с использованием Adafruit 1/4 60 Ring Neopixel
  4. Простые часы со словами (Arduino)
  5. Основные часы
  6. 3D RGB Arduclock
  7. Итальянские часы со словами
  8. Генератор волн JX
  9. Берлинские часы
  10. Зеркальные часы бесконечности