Arduino controlling position L12 Firgelli Actuator

Hi,

Has anyone tried to interface an Arduino with a L12 Firgelli linear actuator?

http://firgelli.com/products.php

http://firgelli.com/pdf/L12_datasheet.pdf

I got the option with Controller "I"
Integrated controller with Industrial and RC servo interfaces

Anyone have an arduino code to control the exact position of the L12 actuator?

Thanks

Hi -

Did you ever get to figure this out? I am working on something similar right now. Let me know what happened.

I built a circuit with an H-bridge circuit and 12V power supply, along with the two components you mentioned (except I used PQ-12). I did this because the current draw of the Firgelli is greater than waht the Arduino can give.

I am thinking basically use the "blink LED" examples, but change the pins and timing. I need to play around with it to learn the timing, because the Figrelli moves so fast.

Looks like a very well designed product. Many great control options.

I was looking over the Figrelli site, as well as their main actuator site - I've seen their actuators sold by other online robotics stores, and they were pretty inexpensive for what they are. They seem well made, and their brochures/spec sheets are well designed and written.

But what got me is that in the pictures they show of the actual products, they use "ordinary items" to denote scale. I wish instead they had used an actual ruler or scale of some sort...

hi -

here is a little bit of code below to extend or retract the PQ-12 actuator, should be the same for you.

by the way, my delay of 10 ms is not necessarily one step, i just don't have a multimeter at the moment.

i do know that for the PQ-12, the voltage at that potentiometer wiper pin varies between 0 and 8.4 V, meaning that you divide the output voltage at the by 0.042 V to get the position.


void(setup) {
//EXTEND

pinMode(3, OUTPUT);
pinMode(2, OUTPUT);
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
delay(10);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
}
void(loop)
{
}


and


void(setup) {
//RETRACT

pinMode(3, OUTPUT);
pinMode(2, OUTPUT);
digitalWrite(3, LOW); // switch 2 to 3
digitalWrite(2, HIGH); // switch 3 to 2
delay(10);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
}
void(loop)
{
}