Curso Taller Arduino (Parte 5).pdf

download Curso Taller Arduino (Parte 5).pdf

of 49

Transcript of Curso Taller Arduino (Parte 5).pdf

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    1/49

    CURSO TALLERARDUINO BÁSICO

    Carlos Pérez

    www.TecBolivia.com

    viernes, 26 de Febrero de 2016© 2016 WWW.TECBOLIVIA.COM 1

    http://www.tecbolivia.com/http://www.tecbolivia.com/

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    2/49

    MOTORESCurso Taller Arduino Básico© 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 2

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    3/49

    MOTOR DC

    Es el motor mas simple queexiste.

    El funcionamiento se basaen la interacción de camposmagnéticos (imanes).

    El movimiento del motor seproduce cuando existe unafuerza de repulsión por lainteracción de polos iguales.

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 3

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    4/49

    PARTES DE UN MOTOR DC

    Estator: que es laparte fija del motor y

    generalmente tieneimanes permanentes.

    Rotor: que es la partemóvil del motor y

    tiene un electroimánconectado con lasterminales del motor

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 4

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    5/49

    MOTOR DC

    Los motores de este tipo sonconocidos por trabajar con

    escobillas. Las escobillas interactúan las

    terminales del motor (partes fijas),con el electroimán del rotor (parte

    móvil).

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 5

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    6/49

    MOTOR DC

    Cada escobilla entrará en contacto con una mitad delelectroimán generando dos campos magnéticos iguales pero

    contrarios.

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 6

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    7/49

    MOTOR DC

    Aumentando la señal decorriente se aumenta el campo

    magnético, aumentando lavelocidad del motor.

    Invirtiendo la señal de corriente,se invierten los camposmagnéticos, invirtiendo la fuerza

    de repulsión, invirtiendo elsentido de giro.

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 7

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    8/49

    MOTOR DC

    Para aumentar la fuerza de un motor DC se utiliza unsistema de engranajes reductores.

    Un sistema reductor une un engranaje pequeño a unogrande para reducir la velocidad del sistema peroaumentando su fuerza.

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 8

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    9/49

    MOTOR DC

    Motor de doble eje

    Relación de reducción: 1: 48

    Voltaje de funcionamiento: 3V ~ 6V Consumo de Corriente sin carga:

    • 200mA @ 6V

    • 150mA @ 3V

    Velocidad sin carga:

    • 200 ± 10% RPM @ 6V

    • 90 ± 10% RPM @ 3V

    © 2015 WWW.TECBOLIVIA.COM

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    10/49

    MOTOR DC – PUENTE H

    Un puente H dirige el sentido de la corriente en un motor.

    Existen diferentes Circuitos Integrados que cumplen conesta función, por ejemplo: L9110 y L298N.

    © 2016 WWW.TECBOLIVIA.COM

    Puente H Estados Básicos del Puente H

    viernes, 26 de Febrero de 2016 10

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    11/49

    MÓDULO CONTROLADOR DE MOTORES L9110

    Control de dos motores (A y B)

    Control mediante señales digitales.

    Señales PWM en lugar de estados HIGH paracontrolar la velocidad.

    © 2016 WWW.TECBOLIVIA.COM

    A-IA

    B-IA

    A-IB

    B-IBOperación

    LOW HIGH Giro derecha

    HIGH LOW Giro izquierda

    LOW LOW Motor Stop

    HIGH HIGH Motor Stop

    Motor A Motor B

    Alimentación Motor: 5-12V

    viernes, 26 de Febrero de 2016 11

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    12/49

    MÓDULO CONTROLADOR DE MOTORES L298N

    Trabaja de la misma maneraque el L9110

    © 2016 WWW.TECBOLIVIA.COM

    IN1

    IN3

    IN2

    IN4Operación

    LOW HIGH Giro derecha

    HIGH LOW Giro izquierda

    LOW LOW Motor Stop

    HIGH HIGH Motor Stop

    viernes, 26 de Febrero de 2016 12

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    13/49

    MÓDULO CONTROLADOR DE MOTORES L298N

    El pin habilitador permite utilizarsolo un puerto PWM para elmotor.

    Dos puertos hacen lacombinación de salidas.

    Un puerto (PWM) en elhabilitador (Enable) regula la

    velocidad.

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 13

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    14/49

    PREGUNTASCURSO TALLER ARDUINO BÁSICO

    viernes, 26 de Febrero de 2016© 2016 WWW.TECBOLIVIA.COM 14

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    15/49

    SERVOMOTORES

    Básicamente son motoresDC con una placa decontrol.

    Capacidad de ubicarse ymantenerse estable encualquier posición dentrode su rango de operación

    Rango de operaciónnormalmente es menor a360º

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 15

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    16/49

    SERVOMOTORES

    Tienen un torque muyfuerte.

    Puede trabajar más alláde los 360º, en estecaso se controla lavelocidad.

    Los que trabajan enmás de 360º no tienencontrol de posición.

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 16

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    17/49

    ESTRUCTURA INTERNA

    Un servomotor se compone de:

    • Motor DC: alta velocidad bajotorque

    • Caja reductora: juego de engranajes,reduce la velocidad y aumenta eltorque

    • Potenciómetro: alineado con el ejedel motor para el control de la

    posición.• Tarjeta controladora: con los datos

    del potenciómetro mueve el motorDC

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 17

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    18/49

    CABLE DE CONEXIÓN

    Los servomotorestienen tres cables:

    alimentación, tierra, yseñal.

    La tensión dealimentación puede

    variar de 4 a 8 voltios(dependiendo del servo),varía velocidad y torque.

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 18

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    19/49

    FUNCIONAMIENTO

    Cable de Señal:

    • La posición del motor

    se define por el anchode pulso de una señalPWM.

    • Los servomotores derotación continua utilizanla señal PWM para variarla velocidad de rotación

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 19

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    20/49

    LIBRERÍAS

    Una librería es un programa que contiene funciones lascuales pueden ser utilizadas por otros programas para suutilización.

    Para llamar a una librería, se coloca al inicio del Sketch lapalabra de invocación seguido del nombre de la librería:

    #i ncl ude

    Un objeto es una variable que contiene todas las

    especificaciones de la librería, algunas librerías requieren quesean creadas:

    Ser vo nombre_ser vo;

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 20

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    21/49

    LIBRERÍA SERVO

    El Arduino UNO deshabilita la función anal ogWr i t e( ) enlos puertos 9 y 10.

    Los servos consumen energía de manera considerable, serecomienda el uso de fuentes externas alimentandodirectamente los cables de alimentación de los servos.

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 21

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    22/49

    LIBRERÍA SERVO

    attach(): Asocia la variable servo a un pin

    • nombre_ser vo. attach( pi n)

    • nombre_ser vo. attach( pi n, mi n, max)

    min: ancho de pulso ángulo mínimo (544)

    max: ancho de pulso ángulo máximo (2400)

    detach(): Desasocia la variable servo de un pin• nombre_ser vo. det ach( pi n)

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 22

    http://arduino.cc/es/Reference/ServoAttach#.UynAgT95OSohttp://arduino.cc/es/Reference/ServoAttach#.UynAgT95OSohttp://arduino.cc/es/Reference/ServoDetach#.UynCxz95OSohttp://arduino.cc/es/Reference/ServoDetach#.UynCxz95OSohttp://arduino.cc/es/Reference/ServoDetach#.UynCxz95OSohttp://arduino.cc/es/Reference/ServoAttach#.UynAgT95OSo

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    23/49

    LIBRERÍA SERVO

    write(): Ajusta el eje al ángulo deseado

    • nombre_ser vo. wr i t e( ángul o)

    read(): Lee el ángulo Actual del servo

    • nombre_ser vo. r ead( )

    attached(): Devuelve TRUE si la variable servo está asociada

    a un pin• nombre_ser vo. at t ached( )

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 23

    http://arduino.cc/es/Reference/ServoWrite#.UynDlD95OSohttp://arduino.cc/es/Reference/ServoWrite#.UynDlD95OSohttp://arduino.cc/es/Reference/ServoRead#.UynEZD95OSohttp://arduino.cc/es/Reference/ServoRead#.UynEZD95OSohttp://arduino.cc/es/Reference/ServoAttached#.UynErz95OSohttp://arduino.cc/es/Reference/ServoAttached#.UynErz95OSohttp://arduino.cc/es/Reference/ServoAttached#.UynErz95OSohttp://arduino.cc/es/Reference/ServoRead#.UynEZD95OSohttp://arduino.cc/es/Reference/ServoWrite#.UynDlD95OSo

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    24/49

    CIRCUITO SWEEP

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 24

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    25/49

    SWEEP#i ncl ude

    Servo myser vo;

    i nt pos = 0;

    voi d setup( )

    {

    myser vo. attach(9) ;

    }

    / / Ll amada a l a l i br er í a Ser vo

    / / Cr eaci ón del obj et o t i po Ser vo

    / / Var i abl e donde se guar da l a

    / / posi ci ón del ser vo

    / / Se asoci a el ser vo al pi n 9 ( PWM)

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 25

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    26/49

    SWEEPvoi d loop( ) {

    / / Se hace el r ecor r i do t ot al en ambas di r ecci ones

    f or ( pos = 0; pos < 180; pos += 1) {

    myser vo. wr i t e( pos);

    del ay(15); / / Ret ardo de 15 ms par a el movi mi ent o del mot or

    }

    f or ( pos = 180; pos>=1; pos- =1) {

    myser vo. wr i t e( pos);

    del ay(15);

    }

    }

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 26

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    27/49

    CIRCUITO KNOB

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 27

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    28/49

    KNOB

    #i ncl ude

    Servo myser vo;i nt pot pi n = 0;

    i nt val ;

    voi d setup( ){myser vo. attach(9) ;

    }

    / / Pi n del pot enci ómet r o

    / / Var i abl e l ect ur a pot enci ómet r o

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 28

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    29/49

    KNOB

    voi d loop( )

    {

    val = anal ogRead( pot pi n) ; / / Lect ur a pot enci ómet r o/ / Mapeo a rango de 0º a 180º

    val = map( val , 0, 1023, 0, 180) ;

    myser vo. wr i t e( val ) ; / / Mover ser vo

    del ay(15); / / Ret ar do movi mi ent o}

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 29

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    30/49

    PREGUNTASCURSO TALLER ARDUINO BÁSICO

    viernes, 26 de Febrero de 2016© 2016 WWW.TECBOLIVIA.COM 30

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    31/49

    MOTOR PASO A PASO

    Convierte impulsos eléctricos en desplazamientos angularesdiscretos, lo que significa que es capaz de avanzar una serie

    de grados (paso) dependiendo de sus entradas de control

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 31

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    32/49

    MOTOR PASO A PASO

    El motor de paso de rotor de imán

    permanente: Permite mantener un par diferente de cero

    cuando el motor no está energizado. Dependiendo de laconstrucción del motor, es típicamente posible obtenerpasos angulares de 7.5, 11.25, 15, 18, 45 o 90°

    Este tipo de motor tiene cuatro bobinas que al ser

    energizadas atraen al eje haciendo mover el motor.

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 32

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    33/49

    TIPOS

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 33

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    34/49

    SECUENCIAS

    Paso simple

    Esta secuencia consiste

    en activar cada bobinauna a una y porseparado, con estasecuencia de encendidode bobinas no se obtienemucha fuerza ya que soloes una bobina cada vez laque arrastra y sujeta elrotor del eje del motor

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 34

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    35/49

    SECUENCIAS Paso doble

    En paso doble se activanlas bobinas de dos en dos

    con lo que se hace uncampo magnético máspotente que atraerá conmás fuerza y retendrá elrotor del motor en el sitio.Los son algo bruscosdebido a que la acción delcampo magnético es máspoderosa que en lasecuencia de paso sencillo

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 35

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    36/49

    SECUENCIAS Medio paso

    Este se logracombinando dostipos de secuencias esdecir el paso sencilloy el doble paso y asíse puede hacer moverel motor en pasosmás pequeños yprecisos de estamanera se tiene el

    doble de pasos demovimiento para elrecorrido total de360º del motor.

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 36

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    37/49

    PLACA MÓDULO PARA MOTORES PASO A PASO

    (ULN2003)

    Las terminales del motor requieren pasar por una etapa deconversión para conectarse con la placa Arduino, existen

    varios circuitos que pueden hacer ese trabajo

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 37

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    38/49

    MOTOR PASO A PASO 5V 28BYJ-48

    viernes, 26 de Febrero de 2016© 2016 WWW.TECBOLIVIA.COM 38

    Para una vuelta completacon solo una bobina

    activada a la vez senecesitan 32 pasos.

    Para una vuelta completacon dos bobinas activadas ala vez se necesitan 64pasos.

    Relación de reducción: 1: 48

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    39/49

    MOTOR PASO A PASO 5V 28BYJ-48

    Con la relación de reducción se multiplica por 64 la cantidadde pasos para dar una vuelta completa en el eje final.

    viernes, 26 de Febrero de 2016© 2016 WWW.TECBOLIVIA.COM 39

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    40/49

    MOTOR PASO A PASO 5V 28BYJ-48 Para conocer el ángulo de paso se divide el recorrido de un giro

    completo (360º) entre la cantidad total de pasos por ciclo delmotor:

    360°64 ∗ 32  

    = 0,17578125° /

    Para conocer la cantidad de pasos que se necesitan para unángulo en específico se divide el ángulo deseado entre el ángulode paso, por ejemplo para 135º:

    135°

    0,17578125°/= 768  

    viernes, 26 de Febrero de 2016© 2016 WWW.TECBOLIVIA.COM 40

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    41/49

    PREGUNTASCURSO TALLER ARDUINO BÁSICO

    viernes, 26 de Febrero de 2016© 2016 WWW.TECBOLIVIA.COM 41

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    42/49

    ARDUINO SHIELD DRIVER / CONTROL /

    EXPANSIÓN PARA MOTORES L293D

    Tiene dos conexiones deexpansión de los pines 9 y 10del Arduino para el control de

    servomotores. Puede controlar 4 motores

    DC o 2 motores paso a paso.

    La librería AFMotor debe

    descargarse de la siguientepágina web:

    www.ladyada.net/make/mshield

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 42

    http://www.ladyada.net/make/mshieldhttp://www.ladyada.net/make/mshield

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    43/49

    CONEXIÓN MOTOR DC

    viernes, 26 de Febrero de 2016© 2016 WWW.TECBOLIVIA.COM 43

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    44/49

    CONEXIÓN MOTOR PASO A PASO

    viernes, 26 de Febrero de 2016© 2016 WWW.TECBOLIVIA.COM 44

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    45/49

    LIBRERÍA AFMOTOR PARA MOTOR DC

    AF_DCMotor nombre_obj(motor#, frequencia): Creael objeto tipo Motor DC

    • motor: puerto del motor 1, 2, 3, ó 4• frecuencia:

    Para motores 1 y 2: MOTOR12_64KHZ, MOTOR12_8KHZ,MOTOR12_2KHZ, MOTOR12_1KHZ.

    Para motores 3 y 4 solo funciona MOTOR12_1KHZ

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 45

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    46/49

    LIBRERÍA AFMOTOR PARA MOTOR DC

    setSpeed(speed): determina la velocidad del motor 0 paramotor detenido, 255 para la máxima velocidad del motor

    run(direction): determina la dirección del motor:• FORWARD: Sentido Horario

    • BACKWARD: Sentido Antihorario

    RELEASE: Detenido

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 46

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    47/49

    LIBRERÍA AFMOTOR PARA MOTOR PASO A PASO

    AF_Stepper nombre_obj(steps, stepper#): Crea elobjeto tipo Motor Stepper

    • steps: número de pasos• stepper#: puerto del motor 1, 2

    setSpeed(rpm):Velocidad del motor

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 47

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    48/49

    LIBRERÍA AFMOTOR PARA MOTOR PASO A PASO step(#steps, direction, steptype)

    #steps: número de pasos

    direction• FORWARD

    • BACKWARD

    steptype:• SINGLE

    • DOUBLE• INTERLEAVE

    • MICROSTEP

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 48

  • 8/15/2019 Curso Taller Arduino (Parte 5).pdf

    49/49

    NOTA Los materiales gráficos distribuidos en el Curso de Robótica Educativa

    son para uso exclusivo de los alumnos, queda terminantementeprohibido copiar el material a terceros o publicarlos por cualquier

    medio visual incluyendo la Internet. Queda también terminantementeprohibido el uso de los materiales en otros cursos y talleres norelacionados con TecBolivia.com bajo pena de no ser aceptadosnuevamente en futuros talleres y cursos organizados por TecBolivia.com

    © 2016 WWW.TECBOLIVIA.COM viernes, 26 de Febrero de 2016 49