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.

Pages
Contributors: D___Run___
Favorited Favorite 0

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:

Breadboard - Self-Adhesive (White)

Breadboard - Self-Adhesive (White)

PRT-12002
$5.50
48
Hobby Gearmotor - 140 RPM (Pair)

Hobby Gearmotor - 140 RPM (Pair)

ROB-13302
$5.50
6
Jumper Wires - Connected 6" (M/M, 20 pack)

Jumper Wires - Connected 6" (M/M, 20 pack)

PRT-12795
$2.10
2
Transistor - NPN, 50V 800mA (BC337)

Transistor - NPN, 50V 800mA (BC337)

COM-13689
$0.55

Zener Diode - 5.1V 1W

COM-10301
Retired

Resistor 100 Ohm 1/4th Watt PTH - 20 pack

COM-13761
Retired

También necesitará una placa Arduino 101 O Genuino 101.

Arduino 101

DEV-13787
9 Retired

Genuino 101

DEV-13984
Retired

Lectura sugerida

Antes de continuar con este experimento, le recomendamos que se familiarice con los conceptos en los siguientes tutoriales:

Presentación del transistor

texto alternativo

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.

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

texto alternativo

¿Tiene dificultades para ver el circuito? Haga clic en el diagrama de cableado para verlo más de cerca.

¿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.

texto alternativo

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.