Hacemos parpadear el LED. El fenómeno Blynk y sus alternativas Blink projects

Entonces, pongámonos manos a la obra. La primera lección no requiere ningún material suyo y simplemente pretende presentarle la simplicidad de ARDUINO. Como en la mayoría de los programas, la familiarización comienza con "¡Hola mundo!" así que comenzaremos con el más simple: hacer parpadear el LED. Lo que necesita para esto: la propia placa ARDUINO, un cable USB para conectar ARDUINO a una computadora, shell de programación ARDUINO. Se lanzan nuevas máscaras, pero la versión más estable es 1.0.6. Descargar puedes conseguirlo sitio web oficial... Esta es la versión para Windows, descarga para Linux. Debe comprender de inmediato que para continuar el estudio necesitará una placa de pruebas (pedir en China o comprar en una tienda en línea), cables (puede comprar allí o encontrar unidades del sistema antiguas y desconectar los cables que van al panel frontal, incluso antes de El USB en el panel frontal se conectó con cables individuales y no con un conector completo, se adaptarán a usted: saque el cable, suelde los pines de los conectores en la placa al otro extremo, luego coloque un pequeño trozo de tubo termocontraíble en el sitio de soldadura para que el cable no se rompa en el punto de soldadura, caliente y tiene un cable madre listo (enchufe con un agujero) - papá (pin de la placa).

Alambres caseros para ARDUINO

Haga los cables macho a macho de la misma manera, serán útiles para encender la placa de pruebas y conectar ARDUINO a la placa de pruebas. Por cierto, puede, incluso necesita, hacer tales cables en forma de bucle; es mucho más conveniente conectar ARDUINO con bloques), bueno, los bloques con los que trabajará (también se compran en China o en tiendas online). La elección de sensores y actuadores es enorme y no limita su imaginación. Pero al principio, un sensor térmico será suficiente. Dallas, indicador (por supuesto, los LED de 7 segmentos también son posibles, pero consumen una corriente varias veces mayor que 1602 y esto afectará negativamente cuando se alimentan con baterías y baterías, y solo muestran información digital), relé, siempre puedes comprar todo lo que necesites. Para aquellos que no tienen fondos limitados, es mejor comprar un juego de inmediato. Aunque es caro, inmediatamente descarta todos los problemas con la adquisición de sensores y puedes fabricar dispositivos de inmediato. La elección seguirá siendo solo tuya. De acuerdo, comencé a hablar, más cerca del tema.

Conectamos ARDUINO a la computadora, ejecutamos el programa, vamos al programa Servicio-Tablero-elige tu tablero, todo-¡puedes trabajar!

Por cierto, un clon chino se puede ensamblar en un microcircuito. ch340 y su computadora requerirá un controlador para el puerto USB. Para instalar, descargue el controlador, descomprímalo y señale la carpeta con los archivos descomprimidos cuando se le solicite el controlador.

Sin perder tiempo, hacemos lo siguiente: Archivo-Ejemplos-Conceptos básicos-Parpadeo... Una nueva ventana se abrirá


Parpadea en ARDUINO

en el que verá el programa, inmediatamente puede hacer clic en el segundo botón en el panel del programa con una flecha, el programa se compilará y transferirá a ARDUINO, ¡el LED en la placa comenzará a parpadear! 1 segundo encendido, 1 segundo apagado. Consideremos el programa en sí. En primer lugar, verá los comentarios marcados con /* texto */ y //texto ... El primero significa que el texto del letrero /* para firmar */ es un comentario y el compilador simplemente no procesa y no toma en cuenta esta información, es muy conveniente escribir en tales combinaciones la descripción del programa, su algoritmo, autoría y mucho más. Firmar // solo comenta la linea. Además, puede escribir este signo tanto al principio de una línea como después de cualquier línea del programa, pero en ningún caso antes de las líneas del programa; el programa contará la línea completa como un comentario.

Por ejemplo:

escritura digital (13, ALTA); // enciende el LED (ALTO es el nivel de voltaje)- derecho

// enciende el LED (HIGH es el nivel de voltaje) digitalWrite (13, HIGH);- no adecuadamente

Si desea hacer un comentario ante el operador en una línea, utilice la combinación /* texto */ , esos. la línea se verá así: / * enciende el LED (HIGH es el nivel de voltaje) * / digitalWrite (13, HIGH);

Intente comentar sus acciones con la mayor frecuencia posible, el compilador las eliminará del programa y, con el tiempo, simplemente olvidará qué y cómo lo hizo.

Lo siguiente que verá es el siguiente texto:

// la función de configuración se ejecuta una vez al presionar reiniciar o encender la placa
configuración vacía () (
// inicializa el pin digital 13 como salida.
pinMode (13, SALIDA);
}

El comentario dice que la función de configuración se llama solo una vez cuando reinicia o vuelve a encender ARDUINO. Esos. o presiona el botón de reinicio en la propia placa o vuelve a conectar la alimentación.

Luego viene el operador configuración vacía () (….)- el principiante de la sección real de configuración de este boceto (este es el nombre del programa para ARDUINO).

El siguiente comentario dice que definimos ARDUINO de 13 pines como salida. Quiero recordarle que la página describe los pines de la placa, por lo que la salida 13 es digital (como está escrito en los títulos de las salidas) y puede tomar solo 2 estados: encendido (mientras se suministra con voltajes de aproximadamente 5V ), es decir lógico 1 (uno), o apagado (sin voltaje), es decir 0 lógico (cero). En cero, todavía hay un pequeño voltaje en el pin, pero son bajos en relación con uno lógico. Además, un LED en la propia placa está conectado al pin 13 a través de una resistencia, es él quien parpadea cuando el programa se está ejecutando.

pinMode (13, SALIDA);- pinMode- traducido como modo pin, 13- número de pin, SALIDA- salida, es decir línea significa que la salida 13 funcionará como una salida, SALIDA, si escribe ENTRADA, entonces ya será una ENTRADA DIGITAL, es decir puede procesar datos DIGITALES que ingresan a este pin.

Si conecta un LED con una resistencia de 1kOhm conectada en serie al pin 13 y la otra pata al pin GND, el LED parpadeará junto con el LED en la placa. Si no parpadea, cambie la polaridad del LED.

Las siguientes líneas son el programa que describe las acciones con el puerto:

// la función de bucle se ejecuta una y otra vez para siempre
bucle vacío () (
escritura digital (13, ALTA); // enciende el LED (ALTO es el nivel de voltaje)

digitalWrite (13, BAJO); // apaga el LED haciendo que el voltaje sea BAJO
retraso (1000); // Espera un segundo


bucle vacío () (...)
- sección del programa donde se describen las acciones para el trabajo, los datos en este ciclo se pueden cambiar y procesar de acuerdo con las condiciones. El comentario dice que el próximo ciclo se ejecutará una y otra vez siempre

escritura digital (13, ALTA);// enciende el LED (HIGH es el nivel de voltaje) - digitalWrite - escribe la señal DIGITAL, número de 13 pines, HIGH - nivel alto, es decir unidad lógica (voltaje alrededor de 5V), comentar además que encendemos el LED con un nivel lógico alto.

retraso (1000);// esperar un segundo de retraso, esperar 1000 milisegundos o 1 segundo. El operador necesario, especialmente cuando se procesan clics de botones, en este caso se usa como una indicación para esperar 1 segundo después de encender el pin 13.

digitalWrite (13, BAJO);// apague el LED haciendo que el voltaje sea BAJO, como la primera línea del ciclo indica que el pin 13 debe cambiarse, solo que ahora al nivel BAJO - nivel bajo, cero lógico (el voltaje es de aproximadamente 0 V).

retraso (1000);// espere un segundo - nuevamente un retraso de 1 segundo antes de que el ciclo comience de nuevo.

Intente cambiar los valores de retardo, verá que la duración del encendido y la pausa entre destellos cambian.

El programa es simple, comprensible a la primera, pero tiene inconvenientes: el operador de retardo hace que ARDUINO espere hasta que termine su trabajo, es decir. en este momento, el MC no procesa ningún dato, simplemente hablando, espera a que el operador ejecute, ¿está bien si los valores son bajos, pero si necesita procesar los datos rápidamente? En 1 segundo, los datos pueden cambiar más de cien veces, y el MC no los tiene en cuenta, espera a que se ejecute el programa. Para no perderse los datos entrantes, puede utilizar el siguiente esquema. Abriendo el boceto: Archivo- Ejemplos- Digital- BlinkWithoutDelay... Se abrirá una ventana con el siguiente contenido:

/ * Parpadea sin demora

Enciende y apaga un diodo emisor de luz (LED) conectado a una
pin, sin usar la función delay (). Esto significa que otro código
puede funcionar al mismo tiempo sin ser interrumpido por el código LED.

El circuito:
* LED conectado desde el pin 13 a tierra.
* Nota: en la mayoría de los Arduinos, ya hay un LED en la placa
que está conectado al pin 13, por lo que no se necesita hardware para este ejemplo.

creado 2005
por David A. Mellis
modificado el 8 de febrero de 2010
por Paul Stoffregen
modificado el 11 de noviembre de 2013
por Scott Fitzgerald

Este código de ejemplo es de dominio público.

http://www.arduino.cc/en/Tutorial/BlinkWithoutDelay
*/

// las constantes no cambiarán. Se utiliza aquí para establecer un número de PIN:
const int ledPin = 13; // el número del pin LED

// Las variables cambiarán:
int ledState = LOW; // ledState utilizado para configurar el LED

// Generalmente, debería usar "unsigned long" para las variables que mantienen el tiempo
// El valor se volverá rápidamente demasiado grande para que un int lo almacene
unsigned long previousMillis = 0; // almacenará la última vez que se actualizó el LED

// las constantes no cambiarán:
intervalo largo constante = 1000; // intervalo en el que parpadear (milisegundos)

configuración vacía () (

pinMode (ledPin, SALIDA);
}

bucle vacío ()
{




// parpadea el LED.

if (currentMillis - previousMillis> = intervalo) (


if (ledState == LOW)
ledState = HIGH;
demás
ledState = BAJO;



}
}

Saltamos todos los comentarios y pasamos a la línea:

// las constantes no cambiarán. Se utiliza aquí para establecer un número de PIN:
const int ledPin = 13;// el número del pin LED

La línea de comentarios dice que no es necesario cambiar las constantes, es decir, cambiar el nombre de las constantes. Pero puede cambiar el dígito que indica el número de PIN.

const int ledPin = 13; // el número del LED pin- const significa una constante, es decir, un valor constante que no se puede cambiar en el programa, int- abreviado de la palabra integer, significa un tipo de datos que puede tomar valores de -32768 a 32768. Además del entero, hay 5 tipos de datos más. ¿Cuál es la diferencia? Se diferencian en tamaño, es decir por ejemplo, solo se pueden escribir 256 valores en una variable de bytes, la diferencia de tamaño es int-2 bytes (excepto para ARDUINO DUE, INT toma 4 bytes, pero toma valores de -2147483648 a 2147483647), byte, como está escrito, es 1 byte. En programas grandes, ahorrar memoria es muy importante y, por lo tanto, trate de evitar el uso de tipos "más pesados" siempre que sea posible si puede arreglárselas con tipos "ligeros". Por ejemplo, el tipo de byte sería suficiente aquí. 13 encaja en el rango entre 0 y 255, y el resto de los pines digitales también encajarían en este tipo de datos. ledPin es el nombre de la constante en sí. 13- el valor de la constante, del comentario anterior queda claro que esta constante se usará para seleccionar un pin.

// Las variables cambiarán:
int ledState = LOW;// ledState utilizado para configurar el LED

El comentario dice que la variable cambiará en el programa.

int ledState = LOW;// ledState utilizado para configurar el LED: declara la variable ledState con un valor inicial de LOW (cero lógico) y un comentario de que la variable ledState se utilizará para el LED (no nuestro LED).

// Generalmente, debería usar "unsigned long" para las variables que mantienen el tiempo
// El valor se volverá rápidamente demasiado grande para que un int lo almacene
// almacenará la última vez que se actualizó el LED

El comentario dice que debe usar una variable larga sin firmar por el momento, la siguiente línea advierte que el valor será demasiado grande para almacenar una variable int. Un unsigned long se utiliza para almacenar NÚMEROS y puede almacenar valores de 0 a 4294967295 en 4 bytes.

unsigned long previousMillis = 0;// almacenará la última vez que se actualizó el LED - crea una variable anteriorMillis de tipo unsigned long y asigna el valor 0, almacenará la hora en que se actualizó el estado del LED.

// las constantes no cambiarán:
intervalo largo constante = 1000;// intervalo en el que parpadear (milisegundos)

Además, una constante, de tipo long, está destinada a almacenar NÚMEROS, ocupa 4 bytes y puede tomar valores de -2147483648 a 2147483647, intervalo es el nombre de la variable, 1000 es el valor de la variable. El comentario dice que este será el intervalo de parpadeo en milisegundos.

configuración vacía () (
// establece el pin digital como salida:
pinMode (ledPin, SALIDA);
}

La función es familiar del ejemplo anterior, solo aquí el pin se indica no explícitamente, sino a través de una variable ledPin, que se describe aquí como una constante y tiene un valor de 13. Es decir, es equivalente a lo que si estuviera escrito pinMode (13, SALIDA);

Bueno, el cuerpo real del programa:

bucle vacío ()
{
// aquí es donde colocaría el código que debe estar ejecutándose todo el tiempo.

// verifica si es hora de hacer parpadear el LED; es decir, si el
// diferencia entre la hora actual y la última vez que parpadeó
// el LED es más grande que el intervalo en el que desea
// parpadea el LED.

Aquí los comentarios describen cómo funciona el programa. Por cierto, podrías usar la combinación /*texto*/ en lugar de escribir en cada línea // ... Aquí dice que cuando la diferencia entre la actual y la última vez, cuando el LED parpadea más que el intervalo especificado, debe encender el LED nuevamente.

currentMillis largo sin firmar = millis ();

Se declara una variable currentMillis de tipo largo sin firmar que almacena los datos del operador millis (). millis ()- el operador interno MK indica cuántos milisegundos ha trabajado ARDUINO.

if (currentMillis - previousMillis> = intervalo) (
// guarda la última vez que hiciste parpadear el LED
previousMillis = currentMillis;

Llegamos al cálculo. Ahora hay un operador maravilloso if condition (if): que se ha utilizado, se utiliza y se utilizará durante mucho tiempo. Considérelo con más detalle. La construcción condicional se ve así:

si (condición == valor) (

Acción si se cumple la condición

demás (

Acción si no se cumple la condición

El signo == puede cambiar a cualquier otro signo>,<,>=, <=, != (не равно). Условие как и значение может высчитываться. Если условие не выполнено то программа переходит в секцию else. Довольно часто секцию else не используют а просто пишут программу дальше. Это уже зависит от алгоритма работы программы и должно быть продумано заранее. Условий может быть сколько угодно и они могу быть вложены друг в друга, т.е. пока не выполнится одно условие- другое даже выполняться не начнет.

Entonces, la instrucción if resta el valor anterior de los milisegundos actuales y lo compara con la variable de intervalo. Si el valor es menor, entonces el programa sale de la condición y comienza de nuevo, si es mayor o igual, entonces a la variable previousMillis se le asigna el valor de currentMillis y el programa pasa al siguiente paso:

// si el LED está apagado, enciéndalo y viceversa:
if (ledState == LOW)
ledState = HIGH;
demás
ledState = BAJO;

En esta sección, se averigua qué estado del LED, si el LED se suministró con un nivel bajo LOW, entonces a la variable ledState se le asigna el valor HIGH, y viceversa (sección else) si el nivel alto fue HIGH, entonces a la variable ledState se le asigna el valor BAJO. Tenga en cuenta que si se usa aquí sin (). Esto está permitido si no necesita procesar más de 1 línea en la sección de ejecución.

// establece el LED con el ledState de la variable:
digitalWrite (ledPin, ledState);

Finalmente, escribimos en el valor de la variable ledPin (era 13), el valor de la variable ledState. Esos. esta línea se puede escribir como digitalWrite (13, LOW); o escritura digital (13, ALTA); dependiendo del tiempo de funcionamiento del MK. Tenga en cuenta que se utiliza el operador digitalWrite; es él quien indica que debe transferir el valor en un formato lógico, es decir, cero o uno. No puede aceptar más significados. Cualquier otro valor de ledState se establecerá automáticamente en la lógica 1.

}
}

Entonces se analiza el trabajo del segundo programa. ¿Cuál es la diferencia entre el primer y el segundo programa si realizan la misma acción pero el segundo contiene 5 veces más líneas? Como dije, el primer programa solo espera a que el operador de retraso termine su trabajo y solo entonces continúa su trabajo. Durante el retraso, no podrá procesar ningún dato. El segundo programa le permite recibir, procesar y enviar datos mientras el LED parpadea. ¡Simplemente agregue el código necesario a la sección de bucle y disfrute de su trabajo! Mi amigo y yo calculamos que el código se ejecuta en el segundo caso unas 4 millones de veces por segundo, por lo que prácticamente no hay retrasos.

Y ahora lo más importante. Después de un tiempo, después de haber jugado lo suficiente, dirás: “¿Cuál es el punto de hacer parpadear una bombilla ... ¿Dónde se puede usar? Sólo un indicador de que el dispositivo está funcionando ... ”No estarás del todo en lo cierto. Tienes una herramienta que puedes hacer con ella; solo es tu culpa si no puedes pensar en nada. Es como darle a cualquier persona un juego completo de herramientas y pedirle que haga algo, por ejemplo, regalar un juego de herramientas de carpintería a un hombre, alguien planificará la misma tabla toda su vida, asombrado de la limpieza con la que está cepillando el avión. y tratando de afilar la pieza de hierro lo más fuerte posible, y alguien hará muebles de alta calidad al mismo tiempo. A quién decidirás solo por ti. También mi consejo, en algún lugar que leí, ni siquiera recuerdo: "¡NO BUSCES PROBLEMAS, BUSCA SU SOLUCIÓN!" Si usa este enfoque, tendrá mucho menos CÓMO y POR QUÉ. Bueno, ahora sobre el LED parpadeante. Hay muchos consejos sobre el uso de varios indicadores en Internet, por supuesto que es hermoso, le da cierta importancia al autor, etc. ... pero duele lo más importante: guardar pines y memoria. Para conectar el indicador 1602, necesita tomar 6 pines digitales + 2 cables de alimentación. Esto es si no utiliza el protocolo I2C. Además, la biblioteca de la pantalla LCD es de 4 KB. Y nadie piensa en una mayor funcionalidad, bueno, jugaron con el indicador y también lo abandonaron. Seguramente nadie se hizo la pregunta de que es posible recibir toda la información necesaria con un solo LED. Por ejemplo, errores. Escribiste una función y le pasaste el código de error. Es conveniente: no tiene que volver a analizar el código, solo vea qué está mal. O, por ejemplo, mi amigo montó un controlador de caldera de gas en ARDUINO mini, es decir, de acuerdo con la temperatura en la casa (tomada por el sensor Dallas), la bomba de circulación se encendió / apagó. Cuando se apagó la bomba, la caldera se calentó a 40 ° C y se colocó en el encendedor, la temperatura en la habitación bajó, la bomba se encendió y cuando el refrigerante se enfrió, la caldera se encendió sola. ¡Aparecieron ahorros de gas muy convenientes y significativos! ¡Por solo unos 200-300 rublos, ahorró varios metros cúbicos de gas todos los días! Luego siguió pensando: cómo rastrear la temperatura en la habitación sin conectar ningún WiFi ni computadoras, sugerí, dejar que el LED parpadee tantas veces como la cantidad de grados en la habitación ... Por supuesto, se rieron, usted será confundido con 20-25 veces, luego sugerí - déjelo parpadear primero decenas de grados y después de una pausa - unidades, por ejemplo 24 grados, primero parpadearon 2 veces, después de una pausa otras 4. ¡Todo! ¡No más indicadores! ¡Y se puede aplicar en cualquier campo! Busque enfoques no estándar y trate de ahorrar energía e insumos. Incluso si está utilizando I2C. Buena suerte a todos en el dominio de MK y, en particular, a ARDUINO.

En esta lección, aprenderá a programar su placa Arduino haciendo parpadear el LED incorporado como ejemplo.

Objetos requeridos

Para este ejemplo, necesitará una placa Arduino (en este caso, la Arduino Uno R3, pero puede resolver este ejemplo si tiene otra placa disponible) y un cable USB (tipo A (4x12 mm) - B (7x8 mm ) - con más detalle se puede leer en Wiki).

¿Qué es el LED "L"?


El Arduino Uno tiene filas de conectores hembra en los lados de la placa que se utilizan para conectar dispositivos electrónicos periféricos o escudos.

Además, la placa tiene un diodo emisor de luz (LED) incorporado, que puede controlar mediante bocetos. Llamemos a este LED incorporado LED “L”, como es habitual en muchos recursos en inglés.

La ubicación de este LED en la placa se muestra en la foto a continuación.


Cargando el ejemplo de "Blink" en el IDE de Arduino

Cuando conecte una placa nueva a una computadora personal, tenga en cuenta que el LED comienza a parpadear, ya que todas las placas de los fabricantes vienen con un boceto "Blink" ya completado.

En este tutorial, reprogramaremos nuestra placa cambiando la frecuencia de parpadeo del LED. No olvide configurar el shell IDE de Arduino y seleccione el puerto serie deseado en el que conectó su placa.

Es hora de probar su conexión y programar la placa.

El IDE de Arduino tiene una gran colección de bocetos que están listos para usar. Entre ellos hay un ejemplo que hace que el LED “L” parpadee.

Abra el ejemplo "Blink" que se encuentra en Archivo - Ejemplos - 01.

Una vez abierto, expanda la ventana del shell de Arduino IDE para que pueda tener el boceto completo en una ventana.

Los bocetos de ejemplo incluidos en el IDE de Arduino son de "solo lectura". Es decir, puedes subirlos al tablero, pero luego de cambiar el código, no puedes guardarlos en el mismo archivo.

Estaremos modificando el boceto, por lo que lo primero que debe hacer es guardar su propia copia que puede modificar.

Ha guardado una copia del boceto de Blink en su biblioteca. Ahora puede abrir este archivo en cualquier momento yendo a la pestaña Archivo - Scetchbook.

Cargando el ejemplo de "Blink" en el tablero

Conecte su placa Arduino a su computadora usando USB y verifique el "Tipo de placa" y el "Puerto serie" al que está conectado.

La configuración actual se muestra en la parte inferior de la ventana de shell de Arduino IDE

Haga clic en el botón "Subir"

Durante la carga, aparecerán mensajes y un control deslizante de carga en la parte inferior de la ventana IDE. Primero, aparece la frase “Compilando scetch ...”, que significa el proceso de convertir su boceto a un formato adecuado para cargarlo en una placa Arduino.

Al final, el estado cambiará a "Carga completa". El mensaje que aparece en la línea de texto mostrará información de que el boceto descargado tiene 1.084 bytes de los 32.256 disponibles.

A veces, al compilar, puede obtener un error similar:

Puede haber varias razones: no ha conectado la placa a la computadora; No ha instalado los controladores necesarios; Ha seleccionado el puerto serie incorrecto.

Blink sketch explicado

A continuación se muestra el código del boceto "Blink".

Enciende un LED durante un segundo, luego se apaga durante un segundo, repetidamente.

Este código de ejemplo es de dominio público.

// El pin 13 tiene un LED conectado en la mayoría de las placas Arduino.

// Dale un nombre:

pinMode (led, SALIDA);

retraso (1000); // Espera un segundo

Lo primero que hay que notar es que este boceto contiene muchos "comentarios". Tenga en cuenta que los comentarios no son instrucciones sobre cómo funciona el programa. Estas son puramente explicaciones de funciones y tareas individuales que se realizan en una determinada etapa del código. Esta es una parte opcional del código. Todo lo que se encuentra entre los caracteres / * y * / en la parte superior del boceto son comentarios que describen las tareas del programa. También hay comentarios que se limitan a una línea. Comienzan con // y terminan al final de la línea de forma predeterminada. La primera parte importante, de hecho, de este código es la línea:

Los comentarios sobre la línea indican que estamos asignando un nombre al pin al que está conectado el LED. En la mayoría de las placas Arduino, este será el pin 13. Entonces se utiliza la función "Configuración". Nuevamente, los comentarios indican que la función se activa después de presionar el botón "reiniciar". Además, esta función se activa cuando la placa se reinicia por cualquier otro motivo. Por ejemplo, encender o después de cargar un boceto.

// la rutina de configuración se ejecuta una vez cuando presiona restablecer:

// inicializa el pin digital como salida.

pinMode (led, SALIDA);

Cada boceto de Arduino debe incluir una función de "configuración" y una parte donde puede agregar sus propias instrucciones, encerradas entre (). En nuestro ejemplo, solo hay un comando en la función, lo que indica que el pin que estamos usando está configurado como "Salida". También es imprescindible para cualquier boceto la función "Bucle". A diferencia de la función "Configuración", que se ejecuta una vez después de un reinicio, la función "Bucle" se iniciará de nuevo una vez finalizados los comandos.

// la rutina del ciclo se repite una y otra vez para siempre:

digitalWrite (led, ALTO); // enciende el LED (ALTO es el nivel de voltaje)

retraso (1000); // Espera un segundo

digitalWrite (led, BAJO); // apaga el LED haciendo que el voltaje sea BAJO

retraso (1000); // Espera un segundo

En el cuerpo de la función “Loop”, el LED se enciende (HIGH), este valor se retrasa 1000 milisegundos (1 segundo), el LED se apaga (LOW) y permanece apagado durante 1 segundo, luego de lo cual se repetirá el ciclo. .

Cambiar la frecuencia de parpadeo del LED

Para asegurar un parpadeo más frecuente del LED, es necesario cambiar el parámetro indicado entre paréntesis () en el comando “retardo”.

Como ya se mencionó, el período de retraso se especifica en milisegundos. Es decir, para que el LED parpadee dos veces más, es necesario cambiar el valor de 1000 a 500. Como resultado, la pausa entre el encendido / apagado del LED será de medio segundo y el LED parpadeará más rápido. .

Asegúrese de cargar su boceto modificado a su placa Arduino para probarlo.

En este artículo, intentamos recopilar en un solo lugar enlaces a todas las bibliotecas de Arduino más populares y también preparamos una selección de las bibliotecas más populares. Tarde o temprano, cualquier reproductor arduino se enfrenta a la necesidad de utilizar una biblioteca en particular. Después de todo, el uso de código prefabricado reduce en gran medida el tiempo de programación. Esperamos que, recopilada en un solo lugar y provista de enlaces de descarga y breves ejemplos de uso, la información sobre bibliotecas populares le ayude en sus proyectos.

Una biblioteca arduino es un tipo de código de programa que no se almacena en un boceto, sino en archivos externos que se pueden conectar a su proyecto. La biblioteca contiene varios métodos y estructuras de datos que se necesitan para simplificar el trabajo con sensores, indicadores, módulos y otros componentes. El uso de programas prefabricados simplifica enormemente el trabajo en proyectos, porque puede concentrarse en la lógica principal sin perder tiempo en muchas cosas pequeñas.

Hoy en día, se ha creado una gran cantidad de bibliotecas que se pueden encontrar y descargar fácilmente en Internet. La gran mayoría de las bibliotecas se distribuyen con una licencia gratuita, por lo que no es necesario buscar versiones "pirateadas". Lo principal es aprender.

Bibliotecas estándar de Arduino

Es mejor comenzar a familiarizarse con las bibliotecas desde el sitio oficial, donde puede encontrar una lista impresionante de módulos estándar y enlaces a bibliotecas oficiales asociadas.

Lista de bibliotecas integradas (vienen con la distribución IDE de Arduino):

  • EEPROM
  • Ethernet / Ethernet 2
  • Firmata
  • Cristal liquido
  • Servo
  • SoftwareSerial
  • Paso a paso

Una selección de bibliotecas en un archivo

Si no tiene tiempo para un análisis detallado de muchos sitios y desea descargar todo lo que necesita para trabajar con dispositivos Arduino externos en un archivo, hemos preparado una lista de las 40 bibliotecas más populares. Simplemente descomprima su contenido (carpeta de bibliotecas) en su carpeta Arduino.

Bibliotecas para pantallas, indicadores y visualizaciones

Biblioteca I2C

Una biblioteca diseñada para operar un dispositivo periférico usando el protocolo I2C.

Ejemplo de uso:

#ifndef I2C_MASTER_H

#define I2C_MASTER_H

void I2C_init (void): creación de un objeto, estableciendo la frecuencia correcta para el bus.

uint8_t I2C_start () - estableciendo una conexión con un nuevo dispositivo.

uint8_t I2C_write () - escribiendo datos en el dispositivo actual.

uint8_t I2C_read_ack () - leyendo un byte del dispositivo, solicitando el siguiente byte.

Biblioteca LiquidCrystal

Biblioteca estándar instalada en Arduino IDE. Diseñado para controlar pantallas de cristal líquido LCD.

Ejemplo de uso:

#incluir ... Además, para no cometer errores al escribir, puede conectarlo a través del menú Sketch - Import Library - LiquidCrystal.

El constructor de la clase es LiquidCristal (…). Los argumentos son rs, rw, en, do… d7. Los primeros 3 corresponden a los pines de señal RS, RW y Enable. Los pines d corresponden a los números de los buses de datos a los que está conectada la pantalla.

void begin (cols, rows) es el método que inicializa la interfaz de visualización. Los argumentos son el número de caracteres por línea (columnas) y el número de filas (filas). Este método debe preguntarse primero.

void createChar (num, data): el método necesario para crear caracteres personalizados.

Biblioteca UTFT

Se requiere una biblioteca estándar para que Arduino funcione con diferentes tipos de pantallas TFT. Todas las pantallas compatibles se presentan en el documento de la biblioteca complementaria.

Ejemplo de uso:

#incluir

UTFT (); - creando una instancia de UTFT.

textRus (char * st, int x, int y); - un método que le permite generar una cadena desde un puntero. Por ejemplo, char * dht = "Temperatura, C";

textRus (cadena st, int x, int y); - salida de una línea con indicación en el parámetro. Por ejemplo, g.textRus ("Temperatura, C", 0, 20);

Biblioteca LedControl

Le permite controlar pantallas de siete segmentos, combinar una matriz de LED en una matriz.

Ejemplo de uso:

#incluir

LedControl lc1 = LedControl ();

- necesario para inicializar la biblioteca. Debe constar de cuatro argumentos: el número de pines a los que está conectada la pantalla (los primeros 3 argumentos) y el número de chips conectados.

writeArduinoOn7Segment (): muestra todos los números del 0 al 15. Utiliza setChar () para los caracteres ayd y setRow () para simular los caracteres faltantes.

LedControl.shutdown () - imagen de apagado.

setIntensity () - control de brillo.

Bibliotecas para trabajar con fecha y hora de Arduino

Biblioteca RTClib

Una biblioteca para trabajar con un reloj en tiempo real que simplifica la interacción con Arduino.

Ejemplo de uso:

#incluir

RTC_DS1307 RTC; - selección de sensor (en este caso DS1307).

rtc.adjust (DateTime (Fecha, Hora)); - establecimiento de hora y calendario.

dayOfTheWeek (): muestra el día de la semana. El argumento es de 0 a 6, 0 es domingo.

Biblioteca Timelib

Permite a Arduino recibir información sobre la fecha y hora en ese momento.

Ejemplo de uso:

#incluir

Tiempo (); - creando una instancia.

setTime (t); - establecer la hora. El argumento t es hora, minuto, segundo, día, mes y año.

timeStatus (); - muestra si la hora está configurada.

AdjustTime (ajuste); - configuracion de hora.

Biblioteca Ds1307

Biblioteca para una interacción conveniente del reloj DS1307 con Arduino utilizando la biblioteca Wire.

Ejemplo de uso:

#incluir

class DS1307RTC: crea un objeto DS1307.

SetTime (): configuración de la hora.

get (): lee RTC, devuelve la fecha resultante en formato POSIX.

Establecer (time_t t) - fecha de escritura en RTC

Biblioteca DS 3231

Diseñado para administrar la fecha y la hora en el módulo ds3231.

#include "ds3231.h"

Reloj DS3231 (SDA, SCL); - creando un objeto DS3231, conectándose a una línea de reloj y una línea de datos.

consigue tiempo (); - leer la fecha y la hora del reloj.

setDate (fecha, mes, año); - ajuste de la fecha.

Bibliotecas del sistema Arduino

Biblioteca EEPROM

Biblioteca estándar. Diseñado para trabajar con memoria no volátil (registro de datos, lectura).

Ejemplo de uso:

#incluir

EEPROM.read (); - crear un objeto, leer un byte en una dirección de la memoria no volátil.

EEPROM.write (dirección, valor): escribir un byte en la memoria no volátil.

EEPROM.put (): escritura de cadenas de números de punto flotante.

EEPROM.get (): lectura de cadenas y números de coma flotante.

Software Biblioteca de serie

Una biblioteca que le permite implementar interfaces seriales desde cualquier pin digital. También le permite crear múltiples puertos seriales que operan a velocidades de hasta 115200 baudios.

#incluir

SoftwareSerial mySerial (RX, TX): creación de objetos, argumentos: pines a los que están conectados RX y TX.

Serial.begin (); - establece la velocidad del puerto para la comunicación entre arduino y la computadora.

mySerial.overflow () - comprobando el búfer de entrada por desbordamiento.

Biblioteca de matemáticas

Incluye una gran cantidad de funciones matemáticas para trabajar con números de coma flotante.

Ejemplo de uso:

#incluir

Matemáticas (); - creando una instancia de Math.

Serial.print (“cos num =“); - devuelve el coseno de un número.

Serial.println (fmod (double__x, double__y)); - devuelve el módulo de números.

Biblioteca del programador

Diseñado para trabajar con Arduino Due, le permite trabajar en modo multitarea. Sigue siendo una biblioteca experimental.

Ejemplo de uso:

#incluir

Programador; - creando una instancia.

Scheduler.startLoop (): le permite agregar una función que se ejecutará junto con loop ().

yield (): le permite transferir el control a otras tareas.

Bibliotecas de servomotores y motores paso a paso

Biblioteca de servos

Biblioteca estándar. Esencial para controlar servomotores y se utiliza a menudo en proyectos robóticos con manipuladores.

Ejemplo de uso:

#incluir

Servo myservo; - creación de un objeto para el servomotor.

myservo.attach (); - el número de la salida a la que está conectado el servomotor.

myservo.write (180, 30, verdadero); - movimiento de 180 grados, velocidad 30, esperando el final del movimiento.

Biblioteca paso a paso

Requerido para conducir motores paso a paso unipolares y bipolares.

#incluir

const int stepsPerRevolution =; - el número de pasos para los que el motor da una vuelta completa.

Stepper myStepper = Stepper (steps, pin1, pin2): crea una instancia de la clase con el número especificado de pasos y pines a los que está conectado el motor.

Bibliotecas de sensores Arduino

Biblioteca DHT

#incluir< DHT.h>

DHT dht (DHTPIN, DHT11); - inicializa el sensor (en este caso DHT11).

dht.begin (); - puesta en marcha del sensor.

flotar t = dht.readTemperature (); - lectura del valor de temperatura actual en grados Celsius.

Biblioteca de temperatura de Dallas

Diseñado para funcionar con sensores Dallas. Funciona en conjunto con la biblioteca OneWire.

#incluir

DallasTemperature dallasSensors (y oneWire); - transferencia del objeto oneWire para trabajar con el sensor.

ponerlo en el registro.

printTemperature (sensorAddress); - solicitud para recibir el valor de temperatura medido.

Biblioteca de ultrasonidos

Permite que Arduino funcione con el sensor de distancia ultrasónico HC-SR04.

#incluir

Ultrasónico ultrasónico (tig, echo) - declaración de objeto, argumentos - contacto de disparo y contacto de eco.

dist = ultrasónico.distanceRead (); - determinación de la distancia al objeto. Agrumento: centímetros (CM) o pulgadas (INC).

Temporización (): lectura de la duración del pulso en la salida de eco, traduciéndola al sistema numérico requerido.

Biblioteca ADXL345

Diseñado para funcionar con el acelerómetro ADXL345.

Ejemplo de uso:

#incluir

ADXL345_ADDRESS: creación de un objeto, especificando su dirección.

ADXL345_REG_DEVID: identificación del dispositivo.

ADXL345_REG_OFSX - Desplazamiento del eje X.

ADXL345_REG_BW_RATE - control de velocidad en baudios.

Biblioteca BME280

Diseñado para trabajar con el sensor de temperatura, humedad y presión BME280.

Ejemplo de uso:

#incluir

BME280_ADDRESS: creación de un objeto BME280, especificando su dirección.

comenzar (uint8_t addr = BME280_ADDRESS); - el comienzo de la operación del sensor.

getTemperature: obtener la temperatura medida.

getPressure: obtenga la presión medida.

Biblioteca BMP280

Requerido para trabajar con el sensor de presión atmosférica BMP280.

Ejemplo de uso:

#incluir

BMP280_CHIPID: creación de una instancia, especificando su dirección.

getTemperature (flotar * temp); - obtención de la temperatura medida.

getPressure (flotar * presión); - obtención del valor de presión medido.

Biblioteca BMP085

Requerido para trabajar con el sensor de presión BMP085.

Ejemplo de uso:

#incluir

Adafruit_BMP085 bmp; - creando una instancia de BMP085.

dps.init (MODE_ULTRA_HIGHRES, 25000, verdadero); - medición de presión, argumento 25000 - altitud sobre el nivel del mar (en este caso 250 m sobre el nivel del mar).

dps.getPressure (y presión); - determinación de presión.

Biblioteca de huellas dactilares

Requerido para trabajar con el escáner de huellas dactilares.

Ejemploutilizar:

#incluir

Adafruit_Fingerprint finger = Adafruit_Fingerprint (& mySerial); - Declaración de objeto de dedo. Parámetro: referencia al objeto para trabajar con la UART, al que está conectado el módulo.

finger.begin (); - inicialización del módulo de huellas dactilares.

Func_sensor_communication (); - llamar al módulo de huellas dactilares.

Bibliotecas de comunicación

Biblioteca de cables

Requerido para trabajar con interfaz I2C de 2 cables.

Ejemplo de uso:

#incluir

Wire.begin (): inicialización de la biblioteca, conexión al bus I2C.

Wire.requestFrom (): la solicitud del maestro de bytes del dispositivo esclavo.

Wire.beginTransmission (): inicio de la transmisión al dispositivo esclavo.

Biblioteca irremote

Requerido para que Arduino funcione con un receptor de infrarrojos.

Ejemplo de uso:

#incluir

IRrecv irrecv (RECV_PIN); - pin al que está conectado el receptor de infrarrojos.

SetPinAndButton (int ir1, int ir2, int pin): le permite configurar una salida específica para que se active en los valores dados de ir1, ir2.

Biblioteca GSM

Necesario para conectarse mediante una tarjeta GSM a una red GSM / GRPS. Con su ayuda, puede implementar operaciones realizadas por un teléfono GSM, trabajar con llamadas de voz y conectarse a Internet a través de GRPS.

Ejemplo de uso:

#incluir

GSM GSMAccess: inicializa una instancia de la clase.

gprs.powerOn () - encendido.

GPRS: configuración de una conexión a Internet.

GSM - control de radio módem.

Biblioteca RFID

Requerido para conectar Arduino y módulo RFID.

Ejemplo de uso:

#incluir

RFID rfid (SS_PIN, RST_PIN); - crear una instancia de rfid, argumentos - pines a los que está conectado el módulo.

rfid.init (); - inicialización del módulo RFID.

Biblioteca MFRC 522

Requerido para conectar el módulo Arduino y MFRC522.

Ejemplo de uso:

#incluir

MFRC522 mfrc522 (SS_PIN, RST_PIN); - creando una instancia de MFRC522, los argumentos indican las salidas a las que está conectado el módulo.

mfrc522.PCD_Init (); - inicialización del MFRC522.

Biblioteca de Ethershield

Nueva versión https://github.com/jcw/ethercard

Requerido para conectar Arduino a una red local o Internet. La biblioteca ya no es compatible, versión más nueva de Ethercard. También hay una biblioteca estándar de Ethernet.

Ejemplo de uso:

#include "EtherShield.h"

#incluir

EtherShield es = EtherShield (); - preparar una página web

ether.begin (tamaño de Ethernet :: búfer, mymac,); - introducción, argumentos - dirección Mac y número de puerto al que está conectada la salida CS.

Biblioteca Nrf24l01

Requerido para trabajar con el módulo de radio RF24.

Ejemplo de uso:

#include "RF24.h"

RF24: el constructor crea una nueva instancia de controlador. Antes de usar, debe crear una instancia y especificar los pines a los que está conectado el chip (_cepin: contacto del módulo Enable, cspin: contacto del módulo Select).

Comenzar: el comienzo del chip.

setChannel: canales para la comunicación RF.

setPayloadSize: configuración de un tamaño de transferencia fijo.

getPayloadSize: obteniendo un tamaño fijo.

Biblioteca TinyGPS

Requerido para leer mensajes GPGGA y GPRMC. Ayuda a leer datos sobre posición, fecha, hora, altitud y otros parámetros.

Ejemplo de uso:

#incluir

TinyGPS gps; - creando una instancia de TinyGPS.

encode (): alimenta datos en serie a un objeto, un carácter a la vez.

gps.stats () - método de estadísticas. Indica si se han recibido datos válidos o no.

Bibliotecas en Arduino IDE

Entre toda la variedad de bibliotecas, se pueden distinguir 3 grupos principales:

  • Las bibliotecas integradas están instaladas originalmente en el IDE de Arduino. No es necesario descargarlos e instalarlos de forma adicional; están disponibles para su uso en el programa inmediatamente después de iniciar el entorno de desarrollo.
  • Adicional: estas son bibliotecas que debe descargar e instalar usted mismo. Por lo general, este tipo de bibliotecas es desarrollado por el fabricante de sensores, sensores y otros componentes para facilitar el trabajo con arduino.
  • Bibliotecas dependientes: instaladas como ayuda de una biblioteca adicional, no funcionan por separado.

La forma más fácil de trabajar con bibliotecas en arduino es utilizar las capacidades integradas del IDE de Arduino. Hablaremos de esto en un artículo aparte.

  • Resistencia de 220 ohmios

Circuito

Este ejemplo utiliza el LED incorporado que tienen la mayoría de las placas Arduino y Genuino. Este LED está conectado a un pin digital y su número puede variar de un tipo de placa a otro. Para facilitarle la vida, tenemos una constante que se especifica en cada archivo descriptor de placa. Esta constante es LED_BUILTIN y le permite controlar fácilmente el LED incorporado. Aquí está la correspondencia entre la constante y el pin digital.

  • D13 - 101
  • D13 - Vencimiento
  • D1 - Gemma
  • D13 - Intel Edison
  • D13 - Intel Galileo Gen2
  • D13 - Leonardo y Micro
  • D13 - LilyPad
  • D13 - LilyPad USB
  • D13 - MEGA2560
  • D13 - Mini
  • D6 - MKR1000
  • D13 - Nano
  • D13 - Pro
  • D13 - Pro Mini
  • D13 - UNO
  • D13 - Yún
  • D13 - Cero

Si desea encender un LED externo con este boceto, debe construir este circuito, donde conecta un extremo de la resistencia al pin digital correspondiente al LED_BUILTIN constante. Conecte la pata larga del LED (la pata positiva, llamada ánodo) al otro extremo de la resistencia. Conecte la pata corta del LED (la pata negativa, llamada cátodo) al GND. En el siguiente diagrama, mostramos una placa UNO que tiene D13 como valor LED_BUILTIN.

El valor de la resistencia en serie con el LED puede ser de un valor diferente a 220 ohmios; el LED se iluminará también con valores de hasta 1K ohmios.

Esquemático

Código

Después de construir el circuito, conecte su placa Arduino o Genuino a su computadora, inicie el software Arduino (IDE) e ingrese el código a continuación. También puede cargarlo desde el menú Archivo / Ejemplos / 01.Basics / Blink. Lo primero que debe hacer es inicializar el pin LED_BUILTIN como pin de salida con la línea

pinMode (LED_BUILTIN, SALIDA);

En el bucle principal, enciende el LED con la línea:

escritura digital (LED_BUILTIN, ALTA);

Esto suministra 5 voltios al ánodo del LED. Eso crea una diferencia de voltaje entre los pines del LED y lo enciende. Luego lo apagas con la línea:

digitalWrite (LED_BUILTIN, BAJO);

Eso lleva el pin LED_BUILTIN de nuevo a 0 voltios y apaga el LED. Entre el encendido y el apagado, desea suficiente tiempo para que una persona vea el cambio, por lo que los comandos delay () le dicen a la placa que no haga nada durante 1000 milisegundos o un segundo. Cuando usa el comando delay (), no sucede nada más durante ese período de tiempo. Una vez que haya entendido los ejemplos básicos, consulte el ejemplo para aprender cómo crear un retraso mientras hace otras cosas.

Una vez que haya entendido este ejemplo, consulte el ejemplo para aprender a leer un interruptor conectado a la placa.

Hoy continuamos con el tema de los emuladores de Arduino. Intentemos aprender a hacer parpadear un LED usando la salida digital Arduino. Si eres nuevo en Arduino, este tutorial es muy adecuado para que comiences con la placa. Conectaremos el LED y crearemos un programa simple para encender y apagar el LED.

La diferencia más importante entre este tutorial y otros es que puedes implementarlo usando el emulador Tinkercad Arduino. Los emuladores de Arduino son programas y aplicaciones muy populares que le permiten crear proyectos y probarlos virtualmente antes de que necesite comprar componentes.

Para nuestros lectores, hemos proporcionado una gran lista de programas con una descripción detallada de cada uno. Con el emulador Tinkercad, puede crear su propio circuito y probar su funcionalidad. Simplemente haga clic en "Iniciar simulación" después de que todo esté conectado. Puede usar el emulador en cualquier momento para probar sus circuitos. Tinkercad Circuits es un programa de navegador gratuito que te permite crear y simular circuitos. Es ideal para la enseñanza y la creación de prototipos.

Para utilizar el programa emulador de Arduino, debe registrarse en el sitio web tinkercad.com. A continuación, debemos seleccionar los componentes:

Si está haciendo un proyecto en paralelo con el emulador con su placa física Arduino Uno (o compatible), también necesitará un cable USB y una computadora con software gratuito (o un complemento para un editor web) y, si es necesario , un LED.

Paso 1: circuito de resistencia LED

Comenzamos a trabajar con el emulador Arduino desde el circuito de LED y resistencias.

Los pines LED están conectados a dos pines en el Arduino: tierra y pin 13... El componente entre el LED y el pin 13 es una resistencia que ayuda a limitar la corriente para que el LED no se encienda solo. Sin esto, recibirá una advertencia en el emulador de que el LED puede quemarse pronto. No importa si la resistencia viene antes o después del LED en el circuito. Las barras de color identifican el valor de la resistencia y son adecuadas para el circuito de diseño de 100 a 1000 ohmios.

Por otro lado, el LED está polarizado, lo que significa que solo funciona cuando las patas están conectadas de cierta manera.

  • Positivo la pata, llamada ánodo, generalmente tiene una pata más larga y se conecta a la alimentación, en este caso el pin de salida de Arduino.
  • Negativo una pierna llamada cátodo, con una pierna más corta, se conecta al suelo.

En el panel de componentes Tinkercad Arduino Emulator, arrastre la resistencia y el LED al área de trabajo. Cambie el valor de la resistencia ajustándolo a 220 ohmios en el inspector de componentes que aparece cuando se selecciona una resistencia.

Regrese al panel de componentes, busque y mueva la placa. Haga clic una vez para conectar un cable a un componente o pin y haga clic nuevamente para conectar el otro extremo. Conecte una resistencia a cada lado del LED. Si conectó una resistencia al ánodo del LED (positivo, más largo), conecte la otra pata de la resistencia al pin digital 13 del Arduino. Si conectó una resistencia al cátodo del LED (negativo, pata más corta), conecte la otra pata de la resistencia a la tierra de Arduino (GND). Cree otra conexión entre la pata del LED suelta y el pin 13 o tierra, lo que no esté conectado.

Si tiene una placa física Arduino Uno (o compatible), puede conectar el LED directamente al pin 13 (positivo, ánodo más largo) y tierra (negativo, cátodo más corto), porque el pin 13 en realidad tiene una resistencia incorporada para tal pruebas. ...

Paso 2: Código simple con bloques

En el emulador Tinkercad Arduino, puede programar fácilmente sus proyectos usando bloques. Echemos un vistazo a un código simple para controlar el parpadeo abriendo el editor de código (el botón etiquetado como "Código"). Puede cambiar el tamaño del editor de código haciendo clic y arrastrando el borde izquierdo de la ventana. Vea la imagen animada de arriba.

El código comienza con dos cuadros de comentarios grises que son solo notas para las personas. El primer bloque de salida azul establece el LED integrado en ALTO, que es la forma de Arduino de describir "encendido". Este comando de salida activa una señal de 5V a todo lo que esté conectado al pin especificado. El siguiente es un bloque de comando amarillo que espera un segundo, bastante simple. Por lo tanto, el programa se detendrá mientras el LED esté encendido durante un segundo. Luego, el siguiente comentario es seguido por un bloque de salida azul que hará que el LED vuelva a estar BAJO o apagado, seguido de una segunda pausa por segundo.

Intente personalizar este código cambiando el tiempo de espera y haciendo clic en Iniciar simulación. Incluso puede agregar salidas adicionales y pausar bloques para crear opciones de parpadeo más largas para la operación.

¿Ha notado que un pequeño LED parpadea en la placa? Este LED incorporado también está conectado al pin 13 y está diseñado para usarse con fines de prueba sin la necesidad de conectar ningún componente externo. Incluso tiene su propia pequeña resistencia soldada directamente a la superficie de la placa.

¿Listo para crear tu propio proyecto? Seleccione el Arduino que agregó al espacio de trabajo (o selecciónelo del menú desplegable en el editor de código) y comience a arrastrar y soltar bloques de código para crear su propio programa LED parpadeante.

Paso 3: Explicación del código

Hablemos ahora del código al ejecutar el emulador Arduino.

Con el editor de código abierto en el emulador, puede hacer clic en el menú desplegable de la izquierda y seleccionar Bloques + Texto para abrir el código Arduino generado por los bloques de código. Todos los símbolos adicionales son parte de la sintaxis de Arduino, ¡pero no se alarme! Se necesita tiempo para aprender a escribir código correcto desde cero. Cubriremos cada parte aquí, y siempre puedes usar los bloques para comparar y subir de nivel.

No sabemos qué versión está utilizando, por lo que dejaremos el código como lo teníamos.

/ * Este programa hace parpadear el pin 13 del Arduino (el LED incorporado) * /

Esta primera sección es un comentario de bloque de encabezado que describe lo que hace el programa. Bloquear comentarios abiertos como este /* y cerrar así */ .

Configuración vacía () (pinMode (13, SALIDA);)

La siguiente es una configuración de código que le ayuda a personalizar lo que su programa necesita más adelante. Se ejecuta una vez y contiene todo lo que necesita dentro de sus llaves (). En nuestro proyecto, necesitamos configurar el pin 13 como una salida, que prepara la placa para enviarle señales, no recibirlas.

Void loop () (// enciende el LED (ALTO - nivel de voltaje) digitalWrite (13, HIGH); delay (1000); // Espera 1000 milisegundos // apaga el LED haciendo que el voltaje sea BAJO digitalWrite (13, LOW ); delay (1000); // Espera 1000 milisegundos)

El cuerpo principal del programa está dentro de un bucle, indicado por otro conjunto de llaves (). Esta parte del código se ejecutará repetidamente siempre que haya energía en la placa. El texto que sigue a las barras dobles también es un comentario para facilitar la comprensión del programa.

Puede encontrar más información útil sobre la programación de Arduino en nuestro artículo "".

El comando de salida utilizado se llama digitalWrite (), que es una función que establece o genera un valor ALTO o BAJO. Para pausar el programa, usaremos la función delay (), que tarda unos milisegundos (1000ms = 1s).

Paso 4: uso de preferencias para principiantes

Este es un circuito que creemos que querrá usar con frecuencia, guardado en la sección Blink Circuit Starter del emulador Arduino.

Puede tomar este circuito y código en cualquier momento utilizando la sección "de inicio" para principiantes, disponible en el panel de componentes en el menú desplegable

Arrancadores → Arduino

Para obtener una versión más avanzada de este código Arduino, consulte la opción "Parpadeo sin demora", que usa la hora actual para rastrear intervalos de parpadeo en lugar de demora ();.

Paso 5: programación del Arduino real

Aquí es donde terminamos de trabajar con el emulador de Arduino y podemos pasar a trabajar con una placa real para comprender todo el proceso de creación de un proyecto.

Para programar el real, copie el código de la ventana del programa y péguelo en un boceto de Arduino en blanco, o haga clic en el botón de descarga y abra el archivo resultante usando el IDE de Arduino

Experimente con esta emulación de Arduino agregando más bloques para crear LED parpadeantes. ¿Puedes crear un programa que emita mensajes usando código Morse?

Ahora que sabe cómo hacer parpadear un LED usando una salida digital Arduino, está listo para probar otros ejercicios de Arduino que usan la función digitalWrite (). Intente usar una placa de pruebas para agregar más LED y código adicional para controlarlos.

Compartir este: