Guía de iniciación a Arduino (7 / 15 paso)

Paso 7: Conducción más LEDs

Bueno, seamos realistas solo: un poco intermitente LED no es impresionante que... Así que en este paso, te voy a mostrar cómo puede conducir más LEDs.

Calcular los valores de resistencia para los LEDs

Antes de empezar, tendremos que calcular la resistencia en serie con el LED. La fórmula que te necesitamos, es ley de Ohm: R = V/

Pero el problema es que no sabemos el voltaje y la corriente de la resistencia aún... Vamos a encontrar!

Conectamos la resistencia en serie con el LED, y sabemos que el voltaje de la Arduino de salida del pin es de 5v, así que si sumamos la tensión del LED con la tensión de la resistencia, esto debe ser igual a 5v. Por lo tanto: VR + VL = 5 v y VR = 5v - VL.
Puesto que son en serie, esto también significa que todos los electrones que pasan a través del LED, pasará a través del resistor, así. Puesto que la corriente se define como la cantidad de electrones por unidad de tiempo, sabemos que la corriente a través del resistor es igual a la corriente por el LED. Por lo tanto: IR = IL.

Ahora podemos usar ley de Ohm para encontrar la resistencia de nuestra resistencia: R = V /I deRR = (5v - VL) / IL

(imagen 1)

Si usas un 3.3v Arduino, se puede sustituir a 5v con 3.3v. Esto es sólo la tensión de alimentación, puede ser cualquier cosa.

Los valores de VL IL pueden encontrarse en la hoja de datos de tu LED, o puede utilizar la siguiente tabla.
L estaría menos de 20mA, de lo contrario, voy a matar tu LED. Pero la mayoría de tss.
Tenga en cuenta que hay que dividir este valor (en miliamperios) por 1000, para obtener amperios, la unidad del SI de la corriente. De lo contrario, no tendrás tu respuesta en ohmios (pero en kilo-ohms en lugar de otro).
VL es caída de tensión directa del LED. (LEDs que emiten luz inferior de energía, con longitudes de onda más larga, como rojo e infrarrojo una caída de tensión mucho más baja que la luz con los fotones de mayor energía, como la luz azul o ULTRAVIOLETA).

ColorTensión directa (VL)
Rojo1.7V - 2.2v
Naranja2.0V
Amarillo2.1V
Verde2.2V
Azul3.2V - 3.8v
Blanco3.2V - 3.8v

Esto es sólo una aproximación, sin embargo, no mantendrá verdadero para cada LED.

Probablemente no tienen una resistencia de valor exacto a que calcula, para redondear el valor siguiente en la serie de E-12. Esta serie sólo tiene los valores 1.0, 1.2, 1.5, 1.8, 2.2, 27, 3.3, 3.9, 4.7, 5.6, 6.8, 8.2 y esos valores multiplicaron por una potencia de diez, como 10, 100, 1.000, 10.000 etc..
Por ejemplo, mi resultado fue 65Ω, así que aproveché una resistencia de 68Ω.
Es mejor tomar un resistor con un valor más alto, para no matar tu LED.

Conectar los LEDs con Arduino

Como expliqué antes, un LED es básicamente un diodo, por lo que permite el paso de corriente en solamente una dirección. Si conectamos el LED al revés, no pasará nada.

Un LED tiene un cátodo y un ánodo: en representación esquemática, la dirección de la flecha es la dirección de flujo actual convencional, para que apunte hacia el lado negativo: el cátodo.
Cuando usted toma una mirada cercana en un LED, verás que un lado es plano y la otra es redonda. También, una pierna es más corta que la otra: la parte plana, con la pierna más corta es el cátodo, y conectamos este lado al negativo o tierra del Arduino.

No importa donde pones la resistencia, siempre y cuando sea en serie con el LED, para que pueda conectar el cátodo o el ánodo.

Si sabemos que solo LED estará encendido al mismo tiempo, podemos usar una resistencia para los LEDs.

Echa un vistazo a imágenes 2-3-4, luego conecte la resistencia a la tierra y uno de los carriles horizontales de tu protoboard y un LED con la pata corta en el mismo carril y el pata larga en pin 12 en el Arduino.

Tenga en cuenta que tienes que calcular la resistencia específica de su LED. Puede utilizar la fórmula anterior, o utilizar una herramienta en línea, o una aplicación (yo uso esta herramienta y esta aplicación). Si hace clic en los signos de interrogación al lado de los campos, la herramienta le dará algo de información extra, y la aplicación tiene un menú desplegable para seleccionar el color.

Si estás en duda, o - como yo - demasiado perezoso para buscar y encontrar la resistencia adecuada, se puede usar cualquier resistencia entre 220Ω y 330Ω. Esto sólo es válido si se utiliza con un Arduino 5v! 270Ω y 330Ω son un poco altos para usar con un Arduino 3v3, en ese caso, usar algo entre 100Ω y 220Ω. Si usted quiere usar un LED con una tensión más alta, usted necesitará calcular.

Cuando haya conectado el LED y el resistor para el Arduino, puede Coloque el pin 13 el ejemplo Blink por 12. Usted puede usar el atajo CTRL + F: en el campo 'Buscar', escriba 13 y en el campo 'Reemplazar con', 12, y haga clic en reemplazar todo. Ahora sube el bosquejo a tu Arduino: el LED ha colocado ahora debe parpadear.

¿Todavía no me impresionó? ¿No? Bueno, tienes razón...
Pero ahora ya tienes los conceptos básicos, podemos hacer algo más espectacular...

Más LEDs

Conectar 5 LEDs extras, a los pines 2, 4, 6, 8 y 10 con su pierna más larga y conectar su pierna más corta en el mismo riel en el protoboard como el LED en el pin 12 y la resistencia.

Ahora descargue el archivo zip con los otros ejemplos, extraer y abrir Blink6, una en el IDE de Arduino.
Si recuerda el ejemplo Blink, no debería ser demasiado difícil de predecir lo que hace este programa. Sube a tu Arduino y comprobar si su hipótesis era correcta!

Optimizar el código

Si usted echa un vistazo, verás que algunos pedazos del código son sólo 6 veces los mismos comandos, con sólo un número de diferentes pin... Bueno, hay una manera de resolver esto: lo llamamos el bucle for.

Abra el dibujo de Blink6-b desde el archivo zip. Cuando la subes a Arduino, verás que hace exactamente lo mismo que Blink6-a, pero tiene muchas menos líneas de código.

Esto es todo gracias a los dos de-lazos que se usan.
Pero antes de que me lo explico el bucle for, primero tendré que explicar cómo funcionan las variables:

En la primera línea, hay una nueva expresión ' int delayTime = 200;' Esta es la supuesta declaración de la variable 'delayTime'. Una variable es simplemente un pedazo de la memoria, donde usted puede almacenar prácticamente cualquier cosa que te gusta. Una variable tiene un tipo de datos, un nombre y un valor: en este caso el tipo de datos es 'int': un entero, número entero y poder positivo o negativo. El nombre es 'delayTime', esto es sólo un nombre arbitrario da la variable, que puede tener letras y números en él y algunos símbolos como un carácter de subrayado. Si el nombre consta de más de una palabra, se utilizan mayúsculas para cada nueva palabra, porque usted no puede utilizar espacios. Elegir nombres apropiados para las variables hará una enorme diferencia en la legibilidad del código. Con 'int delayTime;', la variable es correcta, pero aún no tiene un valor. Asignar un valor inicial a la variable se llama inicialización. En este caso, inicializamos la variable delayTime a 200. Ahora cada vez que usamos 'delayTime' en nuestro código, se reemplazará por el número 200. Si lee una variable sin inicializar primero lo, le dará a 0, en el mejor de los casos, pero probablemente sólo un valor aleatorio que pasó a ser en ese lugar de la memoria, posiblemente lo que produce errores en el programa.

También tienes que saber que una variable tiene un supuesto alcance. En este ejemplo, delayTime se declara en la parte superior, por lo que es una variable global. Esto significa que usted podrá acceder a él dentro de cada función, cada bucle, en todo el programa. Una variable también puede ser local, lo que significa que sólo se puede utilizar en el ámbito en el que se define. Por ejemplo, si tuviéramos que pasar la primera línea a la configuración, se obtiene el error

'delayTime' no se declaró en este ámbito

cuando intentamos acceder a ella en el bucle principal (delay(delayTime);), porque se trata de un ámbito diferente de configuración.
Pero las variables locales pueden ser de utilidad, cuando no tienes mucha memoria de sobra, por ejemplo, ya que el local se 'eliminan' cuando salga el alcance que se declaran en.
Mayoría de las veces, los límites de alcance son soportes curvos.

Pero, ¿por qué usar esta variable? Bien, en lugar de tener que cambiar todos los delay(200); funciones, sólo podemos cambiar la primera línea. En este caso no es muy útil, pero si tienes el programa realmente grande, realmente importa.

Referencia de Arduino: variables

Referencia de Arduino: int

Referencia de Arduino: ámbito de variable

Otra cosa útil sobre variables es que puedes cambiar, mientras se ejecuta su código. Y esto es exactamente lo que sucede en un bucle for. La primera parte entre los corchetes es sólo la declaración de una cierta variable 'i', y lo inicializamos a 2. La siguiente parte es ' i < = 12', esto significa que el bucle for se repetirá mientras i es menor o igual a 12. La tercera y última parte ' i = i + 2' significa que cada vez se repite el bucle, el valor de i se incrementará con 2.

Todo esto significa que primero se ejecutará el código dentro de los corchetes con un valor de 2 para i, sistemas pin 2 como salida. Ahora que ha llegado al final del código, así que 2 se agrega al → i es ahora igual a 4 y el código funciona otra vez con este nuevo valor de i: pin 4 está configurado como una salida. 2 se añade una vez más, ahora es igual a 6, vuelva a ejecutar el código, 2 se agrega... y así sucesivamente. Hasta que es igual a 12. Cuando el bucle es ejecutado para i = 12, todo es normal, pero cuando llega el final del código ahora y 2 se agrega otra vez, no cumple la condición ' i ≤ 12' (ahora tiene 14). El programa sale del bucle for.
Cada perno con un LED colocado ahora se configura como una salida, con sólo dos líneas de código, en lugar de seis.

Referencia de Arduino: bucle for

Resumen:

Encontrar la resistencia adecuada para el LED

  1. Ver la tensión de paso en la hoja de datos de los LEDs, o en la tabla anterior. Esto es VL
  2. Ver la corriente hacia adelante en el datasheet de los LEDs, o usar algo entre 2 y 20 mA y convertir a este número en amperios. Esto es IL
  3. Encontrar el voltaje de tu fuente, 5v o 3.3v para la mayoría de los micro controladores como Arduino. Se trata de Vs
  4. Ahora usar esta fórmula para encontrar el valor de la resistencia: R = (Vs - VL) / IL
  5. Alrededor de este valor hasta la resistencia más cercana tiene. Siempre puede utilizar un valor mayor que la resistencia que calcula, pero si utilizas una menor resistencia, Esto acortará drásticamente la vida útil de su LED. Si la resistencia es demasiado alta, el LED será muy tenue.
  • El lado redondeado del LED, con la pierna más larga es el ánodo y es el lado positivo.
  • El lado plano del LED, con la pierna más corta, es el cátodo y es el lado negativo.
  • CTRL + F abre la ventana de buscar/buscar y reemplazar en el IDE de Arduino
  • int delayTime; Esta es la declaración de una variable de datos tipo int, llamado 'delayTime'
  • int delayTime = 200; Esta es la declaración de una variable de datos tipo int, llamado 'delayTime' y su inicialización a un valor de 200.
  • Las variables globales pueden accederse por todas partes en el programa, las variables locales sólo en el ámbito donde fueron declaradas.
  • para (int i = 0; i < 10; i = i + 1) {} es un bucle for que inicializa la variable i para un valor de 0, agrega 1 a i cada vez que se repite y se repite hasta < 10 (10 veces).

Extra: Cálculo de la disipación de energía en el resistor

Si utiliza una fuente de alimentación de 5v, como la de Arduino, un resistor de vatios ¼ normal será suficiente, pero cuando se utiliza una tensión más alta, o un LED que dibuja más actual, la disipación de energía en la resistencia es demasiado alta, y se quemará.

Por lo tanto, necesitamos calcular la disipación de energía en el resistor.

(Imagen 6)

La fórmula para calcular la potencia es P = V∙I. Por lo que sólo podemos calcular el voltaje en la resistencia: la tensión de fuente menos el voltaje en el LED: VR = Vs - VL.
Y la corriente a través del resistor es igual a la corriente a través del LED: IR = IL.

Por lo tanto: PR = (Vs - VL) ∙IL

En el ejemplo se muestra en la imagen 6, la disipación de energía en la resistencia es muy baja, por lo que una resistencia de ¼ watt será suficiente, pero si el valor calculado es más alto, usted necesitará un más de gran alcance (= más grueso) resistencia.

Sin embargo, estos valores son sólo una hipótesis teórica.

Si realmente quieres saber la potencia real se disipa la resistencia, tendrás que medir la corriente o el voltaje a través de ella, o en el mejor de los casos, ambos.

En el caso se pueden medir la corriente y el voltaje (caso A), se puede usar la misma fórmula.

Si se puede, sin embargo, solo medir uno de estos valores, puede usar ley de Ohm para sustituir el voltaje o la corriente en la fórmula para la energía. (caso B y C)

Sólo caso A le da la disipación de energía real, en el caso B y C, tendrá el valor de la resistencia. El valor escrito en el resistor tiene una cierta tolerancia, por lo que tendrás alguna desviación en la potencia así.

Artículos Relacionados

BRICOLAJE casero portátil Arduino café montaña con LED de indicador de temperatura

BRICOLAJE casero portátil Arduino café montaña con LED de indicador de temperatura

Muchas cosas suceden solo por tomar café. Grandes empresas éxito ideas salen mientras gente chateando con café. Me encanta tomar café sobre todo cuando estoy en la oficina. Estoy bastante seguro de que allí todo el mundo ama el café. Pero cuando hago
Brazo robótico Arduino

Brazo robótico Arduino

Ya que es mi primer proyecto después de los 15 tutoriales de mi kit de iniciación de Arduino, el verdadero propósito de la misma es para algunos críticos, consejos, sugerencias, ideas de cualquier persona que sabe más que yo.Este proyecto trata de un
Control CC MIDI en Ableton Live con un Arduino Uno

Control CC MIDI en Ableton Live con un Arduino Uno

En este instructable utilizaremos un potenciómetro en un Arduino Uno para controlar una CC MIDI en Ableton Live. Un MIDI CC está parado para el regulador continuo, es decir, un número en el rango de 0 a 127 inclusive modular algo con. En el youtube q
Arduino All-in-One Getting Started guía

Arduino All-in-One Getting Started guía

un tutorial todo-en-uno para empezar con la plataforma de prototipado Arduino electrónica de código abierto. Esta guía está pensada para el principiante pero debe también ser útiles si ya jugar con la electrónica pero quiere iniciar con el Arduino. H
Juego el francés puede poder utilizando un Arduino y un zumbador

Juego el francés puede poder utilizando un Arduino y un zumbador

Bonjour!Hacer que tu Arduino el francés puede poder mediante una señal acústica. No pinzas. No se dispara. Es tan directo que resulta tan escandaloso el puede puede implica.Este instructivo cubre información electrónica introductorio y se centra en e
Arduino Drawbot

Arduino Drawbot

en algunas de mis anteriores instructurables Arduino tengo programa para la iniciación de Arduino en cómo controlar servos de diferentes maneras.Y en mi última instructurable he muestran la modificación de un servo de paralaje para una rotación de 36
Reflejo del dolor humano de Arduino mecatronicos

Reflejo del dolor humano de Arduino mecatronicos

Debido a su simplicidad, circuitos reflejos son un lugar obvio para comenzar cuando se trata de modelar el sistema nervioso. Opté por usar el reflejo de dolor térmico para mi primer proyecto. En este reflejo de dolor, un estímulo doloroso como una ll
Movimiento reactivo Shake the Maze Juego

Movimiento reactivo Shake the Maze Juego

Traer la magia a la vida con un movimiento automatizado, reactivo shake the maze juego! Usando componentes de un kit de iniciación de Arduino y materiales comunes alrededor de la casa, este es un juego personalizable para que pueda sentirse como un a
Detector de temperatura DIY

Detector de temperatura DIY

Ahora usted puede construir a su propio monitor de temperatura utilizando una placa Arduino. El circuito es una combinación de una placa Arduino UNO, sensor de temperatura LM35 y display de 7 segmentos. Mostrará la temperatura en el segmento de 7 gra
Automático regulador persiana Horizontal accionado Solar

Automático regulador persiana Horizontal accionado Solar

Empecé este proyecto porque tenemos algunas persianas horizontales situados en una alta ventana sobre la puerta principal de nuestra casa. Esta ventana está orientada al sur, y aquí en Colorado, significa un montón de sol. Sería bueno tener esa luz d
Una breve historia del tiempo

Una breve historia del tiempo

"La gente no entiende a tiempo. Es no lo que crees que es. - La gente asume que el tiempo es una progresión estricta de causa a efecto... pero en realidad, desde una perspectiva no lineal, no subjetiva, es más como una bola grande de wibbly-wobbly...
Haz de tu ADVERTENCIA de culo gritando dispositivo

Haz de tu ADVERTENCIA de culo gritando dispositivo

Resolución de año nuevo: no sentarse en mi culo por mucho tiempo. Así que hice un pequeño dispositivo que grita que debo levantarme, cuando me siento por mucho tiempo.Basado en el dispositivo de grabación de este Radioshack , un sensor de inclinación
Temporizador de entrenamiento AB

Temporizador de entrenamiento AB

No te pierdas ni un entrenamiento nuevo! Ahora que el tiempo es cada vez más frío, muchos de nosotros están menos motivados a correr al aire libre o ir al gimnasio. En este caso, tenemos que conseguir creativo con ejercicios que podemos hacer en casa
Torno eléctrico (actualización OFF ON interruptor de encendido ON)

Torno eléctrico (actualización OFF ON interruptor de encendido ON)

te amo mi pequeño pan tornillo lo uso para mi trabajo de reparación y para sostener placas para soldar el único problema es que la prensa sólo se mueve un poco con cada rotación por lo que va de un tablero de circuito pequeño a una gran placa de circ