Archivo de la categoría: Hardware

Arduino: ampliar cantidad de salidas digitales con 74HC595

A veces un Arduino queda corto de pines, y se nos presenta la necesidad de ampliar la cantidad de salidas digitales. La manera más usual es con un registro de desplazamiento (Shift Register, en inglés), que convierte los datos en serie en salidas paralelas. Esto será de utilidad en aquellas placas como Arduino UNO, Nano, Micro, etc, que a veces resultan un poco limitados en este sentido.

El chip 74HC595 —para algunos un misterioso integrado de 16 patas que viene incluido en muchos kits de inicio para Arduino— tiene una ventaja esencial ante otros chips del mismo tipo: tiene un registro que mantiene el dato en los pines de salida sin variación mientras se desplazan los datos dentro del chip.

Adicionalmente, tiene la posibilidad de desconectar las salidas de este registro de los pines de salida del chip, por medio de la entrada de control OE (Ouput Enable = Habilitación de Salidas), dejándolos en un estado de alta impedancia, o tercer estado. No usaremos esta opción aquí, pero en futuros artículos veremos la importancia de esta posibilidad.

Otro chip opcional para este uso, aunque de 16 bits y también con registro de salida, es el circuito integrado 74LS673, pero es más difícil de encontrar en el mercado.

Al utilizar el circuito integrado 74HC595, ocupamos solamente 3 salidas digitales en la placa Arduino, pero obtenemos 8 salidas digitales adicionales. Este 3 x 8 en pines no parece una gran mejora (ganamos 5 salidas), pero si se agregan más chips, la ampliación puede llegar a ser importante.

Poniendo más chips conectados en serie se pueden obtener otras 8 salidas más por cada chip agregado, y la cantidad de pines ocupados en el Arduino sigue igual: solamente tres. Con tres chips tendremos 24 salidas, con 8 chips tendremos 64, y con 32 chips tendremos una ampliación de 256 nuevas salidas.

Para calcular la cantidad de salidas que obtendremos, hay que multiplicar la cantidad de chips por 8.

En teoría, se puede poner una cantidad indefinida de chips en serie y obtener centenares de salidas adicionales. Sólo se debe tener en cuenta que los datos no se desplazan instantáneamente, debido a los tiempos de programa. Supongamos una cantidad de 32 bytes a poner en las salidas de 32 chips —256 bits—. Colocar todos esos datos en los registros de salida de 32 chips 74HC595 implica un tiempo que puede ser sustancial y prohibitivo para algunas aplicaciones que requieren salidas con variaciones rápidas, sin que importe si se cambia un único bit en las salidas, o los 256 bits juntos. Para aplicaciones sin tiempos críticos, como encendido de leds, artefactos a través de relés, displays de segmentos o control de motores, no existe ningún problema de tiempos.

La mayoría de los chips de registro de desplazamiento pueden manejarse elevadas frecuencias en MHz para el desplazamiento, todos superan la máxima velocidad de envío de datos en serie de un Atmega328P, ya que para hacerlo debemos usar una secuencia de instrucciones de programa. Algunas hojas de datos nos muestran frecuencias de desplazamiento de 100 MHz, 36 MHz, y similares. Un Arduino estándar, con cristal de 16 MHz, y aún más teniendo que usar una secuencia de instrucciones para enviar cada bit, no superará nunca esas frecuencias para el desplazamiento de los datos. De modo que no se nos presentarán problemas de límite de velocidad al usar estos chips.




Registro de desplazamiento 74HC595


Descripción de pines:

Las salidas son Q0 a Q7 (pata 15, y de 1 a 7), y las tres entradas que van conectadas a las salidas de la placa Arduino son DS = entrada de datos (14), SCTP, para ingresar un pulso que deja fijos los datos en el registro de salida (12), y SHCP, que es el pulso de reloj, o clock, que hace desplazar los datos en el registro de desplazamiento (11).

Estas son las señales más importantes de comprender y profundizar.

Luego está la entrada de voltaje de 5V (16), la conexión a tierra (8), y Q7S (9), la salida que se utiliza para continuar la conexión de más chips en serie.

La hoja de datos (datasheet) permite ver con más detalle los datos del chip.

Por la entrada de reloj SHCP se ingresan pulsos que indican el tiempo preciso en que debe ocurrir el ingreso de bits por la entrada DS, y el desplazamiento en el registro.

La entrada de datos es DS.

Y la señal SCTP es un pulso que traspasa los datos del registro de desplazamiento al de salida, y de allí a las salidas digitales.

Las línea SHCP es la señal de reloj. La segunda línea, DS, es la secuencia de datos que queremos hacer llegar a las salidas Q1-Q7.

Con el pulso de reloj el registro de desplazamiento del 74HC595 desplaza los que entraron anteriormente hacia el interior del registro e ingresa el valor que hayamos puesto en el pin de Arduino que está conectado a su entrada DS. Este bit es parte de la secuencia de datos de 8 bits (o sea que este suceso ocurrirá 8 veces).

Para el primer pulso el bit 0, para el segundo pulso el bit 1, y así sucesivamente hasta completar los 8 bits de un byte.

En ese momento los datos del registro de desplazamiento aún no estarán en las salidas, es necesario que la señal STCP reciba un pulso. Cuando STCP sube de nivel bajo a nivel alto, los datos que tenemos en el registro de desplazamiento pasan a estar disponibles en las salidas Q0 – Q7.

En el ejemplo del gráfico de tiempos de arriba, estamos poniendo a nivel ALTO (HIGH) el bit que aparecerá en Q7, y en nivel BAJO (LOW) el resto.

El manejo de las líneas de Arduino

En principio y para mejor comprensión deberíamos dar una mirada a la función shiftOut(). Esta función se ocupará de ir poniendo de a un bit por vez en la salida del Arduino hasta completar los 8 bits del byte que vamos a transferir.

La función shiftOut()

Sintaxis: shiftOut (pinDato, pinClock, ordenBits, valor)

Desplaza un byte de datos (llamado valor) de a un bit por vez hacia el pin indicado en pinDato. Según lo que se indique en el parámetro ordenBits de la función, el desplazamiento comienza desde el bit más significativo (es decir, el que se ubica más a la izquierda en un byte, en la representación estándar) o el menos significativo (más a la derecha). Cada bit se escribe hacia un pin de datos (pinDato), y después se genera un pulso en el pin de reloj en pinClock (alto, luego bajo), lo que indica que el bit está disponible.

Nota: hay que asegurarse que el pin de reloj (pinClock) esté preparado en valor BAJO antes de la llamada a shiftOut(). Por ejemplo, con una llamada a digitalWrite(pinClock, LOW).

Esta es una implementación que utiliza software. Veremos también más adelante la forma de usar la biblioteca SPI, que provee una implementación por hardware más rápida, aunque debemos recordar que solo funciona en los pines definidos para esta interfaz.

Parámetros de la función shiftOut():

pinDato: el pin en el que se coloca cada bit
pinClock: el pin para producir el pulso una vez que se haya establecido el valor correcto en pinDato
ordenBits: indica en qué orden se desplazarán los bits hacia el pin de salida; ya sea MSBFIRST o LSBFIRST (el bit más significativo primero, o el bit menos significativo primero)
valor: los datos a desplazar. (formato byte)

Circuito de ejemplo:

AMPLIAR EL DIAGRAMA

Código de ejemplo:

Supongamos que deseamos poner en los pines de salida un byte con el valor B10101010, o sea así:

Más programas de ejemplo:

El envío de datos en una función propia

El programa anterior repite varias veces un código idéntico para el envío del dato. Es la opción perfecta para convertir esta parte repetida del código en una función propia. Además de reducir la longitud de comandos del programa y hacerlo mucho más legible, creamos una función que nos servirá para cualquier otro programa que envíe dato a un integrado 74HC55. El funcionamiento del envío de datos en este programa a continuación produce exactamente la misma secuencia y funcionamiento del programa.

Diagrama para salida de 16 bits con dos 74HC595

No hay diferencia importante entre los circuitos de cada chip, se ven idénticos; el único cambio es de dónde recibe la información de entrada en DS cada uno: el primero desde la salida digital 11 del Arduino, el segundo desde la salida Q7S del primero. Y así se podría continuar la cadena, agregando de a 8 bits a las salidas. Como se puede observar en el diagrama, las señales de control y clock, STCP y SHCP, de los pines 11 y 12 de los 74HC595, se repiten en paralelo en ambos chips, y así continuaría en toda la cadena si se agregasen más salidas, como se puede ver en el diagrama mostrado más arriba con 4 chips 74HC395.

Programa de ejemplo para 16 bits:

En próximas notas veremos estos circuitos controlados por la biblioteca SPI, en otra el uso del chip serie a paralelo 74LS673 para obtener 16 salidas y en otra nota veremos el uso de un chip paralelo a serie 74HC165 para obtener una ampliación de 8 entradas.


ARTÍCULOS RELACIONADOS:

Arduino: Entradas y salidas – Manipulación de puertos
Ingresar lectura de varios sensores a través de un único pin analógico
Arduino UNO R3 – Conectándolo al mundo exterior

Módulo detector de vibración KY-002 (Kit de sensores Keyes 2)

Descripción:

El módulo KY-002 de Keyes para Arduino permite la detección de impactos y vibraciones.

El módulo detector de vibración KY-002 consta de un resorte y un poste conductor central con una resistencia de 10K conectada a la alimentación positiva. Ante golpes y vibraciones, el resorte reacciona desplazándose de su centro y cerrando el circuito a tierra. Por esto la salida es inversa: un nivel ALTO significa que no hay detección, y un nivel BAJO que sí existe impacto o vibración.

Especificaciones:

  • Voltaje de operación: 3,3V – 5V
  • Dimensiones: 18,5 mm x 15 mm

Conecte la línea de alimentación (pin central) del KY-002 a +5V del Arduino. Conecte el pin de tierra marcado al pin GND del Arduino. Conecte el pin de señal marcado S al pin digital 2 del Arduino.

Diagrama de la placa KY-002:

Módulo Detector de Vibración KY-002: Dibujo de la pieza para el editor Fritzing

Conexión con el Arduino:

Pin S de KY-002 al pin digital 2 del Arduino.
Pin central (línea de alimentación) de KY-002 al +5V de Arduino.
Pin – de KY-002 a GND de Arduino.

Atención: hay módulos en los que la salida S está cambiada por el negativo (GND), y viceversa. No es un gran problema porque las conexiones tienen un leyenda visible en la placa. La literatura original de Keyes muestra ambas configuraciones, de modo que es posible que ellos fabriquen los dos módulos. Este artículo está basado en el módulo que teníamos de modelo para las pruebas. El símbolo de Fritzing (no el de esta imagen —que está corregido—, sino el original que se obtiene en el enlace) indica invertidas la salida S y el GND. Sólo la línea central de alimentación se mantiene en el mismo lugar en ambas configuraciones. Antes de conectar, observe siempre las notaciones grabadas en la plaqueta que usted adquiera, y conecte S al pin 2 del Arduino y el pin marcado con el símbolo a GND del Arduino.

Programa de ejemplo:

El siguiente programa de Arduino genera un parpadeo del led incluido en la placa Arduino cuando se detecta movimiento al golpear o sacudir el módulo KY-002. Se utiliza el pin digital 2 del Arduino como entrada de la señal del sensor.

Artículos relacionados:

Módulo sensor de temperatura KY-001 (Kit de sensores Keyes 1)
Módulo detector de vibración KY-002 (Kit de sensores Keyes 2)
Módulo de Sensor Magnético por efecto Hall KY-003 (Kit de sensores Keyes 3)
Módulo de llave pulsadora – KY-004 (Kit de sensores Keyes 4)
Módulo sensor de temperatura KY-005 (Kit de sensores Keyes 5)
Módulo de emisor piezoeléctrico pasivo KY-006 (Kit de sensores Keyes 6)
Módulo codificador rotativo KY-040 [ó KY-007] – (Kit de sensores Keyes 040/007)





Módulo sensor de temperatura KY-001 (Kit de sensores Keyes 1)

Descripción:

El módulo de sensor de temperatura para Arduino Keyes KY-001 permite la medición de la temperatura ambiente entregando datos mediante un bus serie digital (llamado One Wire, o “Un Cable” en español).

En realidad, sólo es una plaqueta base con conector de tres pines para el sensor de temperatura DS18B20, y el único agregado de circuito es un led con su resistor para indicar que está encendido.

Especificaciones:

El módulo de sensor de temperatura KY-001 es compatible con plataformas de microcontrolador populares como Arduino, Raspberry Pi y Esp8266.

  • Voltaje de operación: 3,0V a 5,5V
  • Rango de medición de temperatura: -55° C a 125° C
  • Rango de precisión de medición: ± 0,5° C
  • Dimensiones: 18,5 mm x 15 mm

Circuito integrado DS18B20:

Diagrama de conexión del módulo:

Pin S de KY-001 al pin digital 2 del Arduino.
Pin central (línea de alimentación) de KY-001 al +5V de Arduino.
Pin – de KY-001 a GND de Arduino.

Enlaces a las bibliotecas y otros datos necesarios para el ejemplo de programa en Arduino para el KY-001:

Módulo Sensor de Temperatura KY-001: Dibujo de la pieza para el editor Fritzing
Biblioteca Dallas para control de temperatura por Miles Burton.
Biblioteca OneWire por PJRC.
Hoja de datos del DS18B20 por Maxim Integrated.





Programa de ejemplo:

El siguiente programa de Arduino utiliza la biblioteca OneWire para comunicarse por línea serie con el KY-001, y así descargará la temperatura leída por el dispositivo.

Suba el programa y observe los datos en el Monitor Serie del IDE de Arduino.

Artículos relacionados:

Módulo sensor de temperatura KY-001 (Kit de sensores Keyes 1)
Módulo detector de vibración KY-002 (Kit de sensores Keyes 2)
Módulo de Sensor Magnético por efecto Hall KY-003 (Kit de sensores Keyes 3)
Módulo de llave pulsadora – KY-004 (Kit de sensores Keyes 4)
Módulo sensor de temperatura KY-005 (Kit de sensores Keyes 5)
Módulo de emisor piezoeléctrico pasivo KY-006 (Kit de sensores Keyes 6)
Módulo codificador rotativo KY-040 [ó KY-007] – (Kit de sensores Keyes 040/007)

ESP8266 (WiFi): Hacer que parpadee un LED desde el IDE de Arduino

¿Qué es un ESP8266?

El ESP8266 es un chip con capacidad Wi-Fi con un stack TCP/IP completo y un microcontrolador, fabricado por Espressif, una empresa China. El primer chip se hizo conocido el mercado con el módulo ESP-01, desarrollado por la empresa AI-Thinker. Este pequeño módulo permite a otros microcontroladores conectarse a una red inalámbrica Wi-Fi y realizar conexiones simples con TCP/IP usando comandos al estilo Hayes (comandos AT).

Diversos modelos de módulos que utilizan el ESP8266

Características

•   CPU RISC de 32-bit: Tensilica Xtensa LX106 con un reloj de 80 MHz. El reloj de la CPU y la memoria flash puede duplicarse por overclocking en algunos dispositivos. La CPU puede funcionar a 160 MHz y la memoria flash puede trabajar entre 40 MHz y 80 MHz. Varía según la versión del chip.
•   RAM de programa de 64 KB, RAM de datos de 96 KB
•   Capacidad de memoria externa flash QSPI de 512 KB a 4 MB (puede manejar hasta 16 MB)
•   IEEE 802.11 b/g/n Wi-Fi
     o Tiene integrados: TR switch, balun, LNA, amplificador de potencia de RF y una red de adaptación de impedancias
     o Soporte de autenticación WEP y WPA/WPA2
•   16 pines GPIO (Entradas/Salidas de propósito general)
•   Interfaces SPI, I²C,
•   Interfaz I²S con DMA (comparte pines con GPIO)
•   Pines dedicados a UART, más una UART únicamente para transmisión que puede habilitarse a través del pin GPIO2
•   1 conversor ADC de 10-bit

El ESP8266 se puede programar desde el IDE de Arduino. Para eso hay que instalar lo que se llama un plugin, en el que está incluido todo lo necesario para compilar y subir programas que fueron escritos tal como si fuesen .INO de Arduino.

Debemos incorporar librerías y los programas de manejo de las placas con el chip ESP8266 a nuestro IDE. Para hacerlo, debemos indicarle la URL desde donde se obtienen.

Para hacerlo, debemos abrir el menú Archivo, y luego Preferencias.

Veremos este panel, en la parte inferior el recuadro de texto rotulado Gestor de URLs Adicionales de Tarjetas. Dentro de él, usando copiar y pegar, se debe introducir el texto indicado aquí:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

(copie y pegue en el recuadro):

Luego pulse en el botón Ok.

Ahora debemos ir al menú Herramientas, luego Placa.

Y finalmente Gestor de Tarjetas, se abrirá una ventana como la que sigue, en la cual escribimos, en el recuadro superior de filtro/busqueda, “ESP8266” (antes de terminar de escribir ya aparecerá el Gestor de Tarjetas que buscamos, que indica que fue creado por “ESP8266 Community”. Allí pulsamos sobre Instalar:

Al abrir nuevamente Herramientas, y luego Placa, deslizamos la lista para ver lo que aparece al final de ella (abajo), y vemos que ya existen las opciones referidas a los ESP8266:

Ejemplo de programa:

Trabajaremos en este ejemplo dos modelos de placa que utilizan el chip ESP8266: ESP-01 y NodeMCU (ESP-12E).

El NodeMCU es una placa de desarrollo que contiene el módulo ESP-12E incorporado, más todos los elementos necesarios de apoyo para comunicarse con ella, entre éstos un conector USB, regulador de voltaje, botón de reinicio, un botón “flash” que se utiliza para programar el módulo, hileras de pines enchufables, etc.

Diseñaremos un circuito simple para hacer parpadear un LED en los ESP utilizando el IDE de Arduino para programarlos. La pregunta que uno se puede hacer es ¿por qué siempre lo primero que se enseña es a hacer que parpadee un LED? Y no es mala pregunta. La respuesta es que si podemos hacer parpadear un LED usando un pin de salida de un dispositivo, quiere decir que podemos encender o apagar cualquier dispositivo electrónico. Sólo es necesario, si conectamos algo a ese pin, que el consumo que necesita ese aparato para funcionar no supere lo que puede entregar el pin de salida de nuestro sistema. Pero esto no es condicionante: se soluciona —como en cualquier circuito electrónico— adaptando el voltaje y la corriente con componentes simples, como transistores, MOSFET o relés. Y entonces ya estamos encendiendo y apagando ya sea un LED, una lámpara o un horno eléctrico.

En los ESP, a las entradas y salidas se les llama GPIO, sigla que viene de las palabras en inglés General Purpuse Input/Output, en castellano Entrada/Salida de Propósito General.

Acerca de la asignación de GPIOs, la siguiente tabla es una referencia rápida sobre cómo asignar los GPIOs de ESP8266 en el código Arduino.

Aquí está la ubicación de cada pin la placa física:

ESP-01

NodeMCU / ESP-12E

Importante: en la siguiente sección, llamada «Cómo escribir el programa en el IDE de Arduino», cuando definimos: salida = 0 nos referimos al GPIO 0, y si definimos: salida = 2 nos referimos a GPIO 2. En el firmare interno del ESP se define así. No hay que preocuparse por esto, simplemente recordar que 0 se refiere a GPIO 0 y 2 se refiere a GPIO 2.

Cómo escribir el programa en el IDE de Arduino

El programa para hacer parpadear un LED es muy simple:

Cómo funciona el programa:

  • 1. Creamos una variable entera (int) llamada salida = 2 que hace referencia a GPIO 2
  • 2. En setup(), usamos la función pinMode(salida, OUTPUT) para configurar el GPIO 2 como una SALIDA (OUTPUT). Este código de inicialización se ejecuta una sola vez.
  • 3. A continuación, en loop() (función bucle), utilizamos dos funciones digitalWrite() y delay().
    Es una sección de código que se repite una y otra vez hasta que se quite la alimentación del ESP o se le cambie el programa.
  • 4. Enciende el LED durante 1 segundo (1000 milisegundos) usando digitalWrite(salida, HIGH) y espera de 1 segundo con delay(1000).
  • 5. Luego apaga el LED usando digitalWrite(salida, LOW) y espera de 1 segundo con delay(1000).
  • 6. El programa continúa indefinidamente, repitiendo los pasos 4. y 5.

Veremos que el LED parpadea, un segundo encendido, un segundo apagado.




Escribiendo el programa en el ESP8266

La opción más fácil es cuando se escribe código para el ESP8266 dentro del NodeMCU/ESP-12E, que tiene implementada la comunicación USB, y por lo tanto la manera de programar el chip. En cambio, al trabajar con el módulo ESP-01 (o algún otro modelo de ESP) es necesario tener un módulo conversor de USB a TX/RX, como un FTDI.

NodeMCU con ESP12E:

Subir código en este módulo es mucho más simple, ya que tiene incorporados los circuitos auxiliares necesarios para la programación. Sólo hay que enchufar el módulo a través del cable USB a la computadora sin que sea necesaria ninguna conexión adicional.

En el menú Herramientas del IDE de Arduino seleccione como Placa “NodeMCU 1.0 (ESP-12E Module)” y a continuación, también en el menú Herramientas, elegir el COM a que esté conectado el NodeMCU. No es necesaria más configuración. Se verá así (observar la línea debajo de todo en la ventana, que indica el dispositivo y el puerto COM):

El COM en su computadora no va a ser exactamente el COM9, aunque se puede dar la casualidad que lo sea. Será el COM virtual que el sistema operativo haya creado al conectar el módulo de ESP a su USB.

Después de comprobar estos detalles de configuración del IDE, utilice el botón “Subir” en el IDE y espere hasta que indique que ya ha completado la programación.

Para conectar el LED al NodeMCU utilice el siguiente circuito. El LED lleva un resistor de 220 Ohm en serie. La conexión va a GND y a la pata D4 del NodeMCU (GPIO 2).

NOTA: EL CIRCUITO A CONTINUACIÓN ES UN EJEMPLO EN EL QUE SE CONECTA ALGO A UN PIN EXTERNO. EL MODELO MÁS HABITUAL DE NODEMCU EN EL MERCADO YA TIENE UN LED CONECTADO EN EL GPIO 2 Y OTRO EN GPIO 16, INCLUIDOS EN LA PLACA. SI LO DESEA, ANTES DE ARMAR EL CIRCUITO PRUEBE CON LA PLACA SOLA. PRUEBE UNA VEZ USANDO salida = 2, Y OTRA USANDO salida = 16. FUNCIONARÁ EN AMBOS CASOS, CON DOS LEDS DISTINTOS SI SU MODELO NO TIENE ESTE LED INCORPORADO, CABLEE EL CIRCUITO DE ABAJO.

Luego de cargar el programa al ESP8266, si todo salió bien veremos parpadear el LED cada 1 segundo.

Parpadeo con GPIO 2

 

Parpadeo con GPIO 16

 

Prueba usando el módulo ESP-01

Para subir código a un ESP-01 hay que establecer una comunicación USB a través de un conversor de USB a niveles TTL (que maneje voltajes de 3,3V) a la conexión serie TX/RX del ESP8266, con un módulo como el que se ve en la figura. Hay muchos modelos, pero es recomendable buscar uno que tenga un chip FTDI y que en su placa facilite la conversión de voltajes de 5V a 3,3V (que es el voltaje con el que funciona el ESP8266).

Es importante remarcar que lo primero que debemos hacer, al comprarlo, y antes de conectarlos, es buscar el selector de voltajes de 5V a 3,3V. Debemos asegurarnos de que el módulo FTDI esté fijado en el modo de operación a 3,3V, como muestra la imagen de abajo.

El circuito de abajo indica las conexiones que debemos hacer para establecer la comunicación del ESP-01, a través del módulo FTDI, hacia el conector USB, para lograr la comunicación serie.

La conexiones son:

      • RX ► TX
      • TX ► RX
      • CH_PD ► 3,3V
      • GPIO 0 ► GND
      • VCC ► 3,3V
      • GND ► GND

Nota: en el circuito de la imagen de arriba, GPIO 0 está conectado a GND. Esto es porque queremos subir código. Al subir un programa por primera vez desde el IDE del Arduino se requiere que el ESP grabe en su flash un nuevo firmware —firmware es un software de bajo nivel, interno, que permite controlar circuitos eléctricos—. En uso normal (cuando no estamos grabando en la memoria flash un firmware nuevo) el pin GPIO 0 se conecta a VCC (3,3V).

En el caso de que usted tenga necesidad de instalar un driver en una PC con Windows porque no le reconoce el módulo en un puerto COM, sea este u otro con chip FTDI, el sitio oficial para conseguirlos es: http://www.ftdichip.com/Drivers/VCP.htm. Si compra uno nuevo, pregunte siempre al vendedor. Muchas veces tienen las soluciones en un enlace en su página web de ventas.

Normalmente, si usted está conectado online, el driver se instala automáticamente.

Preparando su IDE de Arduino

Una vez que conectamos el ESP8266 a través del módulo FTDI a su computadora, corra el IDE de Arduino. Abra el menú Herramientas y seleccione la Placa: “Generic ESP8266 Module”. Las configuraciones estándar deberían verse así:

El número de puerto COM que aparezca listado va a depender de cada computadora, e incluso puede cambiar alguna otra vez que conecte otro ESP, ya que ese número lo determina dinámicamente el sistema operativo.

En este momento ya se puede pulsar “Subir” en el IDE Arduino. Pasará un tiempo hasta que aparezca la indicación de que el programa ha sido subido.

El funcionamiento final: Circuito para el ESP-01 y el LED

Luego de haber subido el código al módulo, desconecte de la computadora y recablee siguiendo el diagrama a continuación:

Al conectar los 3,3V de alimentación al ESP-01, todo estará listo. Si las cosas salieron bien, el LED debería parpadear encendiéndose y apagándose cada 1 segundo.


Para cualquier consulta, comuníquese conmigo en el grupo de facebook https://www.facebook.com/groups/GrupoRobotsDidacticos/

Programar ESP8266 desde el IDE Arduino y con sus librerías

¿Qué es un ESP8266?

El ESP8266 es un chip con capacidad Wi-Fi con un stack TCP/IP completo y un microcontrolador, fabricado por Espressif, una empresa China. El primer chip se hizo conocido el mercado con el módulo ESP-01, desarrollado por la empresa AI-Thinker. Este pequeño módulo permite a otros microcontroladores conectarse a una red inalámbrica Wi-Fi y realizar conexiones simples con TCP/IP usando comandos al estilo Hayes (comandos AT).


Características

•   CPU RISC de 32-bit: Tensilica Xtensa LX106 con un reloj de 80 MHz. El reloj de la CPU y la memoria flash puede duplicarse por overclocking en algunos dispositivos. La CPU puede funcionar a 160 MHz y la memoria flash puede trabajar entre 40 MHz y 80 MHz. Varía según la versión del chip.
•   RAM de programa de 64 KB, RAM de datos de 96 KB
•   Capacidad de memoria externa flash QSPI de 512 KB a 4 MB (puede manejar hasta 16 MB)
•   IEEE 802.11 b/g/n Wi-Fi
     o Tiene integrados: TR switch, balun, LNA, amplificador de potencia de RF y una red de adaptación de impedancias
     o Soporte de autenticación WEP y WPA/WPA2
•   16 pines GPIO (Entradas/Salidas de propósito general)
•   Interfaces SPI, I²C,
•   Interfaz I²S con DMA (comparte pines con GPIO)
•   Pines dedicados a UART, más una UART únicamente para transmisión que puede habilitarse a través del pin GPIO2
•   1 conversor ADC de 10-bit

Diversos modelos de módulos que utilizan el ESP8266

El ESP8266 se puede programar desde el IDE de Arduino. Para eso hay que instalar lo que se llama un plugin, en el que está incluido todo lo necesario para compilar y subir programas que fueron escritos tal como si fuesen .INO de Arduino.

En principio, y es importante, mantenga siempre actualizada la Interfaz de Usuario o IDE (Integrated Development Environment – Entorno de Desarrollo Integrado) del Arduino descargándola de la página oficial en www.arduino.cc.

Debemos incorporar bibliotecas y los programas de manejo de las placas con el chip ESP8266 a nuestro IDE. Para hacerlo, debemos indicarle la URL desde donde se obtienen.

Para hacerlo, debemos abrir el menú Archivo, y luego Preferencias.

Veremos este panel, en la parte inferior el recuadro de texto rotulado Gestor de URLs Adicionales de Tarjetas. Dentro de él, usando copiar y pegar, se debe introducir el texto indicado aquí:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

(copie y pegue en el recuadro):

Luego pulse en el botón Ok.

Ahora debemos ir al menú Herramientas, luego Placa.

Y finalmente Gestor de Tarjetas, se abrirá una ventana como la que sigue, en la cual escribimos, en el recuadro superior de filtro/busqueda, “ESP8266” (antes de terminar de escribir ya aparecerá el Gestor de Tarjetas que buscamos, que indica que fue creado por “ESP8266 Community”. Allí pulsamos sobre Instalar:

Al abrir nuevamente Herramientas, y luego Placa, deslizamos la lista para ver lo que aparece al final de ella (abajo), y vemos que ya existen las opciones referidas a los ESP8266:

Artículos relacionados:

ESP8266 (WiFi): Hacer que parpadee un LED desde el IDE de Arduino
Servidor web básico NodeMCU con IDE de Arduino