- Modulación de ancho de pulso (PWM)
- Programando ATtiny13 usando Arduino
- Componentes requeridos
- Diagrama de circuito y funcionamiento
El servomotor funciona según el principio de modulación de ancho de pulso (PWM) y su ángulo de rotación está controlado por la duración del pulso aplicado a su pin de control. Aquí en este tutorial controlaremos un servomotor con microcontrolador ATtiny13 usando la técnica PWM. Entonces, antes de continuar, primero aprenderemos sobre PWM, Servo Motor y cómo programar ATtiny13 con la placa Arduino.
Modulación de ancho de pulso (PWM)
La modulación de ancho de pulso (PWM) se define como un método para generar una señal analógica utilizando una fuente digital. Una señal PWM consta de dos componentes principales: ciclo de trabajo y frecuencia. Estos componentes definen su comportamiento. El ciclo de trabajo describe la cantidad de tiempo que la señal está en un estado alto. Se indica como un porcentaje del tiempo total que se tarda en completar un ciclo.
Ciclo de trabajo = tiempo de encendido / (tiempo de encendido + tiempo de apagado)
La frecuencia define qué tan rápido el PWM completa un ciclo y qué tan rápido la señal cambia entre los estados alto y bajo. Una frecuencia de 100 Hz significa 100 ciclos por segundo. Al encender y apagar una señal digital a un ritmo rápido y con un cierto ciclo de trabajo, la salida aparecerá como una señal analógica de voltaje constante. Uno de los poderosos beneficios de PWM es que la pérdida de energía es mínima.
Todos los servomotores funcionan directamente con suministro de + 5V, pero debemos tener cuidado con la cantidad de corriente que consumiría el motor. Si usamos más de dos servomotores se debe diseñar un servo escudo adecuado.
Antes de conectar el servo a Attiny13, puede probar su servo con la ayuda de este circuito probador de servomotor. Aquí tenemos un servomotor interconectado con muchos microcontroladores:
- Interfaz de servomotor con ARM7-LPC2148
- Interfaz de servomotor con MSP430G2
- Controlar varios servomotores con Arduino
- Interfaz de servomotor con microcontrolador PIC usando MPLAB y XC8
- Control de servomotor con Raspberry Pi
- Control de servomotor con Arduino Due
- Interfaz de servomotor con microcontrolador AVR Atmega16
Programando ATtiny13 usando Arduino
Attiny13 se puede programar usando Arduino Uno o cualquier otra placa Arduino. Conecte Attiny13 a Arduino Uno como se muestra en la siguiente figura.
- Arduino 5V - ATtiny13 pin 8
- Arduino GND - ATtiny13 pin 4
- Pin 13 de Arduino - Pin 7 de ATtiny13
- Pin 12 de Arduino - Pin 6 de ATtiny13
- Pin 11 de Arduino - Pin 5 de ATtiny13
- Pin 10 de Arduino - Pin 1 de ATtiny13
Arduino está configurado como programador para programar ATtiny13. Esto se hace cargando el boceto de ArduinoISP en Arduino. Este boceto de Arduino está disponible dentro de los ejemplos en Arduino IDE. Abra el IDE de Arduino y vaya a Archivos> Ejemplos> ArduinoISP .
Ahora aparecerá el programa para ArduinoISP. Sube el programa al Arduino Uno.
Arduino Uno ahora está listo para programar Attiny13. Pero tenemos que configurar Attiny instalando sus archivos principales. Para hacer esto, vaya a Archivo >> Preferencias en Arduino IDE
Entonces aparecerá una nueva ventana. Y en las " URL adicionales del administrador del tablero ", agregue el enlace a continuación y haga clic en "Aceptar".
"Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json"
Ahora en su IDE de Arduino vaya a Herramientas >> Tablero >> Administrador de tableros
Luego aparecerá otra ventana donde en el cuadro de búsqueda escriba 'Attiny', luego obtendrá "DIY ATtiny" y luego hará clic en el botón 'instalar' (ya lo instalé, por eso el botón de instalación en color gris)
Para comenzar a programar ATtiny 13, debemos grabar Bootloader en él. Para eso, vaya a Herramientas> Tablero> ATtiny13.
Ahora vaya a Herramientas> Versión del procesador y verifique si está seleccionada la versión correcta de ATtiny. Seleccione ATtiny13 o ATtiny13a según su chip.
Luego haga clic en el botón Grabar cargador de arranque en la parte inferior del menú Herramientas.
Después de grabar el cargador de arranque, ATtiny ahora está listo para ser programado. Ahora puede cargar su programa.
Componentes requeridos
- Microcontrolador ATtiny13
- Servo motor
- Potenciómetro
- + Batería de 5V
- IDE de Arduino
- Cables de conexión
Diagrama de circuito y funcionamiento
El diagrama de circuito para controlar un servomotor usando pot con ATtiny13 se muestra a continuación.
A continuación se muestran las conexiones
- Conecte el pin de control del servomotor al pin 5 de ATtiny13
- Conecte la tierra del servomotor al pin 4 de ATtiny13
- Conecte VCC del servomotor al pin 8 de ATtiny13
- Conecte el pin medio del potenciómetro al pin 7 de ATtiny13
- Conecte el primer y tercer pines del potenciómetro al VCC y GND.
- Conecte el positivo de la batería + 5V al pin 8 de ATtiny13
- Conecte el negativo de la batería de + 5V al pin 4 de ATtiny13
Un potenciómetro está conectado al pin 7 (PB2) del ATtiny13 y el cable de control del servomotor está conectado al pin 5 (PB0).
Aquí se lee el valor del potenciómetro y se convierte a un valor entre 0 y 180. Luego, este valor de ángulo se convierte a microsegundos y se le da un pulso al pin de control del servomotor con el retardo de microsegundos calculado. Ahora el servomotor girará de acuerdo con el valor del potenciómetro como se muestra en el video que se muestra a continuación.