Este código deve ser "colado" no bloco de notas, e salvo com o nome "Motor" e a extensão ".h" ao invés de ".txt". Lembre-se de salvar o arquivo na pasta do arquivo de código do teste de motores.
Código Abaixo:
/* *******************************************************************************************
Funcao para conversao do valor de potencia do motor de decimal para porcentual
********************************************************************************************/
int calcularPotencia(int potencia)
{
return ( (float)potencia / 100 * 255 ) ;
}
/* *********************************************************************************************
Funcao de controle do motor
*********************************************************************************************
*/
int motor(boolean sentidoHorario, int potenciaSaida, int pinoHorario, int pinoAntiHorario, int potenciaAtual)
/*
sentidoHorario: 1 = Horario, 0 = Anti Horario
potencia: Potência a ser colocado o motor, vai de 0(%) a 100(%)
pinoHorario: pino digital (com PWM) para rotacao sentido horario do motor
pinoAntiHorario: pino digital (com PWM) para rotacao sentido horario do motor
*/
{
potenciaSaida = calcularPotencia(potenciaSaida);
int x = 0, pino = 0;
if( potenciaAtual <= potenciaSaida)
{
for(x=potenciaAtual+1; x<=potenciaSaida; x++)
{
analogWrite( (pino = (sentidoHorario?pinoHorario:pinoAntiHorario) ) , x);
}
}
else
{
for(x=potenciaAtual-1; x>=potenciaSaida; x--)
{
analogWrite( (pino = (sentidoHorario?pinoHorario:pinoAntiHorario) ) , x);
}
}
return (x);
}
Código Abaixo:
/* *******************************************************************************************
Funcao para conversao do valor de potencia do motor de decimal para porcentual
********************************************************************************************/
int calcularPotencia(int potencia)
{
return ( (float)potencia / 100 * 255 ) ;
}
/* *********************************************************************************************
Funcao de controle do motor
*********************************************************************************************
*/
int motor(boolean sentidoHorario, int potenciaSaida, int pinoHorario, int pinoAntiHorario, int potenciaAtual)
/*
sentidoHorario: 1 = Horario, 0 = Anti Horario
potencia: Potência a ser colocado o motor, vai de 0(%) a 100(%)
pinoHorario: pino digital (com PWM) para rotacao sentido horario do motor
pinoAntiHorario: pino digital (com PWM) para rotacao sentido horario do motor
*/
{
potenciaSaida = calcularPotencia(potenciaSaida);
int x = 0, pino = 0;
if( potenciaAtual <= potenciaSaida)
{
for(x=potenciaAtual+1; x<=potenciaSaida; x++)
{
analogWrite( (pino = (sentidoHorario?pinoHorario:pinoAntiHorario) ) , x);
}
}
else
{
for(x=potenciaAtual-1; x>=potenciaSaida; x--)
{
analogWrite( (pino = (sentidoHorario?pinoHorario:pinoAntiHorario) ) , x);
}
}
return (x);
}