Saltar a contenido

Conexionado de los distintos elementos

Describimos el conexionado que debemos realizar entre los distintos elementos, y lo haremos fundamentalmente en forma de gráfico y utilizando el pinout mostrado en la imagen siguiente. La fuente de esta imagen la tenemos en este archivo svg

Masaylo-CRG UNO pinout
Masaylo-CRG UNO pinout

Alimentación

Antes de nada vamos a resolver las conexiones de alimentación de nuestra placa UNO y del driver de motores L298 junto con el portapilas y el interruptor. El resto de elementos se alimentarán directamente de la placa UNO. El conexionado es válido si sustituimos las cinco (o seis) pilas AA por dos baterías tipo 18650.

Para que la placa UNO y el driver queden conectados con el interruptor utilizaremos una clema de la que sacaremos un cable para el jack de alimentación del UNO y otro para el positivo del driver, siendo este cable el que previamente pasa por el interruptor procedente del portapilas. El negativo es un cable doble que va al UNO y al driver sin pasar por el interruptor.

En estas condiciones el jumper Regulador del driver debe estar colocado en su lugar y debemos tener en cuenta que la tensión de entrada caerá en 0.7V debido al diodo protector de inversión de polaridad que lleva la placa. Esto lo podemos evitar utilizando el pin Vin de la tira de pines de alimentación, pero debemos tener en cuenta que así no hay protección y que se recomienda no usar tensiones superiores a 6V. En nuestro caso usamos 5 pilas AA con lo que partimos de una tensión de 7.5V que bajará aproximadamente a 6.8V y si usamos 2x18650 tendremos 7.2V que se quedarán en 6.5V.

En la imagen siguiente tenemos el detalle de conexionado de la alimentación para ambas placas que debemos realizar de forma cuidadosa en especial y no cambiar la polaridad de la alimentación que se ha marcado y dibujado con los colores normalizados de la misma.

Conexionado de alimentación
Conexionado de alimentación

La forma más sencilla de conectar los elementos es utilizando un jack de alimentación con clema como el que se ve en la imagen anterior aunque también podemos utilizar un jack normal realizando las correspondientes soldaduras.

Se recomienda que una vez finalizadas las conexiones se revisen estas cuidadosamente, tanto en las conexiones en si mismas como en la polaridad, antes de alimentar el sistema o conectar el USB para grabar algún programa, así evitaremos en lo posible romper algo por mal conexionado.

Motores DC 3 a 6V

Procedemos a conectar los motores en las bornas del driver L298 de forma que el motor izquierdo quede conectado a OUT1 - OUT2 y el derecho a OUT3 - OUT4 que son los pines encargados de entregar energía a los motores. Por ahora no nos preocupamos de la polaridad ya que lo haremos en las pruebas y si algún motor girar en sentido contrario al esperado bastará con intercambiar sus conexiones de posición. En la imagen siguiente tenemos el conexionado de forma gráfica.

Conexionado de motores
Conexionado de motores

Los pines de control de cada motor se conectan como se indica en la gráfica, de forma que ENA será el control PWM del motor izquierdo que se hará en el pin 6, e IN1 e IN2 los conectamos según el sentido de giro adecuado a los pines 7 y 8. Para el motor derecho el pin PWM es el 11 que irá a ENB y los IN3 e IN4 a los pines 12 y 13.

Zumbador

Usamos el pin D1 o TxD y su Vcc asociado para conectarlo. En principio esta conexión no debe interferir en la grabación de programas en la placa que siempre se realiza utilizando los pines D0 y D1 de la misma, pero si nos da algún problema basta con que desconectemos el pin D0 del sensor en uno de sus extremos, procedamos a grabar el programa correspondiente y una vez cargado este volvemos a conectar el pin en su lugar. Si no queremos estar escuchando pitidos de manera continuada cuando subimos código a la placa o cuando usamos el monitor serie también debemos desconectar esta patilla. Alternativamente y en caso de no usar la funcionalidad Bluetooth podemos conectar el buzzer a uno de los pines reservados para esta funcionalidad en el pinout. En la imagen siguiente podemos ver el conexionado de estos elementos de forma gráfica junto con los conectados anteriormente.

Conexionado de conjunto incluyendo zumbador
Conexionado de conjunto incluyendo zumbador

En la imagen siguiente observamos una pareja de cables, uno blanco que va al pin D1 y uno negro que va a GND.

Conexionado del zumbador
Conexionado del zumbador

Pines de entrada analógica

Antes de conectar los sensores de infrarrojos, que irán a los pines analógicos (aunque su salida es digital), vamos a explicar cómo usar los pines analógicos como pines digitales en las placas Arduino. La explicación original en inglés la podemos encontrar en el enlace "Analog Input Pins".

Convertidor A/D

Los controladores ATmega utilizados para Arduino contienen un convertidor de analógico a digital integrado de 6 canales (8 canales en el Mini y Nano y 16 en el Mega) con una resolución de 10 bits, devolviendo números enteros de 0 a 1023. Si bien la función principal de los pines analógicos para la mayoría de los usuarios es leer sensores analógicos, los pines analógicos también tienen toda la funcionalidad de los pines de entrada/salida de propósito general (GPIO) (lo mismo que los pines digitales 0-13).

Por tanto, si necesitamos más pines de entrada y salida de propósito general, y todos los pines analógicos no están en uso, estos pueden usarse para GPIO.

Mapeo de pines

Los pines analógicos se pueden usar de manera idéntica a los pines digitales, usando los alias A0 (para la entrada analógica 0), A1, etc. Por ejemplo, el código para configurar el pin A0 como salida y poner en alto sería:

pinMode(A0, OUTPUT);
digitalWrite(A0, HIGH);

Resistencias de pull-up

Los pines analógicos también tienen resistencias pull-up, que funcionan de manera idéntica a las de los pines digitales. Se habilitan emitiendo un comando del tipo:

pinMode(A0, INPUT_PULLUP); // set pull-up on analog pin 0.

Hay que tener en cuenta que activar un pull-up afectará a los valores entregados por analogRead().

Advertencias

El comando analogRead() no funcionará correctamente si el pin lo hemos configurado previamente como salida. Si hemos puesto el pin en estado alto estando configurado como salida, la resistencia de pull-up se configurará de nuevo cuando se vuelva a cambiar a entrada.

La hoja de datos de ATmega advierte que el cambio de pines analógicos a digitales puede introducir jitter o ruido no deseado en las lecturas analógicas del resto de pines. Se aconseja, después de poner los pines analógicos en modo digital, agregar un retardo corto antes de usar analogRead().

Sensores de infrarrojos

Una vez vista la explicación sobre pines analógicos utilizados como digitales diremos que vamos a conectar el sensor de infrarrojos izquierdo al pin A0 y el derecho al pin A1. Hay que tener especial cuidado en que los pines marcados con VCC y GND se conecten a los pines V y G respectivamente de la placa UNO. En la imagen siguiente podemos ver el conexionado de estos elementos de forma gráfica junto con los conectados anteriormente.

Conexionado del conjunto incluyendo los sensores de infrarrojos
Conexionado del conjunto incluyendo los sensores de infrarrojos

En la imagen siguiente vemos el detalle de conexionado de los sensores de infrarrojos.

Detalle del conexionado de los sensores de infrarrojos
Detalle del conexionado de los sensores de infrarrojos

Una fotografía del detalle del conexionado en el robot la vemos a continuación.

Fotografía del conexionado de los sensores de infrarrojos
Fotografía del conexionado de los sensores de infrarrojos

Sensor de distancia HC-SR04

De nuevo utilizamos dos pines analógicos como digitales por lo que debemos tener en cuenta lo referido anteriormente sobre el tema. Vamos a conectar el Trigger del sensor al pin A2 que deberemos configurar como salida y el pin Echo a A3 que deberemos configurar como entrada. En caso de utilizar MasayloBlockly o la librería descrita en este tutorial estas definiciones estarán ya realizadas. En la imagen siguiente podemos ver el conexionado de estos elementos de forma gráfica junto con los conectados anteriormente. Se han omitido intencionadamente los cables de alimentación del sensor para mayor claridad de la imagen.

Conexionado del conjunto incluyendo el sensor de ultrasonidos HC-SR04
Conexionado del conjunto incluyendo el sensor de ultrasonidos HC-SR04

En la imagen siguiente vemos el detalle de conexionado del sensor de ultrasonidos HC-SR04 incluidos los pines de alimentación.

Detalle del conexionado del sensor de ultrasonidos HC-SR04
Detalle del conexionado del sensor de ultrasonidos HC-SR04

Una fotografía del detalle del conexionado en el robot la vemos a continuación.

Fotografía del conexionado del sensor de ultrasonidos HC-SR04
Fotografía del conexionado del sensor de ultrasonidos HC-SR04

Servomotores

En este caso los pines que utilizaremos son los digitales 4 y 5, el primero para el brazo y el segundo para la cabeza. En la imagen siguiente podemos ver el conexionado de estos elementos de forma gráfica junto con los conectados anteriormente. Se han omitido de nuevo las conexiones de alimentación.

Conexionado del conjunto incluyendo los servos de brazo y cabeza
Conexionado del conjunto incluyendo los servos de brazo y cabeza

En la imagen siguiente vemos el detalle de conexionado de los dos servos SG90.

Detalle del conexionado de los servos de brazo y cabeza
Detalle del conexionado de los servos de brazo y cabeza

Una fotografía del detalle del conexionado en el robot la vemos a continuación.

Fotografía del conexionado de los servos de brazo y cabeza
Fotografía del conexionado de los servos de brazo y cabeza

Encoder infrarrojos FC-03

En este caso los pines que utilizaremos son los digitales 2 y 3, que son los pines que admiten interrupciones en las placas tipo UNO, Nano, Mega, Mini y Leonardo. En la imagen siguiente (se omiten los cables de alimentación para mayor claridad) podemos ver el conexionado de estos elementos de forma gráfica junto con los conectados anteriormente.

Conexionado del conjunto incluyendo los encoders
Conexionado del conjunto incluyendo los encoders

En la imagen siguiente vemos el detalle de conexionado de los dos encoder FC-03.

Detalle del conexionado de los encoder FC-03
Detalle del conexionado de los encoder FC-03

Una fotografía del detalle del conexionado en el robot la vemos a continuación.

Fotografía del conexionado de los encoder FC-03
Fotografía del conexionado de los encoder FC-03