Una de las funciones más interesantes (si no la más) de Arduino y en general de todos los autómatas es su capacidad de interacción con el mundo físico. Podemos, por ejemplo, realizar mediciones de tensión, obtener lecturas de gran variedad de sensores, encender dispositivos o controlar motores y actuadores. Esta interacción se lleva a cabo en gran parte mediante el uso de las entradas y salidas tanto digitales como analógicas.
Valores de voltaje para HIGH, LOW
Una señal digital es una variación de voltaje entre 0 Volt. a 5 Volt. sin pasar por los valores intermedios. Por lo tanto, una señal digital dispone solo de dos estados. Al valor inferior de tensión 0 Volt. le asociamos un valor lógico LOW o '0', mientras que al valor superior 5 Volt. le asociamos HIGH o '1' lógico.
La zona de incertidumbre es la zona o región de valores que deben evitarse ya que no garantiza el funcionamiento adecuado del equipo, el rango de incertidumbre es la región donde no se asegura el funcionamiento adecuado del circuito lógico el fabricante especifica que una entrada baja varíe de 0 a 0.8V y un alta varíe de 2 a 5V. La región que está comprendida entre 0.8 y 2V se le denomina región prohibida o de incertidumbre y cualquier entrada en este rango daría resultados impredecibles.
La placa Arduino dispone de 14 pines-hembra de entradas o salidas (según lo que convenga) digitales, numeradas desde la 0 hasta la 13. Adicionalmente dispone de 6 puertos de entrada- salida analógica que según sea el caso se pueden usar como entrada y salida digital, para disponer de un total de 20 puertos de entrada y salida
Es importante recordar que no podemos sobrepasar los límites de voltaje permitidos, es decir, si se aplica un voltaje mayor a 5 voltios en una entrada digital, la placa de Arduino se quemará. Lo mismo aplica para voltajes negativos, por lo que debemos asegurar que el voltaje aplicado a una entrada digital se encuentre entre 0 y 5 voltios.
Puertos analógicos Aduino
Los pines analógicos pueden ser utilizados de forma idéntica a los pines digitales, usando el alias A0 (para entrada analógica 0), A1, etc. Por ejemplo, el código sería este para establecer un pin analógico 0 a una salida, y para poner en ALTO:
• pinMode(A0, OUTPUT);
• digitalWrite(A0, HIGH);
digitalRead() funciona en todos los pines. Se redondea el valor analógico recibido. Si analogRead(A0) es mayor que o igual a 512, digitalRead(A0) será 1, de lo contrario 0.
digitalWrite() funciona en todos los pines, que permitían el parámetro de 0 o 1. digitalWrite(A0,0) es el mismo que analogWrite(A0,0)y digitalWrite(A0,1) es el mismo que analogWrite(A0,255)
El circuito propuesto consta de un Arduino y 18 Leds que encenderán en secuencia, ocupando de esta manera todos los pines del Arduino, para ello usaremos:
• 1 Arduino uno
• 18 Ledes color rojo
• 18 Resistencia 330Ω
• 1 Protoboard
Circuito: Uso de todos los pines
Diagrama de Uso de todos los pines