Poco golpes paso a paso: Arduino control de LEDs RGB de WS2812B, WS2811 y WS2812 (3 / 5 paso)

Paso 3: De Decimal a binario: derribando números en 1s y 0s

Romper un número en 1s y 0s significa realmente utilizando su representación binaria.  Tenemos que recordar que en la representación binaria (por ejemplo, 1101 en binario representa el número 13 en decimal), cada posición tiene un peso que aumenta de derecha a izquierda por una potencia de 2.  A partir de la primera posición a la derecha, los 'pesos' son: 2 ^ 0, 2 ^ 1, 2 ^ 2, 2 ^ 3...  Esto es análogo a un sistema decimal donde a partir de la primera cifra de la derecha, aumentan de los 'pesos' por una potencia de 10:10 ^ 0, 10 ^ 1, 10 ^ 10, 2 ^ 3...  Diferente que el sistema decimal donde podemos tener cualquier número de 0... 9 en cada posición, en el sistema binario podemos o tenemos un 1 o un 0.

Decir que queremos encontrar la representación binaria del número decimal 23.  En primer lugar notamos que 23 es una combinación del número 3 en los 10 ^ posición 0 y el número 2 en el 10 ^ 1 posición, lo que significa que cuando pesamos cada número según su posición (2 * 10 ^ 1 + 3 * 10 ^ 0) obtenemos el número 23.  Si tratamos de hacer lo mismo en binario se acercaba con el número 10111 porque 1 * 2 ^ 4 + 0 * 2 ^ 3 + 1 * 2 ^ 2 + 1 * 2 ^ 1 + 1 * 2 ^ 0 = 23.  Por supuesto, encontrar la representación binaria de un número relativamente pequeño como 23 se puede hacer sin mucho cálculo.  Pero para números más grandes se hace necesario utilizar el siguiente algoritmo:

-Aumento de 2 ^ 0, encontrar la primera potencia de 2 más grande que el número decimal tenemos
-A partir de la potencia de 2 inmediatamente por debajo de la encontramos en el primer paso, dividir el número decimal por potencias de 2 en orden decreciente, hasta 2 ^ 0
-Después de cada paso de la división, debemos obtener un 1 o un 0 como el cociente y algún valor del resto.  El resto debe ir eventualmente a 0 (esto puede ocurrir antes de la última etapa de la división)
-Los 1s y 0s obtenidos como los cocientes dan la representación binaria del número decimal

Bien, si no hemos pasado por el proceso antes, todo suena como un galimatías.  Nada como ir a través de un ejemplo para aclarar las cosas.  Decir que queremos encontrar la representación binaria del número decimal 117.  Vamos a intentar seguir el algoritmo anterior (usaré algunos ajustes personales):

-Empezamos con 2 ^ 0 que es menor a 117, por lo que seguimos aumentando.  2 ^ 1 es también más pequeño, mantener...  Muy bien así llegamos a 2 ^ 5 que es todavía más pequeño que 117, pero tan pronto como tenemos 2 ^ 6 que es la "primera potencia de 2 más grande que el número decimal que tenemos"
-Así que sabemos que tenemos que empezar con la potencia de 2 inmediatamente por debajo de 2 ^ 6, que es 2 ^ 5.  [Ajustes personales] ya que sabemos que vamos a dividir por todas las potencias de 2 por debajo de 2 ^ 5, anotarlas todo antes para que no se olvide.  También recuerdo a mí mismo que el resto de la División debe terminar en 0 (aunque podría convertirse en 0 en el camino.
Divisor de | Resto | Cociente de la
2 ^ 6 (64) |                    |
2 ^ 5 (32) |                    |
2 ^ 4 (16) |                    |
2^3 (8)       |                    |
2^2 (4)       |                    |
2^1 (2)       |                    |
2^0 (1)       |                    |
0
-Con todo lo establecido, comenzamos los pasos de la División:
Divisor de | Resto | Cociente de la
2 ^ 6 (64) | 117             | 1
2 ^ 5 (32) |  53              |
2 ^ 4 (16) |                    |
2^3 (8)       |                    |
2^2 (4)       |                    |
2^1 (2)       |                    |
2^0 (1)       |                    |
0
dividido por 64 117 da un cociente de 1 y un resto de 53.  Así, sabemos que en la 7ª posición de la representación binaria de 117, habrá un 1 (es decir, 1XXXXXX).  Para obtener las otras posiciones simplemente seguimos el proceso de división:
Divisor de | Resto | Cociente de la
2 ^ 6 (64) | 117             | 1
2 ^ 5 (32) | 53               | 1
2 ^ 4 (16) | 21               | 1
2^3 (8)       | 5                 | 0
2^2 (4)       | 5                 | 1
2^1 (2)       | 1                 | 0
2^0 (1)       | 1                 | 1
0
- Y por lo tanto, tenemos que la representación binaria del número decimal 117 es 1110101.  Tenemos que recordar, que incluso si el resto va a 0 antes de la última etapa de la división, tenemos que continuar el proceso hasta 2 ^ 0.  Así, en el caso el número decimal 48:
Divisor de | Resto | Cociente de la
2 ^ 5 (32) | 48               | 1
2 ^ 4 (16) | 16               | 1
2^3 (8)       | 0                 | 0
2^2 (4)       | 0                 | 0
2^1 (2)       | 0                 | 0
2^0 (1)       | 0                 | 0
0
La representación binaria es 110000 en lugar de 110, que recibiríamos si dejáramos de buceo cuando el resto primero alcanzó 0.  Saber cómo descomponer un número en su componente de 1s y 0s es muy necesario para poder transmitir datos a la WS281X.

Artículos Relacionados

Arduino controla la tira RGB LED para el salón

Arduino controla la tira RGB LED para el salón

La idea detrás de este pequeño proyecto fue que alguna luz indirecta bastante humor en la sala de estar. Es controlado por el servidor de openHAB (que el proyecto todavía está en la lista que se añade a este sitio) instalado en un Raspberry Pi. Por s
Ambilight sin Arduino no direccionable LEDs RGB

Ambilight sin Arduino no direccionable LEDs RGB

Si no sabes qué Ambilight es que debe controlar vídeos de youtube en Philips AmbilightHoy en día hay muchas manera para hacer una réplica o incluso un mejor aspecto reflexiones...es la forma más fácil de hacer tal cosa con un barato RGB led que no es
Control de LEDs RGB con nuestras

Control de LEDs RGB con nuestras

hace unos días he publicado un instructivo para las nuestras, que es sólo un nombre de fantasia para un Imp leer un potenciometro y un interruptor y empujando los datos en el planificador eléctrico Imp. Si usted no ha visto todavía, puede comprobarlo
Arduino - control de leds con Joystick PS2 - KY-023

Arduino - control de leds con Joystick PS2 - KY-023

¡Hola mundo! Hoy hice un ejemplo sencillo de cómo usar el KY-023.Vamos a controlar un módulo RGB y una de 7 colores Led módulo.Puede añadir cualquier otra cosa como Servos, relés, o lo que viene en tu mente.Los Joysticks son muy fácil de usar, y el c
Control de un LED RGB con el módulo de Bluetooth HC-06 con Android OS(Arduino)

Control de un LED RGB con el módulo de Bluetooth HC-06 con Android OS(Arduino)

Este tutorial explicará el proceso de conectarse un Arduino con un módulo de Bluetooth HC-06 y controlar el color de un LED RGB mediante la aplicación de ArduDroid en el sistema operativo Android. Esta configuración es muy probable que también trabaj
Control LED RGB con arduino y procesamiento.

Control LED RGB con arduino y procesamiento.

Hoy te diré cómo controlar un LED RGB con ayuda del lenguaje Arduino y procesamiento. Este es mi primer instructable, déjeme por favor saber si pudiera mejorar algo y si tienes cualquier tipo de preguntas les dejan en la caja de comentario, me encant
Control LED RGB utilizando Amarino Nano 1.0

Control LED RGB utilizando Amarino Nano 1.0

Qué es Amarino Nano 1.0Este es mi nuevo kit de bricolaje para Android-Arduino comunicación vía Bluetooth.Amarino Nano particularmente usa Arduino Nano, así que usé el título como 'Nano'. Es un juego muy simple para probar la mayoría de las funciones
Control de LED por teléfono y MangoCube WiFi en modo AP

Control de LED por teléfono y MangoCube WiFi en modo AP

Este Instructable muestra cómo controlar un LED (pin 13) de MangoCube WiFi con un Smart Phone (Android/iOS).Cosas necesarias para este Instructable;1. MangoCube WiFi o (placa WiFi + tablero de Arduino UNO/Leonardo)2. smart Phone (Android/iOS)3. TCP l
Arduino controla cabeza madera animatronic (lámpara)

Arduino controla cabeza madera animatronic (lámpara)

esta es una lámpara de lectura que puede ser ajustada para la dirección de la iluminación y atenuada como sea necesario.Este Instructable combina Arduino, programación, algunos electrónica simple, talla con herramientas manuales y eléctricas, control
Arduino controla colmena fumigador / ambientador de aire

Arduino controla colmena fumigador / ambientador de aire

Dentro del caos relativo de mi arreglos domésticos, tengo un pequeño oasis de orden perfecto. Una cosa que puedo llamar 'organizado' y totalmente funcional. Una cosa que puedo tocar y saber que es confiable y listo para la acción en un aviso de momen
Arduino controla el temporizador de cocina

Arduino controla el temporizador de cocina

Todos ustedes deben han experimentado esto que tienes algo cocinan sobre su cocina por el otro lado conseguir ocupado viendo la televisión o conseguir una conversación profunda que te das cuenta en la detección de un olor que completamente fue estrop
Arduino controla LEDs tira de vacaciones

Arduino controla LEDs tira de vacaciones

con los precios cayendo en tiras de LEDs, configuración de iluminación permanente de vacaciones es cada vez más factible todos los días.  Un Arduino hace un controlador de gran iluminación bricolaje.Para este proyecto utilicé unas tiras de LED RGB an
Arduino controla el árbol de Navidad de LED RGB posicional

Arduino controla el árbol de Navidad de LED RGB posicional

En este Instructable nos va creando un árbol de Navidad de LED RGB programables y construyendo (X, Y) posición de las luces en el Arduino que podemos crear diferentes patrones tanto animada como estática. Yo recomendaría esto a cualquier persona que
Control de luces RGB desde Android con Arduino y Bluetooth LE (BLE)

Control de luces RGB desde Android con Arduino y Bluetooth LE (BLE)

he visto muchos proyectos de Kickstarter con el nuevo estándar de Bluetooth 4.0 baja energía y un número de Bluetooth LE (BLE) activado Arduino clones provenientes en el mercado, pero muchos de estos proyectos parecen estar en alguna parte en el proc