Archivo de la categoría: Leds

Motor paso a paso con el L298N y AccelStepper.

Esta vez, usaremos el L298N, este driver para motores es uno de los más populares entre los aficionados a la electrónica y la robótica.
 
Pero en lugar de utilizar la librería habitual, utilizaremos la librería AccelStepper.
 
La librería AccelStepper escrita por Mike McCauley es una librería impresionante para usar en tu proyecto. Una de las ventajas es que soporta la aceleración y la desaceleración, pero tiene un montón de otras funciones.

 l294n

Sensor Óptico infrarrojo TCRT5000

El  Sensor Óptico TCRT5000 es un sensor ideal para detectar un cambio en la superficie sobre la cual está trabajando, El módulo incluye un sensor TCRT5000 óptico reflectivo infrarrojo, incluye el circuito Integrado LM393 como comparador de voltaje, es ideal para la detección de productos en bandas transportadoras y líneas de producción, líneas en robots de carreras seguidores de línea y sumos, aunque podemos encontrarle utilidad en cualquier otro proyecto electrónico que deseemos realizar.

Captura de pantalla 2023-11-01 a las 12.40.03

El TCRT5000 es un sensor que incluye el emisor y el receptor en el mismo empaquetado. El módulo funciona con IR lo que lo hace inmune a la luz visible.

Sigue leyendo

Módulo de pantalla de matriz de puntos LED I2C

El HT16K33 es un pequeño chip que tiene la capacidad de controlar una matriz multiplexada de 16×8 (es decir, 128 LED individuales). El protocolo de comunicación es I2C, por lo que utiliza solo 2 pines y puede tener hasta 8 direcciones I2C seleccionables, lo que da un total de 8 matrices, cada una de las cuales controla 16×8 LED para un total de 1024 LED.

matriz leds 16x8

A diferencia otros shield de LED, este módulo no tiene salidas para conectar otro módulo de LEDs.

Todo el control de LED se realiza a través de I2C utilizando la librería de interfaz HT16K33. Esto significa que SDA y SCL deben estar conectados con los pines A4 y A5.

La dirección predeterminada es 0x70 pero puede cambiar la dirección a 0x71-0x77 mediante un puente y soldando en los pines de dirección.

Software

Deberás instalar las siguientes librerías para utilizar este módulo.

Abra el administrador de librerías del IDE de Arduino:

Captura de pantalla 2023-11-01 a las 9.28.37

Sigue leyendo

Sensor MQ135

MQ135

OBJETIVOS

  1. Conocer el sensor analógico de medición de calidad del aire MQ135.
  2. Realizar el montaje de uso del sensor MQ135 para la detección de la concentración de determinados gases para medir la calidad del aire.
  3. Realizar un programa de control mediante Arduino, para la medición de la calidad del aire utilizando el sensor MQ135.
  4. Visualizar parámetros a través del monitor serie del IDE de Arduino.

El sensor MQ135, es un dispositivo con salida dual, analógico y digital TTL, que permite la medición de la calidad del aire mediante la detección de gases como el amoníaco, benceno, alcohol, dióxido de nitrógeno, dióxido y monóxido de carbono. Este sensor es de alta sensibilidad y respuesta rápida, aunque necesitará de un tiempo de calentamiento, entre 24 y 48h, para su correcto funcionamiento.

 

Sigue leyendo

Motor paso a paso Nema 17

Con este motor paso a paso se puede controlar de forma muy precisa el giro de su eje para hacer movimientos de precisión y así controlar el movimiento de tu máquina o robot.

pasoapaso

Características técnicas del Nema 17

El motor paso a paso Nema 17 es de tipo bipolar, con un ángulo de paso de 1,8º, es decir, puede dividir cada una de las revoluciones o vueltas en 200 pasos. Cada bobinado de los que tiene en su interior soporta 1.2A de intensidad a 4v de tensión, con lo que es capaz de desarrollar una fuerza considerable de 3.2 kg/cm.

Además, este motor Nema 17 es robusto, por eso se emplea en aplicaciones como las impresoras 3D caseras y otros robot que necesitan tener una consistencia considerable. También es usado en cortadoras láser, máquinas de CNC, etc.

Las características técnicas son:

    • Peso 350 gramos
    • Tamaño 42.3x48mm sin eje
    • Diámetro del eje 5mm D
    • Longitud del eje 25 mm
    • 200 pasos por vuelta (1,8º/paso)
    • Corriente 1.2A por bobinado
    • Tensión de alimentación 4v
    • Resistencia 3.3 Ohm por bobina
    • Torque motor de 3.2 kg/cm
    • Inductancia 2.8 mH por bobina

PinOut

pinout nema 17

El pinout de estos motores paso a paso es bastante sencillo, ya que no tienen demasiados cables para la conexión, además traen un conector para que los puedas hacer de forma más sencilla. En el caso del NEMA 17 encontrarás un pinout como el que puedes ver en la imagen superior.

Pero si necesitas conocer más detalles técnicos y eléctricos de los límites y rangos en los que puede trabajar el NEMA 17, puedes buscar un datasheet de este motor paso a paso y así obtener toda la información complementaria que buscas.

 

Ejemplo de cómo comenzar con el Nema 17 y Arduino

Un ejemplo sencillo para comenzar a usar este motor paso a paso NEMA 17 con Arduino es este simple esquema que puedes montar. Yo he empleado un driver para motores DRV8825, pero puedes usar alguno diferente e incluso también un motor paso a paso diferente si quieres variar el proyecto y adaptarlo a tus necesidades.

0J4232-600

En el caso del driver empleado funciona como máximo a 45v y 2A de intensidad, por lo que es ideal para motores paso a paso o steppers de talla pequeña y mediana como es el caso del NEMA 17 bipolar. Pero si necesitas algo más «pesado», un  motor más grande como el NEMA 23, entonces puedes usar el driver TB6600.

Recuerda que puedes usar también la biblioteca AccelStepper para un mejor manejo. Una biblioteca escrita por Mike McCauley que resulta muy práctica para tus proyectos, con soporte para aceleración y desaceleración, toda una ventaja para multitud de funciones.

Las conexiones resumidas son las siguientes:

motor-nema-17-arduino-1024x551.jpg

  • El motor NEMA 17 tiene su conexiones GND y VMOT al suministro eléctrico. La fuente debe tener entre 8v y 45v de suministro, y el condensador agregado podrá ser de 100µF.
  • Las dos bobinas del stepper está conectado a A1, A2, y B1, B2 respectivamente.
  • El pin GND del diver está conectado a GND de Arduino.
  • El pin VDD del driver está conectado a 5v de Arduino.
  • STP y DIR para el paso y dirección están conectados a los pines digitales 3 y 2 respectivamente. Si quieres elegir otros pines de Arduino puedes, solo tienes que modificar el código en consonancia.
  • RST y SLP para reset y sleep del driver los debes conectar a 5v de la placa Arduino.
  • EN o pin de activación puede estar desconectado, ya que de ese modo el driver estará activo. Si se pone a HIGH en vez de LOW el driver está desactivo.
  • Otros pines estarán desconectados…

En cuanto al código del sketch, puede ser tan simple como este para hacer funcionar el NEMA 17 y dar los primeros pasos.

#define dirPin 2
#define stepPin 3
#define stepsPerRevolution 200
void setup() {
  // Declare pins as output:
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
}
void loop() {
  // Set the spinning direction clockwise:
  digitalWrite(dirPin, HIGH);
  // Spin the stepper motor 1 revolution slowly:
  for (int i = 0; i < stepsPerRevolution; i++) {
    // These four lines result in 1 step:
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(2000);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(2000);
  }
  delay(1000);
  // Set the spinning direction counterclockwise:
  digitalWrite(dirPin, LOW);
  // Spin the stepper motor 1 revolution quickly:
  for (int i = 0; i < stepsPerRevolution; i++) {
    // These four lines result in 1 step:
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(1000);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(1000);
  }
  delay(1000);
  // Set the spinning direction clockwise:
  digitalWrite(dirPin, HIGH);
  // Spin the stepper motor 5 revolutions fast:
  for (int i = 0; i < 5 * stepsPerRevolution; i++) {
    // These four lines result in 1 step:
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(500);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(500);
  }
  delay(1000);
  // Set the spinning direction counterclockwise:
  digitalWrite(dirPin, LOW);
  //Spin the stepper motor 5 revolutions fast:
  for (int i = 0; i < 5 * stepsPerRevolution; i++) {
    // These four lines result in 1 step:
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(500);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(500);
  }
  delay(1000);
}