Charliexplexed reloj LED - Arduino (3 / 5 paso)

Paso 3: El código

 #include "Wire.h" #include "RTClib.h" #include "FastLED.h" byte LEDs[][2]={ // Array to define the Charlieplexed LEDs {3,4}, {5,6}, {7,8}, {9,10}, {4,3}, // 5 {6,5}, {8,7}, {10,9}, {3,5}, {4,6}, //10 {7,9}, {8,10}, {5,3}, {6,4}, {9,7}, //15 {10,8}, {3,6}, {4,7}, {5,8}, {9,11}, //20 {6,3}, {7,4}, {8,5}, {11,9}, {3,7}, //25 {4,8}, {5,9}, {6,10}, {4,9}, {8,4}, //30 {9,5}, {10,6}, {3,8}, {7,3}, {5,10}, //35 {6,11}, {8,3}, {9,4}, {10,5}, {11,6}, //40 {3,9}, {4,10}, {5,11}, {9,3}, {10,4}, //45 {11,5}, {3,10}, {4,11}, {10,3}, {11,3}, //50 {11,4}, {4,5}, {6,7}, {8,9}, {10,11}, //55 {5,4}, {7,6}, {9,8}, {5,7}, {6,8} //60 }; #define NUM_LEDS 60 #define DATA_PIN 12 CRGB leds[NUM_LEDS]; byte lastmin; RTC_DS1307 rtc; void setup() { // put your setup code here, to run once: AllOff(); #ifdef AVR Wire.begin(); #else Wire1.begin(); // Shield I2C pins connect to alt I2C bus on Arduino Due #endif rtc.begin(); lastmin=0; LEDS.setBrightness(128); FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS); //effects(); //Serial.begin(57600); } void loop() { // put your main code here, to run repeatedly: DateTime now = rtc.now(); // Serial.print(now.hour(), DEC); if(( now.second() == 0)){ effects(); } if(now.minute() != lastmin){ for(int i=0; i<now.minute();i++) leds[i] = CRGB::Purple; leds[((now.hour())%12)*5] = CRGB::Red; FastLED.show(); } LEDOn(now.second()); delay(900); AllOff(); //leds[((now.hour())%12)*5] = CRGB::Black; //leds[now.minute()] = CRGB::Black; //FastLED.show(); delay(100); //} } void LEDOn(byte n){ AllOff(); pinMode(LEDs[n][0],OUTPUT); pinMode(LEDs[n][1],OUTPUT); digitalWrite(LEDs[n][0],HIGH); digitalWrite(LEDs[n][1],LOW); } void AllOff(){ for(int i=3;i<=11;i++){ pinMode(i,INPUT); } } const int colorWheelAngle = 360 / NUM_LEDS; void effects(){ uint8_t color[3]; for (int i = 0; i < 360; i++) { for (int j = 0; j < NUM_LEDS; j++) { getRGB((i + (j * colorWheelAngle)) % 360, 255, 150, color); leds[j]=CRGB(color[0], color[1], color[2]); } FastLED.show(); delay(1); } for (int i = 0; i < NUM_LEDS; i++) { leds[i] = CRGB::Black; } FastLED.show(); } // Gamma values used to convert HSV to RGB PROGMEM const byte dim_curve[] = { 0, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, 21, 22, 22, 22, 23, 23, 24, 24, 25, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 32, 32, 33, 33, 34, 35, 35, 36, 36, 37, 38, 38, 39, 40, 40, 41, 42, 43, 43, 44, 45, 46, 47, 48, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 73, 74, 75, 76, 78, 79, 81, 82, 83, 85, 86, 88, 90, 91, 93, 94, 96, 98, 99, 101, 103, 105, 107, 109, 110, 112, 114, 116, 118, 121, 123, 125, 127, 129, 132, 134, 136, 139, 141, 144, 146, 149, 151, 154, 157, 159, 162, 165, 168, 171, 174, 177, 180, 183, 186, 190, 193, 196, 200, 203, 207, 211, 214, 218, 222, 226, 230, 234, 238, 242, 248, 255, }; /* * Code taken from <a href="http://www.kasperkamperman.com/blog/arduino/arduino-programming-hsb-to-rgb/" rel="nofollow"> http://www.kasperkamperman.com/blog/arduino/ardui...</a> * hue ranges from 0 to 360 * sat is from 0 to 255 * val is from 0 to 255 */ void getRGB(int hue, uint8_t sat, uint8_t val, uint8_t colors[3]) { /* convert hue, saturation and brightness ( HSB/HSV ) to RGB The dim_curve is used only on brightness/value and on saturation (inverted). This looks the most natural. */ val = pgm_read_byte(&dim_curve[val]); sat = 255 - pgm_read_byte(dim_curve[255-sat]); int r; int g; int b; int base; if (sat == 0) { // Acromatic color (gray). Hue doesn't mind. colors[0]=val; colors[1]=val; colors[2]=val; } else { base = ((255 - sat) * val)>>8; switch(hue/60) { case 0: r = val; g = (((val-base)*hue)/60)+base; b = base; break; case 1: r = (((val-base)*(60-(hue%60)))/60)+base; g = val; b = base; break; case 2: r = base; g = val; b = (((val-base)*(hue%60))/60)+base; break; case 3: r = base; g = (((val-base)*(60-(hue%60)))/60)+base; b = val; break; case 4: r = (((val-base)*(hue%60))/60)+base; g = base; b = val; break; case 5: r = val; g = base; b = (((val-base)*(60-(hue%60)))/60)+base; break; } colors[0]=(uint8_t) r; colors[1]=(uint8_t) g; colors[2]=(uint8_t) b; } } 

Artículos Relacionados

Reloj de LED Arduino powered

Reloj de LED Arduino powered

Un divertido y sencillo reloj LED, que te dará la hora a la media hora más cercana utilizando LEDs solo-color. Piezas necesarias son las siguientes:Arduino NanoTablero de 400 puntos de amarreCable de cintaDS1307 RTC IC32,768 kHz cristal(12) 10mm LEDs
Reloj de LED Arduino

Reloj de LED Arduino

este instructable le mostrará cómo hacer tu propio arduino basado en el reloj que indica la hora usando una matriz de LEDs. Este es mi primer instructivo, así que si algo está claro me dejan un comentario o enviar un mensaje!Me inspiré por todos el f
Reloj de matriz de LED Arduino

Reloj de matriz de LED Arduino

Este reloj utiliza MAX7219 cinco matrices de LED 8 x 8 para mostrar un reloj.Las dos unidades de la izquierda muestran la hora, el derecho de dos los minutos y la matriz media cuenta los segundos. Esto se logra iluminar un LED por segundo, contando e
Reloj de Arduino

Reloj de Arduino

Ahmed Mohamed hizo un reloj despertador que fue confundido con una bomba. Policías no le creyeron cuando él les dijo que no era una bomba, pero un reloj de alarma. En mi clase, sentíamos que asunción fue injusta y para mostrar nuestro apoyo creado re
Reloj LED de Steampunk

Reloj LED de Steampunk

Me inspiré para crear un reloj steampunk hace un tiempo después de la navegación a través de mucho de Instructables en varios. Comenzó con una idea algo vaga de lo que quería lograr y realmente evolucionó como lo hice. He tratado de documentar como p
Reloj LED

Reloj LED

Por favor, encontrar mi proyecto de reloj de Arduino usando el tablero UNO y Neopixels de Adafruit. Es un trabajo en progreso, así que por favor sea paciente con mi tutorial... Será más detallada de como conseguir algún tiempo bajo mi manga. El códig
LED Arduino Clock

LED Arduino Clock

Después de mi último proyecto de construcción, quería construir algo con un Arduino. Navegando en Instructables para meses vi un reloj de LED Arduino que quería construir. Después de algunos reajustes de mi parte, puse en mi conquista a construir est
Haga un preciso reloj de Arduino usando solamente un alambre - sin hardware externo es necesario!

Haga un preciso reloj de Arduino usando solamente un alambre - sin hardware externo es necesario!

Cómo hacer un reloj de Arduino - sin usar osciladores externos o fichas del reloj:(más de mis proyectos en nuestro sitio web de investigación - haga clic en la parte superior logo de arduino de la página de inicio)Se necesita:Una placa Arduino (cualq
Reloj Led RGB con Bluetooth Smart

Reloj Led RGB con Bluetooth Smart

Este instructable muestra cómo utilizar un ciprés-BLE-Devkit para construir un reloj LED RGB.Necesita muy pocas cosas:Tira de RGB LED con 30 o 60 LEDs WS2812b.un tablero de PC del estilo de cuadrículaalgunos pins del jefe del perno y un poco de alamb
Reloj de Arduino con un motor de corriente continua (una aguja)

Reloj de Arduino con un motor de corriente continua (una aguja)

Hola,Estaba tratando de hacer un reloj con arduino con un solo motor pero no era posible con el método estándar como tiene que haber al menos dos agujasHoras y minutos, así que intenté algo nuevo. En este reloj hay seis divisiones en una hora en luga
¿Iluminación de LED Arduino ADK

¿Iluminación de LED Arduino ADK

que siempre quisiste controlar electrónica con tu smartphone?  El Arduino ADK (Android Development Kit) es el Arduino Mega con construido en USB host dispositivo, listo para que tu smartphone estar conectado!  Vamos a hacer un sencillo proyecto intro
Voz de entrada matriz de LED Arduino bicolor desplazamiento de visualización de texto (Bluetooth + Android)

Voz de entrada matriz de LED Arduino bicolor desplazamiento de visualización de texto (Bluetooth + Android)

Durante la exploración de proyectos interesantes en Instructables, nos topamos con la impresionante voz activa Arduino (Bluetooth + Android) instructable. Usted puede sacar enRecientemente, hemos puesto encima de un instructivo para construir un bico
TimeDuino - 7 segmento de reloj de Arduino (no hay registros de cambio necesitados!)

TimeDuino - 7 segmento de reloj de Arduino (no hay registros de cambio necesitados!)

Hey todos los asistentes instructable! Este es mi primer proyecto. Sí, sé las palabras generalmente el estereotipo actitud de "Esto no va a ser un buen proyecto", pero llevo esperando mucho tiempo para un proyecto que merece posiblemente rompien
Haciendo un cubo de LED Arduino 3 X 3 en menos de 30 minutos

Haciendo un cubo de LED Arduino 3 X 3 en menos de 30 minutos

Bueno, hoy voy a mostrarte cómo hacer un cubo de LED arduino 3 X 3. Hice uno ayer y he tratado de simplificar el procedimiento para que todos puedan entender. Por lo tanto, menos hablar y más demostración.Paso 1: requisitos Estos son los artículos qu