señor humberto alabo lo que usted. hace dando clases ocupando su tiempo para compartir sus conosimientos usred explica muy bien.me llamo eduardo hernandez me suscribi por que deseo aprender un poco mas yo estudie electricidad en mexico por desgracia perdi mis 2 pies y no puedo ayudarlo con alguna donacion porque de momento no trabajo por eso trato de aprender algo mas para poder sobrevivir .que dios lo bendiga y lo premie por lo que hace
Bello diagrama esquemático y buena explicación de los Servo motores en el eje de coordenadas, para el control de pines, me gustó mucho y te felicito, mereces un gran beso!
EL CÓDIGO #include Servo servoMotor0bjX; // Creams un objeto de clase servo para objeto Servo servoMotor0bjY; Servo servoMotor0bjZ; int const servoMotorX = 3; int const servoMotorY = 5; int const servoMotorZ = 6; int joystickX = 0;// creamos variables para almacenar la posicion int joystickY = 0; int joystickZ = 0; int eixoX = A0; // Asignamos el pin analogico A0 a la variable del Eje X int eixoY = A1; // asignamos el ping analogico A0 a la bariable del eje Y int eixoZ = 2; // Asignamos el ping Digital 2 a la variable del eje Z void setup() { servoMotor0bjX.attach(servoMotorX); // asociamos los pines digital PWN a los objetos servo servoMotor0bjY.attach(servoMotorY); servoMotor0bjZ.attach(servoMotorZ); pinMode(eixoZ, INPUT); // DEFINIMOS eixoz como un pin de entrada
servoMotor0bjX.write(90); // ubicamos su posición del motor servoMotor0bjY.write(90); servoMotor0bjY.write(180); Serial.begin(9600); //activamos el monitor serial para mostrar el funcionamiento } void loop() { joystickX = analogRead(eixoX); // lee el valor de eixoX y lo almacena joystickY = analogRead(eixoY); joystickZ = digitalRead(eixoZ);
void imprimeEixo(); joystickX = map(joystickX, 0, 1023, 0, 180); // Mapea el valor leido del joystick de 0 a 1023 joystickY = map(joystickY, 0, 1023, 0, 180);// lo asigna al movimiento del servo de 0 a 180 grados joystickZ = map(joystickZ, 0, 1, 0, 180); //Mapea el valor del joystick a un valor digital servoMotor0bjX.write(joystickX); // definamos el valor de la posicion del servo motor servoMotor0bjY.write(joystickY); servoMotor0bjZ.write(joystickZ);
delay(40); // esperamos 40milisegundos para darle estabilidad a los servo motores }
Que te voy a decir Higinio. Si se pudiera no te pondría un dedo arriba, sino los veinte. Muchas gracias por tus excelentes explicaciones. Tienes a un incondicional. El próximo mes sorpresa. Un fuerte abrazo.
Le agradezco mucho su respuesta, ya aprendí con su video como interpretar las placas de conexión , ahora, mi pregunta, si quisiera controlar no uno sino dos servos simultáneamente, tendría que cambiar el código o podría utilizar el mismo? me refiero a controlar 2 con el eje X, dos con el eje Y, y uno solo con push de joystick
@@HumbertoHiginio pero, si los servos se controlan por pulsos, no importaria que estuvieran conectados 2 o mas a la pata del arduino donde recibe el pulso, mientras la alimentacion sea independiente? gracias.
soy novato en el tema me parecio interesante y desidi realizarlo pero tengo un problema y espero que me ayude. el servomotor de las x funciona normal, el eje de las y al accionarlo se accionan los dos ser
Ante todo agradecerte siempre estoy pendiente de sus videos, quisiera saber como con los mismos principios controlar Nema17, que pueda inverti el giro y que avance a pasos. Gracias
Hola profesor he visto muchos videos suyos con arduino, pero creo q falta el de la multifunction shield, espero q en algun momento podamos ver uno, yo tengo una pero ni modo solo lo compre sin saber nada jajaja, en fin un saludo cordial desde chile, gracias humberto
Hola a todos en el minuto 6.15 el profesor dice que usa resistencia de 220 ohm ó 1k para el eje Z... me podrían confirmar eso, lo agradecere me funcionan bien los ejes x e y y me falta solo el clic para que mi ojo pueda pestañear
Hola, puede ser suficiente con un cargador de 9v y 3A ? o arduino se quemaría ya que los servos jalarían mucho Amperios haciendo circular desde el cargador pasando por arduino hasta los motores o Arduino es tan inteligente para administrar en ese caso pocos amperios con tal de no quemarse gracias por su respuesta
Hola tengo un problema, me aparece el error del la llave "{" la puse a principio y al final pero a un así no funciona y si las quito tampoco, que debo hacer?
Hola profe: tengo 2 preguntas para hacerle. 1- esa resistencia en pull up, no se podia haber reemplazado por la instruccion en arduino de input_pullup? entiendo q todos los puertos (nose bien los analogicos) ya cuentan con una resistencia en pull up y con esa instruccion se activa la misma. Y 2: entre el min 14 y 15 cuando declara la posicion inicial, en la 3º linea repitio lo de la linea 2, nose si me explico, es como q la posicion final de servoMotorObjY.write (90) termina siendo de 180 (por la repeticion de abajo) y no puso la del servoMotorObjZ, x lo q no lo vi reflejado en la practica ya q antes de empezar la prueba estaba bien en los 90º, y no en los 180, como fue posible eso?
El pin 2 está conectado al pull up el cual no es pwm por eso uso una resistencia, pero si conectas el pull up a un pin pwm se puede remplazar por la resistencia
La segunda pregunta: creo que aunque le pongas 180 funciona como un 1 digital seguro se equivoco pero al ponerle un número positivo ( 180) funciona como un 1 digital por eso en pantalla mostraba un 1 en eje z
Si estas usando el codigo tal cual y todo esta bien y te compila entonce debes revisar las conexiones asi como descartar los servomotores si tiene algunos problemas.
Hola en el minuto 14:37 cuando indica la posición inicial, donde dice servoMotorObjY.write(180); no debería decir servoMotorObjZ.write(180) ? Me funcionan bien los servos Y, X, pero el Z se mueve 180° constantemente hasta que presiono el boton y se queda quieto. Alguien me podria ayudar no se donde está el problema. Gracias
gracias por tu conocimiento, ojala me puedas ayudar, cuando das hacia un lado del jostick dijéramos que es positivo (el servo gira hacia la derecha) cuando lo sueltas regresa a su posición inicial, yo no quiero que regrese, necesito que se quede donde esta hasta que presione el lado contrario, si lo suelto quiero que permanezca en esa posición espero me puedas ayuda y me hayas entendido GRACIAS!
Revisa mis videos acerca de los Motor Drivers en donde explico como hacer giros avances adelante atras, etc con eso puedes programar el movimiento que desees en funcion al camino.
no he visto ni un solo video explicando como programar un servo de 360°!! tengo un servo de 360 pero viendo videos en youtube solo pude programarlo como si fuese de 180!! alguien ayudeme plss :(
Un servo solo se mueve hasta 180 grados para que se mueva a 360 grados debes hacer un Hacking es decir modificarlo para que tenga rotacion continua y se convierta en un motor convencional pero con mas torque.
//incluindo biblioteca para controle do servomotor #include "Servo.h"
//Criando um objeto da classe Servo Servo servoMotorObjX; Servo servoMotorObjY; Servo servoMotorObjZ;
//pino digital (PWM) associado ao controle do servomotor int const servoMotorX = 3; int const servoMotorY = 5; int const servoMotorZ = 6;
//Variável que armazena a posição lida //nos eixos do joystick int joystickX = 0; int joystickY = 0; int joystickZ = 0;
//Atribuindo o pino analógico A0 a variável eixoX int eixoX = A0;
//Atribuindo o pino analógico A1 a variável eixoY int eixoY = A1;
//Atribuindo o pino digital 2 a variável eixoZ int eixoZ = 2;
void setup() { //associando o pino digital de controle do //servo ao objeto da classe Servo servoMotorObjX.attach(servoMotorX); servoMotorObjY.attach(servoMotorY); servoMotorObjZ.attach(servoMotorZ);
//Definindo eixoZ como um pino de entrada pinMode(eixoZ, INPUT);
//Ativando o Serial Monitor que exibirá os //valores lidos no Joystick Serial.begin(9600); }
void loop() { //Lê o valor do eixoX joystickX = analogRead(eixoX);
//Lê o valor do eixoY joystickY = analogRead(eixoY);
//Lê o valor do eixoZ joystickZ = digitalRead(eixoZ);
imprimeEixos();
//mapeando o valor lido no joystick para a escala do //servo (entre 0 e 180) joystickX = map(joystickX, 0, 1023, 0, 180); joystickY = map(joystickY, 0, 1023, 0, 180); joystickZ = map(joystickZ, 0, 1, 0, 180);
//definindo o valor/posição do servomotor servoMotorObjX.write(joystickX); servoMotorObjY.write(joystickY); servoMotorObjZ.write(joystickZ);
//espera 20 milisegundos. delay(20); }
//Este método é responsável apenas por imprimir no //Serial Monitor os valores dos eixos X, Y e Z. void imprimeEixos() { //imprime o valor do eixoX Serial.print(" X="); Serial.print(joystickX);
//imprime o valor do eixoY Serial.print(" Y="); Serial.print(joystickY);
//imprime o valor do eixoZ Serial.print(" Z="); Serial.println(joystickZ); }
señor humberto alabo lo que usted. hace dando clases ocupando su tiempo para compartir sus conosimientos usred explica muy bien.me llamo eduardo hernandez me suscribi por que deseo aprender un poco mas yo estudie electricidad en mexico por desgracia perdi mis 2 pies y no puedo ayudarlo con alguna donacion porque de momento no trabajo por eso trato de aprender algo mas para poder sobrevivir .que dios lo bendiga y lo premie por lo que hace
Muchas gracias me sirvió mucho tu vídeo para encaminar mi proyecto de movimiento de luces y una cámara con servos
Muchas gracias espero que me apoyen en esta labor educativa Compartiendo mis videos y dándoles LIKE.
Bello diagrama esquemático y buena explicación de los Servo motores en el eje de coordenadas, para el control de pines, me gustó mucho y te felicito, mereces un gran beso!
Antonia Maria Rovayo muy agradecido estimada un saludo a la distancia.
EL CÓDIGO
#include
Servo servoMotor0bjX; // Creams un objeto de clase servo para objeto
Servo servoMotor0bjY;
Servo servoMotor0bjZ;
int const servoMotorX = 3;
int const servoMotorY = 5;
int const servoMotorZ = 6;
int joystickX = 0;// creamos variables para almacenar la posicion
int joystickY = 0;
int joystickZ = 0;
int eixoX = A0; // Asignamos el pin analogico A0 a la variable del Eje X
int eixoY = A1; // asignamos el ping analogico A0 a la bariable del eje Y
int eixoZ = 2; // Asignamos el ping Digital 2 a la variable del eje Z
void setup() {
servoMotor0bjX.attach(servoMotorX); // asociamos los pines digital PWN a los objetos servo
servoMotor0bjY.attach(servoMotorY);
servoMotor0bjZ.attach(servoMotorZ);
pinMode(eixoZ, INPUT); // DEFINIMOS eixoz como un pin de entrada
servoMotor0bjX.write(90); // ubicamos su posición del motor
servoMotor0bjY.write(90);
servoMotor0bjY.write(180);
Serial.begin(9600); //activamos el monitor serial para mostrar el funcionamiento
}
void loop() {
joystickX = analogRead(eixoX); // lee el valor de eixoX y lo almacena
joystickY = analogRead(eixoY);
joystickZ = digitalRead(eixoZ);
void imprimeEixo();
joystickX = map(joystickX, 0, 1023, 0, 180); // Mapea el valor leido del joystick de 0 a 1023
joystickY = map(joystickY, 0, 1023, 0, 180);// lo asigna al movimiento del servo de 0 a 180 grados
joystickZ = map(joystickZ, 0, 1, 0, 180); //Mapea el valor del joystick a un valor digital
servoMotor0bjX.write(joystickX); // definamos el valor de la posicion del servo motor
servoMotor0bjY.write(joystickY);
servoMotor0bjZ.write(joystickZ);
delay(40); // esperamos 40milisegundos para darle estabilidad a los servo motores
}
gracias
MUCHAS GRACIAS
Mil gracias profe, Dios lo bendiga por tan buen trabajo
Muchas gracias bendiciones espero que puedan compartir mis videos
Que te voy a decir Higinio.
Si se pudiera no te pondría un dedo arriba, sino los veinte.
Muchas gracias por tus excelentes explicaciones.
Tienes a un incondicional. El próximo mes sorpresa.
Un fuerte abrazo.
Raul Jerez gracias.
Le agradezco mucho su respuesta, ya aprendí con su video como interpretar las placas de conexión , ahora, mi pregunta, si quisiera controlar no uno sino dos servos simultáneamente, tendría que cambiar el código o podría utilizar el mismo? me refiero a controlar 2 con el eje X, dos con el eje Y, y uno solo con push de joystick
Técnicamente deberías modificar el código
@@HumbertoHiginio pero, si los servos se controlan por pulsos, no importaria que estuvieran conectados 2 o mas a la pata del arduino donde recibe el pulso, mientras la alimentacion sea independiente? gracias.
Humberto cada vez me son mas utiles tus videos buenisimos mi hermano bien dia gracias.
Muchas gracias, espero que me apoyen en esta labor educativa Compartiendo y dándole LIKE a mis videos.
Impresionante proyecto y explicacion, podria subir un diagrama para elaborar una placa?, gracias
@@elgutitozamora hola ya he realizado un vídeo al respecto revisa mi Canal de TH-cam
excelente trabajo profesor Humberto gracias por compartirlo.
jose f. g.subero Muchas gracias.
Excelentes explicaciones. Gracias por tu tiempo y conocimientos.
Jacinto Guardado un gusto y una gran satisfacción saludos.
Disculpa, tienes el código de este proyecto?
Muy útil!!!, para conectar otros 2 servos y un joystick mas, como sería? la verdad no tengo mucho tiempo trabajando arduino
excelente, me sirvió de mucho, saludos cordiales....
buen video , excelente difusión del conocimiento
Kevin aviles torres Muchas gracias.
soy novato en el tema me parecio interesante y desidi realizarlo pero tengo un problema y espero que me ayude. el servomotor de las x funciona normal, el eje de las y al accionarlo se accionan los dos ser
Ante todo agradecerte siempre estoy pendiente de sus videos, quisiera saber como con los mismos principios controlar Nema17, que pueda inverti el giro y que avance a pasos. Gracias
Disculpa no he trabajado con ese dispositivo
Me refiero a un motor paso a paso
Hola profesor he visto muchos videos suyos con arduino, pero creo q falta el de la multifunction shield, espero q en algun momento podamos ver uno, yo tengo una pero ni modo solo lo compre sin saber nada jajaja, en fin un saludo cordial desde chile, gracias humberto
Disculpa no cuento con un Shield de esas caracteristicas si en alguna oportunidad tengo uno podria realizar un video al respecto.
kyc
gracias.
De nada un gusto.
muy buen video, lo probare .
Gracias.
muy bueno!
Alexis Eduardo Capacho Gonzalez gracias.
Hola a todos en el minuto 6.15 el profesor dice que usa resistencia de 220 ohm ó 1k para el eje Z... me podrían confirmar eso, lo agradecere me funcionan bien los ejes x e y y me falta solo el clic para que mi ojo pueda pestañear
como añadir la libreria "servo.h", en mi arduino solo tengo y cuando compila me muestra error
Hola, puede ser suficiente con un cargador de 9v y 3A ? o arduino se quemaría ya que los servos jalarían mucho Amperios haciendo circular desde el cargador pasando por arduino hasta los motores o Arduino es tan inteligente para administrar en ese caso pocos amperios con tal de no quemarse gracias por su respuesta
Te estas confundiendo en los conceptos, arduino solo entrega la señal de control, la alimentacion a los servos la engtrega la fuente de poder.
Buen video, me diste una buena idea Gracias :)
Gastón Caliva que bueno un gusto espero que puedas compartir mis vídeos y seguirme.
Cuál es el convertidor que usas?
A que te refieres?
excelente video profe puse el codigo pero me dice error expected unqualified id before '=' token no se q hacer
arduino
con cuanto voltaje y amperaje lo controlas?
como podria hacer con los motores paso de 6 cables un saludo enorme desde jujuy argentina
Como puedo controlar 2 motores paso a paso desde la pc con un joystick de avion? Es para hacer un simulador de vuelo 360
Hola tengo un problema, me aparece el error del la llave "{" la puse a principio y al final pero a un así no funciona y si las quito tampoco, que debo hacer?
Existe algo mal en tu código revisa el vídeo paso a paso allí está el código.
Hola profe: tengo 2 preguntas para hacerle. 1- esa resistencia en pull up, no se podia haber reemplazado por la instruccion en arduino de input_pullup? entiendo q todos los puertos (nose bien los analogicos) ya cuentan con una resistencia en pull up y con esa instruccion se activa la misma. Y 2: entre el min 14 y 15 cuando declara la posicion inicial, en la 3º linea repitio lo de la linea 2, nose si me explico, es como q la posicion final de servoMotorObjY.write (90) termina siendo de 180 (por la repeticion de abajo) y no puso la del servoMotorObjZ, x lo q no lo vi reflejado en la practica ya q antes de empezar la prueba estaba bien en los 90º, y no en los 180, como fue posible eso?
El pin 2 está conectado al pull up el cual no es pwm por eso uso una resistencia, pero si conectas el pull up a un pin pwm se puede remplazar por la resistencia
La segunda pregunta: creo que aunque le pongas 180 funciona como un 1 digital seguro se equivoco pero al ponerle un número positivo ( 180) funciona como un 1 digital por eso en pantalla mostraba un 1 en eje z
como le desia se accionan los dos servomotores y el pulsador anulado totalmente por favor que hago para solucionar el problema. Muchas Gracias
Si estas usando el codigo tal cual y todo esta bien y te compila entonce debes revisar las conexiones asi como descartar los servomotores si tiene algunos problemas.
Hola en el minuto 14:37 cuando indica la posición inicial, donde dice servoMotorObjY.write(180); no debería decir servoMotorObjZ.write(180) ?
Me funcionan bien los servos Y, X, pero el Z se mueve 180° constantemente hasta que presiono el boton y se queda quieto. Alguien me podria ayudar no se donde está el problema. Gracias
PUEDES PASARME LA PROGRAMACIÓN PORFABOR MUY BUEN VIDEO
Hola buenas, como podria hacer yo para sumarle otro servo con otro joystick?
Revisa el codigo debes duplicar las variables y sentencias.
gracias por tu conocimiento, ojala me puedas ayudar, cuando das hacia un lado del jostick dijéramos que es positivo (el servo gira hacia la derecha) cuando lo sueltas regresa a su posición inicial, yo no quiero que regrese, necesito que se quede donde esta hasta que presione el lado contrario, si lo suelto quiero que permanezca en esa posición espero me puedas ayuda y me hayas entendido GRACIAS!
nesecitas un servo 360 grados
cuales son las características de la batería que se usa?? gracias :3
LIPO 7.4 Voltios 2500 mA-h
profe como se programa para que no se regrese al centro
De dónde puedo sacar el código del video.
interesante el video por favor si puede dejar el link para descargar gracias
porfis necesito el codigo del proyecto para mi sobrina.gracias
una consulta alguien tiene el Codigo de Programacion por favor
Holaa que tal este no funciona bien mi proyecto segui todos los paso pero el servo gira contantesmente a 360° y no se a que se deberia ayudeme plis
saliendome del tema como puedo programar el camino a un carro utilizando arduino ..... para que este lo realize automaticamente
Revisa mis videos acerca de los Motor Drivers en donde explico como hacer giros avances adelante atras, etc con eso puedes programar el movimiento que desees en funcion al camino.
Y como ponemos 6 servo motores
Como haria para mover un servo a una direccion y otro a otra direccion en eje x
Revisa mis otros videos, ya he realizado eso, saludos.
no he visto ni un solo video explicando como programar un servo de 360°!! tengo un servo de 360 pero viendo videos en youtube solo pude programarlo como si fuese de 180!! alguien ayudeme plss :(
Un servo solo se mueve hasta 180 grados para que se mueva a 360 grados debes hacer un Hacking es decir modificarlo para que tenga rotacion continua y se convierta en un motor convencional pero con mas torque.
Humberto Higinio ok gracias
Para los que tienen poco tiempo como yo aqui esta el arduino.
/*
Projeto Arduino - Como ligar um joystick no Arduino
----------------------------------------
--==--
----------------------------------------
*/
//incluindo biblioteca para controle do servomotor
#include "Servo.h"
//Criando um objeto da classe Servo
Servo servoMotorObjX;
Servo servoMotorObjY;
Servo servoMotorObjZ;
//pino digital (PWM) associado ao controle do servomotor
int const servoMotorX = 3;
int const servoMotorY = 5;
int const servoMotorZ = 6;
//Variável que armazena a posição lida
//nos eixos do joystick
int joystickX = 0;
int joystickY = 0;
int joystickZ = 0;
//Atribuindo o pino analógico A0 a variável eixoX
int eixoX = A0;
//Atribuindo o pino analógico A1 a variável eixoY
int eixoY = A1;
//Atribuindo o pino digital 2 a variável eixoZ
int eixoZ = 2;
void setup() {
//associando o pino digital de controle do
//servo ao objeto da classe Servo
servoMotorObjX.attach(servoMotorX);
servoMotorObjY.attach(servoMotorY);
servoMotorObjZ.attach(servoMotorZ);
//Definindo eixoZ como um pino de entrada
pinMode(eixoZ, INPUT);
servoMotorObjX.write(90);
servoMotorObjY.write(90);
servoMotorObjY.write(180);
//Ativando o Serial Monitor que exibirá os
//valores lidos no Joystick
Serial.begin(9600);
}
void loop() {
//Lê o valor do eixoX
joystickX = analogRead(eixoX);
//Lê o valor do eixoY
joystickY = analogRead(eixoY);
//Lê o valor do eixoZ
joystickZ = digitalRead(eixoZ);
imprimeEixos();
//mapeando o valor lido no joystick para a escala do
//servo (entre 0 e 180)
joystickX = map(joystickX, 0, 1023, 0, 180);
joystickY = map(joystickY, 0, 1023, 0, 180);
joystickZ = map(joystickZ, 0, 1, 0, 180);
//definindo o valor/posição do servomotor
servoMotorObjX.write(joystickX);
servoMotorObjY.write(joystickY);
servoMotorObjZ.write(joystickZ);
//espera 20 milisegundos.
delay(20);
}
//Este método é responsável apenas por imprimir no
//Serial Monitor os valores dos eixos X, Y e Z.
void imprimeEixos() {
//imprime o valor do eixoX
Serial.print(" X=");
Serial.print(joystickX);
//imprime o valor do eixoY
Serial.print(" Y=");
Serial.print(joystickY);
//imprime o valor do eixoZ
Serial.print(" Z=");
Serial.println(joystickZ);
}