Control de Servo Motores con un Joystick - Teoria - Practica - Arduino

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 พ.ย. 2024

ความคิดเห็น • 88

  • @EduardoHernandez-gi6jx
    @EduardoHernandez-gi6jx 7 ปีที่แล้ว

    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

  • @0Gviii08
    @0Gviii08 3 ปีที่แล้ว +2

    Muchas gracias me sirvió mucho tu vídeo para encaminar mi proyecto de movimiento de luces y una cámara con servos

    • @HumbertoHiginio
      @HumbertoHiginio  3 ปีที่แล้ว +1

      Muchas gracias espero que me apoyen en esta labor educativa Compartiendo mis videos y dándoles LIKE.

  • @antoniamariarovayo2854
    @antoniamariarovayo2854 7 ปีที่แล้ว +2

    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!

    • @HumbertoHiginio
      @HumbertoHiginio  7 ปีที่แล้ว +2

      Antonia Maria Rovayo muy agradecido estimada un saludo a la distancia.

  • @danieljimenez2806
    @danieljimenez2806 4 ปีที่แล้ว +17

    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
    }

  • @danielcanon1009
    @danielcanon1009 10 หลายเดือนก่อน

    Mil gracias profe, Dios lo bendiga por tan buen trabajo

    • @HumbertoHiginio
      @HumbertoHiginio  10 หลายเดือนก่อน

      Muchas gracias bendiciones espero que puedan compartir mis videos

  • @rauljerez3144
    @rauljerez3144 7 ปีที่แล้ว +1

    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.

  • @elgutitozamora
    @elgutitozamora 3 หลายเดือนก่อน +1

    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
      @HumbertoHiginio  3 หลายเดือนก่อน +1

      Técnicamente deberías modificar el código

    • @elgutitozamora
      @elgutitozamora 3 หลายเดือนก่อน

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

  • @rafaelmauriciomendez1728
    @rafaelmauriciomendez1728 3 ปีที่แล้ว

    Humberto cada vez me son mas utiles tus videos buenisimos mi hermano bien dia gracias.

    • @HumbertoHiginio
      @HumbertoHiginio  3 ปีที่แล้ว

      Muchas gracias, espero que me apoyen en esta labor educativa Compartiendo y dándole LIKE a mis videos.

  • @elgutitozamora
    @elgutitozamora 3 หลายเดือนก่อน +1

    Impresionante proyecto y explicacion, podria subir un diagrama para elaborar una placa?, gracias

    • @HumbertoHiginio
      @HumbertoHiginio  3 หลายเดือนก่อน +1

      @@elgutitozamora hola ya he realizado un vídeo al respecto revisa mi Canal de TH-cam

  • @elangel233able
    @elangel233able 7 ปีที่แล้ว +1

    excelente trabajo profesor Humberto gracias por compartirlo.

  • @Chipoelectrico
    @Chipoelectrico 7 ปีที่แล้ว +1

    Excelentes explicaciones. Gracias por tu tiempo y conocimientos.

    • @HumbertoHiginio
      @HumbertoHiginio  7 ปีที่แล้ว +1

      Jacinto Guardado un gusto y una gran satisfacción saludos.

  • @molemartca94
    @molemartca94 6 ปีที่แล้ว +16

    Disculpa, tienes el código de este proyecto?

  • @DarkOtamer
    @DarkOtamer ปีที่แล้ว +1

    Muy útil!!!, para conectar otros 2 servos y un joystick mas, como sería? la verdad no tengo mucho tiempo trabajando arduino

  • @piezaspararobotica
    @piezaspararobotica 4 ปีที่แล้ว +1

    excelente, me sirvió de mucho, saludos cordiales....

  • @kevinavilestorres4944
    @kevinavilestorres4944 7 ปีที่แล้ว +1

    buen video , excelente difusión del conocimiento

    • @HumbertoHiginio
      @HumbertoHiginio  7 ปีที่แล้ว +1

      Kevin aviles torres Muchas gracias.

  • @nn592
    @nn592 7 ปีที่แล้ว +5

    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

  • @LuisFernandoSanmiguelA
    @LuisFernandoSanmiguelA 5 ปีที่แล้ว

    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

  • @Mr_Mayck
    @Mr_Mayck 6 ปีที่แล้ว +1

    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

    • @HumbertoHiginio
      @HumbertoHiginio  6 ปีที่แล้ว +2

      Disculpa no cuento con un Shield de esas caracteristicas si en alguna oportunidad tengo uno podria realizar un video al respecto.

    • @fabricio22a39
      @fabricio22a39 6 ปีที่แล้ว

      kyc

  • @davidalmeyda7659
    @davidalmeyda7659 7 ปีที่แล้ว +1

    gracias.

  • @andersonmoreno3052
    @andersonmoreno3052 7 ปีที่แล้ว +1

    muy buen video, lo probare .

  • @alexiseduardocapachogonzal399
    @alexiseduardocapachogonzal399 7 ปีที่แล้ว +1

    muy bueno!

    • @HumbertoHiginio
      @HumbertoHiginio  7 ปีที่แล้ว +1

      Alexis Eduardo Capacho Gonzalez gracias.

  • @jorgemadariagalara3838
    @jorgemadariagalara3838 2 ปีที่แล้ว

    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

  • @jubervicuna9318
    @jubervicuna9318 7 ปีที่แล้ว +2

    como añadir la libreria "servo.h", en mi arduino solo tengo y cuando compila me muestra error

  • @moisescjuno6942
    @moisescjuno6942 2 ปีที่แล้ว +1

    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

    • @HumbertoHiginio
      @HumbertoHiginio  2 ปีที่แล้ว +1

      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.

  • @gastoncaliva720
    @gastoncaliva720 7 ปีที่แล้ว +1

    Buen video, me diste una buena idea Gracias :)

    • @HumbertoHiginio
      @HumbertoHiginio  7 ปีที่แล้ว +1

      Gastón Caliva que bueno un gusto espero que puedas compartir mis vídeos y seguirme.

  • @slenderfonsecavieda205
    @slenderfonsecavieda205 5 หลายเดือนก่อน

    Cuál es el convertidor que usas?

  • @mecatronicazuniga6903
    @mecatronicazuniga6903 2 ปีที่แล้ว

    excelente video profe puse el codigo pero me dice error expected unqualified id before '=' token no se q hacer

  • @luisochoa7667
    @luisochoa7667 7 ปีที่แล้ว +4

    arduino

  • @alamperez3378
    @alamperez3378 5 ปีที่แล้ว

    con cuanto voltaje y amperaje lo controlas?

  • @mario55352
    @mario55352 5 ปีที่แล้ว +1

    como podria hacer con los motores paso de 6 cables un saludo enorme desde jujuy argentina

  • @yessicavidal910
    @yessicavidal910 3 ปีที่แล้ว +1

    Como puedo controlar 2 motores paso a paso desde la pc con un joystick de avion? Es para hacer un simulador de vuelo 360

  • @Tanqueando241
    @Tanqueando241 4 หลายเดือนก่อน +1

    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?

    • @HumbertoHiginio
      @HumbertoHiginio  4 หลายเดือนก่อน +1

      Existe algo mal en tu código revisa el vídeo paso a paso allí está el código.

  • @guscom86
    @guscom86 7 ปีที่แล้ว +2

    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?

    • @hugozeledonmontero3087
      @hugozeledonmontero3087 6 ปีที่แล้ว

      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

    • @hugozeledonmontero3087
      @hugozeledonmontero3087 6 ปีที่แล้ว

      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

  • @nn592
    @nn592 7 ปีที่แล้ว +1

    como le desia se accionan los dos servomotores y el pulsador anulado totalmente por favor que hago para solucionar el problema. Muchas Gracias

    • @HumbertoHiginio
      @HumbertoHiginio  7 ปีที่แล้ว +1

      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.

  • @gabrielandrade4342
    @gabrielandrade4342 4 ปีที่แล้ว

    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

  • @hernandezortegajorgeernest7000
    @hernandezortegajorgeernest7000 3 ปีที่แล้ว

    PUEDES PASARME LA PROGRAMACIÓN PORFABOR MUY BUEN VIDEO

  • @francohidalgo1704
    @francohidalgo1704 6 ปีที่แล้ว +1

    Hola buenas, como podria hacer yo para sumarle otro servo con otro joystick?

    • @HumbertoHiginio
      @HumbertoHiginio  6 ปีที่แล้ว +1

      Revisa el codigo debes duplicar las variables y sentencias.

  • @faktordj
    @faktordj 5 ปีที่แล้ว

    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!

  • @jacksari8909
    @jacksari8909 7 ปีที่แล้ว +1

    cuales son las características de la batería que se usa?? gracias :3

  • @Creandocosasnuevas
    @Creandocosasnuevas 7 ปีที่แล้ว

    profe como se programa para que no se regrese al centro

  • @mariosantiagoalcon3587
    @mariosantiagoalcon3587 5 ปีที่แล้ว

    De dónde puedo sacar el código del video.

  • @jubervicuna9318
    @jubervicuna9318 7 ปีที่แล้ว

    interesante el video por favor si puede dejar el link para descargar gracias

  • @electricistareinaldomartin2071
    @electricistareinaldomartin2071 2 ปีที่แล้ว

    porfis necesito el codigo del proyecto para mi sobrina.gracias

  • @giovannygiglio6039
    @giovannygiglio6039 4 ปีที่แล้ว

    una consulta alguien tiene el Codigo de Programacion por favor

  • @danielreyes4147
    @danielreyes4147 6 ปีที่แล้ว

    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

  • @lidayisely4853
    @lidayisely4853 6 ปีที่แล้ว +1

    saliendome del tema como puedo programar el camino a un carro utilizando arduino ..... para que este lo realize automaticamente

    • @HumbertoHiginio
      @HumbertoHiginio  6 ปีที่แล้ว +1

      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.

  • @karlosfigueroa1027
    @karlosfigueroa1027 5 ปีที่แล้ว

    Y como ponemos 6 servo motores

  • @Sebastian-zp1rw
    @Sebastian-zp1rw 3 ปีที่แล้ว +1

    Como haria para mover un servo a una direccion y otro a otra direccion en eje x

    • @HumbertoHiginio
      @HumbertoHiginio  3 ปีที่แล้ว +1

      Revisa mis otros videos, ya he realizado eso, saludos.

  • @BYRONSLAM09
    @BYRONSLAM09 7 ปีที่แล้ว +1

    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 :(

    • @HumbertoHiginio
      @HumbertoHiginio  7 ปีที่แล้ว +1

      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.

    • @BYRONSLAM09
      @BYRONSLAM09 7 ปีที่แล้ว

      Humberto Higinio ok gracias

  • @luismorales8780
    @luismorales8780 3 ปีที่แล้ว +2

    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);
    }