Introducción Arduino I

Arduino es una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar. Se creó para artistas, diseñadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos.

Arduino puede tomar información del entorno a través de sus pines de entrada de toda una gama de sensores y puede afectar aquello que le rodea controlando luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programación Arduino (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un ordenador, si bien tienen la posibilidad de hacerlo y comunicar con diferentes tipos de software (p.ej. Flash, Processing, MaxMSP).

 

    

MONTAJE. CABLEADO

Para conectar todos los componentes a la placa Arduino necesitaremos una protoboard o en nuestro caso una protoshield. Esta placa nos servira para hacer las conexiones de los componentes a los puertos y pines correspondientes. 

En el esquema que hay a continuación se muestra una posible manera de conectar varios leds controlados por un potenciómetro a la placa Arduino.

PINS INPUTS/OUTPUTS (I/O)

FUNCIONES PRINCIPALES

  • E/S Digitales
pinMode(pin,modo)
 
Configura el pin especificado para comportarse como una entrada (INPUT) o una salida (OUTPUT).
Ejm: pinMode(Pin13, OUTPUT)
 
digitalWrite(pin,valor)
 
Asigna el valor HIGH (5V) o LOW (0V) a un pin digital.
Ejm: digitalWrite(Pin13 , HIGH);
 
digitalRead(pin)
Lee el valor de un pin digital especificado, HIGH o LOW.
Ejm: val = digitalRead(Pin13);
 
  • E/S Analógicas
analogRead(pin)
Lee el valor de tensión en el pin analógico especificado. La placa Arduino posee 6 canales conectados a un conversor analógico digital de 10 bits. Esto significa que convertirá tensiones entre 0 y 5 voltios a un número entero entre 0 y 1023. Esto proporciona una resolución en la lectura de: 5 voltios / 1024 unidades, es decir, 0.0049 voltios (4.9mV) por unidad. El rango de entrada puede ser cambiado usando la función analogReference().
Ejm: val = analogRead(Pin3)
 
analogWrite(pin,valor)
Escribe un valor analógico (PWM) en un pin. Puede ser usado para controlar la luminosidad de un LED o la velocidad de un motor. Después de llamar a la función analogWrite(), el pin generará una onda cuadrada estable con el ciclo de trabajo especificado hasta que se vuelva a llamar a la función analogWrite() (o una llamada a las funciones digitalRead() o digitalWrite() en el mismo pin). La frecuencia de la señal PWM será de aproximadamente 490 Hz. los valores de analogRead van desde 0 a 1023 y los valores de analogWrite van desde 0 a 255
 
Parametros:
 pin: Es el pin en el cual se quiere generar la señal PWM.
 valor: El ciclo de trabajo deseado comprendido entre 0 (siempre apagado) y 255 (siempre encendido).
Ejm: val = analogRead(analogPin);
        analogWrite(ledPin, val / 4);
 Comunicación Serie
Se utiliza para la comunicación entre la placa Arduino y un ordenador u otros dispositivos. Todas las placas Arduino tienen al menos un puerto serie Serial. Se comunica a través de los pines digitales 0 (RX) y 1 (TX), así como con el ordenador mediante USB. Por lo tanto, si utilizas estas funciones, no puedes usar los pines 0 y 1 como entrada o salida digital. Puedes utilizar el monitor del puerto serie incorporado en el entorno Arduino para comunicarte con la placa Arduino. Haz clic en el botón del monitor de puerto serie en la barra de herramientas y selecciona la misma velocidad en baudios utilizada en la llamada a Begin().
 
Serial.begin(speed)
Establece la velocidad de datos en bits por segundo (baudios) para la transmisión de datos en serie. Para comunicarse con el ordenador, utilice una de estas velocidades: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 o 115200.
Ejm: Serial.begin(9600);
 
Serial.read()
Lee los datos entrantes del puerto serie.
Ejm; Byte = Serial.read();
 
Serial.print(val,[format])
Imprime los datos al puerto serie como texto ASCII.
val: el valor a imprimir - de cualquier tipo format: especifica la base (formato) a usar; los valores permitidos son BYTE, BIN (binarios o base 2), OCT (octales o base 8), DEC (decimales o base 10), HEX (hexadecimales o base 16). Para números de coma flotante, este parámetro especifica el número de posiciones decimales a usar.
Ejm: Serial.print(78) imprime "78"
        Serial.print('N') imprime "N"
        Serial.print(78, BYTE) imprime "N"
        Serial.print(78, DEC) imprime "78”
        Serial.println(1.23456, 0) imprime "1.23”
        Serial.println(1.23456, 2) imprime "1.23"
        Serial.println(val,[format])
Imprime los datos al puerto serie como texto ASCII seguido de un retorno de carro (ASCII 13, o '\r') y un carácter de avance de línea (ASCII 10, o '\n').
Ejm:Serial.println(analogValue); // imprime como ASCII decimal
       Serial.println(analogValue, HEX);// imprime como ASCII hexadecimal
 
Serial.available()
Devuelve el número de bytes (caracteres) disponibles para ser leídos por el puerto serie. Se refiere a datos ya recibidos y disponibles en el buffer de recepción del puerto (que tiene una capacidad de 128 bytes).
if (Serial.available() > 0)
{
//realiza la lectura del puerto serie
}