Olá pessoal. Não estou entendendo porque não consigo usar os pinos analógicos do Arduino Mega 2560 do A10 ao A15,

Estou usando da seguinte maneira o código:

myServoD.attach(63); para usar o A9

a partir do A10 identificando como pino 64 até o A15 identificado como pino 69 os servos não funcionam.

Alguém poderia me ajudar ?

Exibições: 536

Responder esta

Respostas a este tópico

Olá, Fernando!

   Eu primeiro verificaria se o attach() foi possível.

   

   Se você estiver utilizando a biblioteca Servo padrão do Arduino, a função attach( pin ) retorna um código de status.

   Se retornar 0 ( zero ), significa que a tentativa de conectar este pino a um servo falhou.

   Tente o seguinte:

#include <Servo.h>

void setup() {
  // put your setup code here, to run once:

  _Bool attachStatus ;

  Servo myServoD ;

  Serial.begin( 9600 ) ;


  attachStatus = myServoD.attach(64);

  if ( attachStatus == 0 )
  {
    Serial.println( "Tentativa attach(64): FALHOU!!!" ) ;
  }
  else
  {
    Serial.println( "Tentativa attach(64): SUCESSO!!!" ) ;
  }
}

void loop() {
// put your main code here, to run repeatedly:

}

Bom dia D. T. Ribeiro , desculpe a demora na resposta.

Não fui claro o suficiente. Deveria ter começado dizendo que o circuito funciona muito bem. Originalmente, os 4 servos estão conectados nos pinos analógicos de A0 a A3 num arduino Nano, em meu vídeo utilizando uma placa Julieta da RoboCore, uso a mesma configuração e, neste momento, tenho o mesmo projeto alterado para o uso de uma placa Mega 2560 que começou usando os mesmos pinos analógicos e depois fui testando até o A9 com sucesso, mas do A10 ate o A15 eu não consigo fazer funcionar.

A pinagem da Mega é:

A0 = pino 54 / A1 = pino 55  / A2 = pino 56 e assim por diante até o A15 = pino 69. Então, do pino A10 = 64 até o A15 = 69, não funciona.

Olá Fernando.

   Desculpe, acho que eu é que não fui claro.

   Há uma dúvida se os pinos que você quer utilizar para controlar os servos são possíveis ou não.

   Veja o post do RV sobre os pinos do Mega.

   Minha idéia é fazer com que a própria biblioteca informe isto. Pelo menos é o que espero que o status reportado pela função attach() diga. Embora a documentação da biblioteca seja muito ruim, se eu a tivesse escrito, o propósito seria exatamente este.

   Se attach() retornar 0 o que você conclui?

D.T. Ribeiro

   

Ok, vou testar, obrigado.

Bom dia FGC, (se não gosta que te chame pelas iniciais, avise),

para que possamos ajuda-lo melhor explique o que ocorre quando você usa os pinos

de A0 até A9 (D54 até D63) e que ocorre com os pinos A10 até A15 (D64 até D69).

Para usar servo motores precisamos usar PWM para posicionara-lo no ângulo requerido.

Quando você usa myServoD.attach(63);  o seu servo funciona?

Se funcionar ficarei muito surpreso, pois, os pinos de A0 até a15 do arduino Mega não tem PWM.

No  arduino Mega os pinos que tem PWM são os de  2 até 13, 44 até 46.

Ref: https://www.arduino.cc/reference/en/language/functions/analog-io/an...

RV mineirin

Bom dia mineirin, desculpe a demora na resposta.

Não fui claro o suficiente. Deveria ter começado dizendo que o circuito funciona muito bem. Originalmente, os 4 servos estão conectados nos pinos analógicos de A0 a A3 num arduino Nano, em meu vídeo utilizando uma placa Julieta da RoboCore, uso a mesma configuração e, neste momento, tenho o mesmo projeto alterado para o uso de uma placa Mega 2560 que começou usando os mesmos pinos analógicos e depois fui testando até o A9 com sucesso, mas do A10 ate o A15 eu não consigo fazer funcionar.

A pinagem da Mega é:

A0 = pino 54 / A1 = pino 55  / A2 = pino 56 e assim por diante até o A15 = pino 69. Então, do pino A10 = 64 até o A15 = 69, não funciona.

Meu vídeo onde utilizo uma placa Julieta está postado em Carrinho com braço robótico controlado por NRF24L01 , https://www.youtube.com/watch?v=O1EzsGUuY1I .

Bom dia FGC(se não gosta que te chame pelas iniciais, avise).

Que tal rodar o blink.ino usando os pinos de A10 até A15, um por vez, colocando um LED 

em serie com um resistor de 470R na saída do pino?

RV min eirin

Ok, vou testar

Boa noite,

Esse arquivo PDF é muito legal para se descobrir a pinagem do Arduino Mega:

https://content.arduino.cc/assets/Pinout-Mega2560rev3_latest.pdf

https://www.arduino.cc/reference/en/libraries/servo/

A biblioteca Servo suporta até 12 motores na maioria das placas Arduino e 48 no Arduino Mega.

A biblioteca pode controlar 12 servos usando apenas 1 temporizador.

No Mega, até 12 servos podem ser usados ​​sem interferir na funcionalidade PWM; o uso de 12 a 23 motores desabilitará o PWM nos pinos 11 e 12.

Valeu pela ajuda, obrigado.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço