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

Paso 11: Entradas analógicas y salidas.

Algunos de los pins de I/O de Arduino pueden también utilizarse como entradas y salidas, digitales para medir tensiones (entrada) o dim LED (salida) por ejemplo.

Entradas analógicas

Arduinos la mayoría tienen entre 6 y 12 pines de entrada analógicas. Puede medir tensión oscilan entre 0v y la tensión de entrada (5v o 3v3)
Un tablero, estos pernos están etiquetados A0-A5, y en el caso de Leonardo, algunos de los pines en el lado digital también pueden ser utilizados como entradas analógicas. Están marcadas con un punto y el nombre (A6-A11) está escrito en la parte posterior.

Tenga en cuenta que, leyendo una entrada analógica es (relativamente) lento, en comparación con lectura digitales pins. Esto es debido a que Arduino mide voltajes utilizando un generador de tensión de referencia interna (DAC, convertidor de Digital a analógico) y comparando el voltaje de entrada a la tensión de referencia a continuación, cambiar el voltaje de referencia, comparando una vez más, cambiar el voltaje de referencia, comparando... hasta que las dos tensiones son iguales. http://APCMAG.com/Arduino-Analog-to-digital-conver...

La resolución de la DAC interno es de 10 bits. Esto significa que el número máximo puede leer 10 pedacitos largos, o 210 = 1024, así que un número entre 0 (B0000000000) y 1023 (B1111111111). 1023 significa que la entrada es de 5v (o 3v3) y 0v 0 significa.

Potenciómetros

Un potenciómetro, resistencia variable o un pote para el cortocircuito, es sólo una perilla con un limpiador que se desliza sobre una tira circular de material resistente. Así, varía la resistencia entre el limpiaparabrisas y los extremos.

Vamos a conectar nuestros potenciómetros y faders como divisores de tensión simple. Puede leer más en esta página de Wikipedia si no estás familiarizado con este principio.

Si usted toma una mirada en el esquema, se pueden ver 2 resistencias. R1 es la resistencia entre el pin derecho del potenciómetro y el limpiador (patilla central) y R2 la resistencia entre el pin izquierdo y el limpiaparabrisas. Echa un vistazo a la fórmula así. Ya que nuestro potenciómetro fijo valor (50kΩ, por ejemplo), R1 + R2 siempre será 50kΩ, mientras que R2 puede variar entre 0Ω y 50kΩ. (Si R2 = 50k y R1 = 0 y viceversa) Por lo tanto, la fracción siempre tendrá como resultado un número entre 0 y 1. Multiplicar este cociente por 5V (Vsubin/sub), y obtendrá una tensión entre 0V y 5V en la salida. Este voltaje puede ser leído por el Arduino ADC (analógico al convertidor digital) y representa la posición del potenciómetro (o fundido). Así que, básicamente, conecte la clavija de la izquierda al suelo, el eje derecho a 5V pin en el Arduino y el pin del centro a una entrada analógica. (imagen 3)

Conecte un potenciómetro al pin A0 y abra el ejemplo AnalogReadSerial (archivo > ejemplos > 01.Basics).

La función sólo nueva es analogRead(pin). Es bastante explica por sí mismo, que sólo le da el valor de 10 bits, que representa el voltaje en el pin determinado.
El programa sólo imprimirlas sobre la serie, así que abrir el serial monitor (CTRL + SHFT + M) o el plotter serie (CTRL + SHFT + L) y gire el potenciómetro. Debería ver los valores oscilan entre 0 y 1023.
Temporización de 10 o más, en lugar de 1 ms puede dar mejores resultados en el plotter serie.

Puede asignar los valores de 0-1023 gama a otra gama, por ejemplo de 0 a 100. Esto puede hacerse usando la función de mapa. Echa un vistazo al ejemplo AnalogReadSerialMap. La sintaxis de la función de mapa: mapa (valor, lowerLimitInput, upperLimitInput, lowerLimitOutput, upperLimitOutput) valor es sólo el mapa, en este caso la lectura del sensor. El rango de esta entrada es 0 a 1023, por lo que son nuestros límites de entrada. Queremos que la salida al rango de 0 a 100, por lo que son nuestros límites de salida. Esto significa que si el sensor Lee 1023, el valor de salida será de 100.
Podríamos lograr el mismo resultado utilizando sensorValue * 100 / 1023.

Para convertir a un cociente, tenemos que usar un tipo de datos distinto int: float (coma flotante). Si dividimos el valor del sensor por 1023, obtenemos un cociente entre cero y uno.
Podemos cambiar el tipo de datos de la variable sensorValue flotar, o convertir el valor de un int a un float. El primer método se utiliza en AnalogReadSerialRatio-a, el último uno en AnalogReadSerialRatio-b.

Si no convertimos nuestro valor a un flotador en primer lugar, el resultado se considerará como un int, así. Ignorarse los valores después de que se acaba el punto decimal, por ejemplo, 1/2 = 0, pero 1.0/2 = 0.5. Números normales como '1' se tratará como enteros, a menos que agregue un decimal (1.0), a continuación, se tratará como un flotador. Si uno de los factores en un cálculo es un flotante, el resultado también será un flotador.

Para convertir de un int a un float, se puede utilizar la función float(number) , o puede usar la notación c ++ para encasillamiento (conversión de un tipo de datos a otro) (float) cantidad .
Para convertir de un flotador a un int, puede hacerlo de la misma manera: int(number) o número (int), pero nota que simplemente truncará el número en punto decimal, simplemente ignorará los valores que vienen después de la marca decimal. Por ejemplo, int(1.1) = 1, pero int(1.9) = 1, incluso int(1.99999) dará 1. Para redondear el número, utilice la función round(number) , por ejemplo, round(1.1) = 1, round(1.5) = 2, round(1,99) = 2.

https://www.Arduino.CC/en/Reference/Cast

https://www.Arduino.CC/en/Reference/FloatCast

Medición de voltajes

Puesto que un valor analógico de 1023 corresponde a 5v (o de 3, 3V 3, 3V microcontroladores), usted puede convertir esto a un voltaje mediante el uso de analogRead(A0) * 5.0 / 1023. Se utiliza en el ejemplo de AnalogReadSerialVoltage.

Leer tensiones superiores a 5v (3.3v), necesitarás 2 resistencias, para crear un divisor del voltaje. Podemos transformar la fórmula anterior para obtener Vsubin/sub si sabemos Vsubout/sub. (ver imagen)
Conectar una resistencia (R2) de la tierra a la entrada analógica, luego conectar la tierra de la tensión a tierra de Arduino y luego conecte otra resistencia (R1) de la tensión a medir con el conector analógico. (ver imagen) Utilizar la fórmula anterior para calcular los valores de resistencia adecuados. Cualquier valor entre 10k y 100 k debería funcionar bien. Si la resistencia es demasiado baja, se dibujar demasiado corriente e influyen en la lectura mucho.

También medir 12v por ejemplo, usar R1 = 47k y R2 = 22k. Esto me da un voltaje máximo de 15.87v, si me gustaría ir superior a este voltaje, romper mi Arduino.

Nota: si R2 es - por cualquier razón - desconectado o interrumpido, la alta tensión se conectará a la Arduino directamente (a través de R1) y probablemente dañará o destruirlo. Así que no cambie las resistencias si se aplica un alto voltaje.

Abra el ejemplo AnalogReadSerialHighVoltage.

En la parte superior del archivo, hay algunas declaraciones constante . Como una variable, constantes pueden almacenar valores de todo tipo, pero a diferencia de las variables, constantes no pueden cambiar mientras se ejecuta el programa. Esto significa que se almacenan en el espacio de almacenamiento del programa, en lugar de la memoria dinámica (RAM), dejando más espacio para las variables y matrices etc..

Cambiar los valores de estas constantes según su configuración. La relación se calcula automáticamente, así que no tienes que cambiarlo. Usted podría utilizar los códigos de color de la resistencia para obtener un valor teórico, pero tendrás una mucho mejor aproximación si se medir las resistencias con un multímetro. Lo mismo pasa con el voltaje de funcionamiento.

Salidas analógicas

El Arduino no salida voltajes analógicos, sólo puede salida 5v o 0v. Para la salida de tensiones en el medio, utiliza una técnica denominada PWM (Modulación por ancho de pulso).
El Arduino crea una onda cuadrada y luego varía el en-apagado-tiempos y de la onda. Por ejemplo, 2ms en, 2ms o 1 ms en 3 MS off. Esto se conoce como el ciclo de trabajo de la onda cuadrada. 2ms en, 2ms apagado es ciclo de deber del 50%; 1ms en 3ms off es un ciclo de trabajo del 25%. (ver imagen)

Ahora puede calcular la tensión media, que es el área bajo la curva dividida por la cantidad de ciclos. Veamos el ejemplo del ciclo de deber del 50%: el área (evaluado más de un ciclo) es sólo un rectángulo de 5 por 0.5, por lo que la zona es de 2,5. Dividido por la cantidad de ciclos aún da 2.5, por lo que el voltaje promedio es 2, 5V.
En otras palabras, el voltaje promedio puede ser escrito como el ciclo de trabajo multiplicado por la tensión de alimentación. Por ejemplo, un ciclo de trabajo del 25% sería 5v · 0,25 = 1.25v.
Estos voltajes promedio están indicados en rojo en las imágenes.

Tus ojos son demasiado lentos para ver la onda cuadrada subyacente, por lo que este método es perfectamente bien para la regulación de LED.

Abra el ejemplo analogPotDimmer.

Conecte un LED (+ resistencia) al pin digital 5 y un potenciómetro en el pin analógico A0. Girando el potenciómetro regula el LED.

Es la única nueva función analogWrite (pin, ciclo de deber). Sólo establece el ciclo de trabajo del pwm en un pin. Tenga en cuenta que el ciclo de trabajo es un valor de 0 a 255, esto corresponde a 0% - 100%

Otro ejemplo es analogWriteDimmer. Conecte un pulsador al pin 2 y un LED al pin 5. Cuando usted presione y sostenga el botón, el LED es más brillante, cuando se suelta, luego presione y sostenga otra vez, disminuirá su brillo.

https://www.Arduino.CC/en/Reference/AnalogWrite

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