3 Servomotores Keypad
October 30, 2020 | Author: Anonymous | Category: N/A
Short Description
Download 3 Servomotores Keypad...
Description
TALL ALLER ER DE ARDU ARDUINO INO BÁSICO SERVOMOTORES Carlos Pérez www.TecBolivia.com
MOTORES
Los motores son actuadores que transforman la electricidad en movimiento movimiento..
Existen tres tipos principales de motores que trabajan en en corriente contínua: •
•
•
Motores DC (2 cables) Motores Paso a paso o “de pasos” (3 cables)
Servomotores (4 cables)
© 2014 RAÚL ÁLVAREZ ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
MOTORES
Los motores son actuadores que transforman la electricidad en movimiento movimiento..
Existen tres tipos principales de motores que trabajan en en corriente contínua: •
•
•
Motores DC (2 cables) Motores Paso a paso o “de pasos” (3 cables)
Servomotores (4 cables)
© 2014 RAÚL ÁLVAREZ ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
SERVOMOTORES Básicamente son motores DC con una placa de control. Capacidad de ubicarse y mantenerse estable en cualquier posición dentro de su rango de operación Rango de operación normalmente es menor a 360º
© 2014 RAÚL ÁLVAREZ ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
SERVOMOTORES
Tienen un torque muy fuerte.
Puede trabajar más allá de los 360º, en este caso se controla la velocidad.
Los que trabajan en más de 360º no tienen control de posición.
© 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
SERVOMOTORES ESTRUCTURA INTERNA
Un servomotor se compone de: •
•
•
•
© 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
Motor DC: alta velocidad bajo torque Caja reductora: juego de engranajes, reduce la velocidad y aumenta el torque Potenciómetro: alineado con el eje del motor para el control de la posición. Tarjeta controladora: con los datos del potenciómetro mueve el motor DC
SERVOMOTORES CABLE DE CONEXIÓN Los servomotores tienen tres cables: alimentación, tierra, y señal. Cables de Alimentación:
•
La tensión de alimentación puede variar de 4 a 8 voltios (dependiendo del servo), varía velocidad y torque.
© 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
SERVOMOTORES FUNCIONAMIENTO
Cable de Señal: •
•
La posición del motor se define por el ancho de pulso de una señal PWM. Los servomotores de rotación continua utilizan la señal PWM para variar la velocidad de rotación
© 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
LIBRERÍAS Una librería es un programa que contiene funciones las cuales pueden ser utilizadas por otros programas para su utilización. Para llamar a una librería, se coloca al inicio del Sketch la palabra de invocación seguido del nombre de la librería:
#include
Un objeto es una variable que contiene todas las especificaciones de la librería, algunas librerías requieren que sean creadas: Servo nombre_servo;
© 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
LIBRERÍA SERVO
El Arduino UNO deshabilita la función analogWrite() en los puertos 9 y 10.
Los servos consumen energía de manera considerable, se recomienda el uso de fuentes externas alimentando directamente los cables de alimentación de los servos.
© 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
LIBRERÍA SERVO
attach(): Asocia la variable servo a un pin •
nombre_servo.attach(pin)
•
nombre_servo.attach(pin, min, 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_servo.detach(pin)
© 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
LIBRERÍA SERVO
write(): Ajusta el eje al ángulo deseado •
read(): Lee el ángulo Actual del servo •
nombre_servo.write(ángulo)
nombre_servo.read()
attached(): Devuelve TRUE si la variable servo está asociada a un pin •
nombre_servo.attached()
© 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
CIRCUITO SWEEP
© 2011 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
SWEEP #include
// Llamada a la librería Servo
Servo myservo;
// Creación del objeto tipo Servo
int pos = 0;
// Variable donde se guarda la // posición del servo
void setup() { myservo.attach(9);
// Se asocia el servo al pin 9 (PWM)
} © 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
SWEEP void loop() { // Se hace el recorrido total en ambas direcciones for(pos = 0; pos < 180; pos += 1){ myservo.write(pos); delay(15);
// Retardo de 15 ms para el movimiento del motor
} for(pos = 180; pos>=1; pos-=1){ myservo.write(pos); delay(15); } } © 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
CIRCUITO KNOB
© 2011 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
KNOB #include
Servo myservo; int potpin = 0;
// Pin del potenciómetro
int val;
// Variable lectura potenciómetro
void setup(){ myservo.attach(9); } © 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
KNOB void loop() { val = analogRead(potpin);
// Lectura potenciómetro
// Mapeo a rango de 0º a 180º val = map(val, 0, 1023, 0, 179); myservo.write(val);
// Mover servo
delay(15);
// Retardo movimiento
}
© 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
TALLER DE ARDUINO BÁSICO PREGUNTAS © 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
TECLADO MATRICIAL
Su disposición en forma de matriz facilita el uso de cada tecla.
La cantidad de pines depende del número de filas y columnas.
© 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
TECLADO MATRICIAL 3X4 & 4X4
© 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
LIBRERÍA KEYPAD La librería keypad se puede descargar del siguiente enlace: playground.arduino.cc/code/Keypad La carpeta de la librería debe ser instalada en la dirección donde se instaló el IDE de Arduino: ..\Arduino\libraries\
© 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
ARRAY Un array (arreglo) es una colección de variables que se almacenan en posiciones sucesivas, determinadas por índices numéricos. Para la creación de un arreglo se usa la siguiente expresión:
tipo_elemento nombre_array[numero_elementos]; © 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
ARRAY Puede obviarse el número de elementos. Pueden ser definidos de las siguientes maneras:
int numeros[5] = {0,1,2,3,4}; int numeros[] = {2,1,0}; int numeros[8];
© 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
ARRAY Las posiciones de un array empiezan en cero. Es decir que la última posición es el tamaño del array menos uno. Para acceder a un elemento de la matriz sólo hay que indicar la posición del elemento:
char letras[4] = {'a','b','c','d'};
letras[3] = {'d'}; © 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
MATRIZ Se puede crear arrays de más dimensiones (matrices). En una matriz cuadrada es un array en otro array donde se declara primero la fila luego la columna:
char letras[2][3] = {{'a','b','c'}, {'d','e','f'}};
El acceso a la matriz es el mismo que el acceso al array.
© 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
OBJETO KEYPAD const byte ROWS = 4;
// Número de filas
const byte COLS = 4;
// Número de columnas
char hexaKeys[ROWS][COLS] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; byte rowPins[ROWS] = {9, 8, 7, 6};
// 1ra 2da 3ra 4ta filas
byte colPins[COLS] = {5, 4, 3, 2};
// 1ra 2da 3ra 4ta columnas
Keypad customKeypad = Keypad(makeKeymap(hexaKeys),rowPins,colPins,ROWS,COLS); © 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
LIBRERÍA KEYPAD char getKey():
•
Devuelve el valor tipo caracter de la tecla presionada, definida en la matriz del objeto de tipo keypad
© 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
CIRCUITO KEYPAD
© 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
CUSTOM KEYPAD #include int num;
// Variable para guardar el caracter convertido en número entero
const byte ROWS = 4;
// Número de filas
const byte COLS = 3;
// Número de columnas
char hexaKeys[ROWS][COLS] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; byte rowPins[ROWS] = {8, 7, 6, 5}; byte colPins[COLS] = {4, 3, 2};
// Pines de entrada filas // Pines de entrada columnas
Keypad customKeypad = Keypad(makeKeymap(hexaKeys),rowPins,colPins,ROWS,COLS); © 2014 RAÚL ÁLVAREZ TORRICO - WWW.TECBOLIVIA.COM
View more...
Comments