É o seguinte o programa teste do shield é o seguinte:

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

 

beleza esse programa funciona, mas eu queria que os motores girassem alternadamente, ou seja, se movimenta um de cada vez e como altero o tempo deles e sentido de giro?

Exibições: 283

Responder esta

Respostas a este tópico

Bruno

No código de exemplo cada motor recebe o valor da variável count... 

Se vc quer acionar apenas um motor de cada vez, coloque o valor que deseja na variável speed do motor desejado e em seguida chame a função .Update() do mesmo motor.

Exemplo:

#include <S4power.h>
S4Power s4power;
void setup()
{
s4power.Config();
}

void loop()
{

//Aciona o motor 1 com 10 porcento
s4power.M1.speed = 10;
s4power.M1.Update();

//Aciona o motor 2 com 25 porcento
s4power.M2.speed = 25;
s4power.M2.Update();

//Aciona o motor 3 com 30 porcento
s4power.M3.speed = 30;
s4power.M3.Update();

//Aciona o motor 4 com 45 porcento
s4power.M4.speed = 45;
s4power.M4.Update();

//Deixa os motores ligados por 5 segundos
delay ( 5000 );

//Desliga todos os motores
s4power.M1.speed = 0;
s4power.M2.speed = 0;
s4power.M3.speed = 0;
s4power.M4.speed = 0;

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

//Deixa os motores desligados por 5 segundos
delay ( 5000 );

}

Cara eu consegui fazer funcionar, mas como sempre deu um problema,inicialmente eu fiz um programa para a garra fechar no tronco e ficar travada pela própria redução do motor, mas percebemos nos testes que essa não consegue suportar o peso. Então fiz um programa teste em que deixava os motores acionados diretos continuamente fazendo força para fechar a garra e felizmente consegui que o protótipo ficasse parado  no tronco, porém, não consegui estabelecer os parâmetros para que o motor fique funcionando e consiga fazer as outra operações.

 vou descrever o programa de forma verbal para explicar:

-motor 2 abre a garra1;

-motor 4 abre a garra2;

-motor 2 fecha a garra1 (deve ficar continuo até que tenha outro comando para abrir);

-motor 3 movimenta o fuso;

-motor 3 para o fuso;

-motor 4 fecha a garra2;(deve ficar continuo até que tenha outro comando para abrir);

-motor 2 abre a garra1;

-motor 3 movimenta o fuso;

-motor 3 para o fuso;

-motor 2 fecha a garra1 (deve ficar continuo até que tenha outro comando para abrir);

-motor 4 abre a garra2;

-motor 3 movimenta o fuso;

-motor 3 para o fuso;

esse ciclo tem q ser continuo mudando apenas a direção de giro do fuso (speed 100, -100);

me perdi nos comando update acho, não sei kkkk, se puderem me ajudar agradeço.

segue o programa que estava utilizando:

#include <S4power.h>
S4Power s4power;
void setup()
{
s4power.Config();
}
void loop()
{
s4power.M2.speed = -100;
s4power.M2.Update();

delay ( 1000 );

s4power.M2.speed = 0;
s4power.M2.Update();

s4power.M4.speed = 100;
s4power.M4.Update();

delay ( 1000 );

s4power.M4.speed = 0;
s4power.M4.Update();

s4power.M3.speed = 100;
s4power.M3.Update();

delay ( 10000 );

s4power.M3.speed = 0;
s4power.M3.Update();

s4power.M4.speed = -100;
s4power.M4.Update();

delay ( 1000 );

s4power.M4.speed = 0;
s4power.M4.Update();

s4power.M2.speed = 100;
s4power.M2.Update();

delay ( 1000 );

s4power.M2.speed = 0;
s4power.M2.Update();

s4power.M3.speed = -100;
s4power.M3.Update();

delay ( 10000 );

s4power.M3.speed = 0;
s4power.M3.Update();

}

Não querendo parecer chato, mas já sendo, uma sugestão:

Estude um pouco de programação em C. Vai te ajudar em todos os seu projetos.

Pelo visto você não parece entender nadinha (até eu que não tenho arduino, sei um pouco de C entendo este programa)

Mas como estou bonzinho hoje, vamos lá =P

A velocidade é dada pela função s4.power.Mx.speed (onde x é qualquer um dos 4 motores) ,ela varia de -100 a 100 (valores negativos um sentido, valores positivos outro sentido);

Depois de setar a velocidade use a função s4power.Mx.Update;

Quanto ao tempo você pode fazer uma função especifica ou usar a função Delay;

And... this is it!! =D

Abraço.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço