SIK Experiment Guide for the Arduino 101/Genuino 101 Board (Spanish)
This Tutorial is Retired!
This tutorial covers concepts or technologies that are no longer current. It's still here for you to read and enjoy, but may not be as useful as our newest tutorials.
Experimento 12: Usar el controlador del motor
Introducción
En el experimento anterior, tuvo que trabajar con un servomotor. Ahora, vamos a utilizar un motor giratorio. Esto requiere el uso de un transistor, que puede gestionar más cantidad de corriente que la placa 101. Utilizará el transistor para encender y apagar un motor, es decir, será un motor intermitente.
Elementos necesarios
Necesitará los siguientes elementos:
- 1 placa de pruebas
- 1 placa Arduino 101 o Genuino 101
- 1 motor reductor 48:1
- 1 resistencia de 100 Ω
- 1 transistor NPN
- 1 diodo 1N4148
- 7 cables puente
¿No tiene el SIK?
Si está realizando este experimento y no dispone del SIK, le sugerimos que use estos elementos:
También necesitará una placa Arduino 101 O Genuino 101.
Lectura sugerida
Antes de continuar con este experimento, le recomendamos que se familiarice con los conceptos en los siguientes tutoriales:
Presentación del transistor
El transistor se puede describir como un pequeño interruptor electrónico. Le permite controlar grandes cargas de corriente con una corriente menor sin el riesgo de fundir los componentes sensibles. Un transistor tiene tres pines: un colector, un emisor y una base. En el transistor la corriente solo puede fluir en una dirección: entra a través del colector y sale por el emisor. Para controlar el flujo de la corriente, usted aplica una pequeña corriente a la base. Esta pequeña corriente puede ser digital (encendido o apagado) o analógica (mediante PWM y la función analogWrite()). La corriente mayor reflejará lo que hace la corriente más pequeña.
Conexión del hardware
¿Está preparado para comenzar a conectar todo? Consulte el diagrama de cableado siguiente para ver cómo está conectado todo.
Componentes polarizados | Preste especial atención a las marcas de los componentes que indican cómo colocarlo en la placa de pruebas. Los componentes polarizados solo se pueden conectar a un circuito en una sola dirección. |
Tenga en cuenta lo siguiente: Cuando esté desarrollando el circuito, tenga cuidado de no mezclar el transistor y el sensor de temperatura ya que son prácticamente idénticos. Busque "P2N2222A" en el cuerpo del transistor.
Diagrama de cableado del experimento
¿Qué es un diodo Flyback?
Cuando el motor giratorio de repente se apaga, el campo magnético en su interior se colapsa, lo que genera un pico de tensión. Esto puede dañar el transistor. Para evitar esto, utilizamos un "diodo Flyback", que desvía el pico de tensión "alrededor" del transistor. Conecte el lado del diodo con la banda (cátodo) a una alimentación de 5 V. Conecte el otro extremo del diodo (ánodo) al cable negro en el motor.
Abrir el boceto
Abra el software IDE de Arduino en su ordenador. La codificación en el lenguaje de Arduino controla el circuito. Abra el código del circuito 11; para ello, acceda a "101 SIK Guide Code" (Guía de códigos de SIK 101) que ha descargado y guardado en la carpeta "Examples" (Ejemplos) anteriormente.
Para abrir el código vaya a: File > Examples > 101 SIK Guide Code > Circuit_11 (Archivo > Ejemplos > Guía de códigos de SIK 101 > Circuito_11)
También puede copiar y pegar el siguiente código en el IDE de Arduino. Cárguelo y vea qué es lo que ocurre.
language:cpp
/*
SparkFun Inventor's Kit
Example sketch 11
SPINNING A MOTOR
Use a transistor to spin a motor at different speeds.
This sketch was written by SparkFun Electronics,
with lots of help from the Arduino community.
This code is completely free for any use.
Visit http://learn.sparkfun.com/products/2 for SIK information.
Visit http://www.arduino.cc to learn more about Arduino.
*/
// constant pin for the transistor connected to the motor
const int motorPin = 9;
void setup()
{
//set motorPin as OUTPUT
pinMode(motorPin, OUTPUT);
}
void loop()
{
// Here we've used comments to disable some of the examples.
// To try different things, uncomment one of the following lines
// and comment the other ones. See the functions below to learn
// what they do and how they work.
motorOnThenOff();
// motorOnThenOffWithSpeed();
// motorAcceleration();
}
// This function turns the motor on and off like the blinking LED.
// Try different values to affect the timing.
void motorOnThenOff()
{
// milliseconds to turn the motor on
int onTime = 3000;
// milliseconds to turn the motor off
int offTime = 3000;
// turn the motor on (full speed)
digitalWrite(motorPin, HIGH);
// delay for onTime milliseconds
delay(onTime);
// turn the motor off
digitalWrite(motorPin, LOW);
// delay for offTime milliseconds
delay(offTime);
}
// This function alternates between two speeds.
// Try different values to affect the timing and speed.
void motorOnThenOffWithSpeed()
{
// between 0 (stopped) and 255 (full speed)
int Speed1 = 200;
// milliseconds for speed 1
int Time1 = 3000;
// between 0 (stopped) and 255 (full speed)
int Speed2 = 50;
// milliseconds to turn the motor off
int Time2 = 3000;
// turns the motor On
analogWrite(motorPin, Speed1);
// delay for onTime milliseconds
delay(Time1);
// turns the motor Off
analogWrite(motorPin, Speed2);
// delay for offTime milliseconds
delay(Time2);
}
// This function slowly accelerates the motor to full speed,
// then back down to zero.
void motorAcceleration()
{
// milliseconds between each speed step
int speed;
int delayTime = 20;
// accelerate the motor
for(speed = 0; speed <= 255; speed++)
{
// set the new speed
analogWrite(motorPin,speed);
// delay between speed steps
delay(delayTime);
}
// decelerate the motor
for(speed = 255; speed >= 0; speed--)
{
// set the new speed
analogWrite(motorPin,speed);
// delay between speed steps
delay(delayTime);
}
}
Lo que debería ver
El motor CC debería girar si se han montado los componentes del circuito correctamente y si ha verificado y cargado el código correcto. Si el circuito no funciona, consulte la sección Solución de problemas.
Solución de problemas
El motor no gira
Si utiliza su propio transistor, vuelva a comprobar con la hoja de datos que la distribución de pines es compatible con el transistor que está utilizando (muchos están invertidos).
Todavía sigue sin funcionar
Si utiliza su propio motor, vuelva a comprobar que funciona con 5 voltios y que no consume demasiada energía.
Sigue sin funcionar
A veces la placa Arduino se desconecta del ordenador. Intente desenchufarla y volver a enchufarla en el puerto USB.