Necesito controlar un motor PaP, lo que me desconcierta un poco es que en realidad son dos motores PaP en uno, uno girado un poco con respecto al otro (supongo que 7,5 grados), de cada uno de esos motores salen tres cables (Marrón / Negro / Rojo --- Marrón / Negro / Rojo).
Existe un controlador para este motor, pero como es lógico yo quiero controlarlo desde Arduino.
Encuentro muy poca información del motor, y lo único que he encontrado está en Sueco.
Alguien puede darme algo más de información de como controlarlo??
Un Saludo
Aquí os dejo lo que he encontrado del motor...
================================================
Datos técnicos: AEG SO26/48 - 6 Wire (hay una versión de 4 cables, pero este es de 6)
Paso ángulo: 7.5 ° Número de Paso: 48 Resistencia de la bobina de: 15 Ohms Tensión: 7,5 V Corriente: 500 mA
sub HalfStepForward
{
# LÄSER MOTORNS LÄGE
my $statusOne = IOListDm::ReadMyIOPoint($pIOListDmOne);
my $statusTwo = IOListDm::ReadMyIOPoint($pIOListDmTwo);
my $statusThree = IOListDm::ReadMyIOPoint($pIOListDmThree);
my $statusFour = IOListDm::ReadMyIOPoint($pIOListDmFour);
my $TotStatus = sprintf
"$statusOne$statusTwo$statusThree$statusFour";
# KOLLAR MOTORNS LÄGE OCH VRIDER DEN TILL NÄSTA
if($TotStatus == '0000')
{
IOListDm::WriteMyIOPoint($pIOListDmOne, 1);
IOListDm::WriteMyIOPoint($pIOListDmTwo, 0);
IOListDm::WriteMyIOPoint($pIOListDmThree, 0);
IOListDm::WriteMyIOPoint($pIOListDmFour, 0);
}
elsif ($TotStatus == '1000')
{
IOListDm::WriteMyIOPoint($pIOListDmOne, 1);
IOListDm::WriteMyIOPoint($pIOListDmTwo, 0);
IOListDm::WriteMyIOPoint($pIOListDmThree, 0);
IOListDm::WriteMyIOPoint($pIOListDmFour, 1);
}
elsif ($TotStatus == '1001')
{
IOListDm::WriteMyIOPoint($pIOListDmOne, 0);
IOListDm::WriteMyIOPoint($pIOListDmTwo, 0);
IOListDm::WriteMyIOPoint($pIOListDmThree, 0);
IOListDm::WriteMyIOPoint($pIOListDmFour, 1);
}
elsif ($TotStatus == '0001')
{
IOListDm::WriteMyIOPoint($pIOListDmOne, 0);
IOListDm::WriteMyIOPoint($pIOListDmTwo, 0);
IOListDm::WriteMyIOPoint($pIOListDmThree, 1);
IOListDm::WriteMyIOPoint($pIOListDmFour, 1);
}
elsif ($TotStatus == '0011')
{
IOListDm::WriteMyIOPoint($pIOListDmOne, 0);
IOListDm::WriteMyIOPoint($pIOListDmTwo, 0);
IOListDm::WriteMyIOPoint($pIOListDmThree, 1);
IOListDm::WriteMyIOPoint($pIOListDmFour, 0);
}
elsif ($TotStatus == '0010')
{
IOListDm::WriteMyIOPoint($pIOListDmOne, 0);
IOListDm::WriteMyIOPoint($pIOListDmTwo, 1);
IOListDm::WriteMyIOPoint($pIOListDmThree, 1);
IOListDm::WriteMyIOPoint($pIOListDmFour, 0);
}
elsif ($TotStatus == '0110')
{
IOListDm::WriteMyIOPoint($pIOListDmOne, 0);
IOListDm::WriteMyIOPoint($pIOListDmTwo, 1);
IOListDm::WriteMyIOPoint($pIOListDmThree, 0);
IOListDm::WriteMyIOPoint($pIOListDmFour, 0);
}
elsif ($TotStatus == '0100')
{
IOListDm::WriteMyIOPoint($pIOListDmOne, 1);
IOListDm::WriteMyIOPoint($pIOListDmTwo, 1);
IOListDm::WriteMyIOPoint($pIOListDmThree, 0);
IOListDm::WriteMyIOPoint($pIOListDmFour, 0);
}
elsif ($TotStatus == '1100')
{
IOListDm::WriteMyIOPoint($pIOListDmOne, 1);
IOListDm::WriteMyIOPoint($pIOListDmTwo, 0);
IOListDm::WriteMyIOPoint($pIOListDmThree, 0);
IOListDm::WriteMyIOPoint($pIOListDmFour, 0);
}
}