Anda di halaman 1dari 14

UNIVERSIDAD CATOLICA DE SANTA MARIA

FACULTAD DE CIENCIAS E INGENIERIAS FISICAS Y


FORMALES

PROGRAMA PROFECIONAL DE INGENIERIA MECNICA,


MECNICA ELECTRICA Y MECATRNICA

Curso:
Microprocesadores y Microcontroladores

INFORME:
Motores cc

Docente
Ing. Sergio Orlando Mestas Ramos

Alumnos:
Daz Zegarra Mario Jess

Grupo 3

Arequipa-Per

2017
Arduino Practica Motores cc
1 OBJETIVO
Aprender a manejar las entradas y salidas analgicas.
Conectar sensores y actuadores analgicos a la placa Arduino.
Implementar conocimientos anteriores

2 DESARROLLO
Se desarrollara la practica con Arduino Uno con el fin de familiarizarse con la interfaz de usuario y la
programacion en C que presenta la aplicacin, directamente a la placa de desarrollo del pic de Atmel, el
ATMEGA 328P-PU.

Empleando ahora potenciometros, transistores de baja potencia, relee, motores de cc, integrado L293D/B y
adicionales, con el fin de familiarizarce con sistemas de control de potencia y protecciones a emplear cuando
se trabaja de cc a ca.

2.1 CONTROL DE UN MOTOR DE CC CON UN TRANSISTOR


Con este ejemplo vamos a controlar la velocidad de un motor de cc mediante la utilizacin de un
transistor BD137. Se trata de utilizar la posibilidad de enviar una seal de PWM a una de las salidas
configurables como salidas analgicas

Esquema principal

Eq matematica a emplear:

for(valor = 0 ; valor <= 255; valor +=5) (ascendente)


for(valor = 255; valor >=0; valor -=5) (descendente)

Codigo del programa y monitor serie


Tabulando:

salida y entrada
300

250

200

150

100

50

0
0 7650 15300 22950 30600

salida analogica Salida en V.

Primera Tabla

// PROGRAMA:

int valor = 0; // variable que contiene el valor a sacar por el terminal analgico

int motor = 10; // motor conectado al PIN 10

void setup() { } // No es necesario

void loop() {

for(valor = 0 ; valor <= 255; valor +=5){ //contador de 0 hasta 255 de 5 en 5

analogWrite(motor, valor); //escritura analogica 0-255

delay(30);

for(valor = 255; valor >=0; valor -=5) {

analogWrite(motor, valor);//se imprime valor analogico

delay(30);}}

//FIN

2.2 VARIANTE DEL MONTAJE: CONTROL DE LA VELOCIDAD MEDIANTE UN POTENCIMETRO


Adicionando a la prctica anterior, se trata de controlar la velocidad a nuestro gusto es decir mediante
un potencimetro que se coloca en una de las entradas analgicas y en funcin del valor que se lea en la
entrada as girar ms o menos rpido el motor.

Esquema Principal

Eq matematica a emplear:

Conversin de la entrada analogica de 0-1023 a una salida de 0-255

Implementando esquema principal en practicas Parte1


Programa en ejecucin

Implementando esquema principal en practicas Parte


// PROGRAMA:

int valor = 0;

int motor = 10;

int pot = 0;

void setup() {

void loop() {

valor = (analogRead(pot));

analogWrite(motor, valor);

delay(30);

2.3 CONTROL DE UN MOTOR DE CC CON EL DRIVER L293D


Con esta aplicacin vamos a mover un motor de cc haciendo uso de un CI de potencia
que es especfico para estas aplicaciones. El circuito podr mover hasta dos motores,
nosotros solo lo haremos con uno.

Como ventana en este montaje podremos mover el motor en los dos sentidos de giro cosa
que con el anterior montaje no podamos.

El funcionamiento ser como el primer montaje del motor anterior es decir vamos a
crear una rampa de subida de tensin y una de bajada con el fin de que el motor
modifique su velocidad de modo automtico.
Chip L293D/B (puente H):
Es un circuito integrado o chip, que puede ser utilizado para controlar simultneamente
la velocidad y direccin de dos motores de continua (contiene dos puentes H). La
diferencia entre el modelo L393D y L293B, es que el primero viene con diodos de
proteccin que evita los daos producidos por los picos de voltaje que puede producir el
motor.
Diagrama del controlador L293D/B

Opcin 1:

Esquema principal opcin 1


Opcin 2:

Esquema principal opcin 2

Programa en arduino
Codigo del programa:
int valor = 0; // variable que contiene el valor
int motorAvance = 10; // Avance motor --> PIN 10
int motorRetroceso = 11; // Retroceso motor --> PIN 11
void setup() { } // No es necesario
void loop() {
analogWrite(motorRetroceso, 0); // Motor hacia delante ... sube la velocidad
for(valor = 0 ; valor <= 255; valor+=5) { //salida anloga de 0 a 255
analogWrite(motorAvance, valor); //imprecion del valor analogo
delay(30);//retraso
}
for(valor = 255; valor >=0; valor-=5) { //salida anloga de 255 a 0
analogWrite(motorAvance, valor); //imprecion del valor analogo
delay(30); //retraso
}
analogWrite(motorAvance, 0); // Motor hacia detrs ... sube la velocidad
for(valor = 0 ; valor <= 255; valor+=5) { //salida anloga de 0 a 255
analogWrite(motorRetroceso, valor); // imprecion del valor analogo
delay(30); // retraso
}
for(valor = 255; valor >=0; valor-=5) { // Motor hacia detrs ... baja la velocidad
analogWrite(motorRetroceso, valor); //imprecion del valor analogo
delay(30); //retraso
}
}
CONTROL DOS MOTORES CON L293D/B
Codigo:

int value = 0; // valor actual if (directionA) {

int pwmpinA = 3; // motor A digitalWrite(dirpinA,HIGH);


conectado a la entrada analgica
} else {
pin1
digitalWrite(dirpinA,LOW);
int pwmpinB = 5; // motor B
conectado a la entrada analgica }
pin 2

int dirpinA = 9; // motor A pin


direccin directionB = !directionB;

int dirpinB = 8; // motor B pin directionA = !directionA;


direccin

for(value = 0 ; value <= 255;


boolean directionA = true; // value+=5) {
variable estado de giro del motor A

boolean directionB = true; // analogWrite(pwmpinA, value);


variable estado de giro del motor B
analogWrite(pwmpinB, value);

delay(50); // espera 30 ms
void setup() {
}
//pinMode(dirpinA, OUTPUT);

//pinMode(dirpinB, OUTPUT);
for(value = 255; value >=0; value-
} =5) {
void loop() { analogWrite(pwmpinA, value);
if (directionB) { analogWrite(pwmpinB, value);
digitalWrite(dirpinB,HIGH); delay(50);
} else { }
digitalWrite(dirpinB,LOW); }
}
2.4 RELE ELECTROMAGENETICO
Este sencillo ejemplo ensea como encender una bombilla de 220V de corriente alterna
(AC) mediante un circuito de 5V de corriente continua (DC) gobernado por Arduino. Se
puede utilizar con cualquier otro circuito de 220V con un mximo de 10A (con el rel
del ejemplo).

Esquema principal
Programa en Arduino

Codigo:
int relayPin = 8; // PIN al que va conectado el rel
void setup(){
pinMode(relayPin, OUTPUT);//se declara la salida
}
void loop() {
digitalWrite(relayPin, HIGH); // ENCENDIDO
delay(2000); //retrasp
digitalWrite(relayPin, LOW); // APAGADO
delay(2000);//retraso
}

Anda mungkin juga menyukai