Está en la página 1de 6

UNIVERSIDAD NACIONAL DEL

CALLAO

FIEE - INGENIERÍA ELECTRÓNICA

APELLIDOS Y NOMBRES CÓDIGO

Rupay Falcon Yersin Gabriel


1513210126

CURSO TEMA

ELECTRONICA DE POTENCIA I CONTROL VELOCIDAD MOTOR DC

INFORME FECHAS NOTA

previo REALIZACION ENTREGA

NUMERO

25/09/2019

04

GRUPO PROFESOR

91G ING. CÓRDOVA RUIZ, RUSSELL


I. OBJETIVO S

• Desarrollar un circuito de control de velocidad utilizando Arduino UNO


como programa.
• Entender el funcionamiento para controlar el ancho de pulso sincronizado
por línea.
II. MARCO TEÓRICO

Este proyecto se realizará con el fin de poder controlar potencia a partir de


anchos de pulsos utilizando programación en Arduino UNO sincronizado con la
red eléctrica.

Arduino UNO: El Arduino Uno es una placa de microcontrolador de código abierto


basado en el microchip ATmega328P y desarrollado por Arduino.cc. La placa
está equipada con conjuntos de pines de E/S digitales y analógicas que pueden
conectarse a varias placas de expansión y otros circuitos. La placa tiene 14 pines
digitales, 6 pines analógicos y programables con el Arduino IDE (Entorno de
desarrollo integrado) a través de un cable USB tipo B. Puede ser alimentado por
el cable USB o por una batería externa de 9 voltios, aunque acepta voltajes entre
7 y 20 voltios. También es similar al Arduino Nano y Leonardo. El diseño de
referencia de hardware se distribuye bajo una licencia Creative Commons
Attribution Share-Alike 2.5 y está disponible en el sitio web de Arduino. Los
archivos de diseño y producción para algunas versiones del hardware también
están disponibles.

El presente proyecto trata de la elaboración de un controlador de velocidad para


un motor de corriente continua aprovechando la modulación por ancho de pulso
(PWM). Para esto hemos realizado un programa en el lenguaje ensamblador
orientado a microcontroladores ATMEGA8 de la marca ATMEL. Las
herramientas utilizadas en el desarrollo del proyecto son el programa VMLAB
para desarrollar códigos para los microcontroladores ATMEL, y el software de
simulación PROTEUS para la representación virtual del funcionamiento del
circuito, así como el análisis del ciclo de trabajo correspondiente a la
configuración del PWM. El circuito consta de 3 pulsadores, el primero (conectado
a PC0) nos permitirá iniciar el programa. El pulsador conectado a PC1 permitirá
aumentar la velocidad del motor, mientras que el pulsador conectado a PC0 hará
lo contrario. Se han seleccionado 5 velocidades para este controlador (sin contar
la velocidad al 0%). El porcentaje de la velocidad del motor se mostrará en una
pantalla LCD de 16x2, la cual está programada en el mismo microcontrolador.

Programación Arduino:
#include <LiquidCrystal.h> const int entrada2 = 7; int valor_entrada1; //
creamos una variable de tipo entero para que el arduino reconozca
int valor_entrada2;

configuración nula () { pinMode (motor, SALIDA); //


declaramos el pin como salida

pinMode (entrada1, INPUT); // declaramos el pin como entrada pinMode


(entrada2, INPUT);
}

bucle vacío () { valor_entrada1 = digitalRead (entrada1); // guardamos la


lectura digital en la variable (valor_entrada1)
valor_entrada2 = digitalRead (entrada2);

if (valor_entrada1 == 1) {// si valor de la entrada es 1 lógico o 5 voltios


digitalWrite (led, verdadero); // entonces que el led se encienda
}

if (valor_entrada2 == 1) {// si valor de la entrada es 1 lógico o 5 voltios


digitalWrite (led, falso); // entonces que el led se apague
}

int Motor = 6; // declaramos las variables de tipo entero


pinMode (Motor, SALIDA); // designamos los pinos como pinos de
salida y entrada
pinMode (entrada_analogica, INPUT); // entrada
}

void loop () {// entramos a un siclo repetitivo

int valor_entrada_analogica = 0; // declaramos las variables de tipo


entero
int valor_salida_pwm = 0; // declaramos la variable de tipo entero
para la ulizacion de la modulacion por ancho de pulso

}
lcd.setCursor(0,0);
lcd.print("pulso motor pwm");
lcd.setCursor(0,1);
lcd.print("velocidad 20%");
delay(2000);
lcd.clear();
lcd.setCursor(0,1);
lcd.print("velocidad 40%");
delay(2000); lcd.clear();
lcd.setCursor(0,1);
lcd.print("velocidad 60%");
delay(2000); lcd.clear();
lcd.print("velocidad 80%");
delay(2000);
lcd.setCursor(0,1);
lcd.print("velocidad 100%");
delay(2000); lcd.clear();
void loop() { estadoBotonIncremento =
digitalRead(botonIncremento); if(estadoBotonIncremento
!=estadoBotonAnteriorIncremento) { if(antirebote(botonIncremento))
{ cuenta++; if(cuenta > 100) { cuenta = 100; }

} } estadoBotonAnteriorIncremento =

estadoBotonIncremento; estadoBotonDecremento =

digitalRead(botonDecremento);

if(estadoBotonDecremento !=estadoBotonAnteriorDecremento) {
if(antirebote(botonDecremento)) { cuenta--; if(cuenta < 0)
{ cuenta = 0; } } }

}
Simulación del Circuito en Proteus.
PWM 0%
PWM 20% PWM 40%

PWM 80% PWM 100 %

RESULTADOS

• Se puede observar claramente cómo es que va a aumentando el ancho


de pulso mientras que vamos presionando los pulsadores.

• Se pudo observar que es crítico en el diseño de estos circuitos tener


en cuenta el valor exacto de todos sus componentes pues una mínima
variación puede tener un grande efecto en el valor y la forma de la salida.

• Previsiblemente observamos que la teoría debe ir anexa a la práctica


pues algunos de los conceptos requeridos por el laboratorio se hacían
claros al ver la sustentación teórica así ya se hubiera realizado el diseño,
con ayuda del docente claro está, y este funcionara de manera adecuada.

También podría gustarte