Arduino: qué se puede hacer con él. Arduino para principiantes: instrucciones paso a paso. Programación y proyectos Arduino: ¿por dónde empezar? diseños arduino

En este artículo decidí recopilar un completo. guía paso por paso Para principiantes en Arduino. Veremos qué es Arduino, qué necesita para comenzar a aprender, dónde descargar y cómo instalar y configurar el entorno de programación, cómo funciona y cómo usar el lenguaje de programación, y mucho más, lo que es necesario para crear un software completo. Dispositivos complejos basados ​​en la familia de estos microcontroladores.

Aquí intentaré dar un mínimo condensado para que comprendas los principios de trabajo con Arduino. Para una inmersión más completa en el mundo de los microcontroladores programables, preste atención a otras secciones y artículos de este sitio. Dejaré enlaces a otros materiales en este sitio para un estudio más detallado de algunos aspectos.

¿Qué es Arduino y para qué sirve?

Arduino es un kit de construcción electrónico que permite a cualquiera crear una variedad de dispositivos electromecánicos. Arduino consta de software y hardware. La parte del software incluye un entorno de desarrollo (un programa para escribir y depurar firmware), muchas bibliotecas convenientes y listas para usar y un lenguaje de programación simplificado. El hardware incluye una gran línea de microcontroladores y módulos prefabricados para ellos. ¡Gracias a esto, trabajar con Arduino es muy fácil!

Con la ayuda de Arduino podrás aprender programación, ingeniería eléctrica y mecánica. Pero éste no es sólo un constructor educativo. En base a esto, puedes crear dispositivos realmente útiles.
Desde simples luces intermitentes, estaciones meteorológicas, sistemas de automatización hasta sistemas domésticos inteligentes, máquinas CNC y vehículos aéreos no tripulados. Las posibilidades ni siquiera están limitadas por la imaginación, porque hay una gran cantidad de instrucciones e ideas para implementar.

Kit de inicio Arduino

Para comenzar a aprender Arduino, necesita adquirir la placa del microcontrolador y piezas adicionales. Lo mejor es comprar un kit de inicio Arduino, pero puedes elegir todo lo que necesitas tú mismo. Recomiendo elegir un juego porque es más fácil y, a menudo, más económico. Aquí hay enlaces a los mejores conjuntos y piezas individuales que definitivamente necesitarás estudiar:

Kit Arduino básico para principiantes:Comprar
Amplio set para formación y primeros proyectos:Comprar
Conjunto de sensores y módulos adicionales:Comprar
Arduino Uno es el modelo más básico y conveniente de la línea:Comprar
Placa de pruebas sin soldadura para facilitar el aprendizaje y la creación de prototipos:Comprar
Juego de cables con prácticos conectores:Comprar
Conjunto de LED:Comprar
Juego de resistencias:Comprar
Botones:Comprar
Potenciómetros:Comprar

Entorno de desarrollo Arduino IDE

Para escribir, depurar y descargar firmware, debe descargar e instalar el IDE de Arduino. Este es un programa muy simple y conveniente. En mi sitio web ya he descrito el proceso de descarga, instalación y configuración del entorno de desarrollo. Así que aquí solo dejaré enlaces a ultima versión programas y

Versión ventanas Mac OS X linux
1.8.2

lenguaje de programación arduino

Cuando tengas una placa microcontroladora en tus manos y un entorno de desarrollo instalado en tu computadora, podrás comenzar a escribir tus primeros bocetos (firmware). Para ello, es necesario familiarizarse con el lenguaje de programación.

La programación Arduino utiliza una versión simplificada del lenguaje C++ con funciones predefinidas. Como en otros lenguajes de programación tipo C, existen varias reglas para escribir código. Aquí están los más básicos:

  • Cada instrucción debe ir seguida de un punto y coma (;)
  • Antes de declarar una función, debe especificar el tipo de datos devuelto por la función, o nulo si la función no devuelve un valor.
  • También es necesario indicar el tipo de datos antes de declarar una variable.
  • Los comentarios se designan: // en línea y /* bloque */

Puede obtener más información sobre tipos de datos, funciones, variables, operadores y construcciones de lenguaje en la página No es necesario memorizar ni recordar toda esta información. Siempre puedes ir al libro de referencia y consultar la sintaxis de una función en particular.

Todo el firmware de Arduino debe contener al menos 2 funciones. Estos son configuración() y bucle().

función de configuración

Para que todo funcione, necesitamos escribir un boceto. Hagamos que el LED se encienda después de presionar el botón y lo apaguemos después de la siguiente presión. Aquí está nuestro primer boceto:

// variables con pines de dispositivos conectados int switchPin = 8; intledPin = 11; // variables para almacenar el estado del botón y LED booleano lastButton = LOW; booleano botónactual = BAJO; ledOn booleano = falso; void setup() ( pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); ) // función para eliminar el rebote booleano (boolean last) ( boolean current = digitalRead(switchPin); if(last != current) ( delay ( 5); actual = digitalRead(switchPin); ) retorno actual; ) void loop() ( currentButton = debounse(lastButton); if(lastButton == BAJO && currentButton == ALTO) ( ledOn = !ledOn; ) lastButton = currentButton ; escritura digital(ledPin, ledOn); )

// variables con pines de dispositivos conectados

int interruptorPin = 8;

intledPin = 11;

// variables para almacenar el estado del botón y LED

booleano último botón = BAJO;

booleano botónactual = BAJO;

ledOn booleano = falso;

configuración nula() (

pinMode(cambiarPin, ENTRADA);

pinMode(ledPin, SALIDA);

// función para antirrebote

rebote booleano (último booleano) (

corriente booleana = digitalRead(switchPin);

si (¡último! = actual) (

retraso(5);

actual = digitalRead(switchPin);

corriente de retorno;

bucle vacío() (

botónActual = antirrebote(últimoBotón);

if (último botón == BAJO && botón actual == ALTO) (

LED encendido = ! llevado en;

último botón = botón actual;

escritura digital (ledPin, ledOn);

En este boceto, creé una función antirrebote adicional para suprimir el rebote de contacto. Hay información sobre el rebote de contactos en mi sitio web. Asegúrese de revisar este material.

Arduino

La modulación de ancho de pulso (PWM) es el proceso de controlar el voltaje utilizando el ciclo de trabajo de una señal. Es decir, usando PWM podemos controlar la carga sin problemas. Por ejemplo, puedes cambiar suavemente el brillo de un LED, pero este cambio de brillo no se obtiene disminuyendo el voltaje, sino aumentando los intervalos de la señal baja. El principio de funcionamiento de PWM se muestra en este diagrama:

Cuando aplicamos PWM al LED, comienza a encenderse y apagarse rápidamente. El ojo humano no puede ver esto porque la frecuencia es demasiado alta. Pero al grabar vídeos, lo más probable es que veas momentos en los que el LED no está encendido. Esto sucederá siempre que la velocidad de fotogramas de la cámara no sea un múltiplo de la frecuencia PWM.

Arduino tiene un modulador de ancho de pulso incorporado. Puede usar PWM solo en aquellos pines que sean compatibles con el microcontrolador. Por ejemplo, Arduino Uno y Nano tienen 6 pines PWM: estos son los pines D3, D5, D6, D9, D10 y D11. Los pines pueden diferir en otros tableros. Puedes encontrar una descripción del tablero que te interesa.

Para usar PWM en Arduino existe una función que toma como argumentos el número de pin y el valor de PWM de 0 a 255. 0 es 0% de relleno con una señal alta y 255 es 100%. Escribamos un boceto simple como ejemplo. Hagamos que el LED se encienda suavemente, esperemos un segundo y se apague con la misma suavidad, y así hasta el infinito. A continuación se muestra un ejemplo del uso de esta función:

// El LED está conectado al pin 11 int ledPin = 11; configuración vacía() ( pinMode(ledPin, SALIDA); ) bucle vacío() ( para (int i = 0; i< 255; i++) { analogWrite(ledPin, i); delay(5); } delay(1000); for (int i = 255; i >0; i--) ( analogWrite(ledPin, i); retraso(5); ) )

// LED conectado al pin 11

intledPin = 11;

configuración nula() (

pinMode(ledPin, SALIDA);

bucle vacío() (

para (int i = 0 ; i< 255 ; i ++ ) {

escritura analógica(ledPin, i);

retraso(5);

retraso(1000);

para (int i = 255; i > 0; i -- ) (

Una serie de artículos y diagramas de entrenamiento con experimentos de radioaficionados en Arduino para principiantes. Se trata de un constructor de juguetes para radioaficionados, a partir del cual, sin soldador, grabado de placas de circuito impreso y similares, cualquier hervidor electrónico puede montar un dispositivo de trabajo completo, adecuado tanto para la creación de prototipos profesionales como para experimentos de aficionados en el estudio de la electrónica. .


La placa Arduino está destinada principalmente a enseñar a los radioaficionados novatos los conceptos básicos de la programación de microcontroladores y la creación de dispositivos de microcontroladores con sus propias manos sin una formación teórica seria. El entorno de desarrollo Arduino le permite compilar y cargar código de programa ya preparado en la memoria de la placa. Además, cargar el código es extremadamente sencillo.

Arduino por dónde empezar para un principiante

En primer lugar, para trabajar con la placa Arduino, un ingeniero electrónico novato necesita descargar el programa de desarrollo Arduino, que consta de un editor de texto incorporado en el que trabajamos con el código del programa, un área de mensajes, una ventana de salida de texto (consola ), una barra de herramientas con botones para comandos de uso frecuente y varios menús. Para descargar sus programas y comunicarse, este programa se conecta a la placa Arduino mediante un cable USB estándar.


El código escrito en el entorno Arduino se llama bosquejo. esta escrito en editor de texto, que tiene herramientas especiales para insertar/cortar, reemplazar/buscar texto. Durante el guardado y la exportación, aparecen explicaciones en el área de mensajes (consulte la imagen en la primera lección para principiantes, justo debajo) y también se pueden mostrar errores. La consola muestra mensajes de Arduino, incluidos informes de errores completos y otra información útil. Los botones de la barra de herramientas le permiten verificar y grabar un boceto, abrirlo, crearlo y guardarlo, abrir el monitoreo del bus serie y mucho más.

Entonces, pasemos a la primera lección de circuitos Arduino para ingenieros electrónicos principiantes.

Para comodidad de los principiantes, el controlador Arduino UNO ya tiene una resistencia y un LED conectado al pin 13 del conector, por lo que no necesitamos ningún elemento de radio externo en el primer experimento.


Al cargar el código, Arduino permite que nuestro programa participe en la inicialización del sistema. Para hacer esto, le indicamos al microcontrolador los comandos que se ejecutarán en el momento del arranque inicial y luego nos olvidaremos por completo de ellos (es decir, estos comandos serán ejecutados por Arduino solo una vez al inicio). Y es para ello que en nuestro código seleccionamos un bloque en el que se almacenan estos comandos. configuración nula(), o más bien en el espacio dentro de las llaves de esta función, consulte el boceto del programa.

No te olvides de tirantes! La pérdida de al menos uno de ellos hará que todo el boceto sea completamente inviable. Pero tampoco pongas paréntesis adicionales, ya que esto también provocará un error.

Código de descarga:
Boceto con comentarios y explicaciones en el archivo 001-1_mig-led.ino

Función bucle vacío() aquí es donde ponemos los comandos que se ejecutarán mientras el Arduino esté encendido. Habiendo comenzado la ejecución desde el primer comando, Arduino llegará al final e inmediatamente irá al principio para repetir la misma secuencia. Y así un número infinito de veces, mientras el tablero reciba energía. En esencia, un bucle vacío es la función principal, el punto de entrada a Arduino.


Función demora(1000) retrasa el procesamiento del programa en 1000 milisegundos. Todo continúa en un ciclo eterno. bucle().

La principal conclusión después de entender nuestro primer programa en Arduino: Usando las funciones de bucle vacío y configuración de vacío, pasamos nuestras instrucciones al microcontrolador. Todo lo que esté dentro del bloque de configuración se ejecutará solo una vez. El contenido del módulo de bucle se repetirá en un bucle mientras el Arduino permanezca encendido.

En el programa anterior había un segundo retraso entre el encendido y apagado del LED. Hubo un gran inconveniente en el código más simple de un operador novato de Arduino utilizado anteriormente. Para mantener una pausa entre el encendido y apagado del LED durante un segundo, utilizamos la función demora() y por lo tanto en este momento el controlador no puede ejecutar otros comandos en la función principal bucle(). Corregir código en una función. bucle(), que se presenta a continuación resuelve este problema.

En lugar de establecer el valor en ALTO y luego en BAJO, obtendremos el valor de ledPin y lo invertiremos. Digamos que si era ALTO, pasará a ser BAJO, etc.

Segundo Opción de código Arduino para control de LED Aquí:

Entonces puedes reemplazar la función. demora(). En su lugar, es mejor utilizar la función. milisegundos(). Devuelve el número de milisegundos que han pasado desde que se inició el programa. La función se desbordará después de aproximadamente 50 días de ejecutar el código del programa.

Una función similar es micros(), que devuelve el número de microsegundos que han pasado desde que se lanzó el código del programa. La función volverá a cero después de 70 minutos de funcionamiento del programa.

Por supuesto, esto agregará algunas líneas de código a nuestro boceto, pero sin duda te convertirá en un programador con más experiencia y aumentará el potencial de tu Arduino. Para hacer esto, solo necesitas aprender a usar la función milis.

Debe quedar claro que la función de retardo más simple detiene la ejecución de todo el programa Arduino, impidiéndole realizar ninguna tarea durante este período de tiempo. En lugar de pausar todo nuestro programa, podemos contar cuánto tiempo ha pasado antes de que se complete la acción. Esto, muy bien, se implementa utilizando la función millis(). Para que todo sea fácil de entender, consideraremos la siguiente opción para hacer parpadear un LED sin demora.

El comienzo de este programa es el mismo que el de cualquier otro boceto estándar de Arduino.


Este ejemplo utiliza dos pines de E/S digitales Arduino. El LED está conectado al pin 8, que está configurado como SALIDA. Se conecta un botón a 9 vía, que se configura como ENTRADA. Cuando presionamos el botón, el pin 9 se establece en ALTO y el programa cambia el pin 8 a ALTO, encendiendo así el LED. Al soltar el botón se restablece el pin 9 a BAJO. Luego, el código cambia el pin 8 a BAJO, apagando la luz indicadora.

Para controlar cinco LED utilizaremos varias manipulaciones con los puertos Arduino. Para ello escribiremos datos directamente en los puertos Arduino, esto nos permitirá configurar los valores de los LED usando una sola función.

Arduino UNO tiene tres puertos: B(entradas/salidas digitales de 8 a 13); C(entradas analógicas); D(entradas/salidas digitales 0 a 7)

Cada puerto controla tres registros. El primer DDR especifica si el pin será una entrada o una salida. Usando el segundo registro PORT, puede configurar el pin en ALTO o BAJO. Con el tercero, puede leer información sobre el estado de las patas de Arduino, si funcionan como entrada.

Para operar el circuito, usamos el puerto B. Para hacer esto, configure todos los pines del puerto como salidas digitales. El puerto B tiene sólo 6 tramos. Los bits del registro DDRB deben configurarse en "1" , si el pin se utilizará como salida (OUTPUT), y en "0" , si planeamos usar el pin como entrada (INPUT). Los bits de puerto están numerados del 0 al 7, pero no siempre tienen los 8 pines

Digamos: DDRB = B00111110;// configura los pines 1 a 5 del puerto B como salida y 0 como entrada.

En nuestro circuito de luces de marcha utilizamos cinco salidas: DDRB = B00011111; // configura los pines 0 a 4 del puerto B como salidas.

Para escribir datos en el puerto B, debe utilizar el registro PORTB. Puede encender el primer LED usando el comando de control: PUERTOB = B00000001;, primer y cuarto LED: PUERTOB = B00001001 etcétera

Hay dos operadores de desplazamiento binarios: izquierda y derecha. El operador de desplazamiento a la izquierda hace que todos los bits de datos se muevan hacia la izquierda, mientras que el operador de desplazamiento a la derecha los mueve hacia la derecha.

Ejemplo:

varA = 1; // 00000001
varA = 1 varA = 1 varA = 1

Ahora volvamos al código fuente de nuestro programa. Necesitamos ingresar dos variables: arriba abajo incluirá los valores de dónde moverse: arriba o abajo, y el segundo cylon indicará qué LED encender.

Estructuralmente, dicho LED tiene un terminal común y tres terminales para cada color. A continuación se muestra un diagrama para conectar un LED RGB a una placa Arduino con un cátodo común. Todas las resistencias utilizadas en el circuito de conexión deben tener el mismo valor entre 220 y 270 ohmios.


Para una conexión con un cátodo común, el diagrama de conexión para un LED de tres colores será casi el mismo, excepto que el pin común no estará conectado a tierra (gnd en el dispositivo), sino al pin de +5 voltios. Los pines rojo, verde y azul en ambos casos están conectados a las salidas digitales 9, 10 y 11 del controlador.

Conectaremos un LED externo al noveno pin de Arduino UNO mediante una resistencia de 220 Ohmios. Para controlar suavemente el brillo de este último, utilice la función escritura analógica(). Proporciona salida de una señal PWM a la pata del controlador. Es más, el equipo modo pin() no es necesario llamar. Porque escritura analógica (pin, valor) incluye dos parámetros: pin - número de pin para salida, valor - valor de 0 a 255.

Código:
/*
Un ejemplo de tutorial para un desarrollador novato de Arduino que revela las capacidades del comando analogWrite() para implementar el efecto Fade de un LED
*/
brillo int = 0; // brillo del LED
int fadeCantidad = 5; // paso de cambio de brillo
tiempo actual largo sin firmar;
tiempo de bucle largo sin firmar;

Configuración nula() (
pinMode(9, SALIDA); // establece el pin 9 como salida
horaactual = milis();
loopTime = currentTime;
}

Bucle vacío() (
horaactual = milis();
if(horaactual>= (horabucle + 20))(
analogWrite(9, brillo); // establece el valor en el pin 9

Brillo = brillo + cantidad de desvanecimiento; // agrega un paso para cambiar el brillo, que se establecerá en el próximo ciclo

// si se alcanza el mín. o máx. valores, luego vamos en la dirección opuesta (inversa):
si (brillo == 0 || brillo == 255) (
cantidaddesvanecimiento = -cantidaddesvanecimiento;
}
loopTime = currentTime;
}
}

Trabajando Arduino con un codificador

El codificador está diseñado para convertir el ángulo de rotación en una señal eléctrica. De él recibimos dos señales (A y B), que tienen fases opuestas. En este tutorial usaremos el codificador SparkFun COM-09117, que tiene doce posiciones por revolución (cada posición es exactamente 30°). La siguiente figura muestra claramente cómo las salidas A y B dependen entre sí cuando el codificador se mueve en el sentido de las agujas del reloj o en el sentido contrario a las agujas del reloj.

Si la señal A pasa de un nivel positivo a cero, leemos el valor de la salida B. Si la salida B está en un estado positivo en este momento, entonces el codificador se mueve en el sentido de las agujas del reloj, si B genera un nivel cero, entonces el codificador se mueve en la dirección opuesta. Al leer ambas salidas, podemos calcular la dirección de rotación usando un microcontrolador y contando los pulsos de la salida A del codificador, el ángulo de rotación.

Si es necesario, puede utilizar cálculos de frecuencia para determinar qué tan rápido gira el codificador.

Usando un codificador en nuestro ejemplo del tutorial, ajustaremos el brillo del LED usando la salida PWM. Para leer datos del codificador, usaremos un método basado en temporizadores de software, que ya hemos cubierto.

Considerando el hecho de que en caso rápido, podemos girar la perilla del codificador 180° en 1/10 de segundo, luego serán 6 pulsos en 1/10 de segundo o 60 pulsos en un segundo.

En realidad, no es posible girar más rápido. Dado que necesitamos realizar un seguimiento de todos los semiciclos, la frecuencia debería ser de unos 120 Hertz. Para estar completamente seguros, tomemos 200 Hz.

Como en este caso utilizamos un codificador mecánico, el rebote de contacto es posible y la baja frecuencia filtra perfectamente dicho rebote.


Según las señales del temporizador del programa, es necesario comparar constantemente el valor actual de la salida A del codificador con el valor anterior. Si el estado cambia de positivo a cero, entonces sondeamos el estado de la salida B. Dependiendo del resultado del sondeo de estado, aumentamos o disminuimos el contador del valor de brillo del LED. A continuación se presenta el código del programa con un intervalo de tiempo de aproximadamente 5 ms (200 Hz):

Código para principiantes de Arduino:
/*
** Codificador
** Para controlar el brillo del LED, se utiliza un codificador de Sparkfun
*/

Brillo interno = 120; // Brillo del LED, comienza a la mitad
int fadeCantidad = 10; // paso de cambio de brillo
tiempo actual largo sin firmar;
tiempo de bucle largo sin firmar;
constante int pin_A = 12; // pin 12
constante int pin_B = 11; // pin 11
codificador de caracteres sin firmar_A;
codificador de caracteres sin firmar_B;
codificador de caracteres sin firmar_A_prev=0;
configuración nula() (
// declarar el pin 9 como salida:
pinMode(9, SALIDA); // establece el pin 9 como salida
pinMode(pin_A, ENTRADA);
pinMode(pin_B, ENTRADA);
horaactual = milis();
loopTime = currentTime;
}
bucle vacío() (
horaactual = milis();
if(currentTime >= (loopTime + 5))( // verifica los estados cada 5 ms (frecuencia 200 Hz)
codificador_A = digitalRead(pin_A); // lee el estado de la salida A del codificador
codificador_B = digitalRead(pin_B); // salida del codificador B
if((!encoder_A) && (encoder_A_prev))( // si el estado cambia de positivo a cero
si(codificador_B) (
// la salida B está en estado positivo, lo que significa que la rotación es en el sentido de las agujas del reloj
// aumenta el brillo del resplandor, no más de 255
si (brillo + cantidad de desvanecimiento)
demás(
// la salida B está en estado cero, lo que significa que la rotación es en sentido antihorario
// reduce el brillo, pero no por debajo de cero
if(brillo - cantidad de desvanecimiento >= 0) brillo -= cantidad de desvanecimiento;
}

}
codificador_A_prev = codificador_A; // guarda el valor de A para el siguiente ciclo

AnalogWrite(9, brillo); // establece el brillo en el noveno pin

Tiempo de bucle = tiempo actual;
}
}

En este ejemplo para principiantes, veremos cómo trabajar con un emisor piezoeléctrico para generar sonidos. Para ello, tomemos un sensor piezoeléctrico que nos permita generar ondas sonoras en el rango de frecuencia 20 Hz - 20 kHz.

Este es un diseño de radioaficionado donde los LED están ubicados en todo el volumen. Con este esquema, puede generar varios efectos de iluminación y animación. Los diagramas complejos pueden incluso mostrar varias palabras grandes. En otras palabras, este es un monitor envolvente elemental.

El servoaccionamiento es el elemento principal en el diseño de varios modelos radiocontrolados y su control mediante un controlador es sencillo y cómodo.


El programa de control es sencillo e intuitivo. Comienza conectando un archivo que contiene todos los comandos necesarios para controlar el servodrive. A continuación, creamos un objeto servo, por ejemplo servoMain. La siguiente función es setup(), en la que especificamos que el servo está conectado al noveno pin del controlador.

Código:
/*
Servoarduino
*/
#incluir
Servoservoprincipal; // objeto servo

Configuración nula()
{
servoMain.attach(9); //Servo conectado al pin 9
}

bucle vacío()
{
servoMain.write(45); // Girar el servo a la izquierda 45°
retraso(2000); // Espera 2000 milisegundos (2 segundos)
servoMain.write(0); // Gira el servo hacia la izquierda 0°
retraso(1000); // Pausa 1 s.

retraso(1500); // Espere 1,5 s.
servoMain.write(135); //Gira el servo a la derecha 135°
retraso(3000); // Pausa 3 s.
servoMain.write(180); //Gira el servo a la derecha 180°
retraso(1000); // Espere 1 s.
servoMain.write(90); // Gira el servo 90°. Posición central
retraso(5000); // Pausa 5 s.
}

En la función principal bucle(), damos órdenes al servomotor, con pausas entre ellas.

Circuito contador Arduino en un indicador de 7 segmentos.

Este sencillo proyecto Arduino para principiantes implica la creación de un circuito contador utilizando una pantalla de cátodo común normal de 7 segmentos. El siguiente código de programa le permite comenzar a contar del 0 al 9 cuando presiona un botón.

El indicador de siete segmentos es una combinación de 8 LED (el último es responsable del punto) con un cátodo común, que se pueden encender en la secuencia deseada para que formen números. Cabe señalar que en este circuito, consulte la figura siguiente, los pines 3 y 8 están asignados al cátodo.


A la derecha hay una tabla de correspondencia entre los pines de Arduino y los pines del indicador LED.

Código para este proyecto:

números de bytes = (
B11111100, B01100000, B11011010, B11110010, B01100110,
B10110110, B10111110, B11100000, B11111110, B11100110
};
configuración nula() (
for(int i = 2; i pinMode(i, SALIDA);
}
pinMode(9, ENTRADA);
}
contador int = 0;
bool go_by_switch = verdadero;
int último_valor_entrada = BAJO;
bucle vacío() (
si(pasar_por_cambiar) (
int switch_input_value = digitalRead(9);
if(last_input_value == BAJO && switch_input_value == ALTO) (

}
último_valor_entrada = switch_input_value;
) demás (
retraso(500);
contador = (contador + 1) % 10;
}
escribirNúmero(contador);
}

Número de escritura nulo (número int) (
si(número 9) (
devolver;
}
máscara de bytes = números;
byte currentPinMask = B10000000;
for(int i = 2; i if(mask & currentPinMask) digitalWrite(i,HIGH);
de lo contrario digitalWrite(i,BAJO);
MáscaraPinActual = MáscaraPinActual >> 1;
}
}

Puede ampliar significativamente el potencial de las placas Arduino con la ayuda de módulos adicionales que se pueden conectar a los pines PIN de casi cualquier dispositivo. Considere los módulos de expansión más populares e interesantes, o escudos, como también se les llama.

Arduino es muy popular entre todos los entusiastas del diseño. Aquellos que nunca hayan oído hablar de él también deberían conocerlo.

¿Qué es Arduino?

¿Cómo puedes describir brevemente Arduino? Las mejores palabras serían: Arduino es una herramienta que se puede utilizar para crear varios dispositivos electrónicos. En esencia, se trata de una auténtica plataforma informática de hardware de uso general. Se puede utilizar para construir circuitos simples, y para la implementación de proyectos bastante complejos.

El diseñador se basa en su hardware, que es una placa de entrada-salida. Para programar la placa se utilizan lenguajes que se basan en C/C++. Se denominan, respectivamente, Procesamiento/Cableado. Del grupo C heredaron la extrema simplicidad, gracias a la cual cualquier persona puede dominarlos muy rápidamente, y aplicar los conocimientos en la práctica no es un problema demasiado importante. Para que comprenda la facilidad de trabajo, a menudo se dice que Arduino es para asistentes de diseño principiantes. Incluso los niños pueden entender las placas Arduino.

¿Qué puedes recolectar con él?

Las aplicaciones de Arduino son bastante diversas, se puede utilizar tanto para los ejemplos más simples, que recomendaremos al final del artículo, como para mecanismos bastante complejos, incluidos manipuladores, robots o máquinas de producción. Algunos artesanos logran utilizar estos sistemas para fabricar tabletas, teléfonos, sistemas de vigilancia y seguridad para el hogar ". casa inteligente"o simplemente computadoras. Los proyectos de Arduino para principiantes, con los que incluso aquellos sin experiencia pueden empezar, se encuentran al final del artículo. Incluso se pueden utilizar para crear sistemas primitivos de realidad virtual. Todo gracias al hardware y las capacidades bastante versátiles que proporciona la programación Arduino.

¿Dónde puedo comprar los componentes?

Los componentes fabricados en Italia se consideran originales. Pero el precio de estos kits no es bajo. Por lo tanto, varias empresas o incluso particulares fabrican de forma artesanal dispositivos y componentes compatibles con Arduino, que en broma se denominan clones de producción. Al comprar estos clones, no se puede decir con certeza que funcionarán, pero el deseo de ahorrar dinero pasa factura.

Los componentes se pueden comprar como parte de kits o por separado. Incluso existen kits preparados para montar coches, helicópteros con distintos tipos de mandos o barcos. Un juego como el que se muestra arriba, fabricado en China, cuesta 49 dólares.

Más sobre el equipo

La placa Arduino es simple microcontrolador AVR, que se actualizó con un gestor de arranque y tiene el puerto USB-UART mínimo requerido. Hay otros componentes importantes, pero dentro del alcance del artículo sería mejor centrarse sólo en estos dos componentes.

En primer lugar, sobre el microcontrolador, un mecanismo construido sobre un único circuito en el que se ubica el programa desarrollado. Se puede influir en el programa presionando botones, recibiendo señales de los componentes de la creación (resistencias, transistores, sensores, etc.), etc. Además, los sensores pueden tener una finalidad muy diferente: iluminación, aceleración, temperatura, distancia, presión, obstáculos, etc. Se pueden utilizar piezas simples como dispositivos de visualización, desde LED y tweeters hasta dispositivos complejos, como pantallas gráficas. Las calidades consideradas son motores, válvulas, relés, servos, electroimanes y muchas otras, que llevaría muchísimo tiempo enumerar. El MK trabaja directamente con algunas de estas listas, utilizando cables de conexión. Algunos mecanismos requieren adaptadores. Pero una vez que empieces a diseñar, te resultará difícil dejarlo. Ahora hablemos de la programación Arduino.

Obtenga más información sobre el proceso de programación de la placa.

Un programa que ya está listo para ejecutarse en un microcontrolador se llama firmware. Puede haber un proyecto o proyectos Arduino, por lo que sería recomendable almacenar cada firmware en una carpeta separada para acelerar el proceso de búsqueda. archivos necesarios. Se introduce en el cristal MK mediante dispositivos especializados: programadores. Y aquí Arduino tiene una ventaja: no necesita programador. Todo está hecho para que programar Arduino para principiantes no sea difícil. El código escrito se puede cargar en el MK mediante un cable USB. Esta ventaja no se logra mediante un programador prediseñado, sino mediante un firmware especial: un gestor de arranque. El gestor de arranque es un programa especial que se inicia inmediatamente después de la conexión y escucha si hay algún comando, si flashear el cristal, si hay proyectos Arduino o no. Existen varias ventajas muy atractivas al utilizar un gestor de arranque:

  1. Utilizando un solo canal de comunicación, lo que no requiere costes de tiempo adicionales. Por lo tanto, los proyectos Arduino no requieren que conectes muchos cables diferentes y habrá confusión al usarlos. Un cable USB es suficiente para un funcionamiento exitoso.
  2. Protección contra manos torcidas. Es bastante fácil llevar el microcontrolador a un estado de ladrillo usando firmware directo; no es necesario trabajar duro. Cuando trabaje con un gestor de arranque, no podrá acceder a configuraciones potencialmente peligrosas (con la ayuda de un programa de desarrollo, por supuesto, de lo contrario, todo se puede estropear). Por lo tanto, Arduino para principiantes está pensado no solo desde el punto de vista de que es comprensible y conveniente, sino que también le permitirá evitar gastos financieros no deseados asociados con la inexperiencia de la persona que trabaja con ellos.

Proyectos para empezar

Cuando haya adquirido un kit, un soldador, colofonia y soldadura, no debe esculpir inmediatamente estructuras muy complejas. Por supuesto, puedes hacerlos, pero las posibilidades de éxito en Arduino para principiantes son bastante bajas con proyectos complejos. Para entrenar y mejorar tus habilidades, puedes intentar implementar algunas ideas más simples que te ayudarán a comprender la interacción y el funcionamiento de Arduino. Como primeros pasos para trabajar con Arduino para principiantes, podemos aconsejarle que considere:

  1. Crea uno que funcione gracias a Arduino.
  2. Conectando un botón separado a Arduino. En este caso, puede hacerlo de modo que el botón pueda ajustar el brillo del LED desde el punto 1.
  3. Conexión de potenciómetro.
  4. Control de servoaccionamiento.
  5. Conexión y trabajo con un LED de tres colores.
  6. Conexión del elemento piezoeléctrico.
  7. Conexión de un fotorresistor.
  8. Conexión de un sensor de movimiento y señales sobre su funcionamiento.
  9. Conexión de un sensor de humedad o temperatura.

Proyectos para el futuro

Es poco probable que le interese Arduino para conectar LED individuales. Lo más probable es que le atraiga la oportunidad de crear su propio coche o un tocadiscos volador. Estos proyectos son difíciles de implementar y requerirán mucho tiempo y perseverancia, pero una vez completados, obtendrás lo que deseas: una valiosa experiencia en diseño de Arduino para principiantes.

La mayoría de los ingenieros electrónicos prefieren construir sus proyectos basándose en un microcontrolador, sobre el que ya hemos escrito varias veces. En el siguiente artículo veremos diseños simples de dispositivos electrónicos para principiantes y los proyectos más inusuales basados ​​​​en el microcontrolador mencionado.

En primer lugar, vale la pena familiarizarse con la funcionalidad del microprocesador Arduino Uno, en el que se basan la mayoría de los proyectos, y también considerar las razones para elegir este dispositivo. A continuación se detallan los factores por los que un inventor novato debería elegir Arduino uno:

  1. Interfaz bastante fácil de usar. Está claro dónde está el contacto y dónde conectar los cables de conexión.
  2. El chip de la placa se conecta directamente al puerto USB. La ventaja de esta configuración es que la comunicación en serie es un protocolo muy simple que ha resistido la prueba del tiempo y el USB hace que la conexión a computadoras modernas sea muy conveniente.
  3. Es fácil encontrar la parte central del microcontrolador, que es el chip ATmega328. Tiene más funciones de hardware como temporizadores, interrupciones externas e internas, pines PWM y múltiples modos de suspensión.
  4. El dispositivo es de código abierto, por lo que una gran cantidad de radioaficionados pueden corregir errores y problemas en software. Esto facilita la depuración de proyectos.
  5. La velocidad del reloj es de 16 MHz, que es lo suficientemente rápida para la mayoría de las aplicaciones y no acelera el microcontrolador.
  6. Es muy conveniente controlar la energía en su interior y tiene una función de regulación de voltaje incorporada. El microcontrolador también se puede desconectar del puerto USB sin una fuente de alimentación externa. Puede conectar una fuente de alimentación externa de hasta 12 V. Además, el propio microprocesador determinará el voltaje requerido.
  7. Disponibilidad de 13 contactos digitales y 6 contactos analógicos. Estos pines le permiten conectar equipos a la placa Arduino uno desde medios de terceros. Los pines se utilizan como clave para ampliar la potencia informática del Arduino uno en el mundo real. Simplemente conecta tus dispositivos electrónicos y sensores a los conectores que corresponden a cada uno de estos pines.
  8. Hay disponible un encabezado ICSP para omitir el puerto USB e interactuar directamente con Arduino como un dispositivo serie. Este puerto es necesario para restablecer el chip si está dañado y ya no se puede utilizar en su computadora.
  9. Disponibilidad de 32 KB de memoria flash para almacenar código de desarrollador.
  10. El LED de la placa se conecta al pin digital 13 para depurar rápidamente el código y simplificar el proceso.
  11. Por último, dispone de un botón para resetear el programa en el chip.

Arduino fue creado en 2005 por dos ingenieros italianos, David Cuartilles y Massimo Banzi, con el objetivo de permitir a los estudiantes aprender a programar el microcontrolador Arduino uno y mejorar sus habilidades electrónicas y utilizarlas en el mundo real.

Arduino uno puede percibir ambiente, recibe información de varios sensores y es capaz de influir en el medio ambiente y otros actuadores. El microcontrolador se programa utilizando el lenguaje de programación Arduino (basado en cableado) y el entorno de desarrollo Arduino (basado en procesamiento).

Ahora pasemos directamente a proyectos en Arduino uno.

El proyecto más fácil para principiantes.

Veamos algunos proyectos simples e interesantes de Arduino Uno que incluso los principiantes en este negocio pueden realizar: un sistema de alarma.

Ya hemos hecho una lección sobre este proyecto -. Brevemente sobre qué se hace y cómo.

Este proyecto utiliza un sensor de movimiento para detectar movimientos y emisiones agudas, y una pantalla visual que consta de luces LED parpadeantes. El proyecto en sí le presentará varios complementos que se incluyen en el kit para principiantes de Arduino, así como los matices del uso de NewPing.

Es una biblioteca Arduino que te ayuda a controlar y probar tu sensor de distancia de sonda. Si bien no es exactamente una protección completa para el hogar, ofrece una solución ideal para proteger espacios pequeños como dormitorios y baños.

Para este proyecto usted será necesario:

  1. Sensor de ping ultrasónico – HC-SR04.
  2. Zumbador piezoeléctrico.
  3. Tira de luces LED.
  4. Iluminación automotriz mediante tira RGB. En este tutorial del proyecto Arduino, aprenderá cómo crear iluminación interior de automóvil RGB usando una placa Arduino uno.

A muchos entusiastas de los automóviles les gusta agregar luces adicionales o actualizar las bombillas interiores a LED, pero con la plataforma Arduino puedes disfrutar de más control y detalle al manejar potentes LED y tiras de luz.

Puedes cambiar el color de iluminación usando Dispositivos Android(teléfono o tableta) usando la aplicación " Controlador RGB Bluetooth" (Dev Next Prototypes), que puedes descargar gratis desde Juego Android Almacenar. También puedes encontrar un circuito electrónico EasyEDA o pedir tu propio circuito basado en Arduino en una PCB.

Increíbles proyectos de Arduino Uno

A la mayoría de los profesionales en el campo del desarrollo de proyectos electrónicos en Arduino uno les encanta experimentar. Como resultado, aparecen dispositivos interesantes y sorprendentes, que se comentan a continuación:

  1. Agregar un control remoto por infrarrojos a su sistema de altavoces. En electrónica de consumo, el mando a distancia. control remoto es un componente dispositivo electronico como un televisor, un reproductor de DVD u otro electrodoméstico utilizado para controlar el dispositivo de forma inalámbrica desde una distancia corta. El control remoto, en primer lugar, es conveniente para una persona y le permite trabajar con dispositivos que no son adecuados para el manejo directo de los controles.
  2. Alarma. El reloj de tiempo real se utiliza para obtener la hora exacta. Aquí este sistema muestra la fecha y la hora en la pantalla LCD y podemos configurar la alarma usando los botones de control. Tan pronto como llega la hora de la alarma, el sistema emite una señal acústica.
  3. Motor paso a paso. significa un motor preciso que se puede girar paso a paso. Este dispositivo se fabrica mediante robótica, impresoras 3D y máquinas CNC.

    Para este proyecto, consiga el motor paso a paso más barato que pueda encontrar. Los motores están disponibles en línea. Este proyecto utiliza un podómetro 28byj-48, que es adecuado para la mayoría de proyectos similares. Es fácil de conectar a la placa Arduino.
    - Necesitarás 6 cables con conectores hembra a macho. ¡Solo necesitas conectar el motor a la placa y listo! También puedes agregar un pequeño trozo de cinta al cabezal giratorio para ver que produce un movimiento giratorio.

  4. Sensor de distancia ultrasónico. Este proyecto utiliza el popular , para que el dispositivo pueda evitar obstáculos y moverse en diferentes direcciones.

Cuando termines tu trabajo, el resultado de tus acciones aparecerá en la pantalla. Para mantener las cosas simples y claras, se recomienda usar una pantalla LCD con un convertidor I2C, por lo que solo necesitarás 4 cables para conectar a la placa Arduino.

Curso de cerebro joven luchador de programación arduino o por dónde empezar a familiarizarse con esta plataforma.

“¿Por dónde empezar, Su Majestad? - preguntó. “Empiece desde el principio”, respondió el Rey con importancia…” (C) Lewis Carroll Alicia en el país de las Maravillas

Paso 1: Empecemos desde el principio o cómo sería bueno si Arduino fuera gratuito.

Habiendo leído toneladas de libros de texto sobre arduino, habiendo ideado un montón de aplicaciones útiles para esto en la vida cotidiana, desde la automatización de la alimentación de peces en un acuario hasta un robot sembrador para un césped personal, entendemos que sin arduino¡No podemos arreglárnoslas!

Habiendo comprado un controlador, entendemos que tenemos una placa, pero muchas ideas. ¿Qué hacer? Inteligente nos lleva a la decisión correcta.

Necesito clonar Arduino con tus propias manos!

Paso 2: Reúne todo lo que necesitas

Para acelerar el proceso usaremos junta de desarrollo. Como se sabe por los parámetros técnicos del controlador. ATmega 328 IC, para ejecutarlo en una configuración mínima necesitamos:

− controlador Arduino Duemilanove(será utilizado como programador);
− microcircuito ATmega 328 IC ;
− resonador de cuarzo de 16 MHz;
− resistencias de 100 ohmios, 3 unidades;
− condensadores 22pF 2 unidades;
− LED de 3 piezas con colores luminosos rojo, verde y amarillo;
− Estabilizador de tensión de 5 voltios, por ejemplo 7805;
− cualquier batería 9 con conector para conexión;
− cable USB;
− computadora o computadora portátil con un paquete de software instalado IDE de Arduino;
− placa de pruebas y cables.

Paso 3: iniciar el diseño



Colocamos el chip controlador en la protoboard.

Paso 4: Instale el estabilizador de voltaje y los circuitos de potencia.

Instalamos el estabilizador de voltaje L7805 en la placa. El propósito de los pines del microcircuito es 1 entrada (7-20 voltios), 2 carcasas, 3 salidas (5 voltios). Utilizando cables de montaje, conectamos el estabilizador a la fuente de alimentación y al controlador, como se muestra en las fotografías.

Paso 5: conecte la alimentación al controlador

De acuerdo con la numeración de los pines del controlador, lo conectamos con cables de montaje a la salida del estabilizador de voltaje y al cable común.

Consejo: Los cables de instalación tienen diferentes colores de aislamiento, intente utilizar cables del mismo color para cada circuito.

Paso 6: conecta el resonador de cuarzo



Colocamos un resonador y condensadores del circuito oscilatorio en el tablero.

El procedimiento de instalación es el siguiente:

− colocamos un condensador de 22pF entre tierra y la novena pata del controlador;
− colocamos un condensador de 22pF entre tierra y la décima pata del controlador;
− encendemos el resonador entre las patas 9 y 10 del controlador;
− conectamos una resistencia de 10 kOm entre 1 pata del controlador y +5V (evitamos la señal “Reset”).

Paso 7: agregar indicadores de estado del controlador

Conectamos los LED en serie con resistencias de 100 Ohm, entre tierra y nuestro programador.

Paso 7: conecte la placa de pruebas a la placa del programador


Conexión de la placa de pruebas ensamblada a la placa Arduino Duemilanove de la siguiente manera:

− conectar la salida del LED amarillo a 9 salida en el conector del programador, su pulsación nos indicará que el programador está funcionando;
− conecte la salida del LED rojo a 8 salida en el conector del programador, señala posibles errores;
− conectar la salida del LED verde a 7 pin en el conector del programador, su brillo indica el intercambio de datos entre el programador y el microcontrolador.

Conectamos nuestras placas entre sí con los cables restantes como se muestra en la figura, sin olvidar conectar los cables de alimentación. +5V Y marco entre ellos.

Paso 8: Convertir la placa Arduino Duemilanove en un programador

Para cargar en el microcontrolador ATmega 328CI El gestor de arranque debe convertirse en nuestro Arduino Duemilanove en el programador. Conectamos nuestro ensamblaje a la computadora usando USB cable. Abra el entorno de programación AndurinoIDE, seleccione el boceto (programa) en él AndurinoISP y subirlo al Arduino Duemilanove. Por el parpadeo del LED amarillo estamos convencidos de que el boceto ha sido cargado en nuestro programador.

Paso 9: carga el gestor de arranque

En AndurinoISP (elemento del menú « therramientas") seleccione el tipo de controlador que necesitamos ( ATmega 328 IC). Damos el comando para cargar el gestor de arranque. "Grabar gestor de arranque". Monitorizamos los mensajes de AndurinoIDE una vez que el gestor de arranque ha terminado de cargarse " Listo para grabar el gestor de arranque" nuestro microcontrolador está listo para grabar un boceto del proyecto de nuestro nuevo productos caseros.

Paso 10: Posibles problemas y soluciones






Los posibles errores al grabar un gestor de arranque y cómo eliminarlos se muestran en las capturas de pantalla del depurador anteriores.

Este artículo no pretende ser una descripción completa de la programación. "desde cero" microcontrolador, pero muestra cómo, utilizando un conjunto mínimo de elementos, puedes empezar a hacer "tu propio" Andurino.


Arriba