3

I am currently working on a project, where I design a PID-Controller for a 2-axis stabilization with brushless-propeller-motors.

My question is: Does an Arduino UNO have enough computing power to perform this task in a useful manner? Arduino UNO Specs

And secondly: If the UNO was really too slow for this task, would the newly released Arduino ZERO PRO perform at an acceptable rate? Arduino ZERO PRO Specs

Thanks for your help and inputs in advance!

migrated from electronics.stackexchange.com May 31 '15 at 18:35

This question came from our site for electronics and electrical engineering professionals, students, and enthusiasts.

  • 2
    what bandwidth do you require? that's the real question. Can you complete the accumulation tasks before your next sample is due to satisfy your system bandwidth – JonRB May 31 '15 at 18:25
  • JonRB is exactly right! And don't forget about any processing which needs to be done on the sensor inputs before getting to the PIDs. Also note: on the UNO a floating-point PID implementation will be much slower than a 'long' PID implementation. – Jay J May 31 '15 at 18:32
  • 1
    PID is a relatively simple algorithm. You probably only need something like 50 updates per second at the most (wild guess). So my guess, on the limited amount of info given, is that the uno will do fine. – Gerben May 31 '15 at 19:03
  • @Jay J floating point math is not that much slower than fixed on the UNO. In my experience the time savings (if any) have not been worth the extra work to do fixed point safely. – BrettAM May 31 '15 at 19:14
5

Assuming you're not doing anything too fancy, yes, it should be fine.

There's even a library to do all the work for you: http://playground.arduino.cc/Code/PIDLibrary

  • Also look for the ospid project which is a full hardware/software arduino based pid – hildred Jun 26 '15 at 3:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.