Resposta rápida

Empilhe o shield driver de motor L293D num Arduino Uno, remova o jumper de alimentação apenas se alimentar o terminal de parafuso do shield com uma fonte de alimentação separada para motores, e conecte o servo a um dos dois headers de servo 5V. Se estiver a conduzir dois motores DC a partir de uma fonte de bancada e preferir controlo I2C, o controlador mLink L9110 é uma alternativa mais limpa. Os passos abaixo cobrem a construção padrão do shield.

O que o shield L293D realmente lhe oferece

O Shield Motor Drive L293D para Arduino foi concebido para o ajudar a adicionar controlo de motores aos seus projetos. Fornece duas interfaces para servos de 5V, ligadas ao temporizador dedicado de alta resolução do Arduino, permitindo um funcionamento preciso do servo. É compatível com placas Arduino Uno; a placa em si não está incluída.

Essa combinação é a razão pela qual este shield continua popular: dois canais de motor DC mais dois headers para servos numa só placa, com o temporizador do servo tratado por um temporizador dedicado em vez de bloquear o seu loop principal. A contrapartida é que o L293D é um driver bipolar com uma queda de tensão real, pelo que os motores que necessitam de corrente elevada ou tensão muito baixa podem não funcionar bem. Verifique a corrente de bloqueio do seu motor antes de se comprometer.

Verifique o motor e a fonte de alimentação antes de ligar qualquer coisa

Dois números decidem se esta montagem funciona: a corrente de bloqueio do motor e a tensão de alimentação. O L293D apresenta uma queda de aproximadamente 1.4 a 2 V nos seus transístores internos, pelo que um motor de 6 V numa fonte de 6 V parecerá lento. Planeie uma fonte de alimentação alguns volts acima da tensão nominal do motor e confirme que a corrente por canal está dentro do que o driver pode suportar.

Se os seus motores consumirem mais corrente do que o shield pode fornecer confortavelmente, ou se desejar controlo de velocidade com 255 passos em cada direção através de uma ligação I2C simples, vale a pena considerar o controlador de motor DC mLink L9110. É um driver de motor DC série (I2C) de 2 canais capaz de acionar até dois motores DC com uma corrente máxima de 800 mA por motor, com controlo independente de direção e velocidade.

O jumper de alimentação: a única coisa que as pessoas fazem mal

O jumper de alimentação do shield liga o barramento de 5V do Arduino à alimentação lógica do driver do motor. Com o jumper colocado, o shield obtém a alimentação lógica do Uno, e ainda precisa de uma fonte de alimentação separada para os motores através do terminal de parafuso.

Remova o jumper apenas quando estiver a alimentar o pino lógico 5V do shield a partir de uma fonte externa regulada de 5V. Se o remover e se esquecer de alimentar esse pino, o lado lógico desliga-se e nada se move, que é o relato de 'shield morto' mais comum. Deixe-o no lugar para uma montagem normal com Uno.

  • Jumper colocado: lógica do barramento de 5V do Arduino, motores do terminal de parafuso.
  • Jumper removido: deve fornecer você mesmo 5V regulado ao pino lógico do shield.
  • Nunca aplique tensão do motor ao pino lógico 5V.

Headers de servo e o temporizador dedicado

As duas interfaces de servo 5V estão ligadas ao temporizador dedicado de alta resolução do Arduino, o que significa que os pulsos do servo permanecem precisos mesmo enquanto o seu sketch está ocupado com outras tarefas. Isso é uma vantagem real em relação à geração de pulsos de servo por software, onde a jitter se manifesta como tremores.

A alimentação é o ponto crítico. Os servos podem consumir uma corrente de pico surpreendente quando começam a mover-se, e retirá-la do regulador 5V do Uno pode causar um brownout na placa. Para qualquer coisa além de um pequeno micro servo, alimente o barramento do servo a partir de uma fonte externa 5V e partilhe o terra com o Arduino.

Finalizar a montagem de forma limpa

Para a cablagem do motor e da alimentação, um conector macho de alimentação DC de 2.1mm fornece uma ficha macho soldável com um diâmetro interno de 2.1mm e construção em plástico e metal, útil quando se pretende terminar um cabo de alimentação de bancada ou um pack de baterias no terminal de parafuso do shield. As ligações soldadas mantêm a junta segura sob vibração, o que é importante em qualquer coisa que se mova.

Mantenha os fios do motor torcidos e curtos, afaste-os das linhas de sinal do servo e adicione uma terra comum entre o Arduino e a fonte de alimentação externa. Se um motor tremer mas não rodar, suspeite da fonte de alimentação ou do jumper antes de reescrever o código.

Passo a passo: Montagem do shield L293D

  1. 1. Faça corresponder o motor ao driver: Consulte a tensão nominal e a corrente de bloqueio do motor. O L293D cai internamente cerca de 1.4 a 2 V, por isso escolha uma fonte de alimentação alguns volts acima da tensão nominal do motor e mantenha a corrente por canal dentro dos limites do driver. Se os números não encaixarem, mude para o mLink L9110, que é classificado para 800 mA por motor. Ponto de verificação: se não encontrar um valor de corrente de bloqueio, meça-o ou escolha um driver com um limite publicado.
  2. 2. Coloque o shield no Uno: Desligue o Arduino, alinhe os cabeçalhos do shield com os pinos do Uno e pressione-o completamente até encaixar. O shield é compatível com placas Arduino Uno, e a placa não está incluída, por isso confirme que tem um Uno e não uma placa com uma disposição de pinos diferente. Ponto de verificação: um shield que esteja desalinhado por uma fila de pinos muitas vezes ainda liga, mas comporta-se de forma errática.
  3. 3. Decida o estado do jumper de alimentação: Deixe o jumper no lugar para uma montagem normal, para que o shield receba a alimentação lógica do barramento de 5V do Arduino. Remova-o apenas se estiver a fornecer 5V regulado ao pino lógico do shield. Em qualquer dos casos, os motores recebem a sua própria alimentação através do terminal de parafuso. Erro comum: retirar o jumper e depois perguntar porque é que a placa está morta. Se nada acender, coloque o jumper de volta primeiro.
  4. 4. Ligue a fonte de alimentação externa do motor: Conecte a alimentação do motor ao terminal de parafuso do shield, respeitando a polaridade. Use um conector de ficha macho de alimentação DC soldado de 2.1 mm se estiver a terminar uma fonte de bancada ou um cabo de bateria, e ligue o terra da fonte ao terra do Arduino. Ponto de verificação: meça a tensão do terminal antes de ligar os motores, e nunca alimente a tensão do motor no pino lógico 5V.
  5. 5. Ligue os dois motores DC: Coloque o motor A no primeiro par de saída e o motor B no segundo. Se um motor rodar no sentido errado, troque os seus dois fios em vez de alterar o código, e mantenha os fios curtos e entrançados. Ponto de verificação: teste um motor de cada vez para que uma falha de cablagem num canal não mascare o outro.
  6. 6. Adicione o servo: Ligue um servo 5V a um dos dois headers de servo, que estão ligados ao temporizador dedicado de alta resolução do Arduino para um funcionamento preciso. Para qualquer coisa maior que um micro servo, alimente o trilho do servo a partir da fonte externa 5V em vez do regulador do Uno. Erro comum: operar um servo com carga a partir do pino 5V do Arduino e obter reinicializações aleatórias quando ele se move.
  7. 7. Carregue e verifique: Carregue um sketch que acione cada motor para a frente, depois para trás, e depois varra o servo. Observe a queda de tensão no medidor enquanto os motores funcionam e confirme que o servo mantém a posição sem oscilações. Próximo passo: se um canal parar sob carga, reveja a tensão de alimentação e a margem de corrente antes de mexer no código.

Peças utilizadas nesta montagem

  • Shield de acionamento de motor L293D para Arduino: Shield de acionamento de motor L293D para Arduino: duas interfaces de servo 5V ligadas ao temporizador dedicado de alta resolução do Arduino; compatível com placas Arduino Uno (placa não incluída). Oferece dois canais de motor e dois conectores de servo numa placa empilhável, com o temporização do servo tratada por hardware em vez de no seu sketch.
  • mLink L9110 Controlador de motor DC: mLink L9110 Controlador de motor: driver de motor DC de 2 canais série (I2C), compatível com até dois motores DC com um máximo de 800mA por motor, com controlo independente de direção e velocidade em 255 passos por direção. Uma escolha mais adequada quando pretende controlo I2C ou precisa de conhecer o limite de corrente por motor antecipadamente em vez de o estimar.
  • Conector macho de ficha de alimentação DC 2.1mm: 2.1mm Conector macho de alimentação CC: ficha macho com diâmetro interno de 2.1mm, construção em plástico e metal, ligações soldadas para fixação segura, concebido para aplicações de alimentação CC. Permite terminar um cabo de fonte de alimentação ou bateria no terminal de parafuso do shield com uma junta soldada resistente a vibrações.