Categorías: Artículos destacados » Electrónica práctica
Cantidad de vistas: 67360
Comentarios sobre el artículo: 7
Conectando y programando Arduino para principiantes
¿Estudiar los microcontroladores parece complicado e incomprensible? Antes de la aparición de Arudino, realmente no era fácil y requería un cierto conjunto de programadores y otros equipos.
¿Qué es un Arduino?
Este es un tipo de constructor electrónico. El objetivo inicial del proyecto es permitir que las personas aprendan fácilmente a programar dispositivos electrónicos, al tiempo que dedican un tiempo mínimo a la parte electrónica.
El montaje de los circuitos más complicados y la conexión de las placas se pueden realizar sin soldador, y con la ayuda de puentes con conexiones desmontables "padre" y "madre". De esta manera, se pueden conectar tanto los archivos adjuntos como las tarjetas de expansión, que en el léxico de los arduinistas simplemente se llaman "Escudos".

¿Cuál es la primera placa Arduino para comprar para un novato?
Se considera la placa base y más popular Arduino uno. Esta tarifa se asemeja a una tarjeta de crédito. Bastante grande La mayoría de los escudos que están a la venta son perfectos para ella. Hay enchufes en la placa para conectar dispositivos externos.

En las tiendas nacionales para 2017, su precio es de unos 4-5 dólares. En los modelos modernos, Atmega328 es su corazón.
Imagen de la placa Arduino y decodificación de funciones de cada pin, pinout Arduino UNO
El microcontrolador de esta placa es un chip largo en el paquete DIP28, lo que significa que tiene 28 patas.
El siguiente tablero más popular cuesta casi dos veces más barato que el anterior: 2-3 dólares. Este es el tablero Arduino nano. Las placas reales están construidas por el mismo Atmega328, son funcionalmente similares a UNO, las diferencias de tamaño y la decisión de combinar con USB, más sobre esto más adelante. Otra diferencia es que se proporcionan enchufes para conectar dispositivos a la placa, en forma de agujas.

El número de pines (patas) de esta placa es el mismo, pero puede observar que el microcontrolador está hecho en un paquete TQFP32 más compacto, ADC6 y ADC7 se agregan en el estuche, las otras dos patas "adicionales" duplican el bus de alimentación. Sus dimensiones son bastante compactas, aproximadamente del tamaño de un pulgar de su mano.
El tercer tablero más popular es Arduino Pro Mini, no tiene un puerto USB para conectarse a una computadora, le diré cómo comunicarse un poco más tarde.

Comparación de tamaño Arduino Nano vs Pro Mini
Esta es la placa más pequeña de todas las consideradas, de lo contrario es similar a las dos anteriores, y Atmega328 sigue siendo su corazón. No consideraremos otras tablas, ya que este es un artículo para principiantes, y la comparación de tablas es el tema de un artículo separado.
Arduino Pro Mini pinout, en la parte superior, el diagrama de conexión USB-UART, pin "GRN" - está conectado al circuito de reinicio del microcontrolador, puede llamarse de manera diferente, para lo cual debe averiguarlo más adelante.
Resumen:
Si UNO es conveniente para la creación de prototipos, entonces Nano y Pro Mini son convenientes para las versiones finales de su proyecto, ya que ocupan poco espacio.

¿Cómo conectar Arduino a una computadora?
Arduino Uno y Nano se conectan a una computadora a través de USB. Al mismo tiempo, no hay soporte de hardware para el puerto USB, aquí se usa una solución de circuito de conversión de nivel, generalmente llamada USB a serie o USB-UART (rs-232). Al mismo tiempo, un cargador de arranque Arduino especial se actualiza en el microcontrolador, lo que permite la actualización en estos buses.
En Arduino Uno, esta ligadura se implementa en un microcontrolador con soporte USB: ATmega16U2 (AT16U2). Resulta que el microcontrolador adicional en la placa es necesario para flashear el microcontrolador principal.
En Arduino Nano, esto es implementado por el chip FT232R, o su CH340 analógico. Este no es un microcontrolador: es un convertidor de nivel, este hecho facilita el montaje del Arduino Nano desde cero con sus propias manos.
Por lo general, los controladores se instalan automáticamente cuando se conecta la placa Arduino. Sin embargo, cuando compré una copia china del Arduino Nano, el dispositivo fue reconocido, pero no funcionó, una pegatina redonda con datos de la fecha de lanzamiento estaba pegada en el convertidor, no sé si se hizo a propósito, pero después de despegarla vi la marca CH340.
Antes de esto, no me encontré con esto y pensé que todos los convertidores USB-UART se ensamblaron en FT232, tuve que descargar los controladores, son muy fáciles de encontrar a pedido del "controlador Arduino ch340". Después de una instalación simple, ¡funcionó!
A través del mismo puerto USB, el microcontrolador también se puede alimentar, es decir Si lo conecta al adaptador desde un teléfono móvil, su sistema funcionará.
¿Qué debo hacer si mi placa no tiene USB?
El Arduino Pro Mini es más pequeño. Esto se logró al quitar el conector USB para el firmware y el mismo convertidor USB-UART. Por lo tanto, debe comprarse por separado. El convertidor más simple en el CH340 (el más barato), CPL2102 y FT232R, para la venta cuesta desde $ 1.
Al comprar, preste atención al voltaje para el que está diseñado este adaptador. Pro mini está disponible en las versiones 3.3 y 5 V, a menudo se encuentra un puente en los convertidores para cambiar la tensión de alimentación.

Al flashear el Pro Mini, justo antes de que comience, debe hacer clic en RESET, sin embargo, en los convertidores con DTR no necesita hacer esto, el diagrama de conexión en la figura a continuación.

A ellos se unen terminales especiales "Mama-Mama" (hembra-hembra).

En realidad, todas las conexiones se pueden hacer usando tales terminales (Dupont), ambos están en ambos lados con enchufes, y con enchufes, y en un lado del enchufe, y en el otro enchufe.

¿Cómo escribir programas para Arduino?
Para trabajar con bocetos (el nombre del firmware está en el idioma del arduino), existe un entorno integrado especial para desarrollar el IDE de Arduino, puede descargarlo de forma gratuita desde el sitio web oficial o desde cualquier recurso temático, por lo general no hay problemas para instalarlo.
Así es como se ve la interfaz del programa. Puede escribir programas en el lenguaje simplificado C AVR especialmente desarrollado para arduino, de hecho, es un conjunto de bibliotecas llamadas Wiring, así como en C AVR puro. Usarlo facilita el código y acelera su trabajo.
En la parte superior de la ventana hay un menú familiar donde puede abrir el archivo, la configuración, seleccionar el tablero con el que trabaja (Uno, Nano y muchos, muchos otros) y también abrir proyectos con ejemplos de código ya hechos. A continuación se muestra un conjunto de botones para trabajar con firmware, las teclas que verá en la figura a continuación.

En la parte inferior de la ventana hay un área para mostrar información sobre el proyecto, el estado del código, el firmware y la presencia de errores.
Conceptos básicos de programación Arduino IDE
Al comienzo del código, debe declarar variables y conectar bibliotecas adicionales, si existen, esto se hace de la siguiente manera:
#include biblioteka.h; // conecta la biblioteca con el nombre "Biblioteka.h"
#define peremennaya 1234; // Declara una variable con un valor de 1234
El comando Definir permite al compilador elegir el tipo de variable, pero puede configurarlo manualmente, por ejemplo, un entero int o un flotante de coma flotante.
int led = 13; // creó la variable "led" y le asignó el valor "13"
El programa puede determinar el estado del pin como 1 o 0. 1 es una unidad lógica, si el pin 13 es 1, entonces el voltaje en su rama física será igual al voltaje de suministro del microcontrolador (para arduino UNO y Nano - 5 V)
La señal digital se graba utilizando el comando digitalWrite (pin, valor), por ejemplo:
digitalWrite (led, alto); // escribe la unidad en el registro del pin 13 (lo anunciamos arriba). Unidades
Como puede comprender, el acceso a los puertos se realiza mediante la numeración en la placa, cifra correspondiente. Aquí hay un ejemplo similar al código anterior:
digitalWrite (13, alto); // establece el pin 13 en uno
A menudo, la función de retraso de tiempo solicitada se llama mediante el comando delay (), cuyo valor se establece en milisegundos, microsegundos se logran utilizando
delayMicroseconds () Retardo (1000); // el microcontrolador esperará 1000 ms (1 segundo)
La configuración del puerto para entrada y salida se establece en la función void setup {}, con el comando:
configuración nula () {
pinMode (NOMERPORTA, SALIDA / ENTRADA); // argumentos - nombre de la variable o número de puerto, entrada o salida para elegir
}
Bucle vacío {}
Comprender el primer programa de parpadeo
Como una especie de "Hola, mundo" para microcontroladores, hay un programa de parpadeo de LED, analicemos su código:
Al principio, con el comando pinMode, le dijimos al microcontrolador que asignara un puerto con un LED a la salida.Ya notó que el código no declara la variable "LED_BUILTIN", el hecho es que en Uno, Nano y otras placas de fábrica, el LED incorporado está conectado al pin 13 y está soldado a la placa. Puede ser utilizado por usted para indicar en sus proyectos o para la verificación más simple de sus programas de flasheo.
A continuación, configuramos la salida a la que el LED está soldado a la unidad (5 V), la siguiente línea hace que el MK espere 1 segundo, y luego establece el pin LED_BUILTIN en cero, espera un segundo y el programa se repite en un círculo, por lo que cuando LED_BUILTIN es 1 - el LED ( y cualquier otra carga conectada al puerto) se enciende, cuando a 0 se apaga.
¿Funciona todo y todo está claro? ¡Entonces sigue adelante!
Leemos el valor del puerto analógico y usamos los datos leídos
El microcontrolador AVR Atmega328 tiene un convertidor analógico a digital de 10 bits incorporado. El ADC de 10 bits le permite leer el valor de voltaje de 0 a 5 voltios, en incrementos de 1/1024 de toda la amplitud de la señal (5 V).
Para aclararlo, considere la situación, suponga que el valor de voltaje en la entrada analógica es 2.5 V, luego el microcontrolador leerá el valor del pin "512" si el voltaje es 0 - "0", y si 5 V - (1023). 1023 - porque el recuento va de 0, es decir 0, 1, 2, 3, etc. hasta 1023: un total de 1024 valores.
Así es como se ve en el código, usando el boceto estándar "analogInput" como ejemplo
int sensorPin = A0;
int ledPin = 13;
int sensorValue = 0;
configuración nula () {
pinMode (ledPin, OUTPUT);
}
bucle vacío () {
sensorValue = analogRead (sensorPin);
digitalWrite (ledPin, HIGH);
retraso (sensorValue);
digitalWrite (ledPin, LOW);
retraso (sensorValue);
}

El esquema de conexión del potenciómetro a Arduino, por analogía, la salida central se puede conectar a cualquier entrada analógica.
Declarar variables:
-
Ledpin: asigne independientemente un pin con un LED incorporado a la salida y asigne un nombre individual;
-
sensorPin - entrada analógica, configurada según la marca en la placa: A0, A1, A2, etc.
-
sensorValue: una variable para almacenar un valor de lectura entero y seguir trabajando con él.
El código funciona así: sensorValue guarda el valor analógico leído con sensorPin (comando analogRead). - Aquí termina el trabajo con la señal analógica, luego todo es como en el ejemplo anterior.
Escribimos la unidad en ledPin, el LED se enciende y espera un tiempo igual al valor de sensorValue, es decir de 0 a 1023 milisegundos. Apague el LED y espere nuevamente durante este período de tiempo, después del cual se repite el código.
Por lo tanto, mediante la posición del potenciómetro establecemos la frecuencia de parpadeo del LED.
Función de mapa para Arudino
No todas las funciones para actuadores (no sé ninguna) admiten "1023" como argumento, por ejemplo, el servo está limitado por el ángulo de rotación, es decir, por media revolución (180 grados) (media revolución) del servomotor, el argumento máximo de la función es "180"
Ahora sobre la sintaxis: map (el valor que estamos traduciendo es la entrada mínima, la entrada máxima, la salida mínima, la salida máxima).
En código, se ve así:
(mapa (analogRead (pot), 0, 1023, 0, 180));
Leemos el valor del potenciómetro (analogRead (pot)) de 0 a 1023, y en la salida obtenemos números de 0 a 180
Valores del mapa de valores:
-
0=0;
-
1023=180;
En la práctica, aplicamos esto al trabajo del mismo código de servo, eche un vistazo al código con el IDE de Arduino, si lee detenidamente las secciones anteriores, entonces no requiere explicación.

Y el diagrama de conexión.

Conclusiones Arduino es una herramienta muy conveniente para aprender a trabajar con microcontroladores. Y si usa AVR C puro, o como a veces se le llama "Pure C", reducirá significativamente el peso del código y se ajustará más en la memoria del microcontrolador, como resultado, obtendrá una excelente placa de depuración fabricada en fábrica con firmware USB.

Opinión del autor:
Me gusta arduino Es una pena que muchos programadores experimentados de microcontroladores lo critiquen sin razón, porque está demasiado simplificado. En principio, solo se simplifica el lenguaje, pero nadie lo obliga a usarlo, además puede flashear el microcontrolador a través del conector ICSP y completar el código que desee sin ningún gestor de arranque que no necesite.
Para aquellos que quieren jugar con la electrónica, como constructor avanzado, es perfecto, pero para programadores experimentados, ¡una placa que no requiere ensamblaje también será útil!
Para obtener más información sobre Arduino y las características de su uso en varios esquemas, consulte el libro electrónico:Arduino para tontos. Guía práctica ilustrada.
Ver también en electro-es.tomathouse.com
: