Tema 9 - Control de Potencia y Motores

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

Arduino: conviértete en un experto desde cero

Vacas Martínez, José Antonio

Tema 9 - Control de potencia


En este tema vamos a aprender a controlar dispositivos que requieren de más potencia para
funcionar, como pueden ser los motores o los dispositivos que tenemos en las casas
Empezaremos con una introducción a la electrónica de potencia.
Vídeo sobre electrónica de potencia

Controlando la potencia
Cuando necesitemos trabajar con potencia, necesitaremos usar electrónica externa. Usaremos
circuitos capaces de soportar esa potencia y que utilicen la salida de arduino como disparador.
Cómo hemos visto en la parte de electrónica podremos hacer esto con un transistor o con relé.
Usaremos el relé cuando el control que necesitamos es de tipo digital todo/nada o cuando
trabajemos con corriente alterna.
El transistor nos va a permitir controlar la cantidad de potencia, pero sólo para corriente
continua.
El montaje típico para un transistor es el siguiente

MontajeTransistor

1
Asociación Darwin Eventur
En primer lugar, vamos a ver como lo haríamos con un transistor, vemos como conectamos el
pin de Arduino a la base del transistor. Para un led no es necesarios en absoluto, pero este
circuito nos va a servir para activar un relé, sustituyendo la resistencia y el led por la bobina de
activación del relé.
Podemos ver cómo conectarlo en una breadboard.

ReleArduino
Veamos ahora cómo sería el esquema de un circuito con relé y dado que queremos poder usarlo
con relés de potencia, necesitaremos un transistor para activar la entrada del relé. En el circuito
aparece también un diodo que actúa como protección de nuestra placa arduino.
Vamos a ver ahora este circuito en la práctica. Hemos utilizado un transistor para activar un relé,
tal y como vimos en la explicación del transistor. Hemos sustituido el led por un relé. El transistor
sí que es capaz de entregar suficiente potencia para activar el relé. Veamos ahora cómo sería el
esquema de un circuito con relé y dado que queremos poder usarlo con relés de potencia,
necesitaremos un transistor para activar la entrada del relé. En el circuito aparece también un
diodo que actúa como protección de nuestra placa arduino.
Vamos a ver ahora este circuito en la práctica. Hemos utilizado un transistor para activar un relé,
tal y como vimos en la explicación del transistor.
Hemos sustituido el led por un relé. El transistor sí que es capaz de entregar suficiente potencia
para activar el relé.

El relé
Como hemos dicho un relé puede activar circuitos de corriente alterna o continua
Vamos a ver cómo usar un relé en corriente alterna como interruptor electrónico

2
Asociación Darwin Eventur
Relé domótica
Para activarlo basta con usar la instrucción
digitalWrite

Sobre la patilla al que lo hemos conectado


Un montaje más sencillo podía ser este sistema de riego que activa o no la bomba de riego
(representada por un motor a pilas)

Relé riego
3
Asociación Darwin Eventur
Con su correspondiente código
#define SERIAL_BAUD 9600 // Configuración de conexión serie

#define PIN_HUMEDAD_SUELO A1
#define PIN_POTENCIOMETRO A0

#define PIN_RELE 10

#define ESPERA 1000

void setup() {
Serial.begin(SERIAL_BAUD);
pinMode(PIN_RELE,OUTPUT);
}

void loop() {

int iHumedad=1023-analogRead(PIN_HUMEDAD_SUELO);
int iPotenciometro=analogRead(PIN_POTENCIOMETRO);

Serial.print("Potenciometro:");
Serial.print(iPotenciometro);
Serial.print(" Humedad:");
Serial.println(iHumedad);

if(iPotenciometro>iHumedad){
enciendeRiego();
}else{
apagaRiego();
}
delay(ESPERA);
}

void enciendeRiego(){
digitalWrite(PIN_RELE,HIGH);
Serial.println("Riego encendido");
}

void apagaRiego(){
digitalWrite(PIN_RELE,LOW);
Serial.println("Riego apagado");
}

En este vídeo vamos a ver cómo trabajar con un relé

Motores
Existen diferentes tipos de motores según queramos velocidad o precisión de movimiento. Cada
uno de estos tipos tiene sus características y se controla de diferente manera.
En este vídeo vamos a ver también un resumen de los diferentes tipos de motores disponibles

4
Asociación Darwin Eventur
Para controlarlos se suelen usar módulos o shields. Veamos algunos de ellos y cómo usarlos en
este vídeo

Motores de corriente continua (CC)


Son los típicos motores que suelen venir en los juguetes y que se alimentan con corriente
continua. Tienen la característica que si se les da más potencia (más voltaje o un % de PWM
mayor) giran más deprisa.
Para controlarlos se suele usar un driver de tipo L298 o L293
Veamos cómo se hace con el L298, capaz de controlar 2 motores, aunque nosotros en el esquema
solo usamos 1

Motor_L298_bb
Para controlarlo usaremos los pines IN3 y IN4 con los controlaremos la dirección de giro del
motor y el EnB que nos permitirá controlar la velocidad.
Este sería el código
// Variables globales

const int EnB=6;


const int In3=9;
const int In4=8;

// Valores de velocidad máxima y mínima


const int Max_Speed=255;
5
Asociación Darwin Eventur
const int Min_Speed=0;

void setup() {
pinMode(In3,OUTPUT); // Establecemos los pines In3 e In4 como salida
pinMode(In4,OUTPUT);
}
// Establece la velocidad con el valor del PWM del pin EnB
void setSpeed(int speed){
analogWrite(EnB,speed);
}

// Arrancamos a máxima velocidad


void start(){
analogWrite(EnB,Max_Speed);
}

// Paramos el motor
void stop(){
analogWrite(EnB,Min_Speed);
}

// El motor gira en sentido horario


void clockWise(){
digitalWrite(In3,HIGH);
digitalWrite(In4,LOW);
}

// El motor gira en sentido antihorario


void antiClockWise(){
digitalWrite(In3,LOW);
digitalWrite(In4,HIGH);
}

void loop() {
clockWise();
// Vamos aumentando la velocidad
for(int i=0;i<=255;i+=5){
setSpeed(i);
delay(200);
}
stop();
delay(1000);
antiClockWise();
// Vamos aumentando la velocidad
for(int i=0;i<=255;i+=5){
setSpeed(i);
delay(200);
}
stop();
delay(1000);
}
6
Asociación Darwin Eventur
Motores paso a paso (steppers)
En este vídeo hablamos de los motores paso a paso o Steppers
Son muchas las librerías que existen para ayudarnos a manejar los motores paso a paso Enlaces
a librerías * Stepper * AFMotor * AccellStepper , con unas característica como que permite
acelerar (ahorrando consumo) y funcionamiento asíncrono
Un problema que nos encontramos a veces es que no conocemos la estructura interna y el
cableado de un motor paso a paso. Veamos un vídeo sobre cómo averiguar la estructura interna
de un motor paso a paso
Veamos un ejemplo de control de un stepper

stepper
Para hacerlo girar podríamos usar una secuencia adecuada de digitalWrites (como hacen en este
ejemplo)
O podemos usar la librería Stepper
#include <Stepper.h>

int in1Pin =11;


int in2Pin =10;
int in3Pin =9;
int in4Pin =8;

Stepper motor(512, in1Pin, in2Pin, in3Pin, in4Pin);


void setup()
{
pinMode(in1Pin, OUTPUT);
7
Asociación Darwin Eventur
pinMode(in2Pin, OUTPUT);
pinMode(in3Pin, OUTPUT);
pinMode(in4Pin, OUTPUT);

Serial.begin(9600);
motor.setSpeed(20);
}

void loop()
{
if(Serial.available())
{
int steps =Serial.parseInt();
motor.step(steps);
}
}

O controlar su velocidad con un potenciómetro


#include <Stepper.h>

#define STEPS 512

Stepper stepper(STEPS, 8, 10, 9, 11);

int Pval = 0;
int potVal = 0;

void setup() {
Serial.begin(9600);
stepper.setSpeed(200);
}

void loop() {

potVal = map(analogRead(A0),0,1024,0,500);
if (potVal>Pval)
stepper.step(5);
if (potVal<Pval)
stepper.step(-5);

Pval = potVal;

Serial.println(Pval); //for debugging


}

Referencia
En este enlace se habla sobre motores paso a paso o steppers.
Control de un stepper barato
Sobre motores

8
Asociación Darwin Eventur

También podría gustarte