Tutorial: Como Utilizar o Shield 4 Power com Arduino

Adquira estes componentes na Loja do Lab de Garagem

O Shield 4 Power é produto incubado desenvolvido pelo garagista Bruno Dias RosaO 4 Power é um shield para Arduino que pode controlar até 4 motores de corrente contínua de no máximo 46V e uma carga resistiva extra a sua escolha. Para usá-lo basta conectar uma fonte de alimentação de até 46V (até 4A), ligando nos terminais M+ e GND. A placa possui indicação de positivo e negativo para cada motor, que podem puxar até 2A, na tensão máxima de alimentação da fonte (M+), mas que pode variar por PWM (controle disponível na biblioteca). 

Neste tutorial, vamos mostrar como utilizá-lo com a biblioteca e a programação exemplo.

Baixe os arquivos da biblioteca clicando aqui. Agora descompacte, copie e cole a pasta "S4power" dentro da pasta "libraries" localizada dentro da pasta da IDE do Arduino.

Conecte o shield no Arduino e você pode fazer a seguinte ligação:

o arduino no PC. Abra a IDE do Arduino e passe a seguinte programação exemplo:

#include <S4power.h>
S4Power s4power;
void setup()
{
s4power.Config();
}
void loop()
{
for ( int count = -20; count < 20; count++ )
{
s4power.M1.speed = count;
s4power.M2.speed = count;
s4power.M3.speed = count;
s4power.M4.speed = count;

s4power.M1.Update();
s4power.M2.Update();
s4power.M3.Update();
s4power.M4.Update();

s4power.light.intensity = count;
s4power.light.Update();

delay (100);
}
}

Agora alimente o Shield com uma fonte externa no M+ e pronto! Você verá que os motores DC irão girar de um lado e depois para o outro.

Esperamos que tenha gostado! Se tiver dúvidas, poste aqui mesmo neste blog! Se tiver sugestões para tutoriais, poste aqui! Caso queira ver outros tutoriais e projetos desenvolvidos pela equipe LdG e por outros garagistas, clique aqui e aqui!

Exibições: 9300

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Luiz Claudio França Lima em 6 outubro 2012 às 17:24

Sandro,

Tive um problema parecido com o que vc postou.

Tente fazer a substituição, conforme abaixo.

Abra o arquivo s4power.cpp e substitua o

#include <Wprogram.h>

Por:

#if ARDUINO>=100
#include <Arduino.h> // Arduino 1.0
#else
#include <Wprogram.h> // Arduino 0022
#endif

Comentário de Twynster Héverton em 6 outubro 2012 às 15:23

pessoal fiz a programação correta do arduino com o s4power porém, ta dando esse erro:

C:\Users\Suzana\Desktop\arduino-1.0.1-windows\arduino-1.0.1\libraries\S4power\S4power.cpp:3:22: error: WProgram.h: No such file or directory
C:\Users\Suzana\Desktop\arduino-1.0.1-windows\arduino-1.0.1\libraries\S4power\S4power.cpp: In member function 'void Motor::SetConf(char, char, char)':
C:\Users\Suzana\Desktop\arduino-1.0.1-windows\arduino-1.0.1\libraries\S4power\S4power.cpp:14: error: 'OUTPUT' was not declared in this scope
C:\Users\Suzana\Desktop\arduino-1.0.1-windows\arduino-1.0.1\libraries\S4power\S4power.cpp:14: error: 'pinMode' was not declared in this scope
C:\Users\Suzana\Desktop\arduino-1.0.1-windows\arduino-1.0.1\libraries\S4power\S4power.cpp: In member function 'void Motor::Update()':
C:\Users\Suzana\Desktop\arduino-1.0.1-windows\arduino-1.0.1\libraries\S4power\S4power.cpp:30: error: 'LOW' was not declared in this scope
C:\Users\Suzana\Desktop\arduino-1.0.1-windows\arduino-1.0.1\libraries\S4power\S4power.cpp:30: error: 'digitalWrite' was not declared in this scope
C:\Users\Suzana\Desktop\arduino-1.0.1-windows\arduino-1.0.1\libraries\S4power\S4power.cpp:31: error: 'HIGH' was not declared in this scope
C:\Users\Suzana\Desktop\arduino-1.0.1-windows\arduino-1.0.1\libraries\S4power\S4power.cpp:35: error: 'HIGH' was not declared in this scope
C:\Users\Suzana\Desktop\arduino-1.0.1-windows\arduino-1.0.1\libraries\S4power\S4power.cpp:35: error: 'digitalWrite' was not declared in this scope
C:\Users\Suzana\Desktop\arduino-1.0.1-windows\arduino-1.0.1\libraries\S4power\S4power.cpp:36: error: 'LOW' was not declared in this scope
C:\Users\Suzana\Desktop\arduino-1.0.1-windows\arduino-1.0.1\libraries\S4power\S4power.cpp:40: error: 'analogWrite' was not declared in this scope
C:\Users\Suzana\Desktop\arduino-1.0.1-windows\arduino-1.0.1\libraries\S4power\S4power.cpp: In member function 'void Light::SetConf(char, char)':
C:\Users\Suzana\Desktop\arduino-1.0.1-windows\arduino-1.0.1\libraries\S4power\S4power.cpp:65: error: 'OUTPUT' was not declared in this scope
C:\Users\Suzana\Desktop\arduino-1.0.1-windows\arduino-1.0.1\libraries\S4power\S4power.cpp:65: error: 'pinMode' was not declared in this scope
C:\Users\Suzana\Desktop\arduino-1.0.1-windows\arduino-1.0.1\libraries\S4power\S4power.cpp:66: error: 'INPUT' was not declared in this scope
C:\Users\Suzana\Desktop\arduino-1.0.1-windows\arduino-1.0.1\libraries\S4power\S4power.cpp: In member function 'void Light::Update()':
C:\Users\Suzana\Desktop\arduino-1.0.1-windows\arduino-1.0.1\libraries\S4power\S4power.cpp:77: error: 'analogWrite' was not declared in this scope
C:\Users\Suzana\Desktop\arduino-1.0.1-windows\arduino-1.0.1\libraries\S4power\S4power.cpp:80: error: 'analogRead' was not declared in this scope

alguem sabe o que é?

Comentário de Laboratório de Garagem em 28 setembro 2012 às 12:40

Olá Luiz,

É sim possível empilhar shields, mas tome cuidado porque às vezes eles utilizam pinos em comum. No caso destes dois, há vários pinos que conflitam. Se quiser mais detalhes, veja nos esquemáticos:

Esquemático do shield 4 Power: http://www.labdegaragem.com.br/wiki/index.php?title=Arquivo:4Power1...

Esquemático do shield Ethernet: http://arduino.cc/en/uploads/Main/arduino-ethernet-shield-06-schema...

Ficamos à disposição,

Equipe Lab de Garagem.

Comentário de Luiz Claudio França Lima em 27 setembro 2012 às 10:15
Olá pessoal.

Alguém saberia me informar se há algum problema em empilhar ao Uno, um Ethernet Shield e mais o 4Power
Comentário de Helio Delfino Escocio Jr em 26 setembro 2012 às 13:28

   Obrigado pessoal pela ajuda. eu não queria fazer a compra sem ter certeza.  grato pela atenção!

Comentário de Laboratório de Garagem em 26 setembro 2012 às 12:48

Olá Helio,

Sim, este shield é compatível com o Arduino Uno. Também é possível controlar quatro motores de 3 a 5V com ele, uma vez que as saídas dos CIs de ponte H fornecem de 0 a 46V (dependendo também da fonte alimentação). Com relação ao controle independente, é possível configurar pelo software, e esta é exatamente uma das vantagens do shield.

Ficamos à disposição,

Equipe Lab de Garagem

Comentário de Stefano Mega em 25 setembro 2012 às 23:36

Helio,
Ainda não tenho muita experiência, mas vou tentar ajudar: se os 4 motores somados podem ter até 46V, então cada motor pode ter até 11.5V cada. A tensões dos seus motores estão bem abaixo do limite.
Se você abrir o segundo link das "referências" você vê o shield encaixado num UNO.
Nesse mesmo link, na parte do "exemplo de programação", você pode ver que cada motor tem sua propriedade "speed" e que essa propriedade tem valores positivos e negativos.

Comentário de Helio Delfino Escocio Jr em 25 setembro 2012 às 22:39

Alguém pode me ajudar?

 gostaria de saber se este shield serve no arduino uno? com ele posso controlar 4 motores de 3v a 5v? mudando o sentido de rotação independente um do outro? grato pela atenção.

Comentário de Stefano Mega em 25 setembro 2012 às 16:26

Boa tarde. Precisarei controlar mais de 4 motores e estou imaginando que empilhar duas placas diretamente não seja uma solução viável já que provavelmente alguns pinos analógicos pré-mapeados para controlar os motores.
Se estiver certo, a solução seria usar jumpers para levar os pinos mapeados da segunda placa até pinos analógicos desocupados do Arduino/placa1? Será que daria certo? Obrigado.

Comentário de Helio Delfino Escocio Jr em 18 setembro 2012 às 8:59

Olá! gostaria de saber se este shield serve no arduino uno? com ele posso controlar 4 motores de 3v a 5v? mudando o sentido de rotação independente um do outro? grato pela atenção.

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço