Тёмный

Arduino multiple servo's the simple way 

Robonza
Подписаться 1,6 тыс.
Просмотров 33 тыс.
50% 1

A simple way to control multiple servos, for inexperienced people to get animatronics etc going. Full source code is below
edns.co.nz/rob...
Updated code with full sequence control and homing control
See version 3

Опубликовано:

 

8 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 78   
@charles26842
@charles26842 9 месяцев назад
Just by watching this video for a short time, you have helped me so so so so much with my project, thank you immensely!
@Robonza
@Robonza 9 месяцев назад
Awesome to hear that, thanks
@CrisDFF30917
@CrisDFF30917 2 года назад
To avoid the start jump that servos have when you turn on the power, try to first give 5V to signal pin, then power the servo, it worked for me.
@johnpanter
@johnpanter 4 года назад
This has been the most usefull thing I've seen on the net today; just what I was after. Many thanks.
@nefarious6986
@nefarious6986 4 года назад
It's nice to hear a Kiwi explaining this!
@techparistech2659
@techparistech2659 2 года назад
Excellent job
@DJMovit
@DJMovit 4 года назад
This is awesome! Thanks for posting it! I have been wanting to make a 3 axis Halloween Skull and now I am one step closer. Now I need to build the platform and movements. I hope to tweak your code to get the head to move loft to right, and and down and hopefully tilt. Thanks again for sharing it I greatly appreciate it.
@adioooo6
@adioooo6 4 года назад
answer to all my questions, thank you!
@ChristoCJ03
@ChristoCJ03 5 лет назад
thanks bro, finally I found way to this, thanks a lot
@TRCVJU
@TRCVJU 2 года назад
Very nice. Gr8. Thanks for sharing.
@bitekiful
@bitekiful 3 года назад
Thank you thank you thank you! Froma complete novice you've helped me gain knowledge. I have some questions. I'm making an xwing and want the wings to open up and r2d2's head to swivel. I used your servo version one code and I want to add more positions. Thanks to you my servo is moving 10° and back to close but I want it to hold in the 10°position for a few seconds before it closes again, also i want it so start off slow ,speed up and slow before it gets to 10° everything i try to add more steps the the animation it doesn't work and I'm not sure why
@ddraigking9031
@ddraigking9031 Год назад
Hello The link in the description isn't working, I loved the video and I'm hoping it'll helped further my knowledge of servo control
@thachyourlife1828
@thachyourlife1828 2 года назад
is there no PCA 9685 at this time ?
@pasternakjdp
@pasternakjdp 2 года назад
Thanks so much for this absolutely brilliant. You say the source code is below but it doesn't seem to be, is it still available? Thanks again
@katalinkristof6383
@katalinkristof6383 3 года назад
Thank you for this awesome tutorial! May I ask some beginner question here? Does it damage the servos if they hold the position for a longer time? Why I'm asking: I am about to program a robot owl, and it should ideally hold a particular position after a movement is done. If I simply detach the servos, gravity would do its job. (Your cat is so cute!!)
@Robonza
@Robonza 3 года назад
Servo's are well known to burn out if left "holding" something. The best thing to do with your owl is to counterbalance it if you can. This way it will hold position with no power.
@katalinkristof6383
@katalinkristof6383 3 года назад
@@Robonza thank you for your reply! Counterbalancing will be a problem, but I can program it to end each movement in a stable position (and then detach). I didn't know it was an issue with servos.
@Robonza
@Robonza 3 года назад
@@katalinkristof6383 Some high quality servos might deal with it. I guess like a lot of things its a gamble on how long it will last. Detached servos will last the longest
@katalinkristof6383
@katalinkristof6383 3 года назад
@@Robonza well, it's definitely one of the most useful things I learned this month :)
@Surajborate1
@Surajborate1 3 года назад
Very well explained Appreciate your efforts Thank you for giving us this readymade Please help not able to open link
@Robonza
@Robonza 3 года назад
I just tried the link and it is working for me
@Surajborate1
@Surajborate1 3 года назад
Thank you for replying What App or software you are using to open this file
@Robonza
@Robonza 3 года назад
Arduino IDE
@Surajborate1
@Surajborate1 3 года назад
@@Robonza Thank you for replying I am able to open the link Will I be able to make changes and use this for my project If yes how to open cpp file
@DustinjBailey
@DustinjBailey 2 года назад
This is so incredibly helpful!
@Robonza
@Robonza 2 года назад
Thanks Dustin, I kinda feel bad I have not repaired the source code link when it broke
@benporter6576
@benporter6576 Год назад
@@Robonza please check it again! it isn;t working I'm afraid
@galagatron5319
@galagatron5319 Год назад
HI. I want to program 4 to 6 servos to do stuff individually. I have a servo driver pca9685. Im trying to make something with these motors and a couple of lights and sound. I do not want batteries. I want to be able to plug this thing in the wall with only one cord not 2. Looks like though I need 2 seperate power supplies. I cant find anything online. Something I buy? A hack? Thanks
@jonpurkis2075
@jonpurkis2075 Месяц назад
Great video, trying to get the source code but the link no longer works. Is it available from somewhere else?👍
@alfiechenery4146
@alfiechenery4146 3 года назад
Very well explained. Although could you explain the circuit wiring. I can assume how the servos are attached to PWM pins, but I notice a capacitor there. What is it for and how exactly is it wired, and is it essential or is it just like a protection thing
@Robonza
@Robonza 3 года назад
The capacitor is there to avoid servo noise getting into the micro power supply and glitching it. It is standard practice. Just about all circuits need power supply capacitors. I have noticed a lot of builders miss this.
@JohnBaxterWalker
@JohnBaxterWalker 4 года назад
Probably a daft newbie question. I have loaded the INI file into the Arduino. Where do I add/use the servo0/1/2 CPP and servos H file ?
@Robonza
@Robonza 3 года назад
All files must be added to the project before compiling or it will not compile. Standard practise.
@imaad_refai
@imaad_refai 3 года назад
This would be really useful for my college project. I am unable to open those links provided in the decription.
@Robonza
@Robonza 3 года назад
Link fixed. Google and RU-vid broke it.
@n1spen
@n1spen 3 года назад
@@Robonza i think they have broken it again will not work for me but a very useful vid thanks
@Robonza
@Robonza 3 года назад
@@n1spen I just tested it, its fine. Maybe its blocked for your IP. Try accessing via proxy or get a friend to download it for you
@ConnorCain25
@ConnorCain25 Год назад
Hey mate, I tried to get access to the code you made available but the link wouldn't work. iS there any way you could make a new link?. Cheers
@Custom3dPrinting4U
@Custom3dPrinting4U 4 года назад
I really appreciate the tutorial. I now have 4 servos wired up but I want to make it to where when i click the button then the code is executed and then returned to home position before executing the rotation. Can you help me?
@joegob100
@joegob100 Год назад
This is so helpful, my level of coding is copy paste and play with values, is there any way to get this code. I am making a prop raven
@NeilvanGeffen
@NeilvanGeffen 6 лет назад
i use that servo code for my automated blinds :)
@Robonza
@Robonza 6 лет назад
Awesome Ned!
@chriskiepfer450
@chriskiepfer450 3 месяца назад
is there a source for the code, the link does not work?
@ianmoon8764
@ianmoon8764 2 года назад
Would you be kind enough to upload the code again please as the link does not work. thank you
@oldfarmhand7714
@oldfarmhand7714 2 года назад
Hello I tried to look at your source code but it is a blank screen I know this is an old video but I just found your page and I did use a proxy
@thisisrobophil
@thisisrobophil 2 года назад
the link for the code seems down.. possible to check it please
@Robonza
@Robonza 2 года назад
Yeah, sorry. I will fix that one day when I setup another website. unless you want to host it
@johnkadrich44
@johnkadrich44 2 года назад
Can I get the code for this, it looks like the link is no longer valid. Thanks.
@k2h215
@k2h215 5 лет назад
Hi sir, can you make a video for your updated code ? I figured out there is a button in pin 2 and my test failed cause I think I made some mistakes.
@thetooter988
@thetooter988 4 года назад
Thank you so much, that’s what I needed.
@JohnDoe-wl5wh
@JohnDoe-wl5wh 3 года назад
Would this code work with an Arduino uno? I'm trying to move a robotic arm with 6 servos with an arduino uno, I have an external power supply that provides 7.5 V but I keep getting these weird glitches where only 2 of the 6 servos move. I believe it's because my code has them moving at the same time, however this code allows them to move simultaneously right?
@Robonza
@Robonza 3 года назад
It should work fine. Its not demanding code. Make sure you add the capacitor like I did. Yes this code can expand and move 6
@alfiechenery4146
@alfiechenery4146 3 года назад
I’m having the same issue trying to run 3 servos from a battery. I’m trying to run the servos and the nano all off 4xAA batteries. I suspect I’m maxing out the current draw of the battery and that is causing issues. What’s more weird is when I hit the reset button 2 of the 3 servo move but it’s rarely the same 2. Like it seems random. One time they all moved but then one of them started spasming and twitching a bit. I’m gonna try swapping for a bigger capacitor, and if not putting more batteries in parallel to try to increase the max current output
@robertrobert5583
@robertrobert5583 5 лет назад
Thanks for posting this and for sharing the code. When I validate I get this error message though: error: 'TICK_TIME' was not declared in this scope
@Robonza
@Robonza 5 лет назад
That typically means you do not have all the files added to the sketch so it cannot find a value needed. Make sure all files are add to the sketch
@robertrobert5583
@robertrobert5583 5 лет назад
@@Robonza thank you for getting back to me so quickly. I think I have all the files: robonza_servo.ver3.ino, servo0.cpp, servo1.cpp, servo2.cpp, servo.h
@Robonza
@Robonza 5 лет назад
Did you open the INO file using Arduino? TICK_TIME' is clearly in servo..h so that means the h file is not visible to your sketch. Its not an issue with my code.
@kennethkindrich3114
@kennethkindrich3114 4 года назад
been searching the internet for days and still havnt found an answer. I want to make several servos move with if statements. like, if a servo position is at 70, i want another servo to go to 30....if that makes sense....anyone have any answers?
@Robonza
@Robonza 4 года назад
The code I have supplied will do that. You just need to spend some time using and understanding it.
@teltowfamily2223
@teltowfamily2223 Год назад
i miss when ardiuno was 3 dollars!
@rag2273
@rag2273 2 года назад
WHICH SERVO IS THIS
@alonsovargas8046
@alonsovargas8046 3 года назад
Quick question, can anyone share the link to review the code or the code itself? The link doesnt work, Thanks!
@Robonza
@Robonza 3 года назад
The link does work, try a proxy site , you may be on a banned internet block due to hackers,
@alonsovargas8046
@alonsovargas8046 3 года назад
@@Robonza thanks! It works
@ico-theredstonesurgeon4380
@ico-theredstonesurgeon4380 5 лет назад
So from what i can understand, splitting the code in cpp files makes it possible to run multiple functions simultaneously. Am i right??
@Robonza
@Robonza 5 лет назад
its impossible to run thing simultaneously. What it does do is make things tidy and easy to maintain. One rule I try to follow is make my main loop under one page when possible as it makes it easy to read and fix in 5 years time when you forgot how it works.
@ico-theredstonesurgeon4380
@ico-theredstonesurgeon4380 5 лет назад
@@Robonza Then how can you control the servos simultaneoulsy without constantly skipping back and foward between them? I watched the video multiple times and downloaded the code to read it but i'm still kinda lost...
@Robonza
@Robonza 5 лет назад
Each servo is updated sequentially at a rate that appears simultaneous.
@ico-theredstonesurgeon4380
@ico-theredstonesurgeon4380 5 лет назад
@@Robonza ohh that makes much more sense... and can i apply the same concept with a pwm servo driver?
@Allanusmonostat
@Allanusmonostat 2 года назад
I think the link is dead.
@ModelSceneryTutorials
@ModelSceneryTutorials 4 года назад
Let me preface this by saying I am not a coder. I an a one time user at the copy and paste level of knowledge. I found this script for moving model railroad turnout servos. But it is only for one turnout. I have 6 on my layout. Would you be so kind as to give me the code to have this work for 6 turnouts and for each turnout, instead of only having 2 position indicator LEDs, I would like to have 2 other LEDS that would be used for a signal light. They would change with when the position LEDs change. Thank you for the time, help and patience. Gary G #include // original nscaler control of 1 turnout. // constant variables used to set servo angles, in degrees const int straight = 90; const int divergent = 110; // constant variables holding the ids of the pins we are using const int divergent_led = 6; const int straight_led = 7; const int buttonpin = 8; const int servopin = 9; // servo movement step delay, in milliseconds const int step_delay = 70; // create a servo object Servo myservo; // global variables to store servo position int pos = straight; // current int old_pos = pos; // previous void setup() { // set the mode for the digital pins in use pinMode(buttonpin, INPUT); pinMode(straight_led, OUTPUT); pinMode(divergent_led, OUTPUT); // setup the servo myservo.attach(servopin); // attach to the servo on pin 9 myservo.write(pos); // set the initial servo position // set initial led states digitalWrite(straight_led, HIGH); digitalWrite(divergent_led, LOW); } void loop() { // start each iteration of the loop by reading the button // if the button is pressed (reads HIGH), move the servo int button_state = digitalRead(buttonpin); if(button_state == HIGH){ // turn off the lit led if(pos == straight){ digitalWrite(straight_led, LOW); } else { digitalWrite(divergent_led, LOW); } old_pos = pos; // save the current position // Toggle the position to the opposite value pos = pos == straight ? divergent: straight; // Move the servo to its new position if(old_pos < pos){ // if the new angle is higher // increment the servo position from oldpos to pos for(int i = old_pos + 1; i = pos; i--){ myservo.write(i); // write the next position to the servo delay(step_delay); // wait } } // turn on the appropriate LED. if(pos == straight){ digitalWrite(straight_led, HIGH); } else { digitalWrite(divergent_led, HIGH); } } }// end of loop
@techparistech2659
@techparistech2659 2 года назад
the link is not working
@V1RGINEVO9
@V1RGINEVO9 2 года назад
I too can not get the link to work :( Looks like great work
@waynefilkins8394
@waynefilkins8394 2 года назад
this is the simple way???
@waynefilkins8394
@waynefilkins8394 2 года назад
is there a simpler way to do just 2 tiny servos?
Далее
Servo Motors, how do they work?
15:12
Просмотров 1,9 млн
Beginners Guide To Using Large Stepper Motors: #087
19:49
Dropping In from the Clouds 🌁
00:17
Просмотров 669 тыс.
Новый хит Люси Чеботиной 😍
00:33
Using Servo Motors with Arduino
43:06
Просмотров 1,4 млн
Connect Up To 992 Servos To An Arduino, Using I2C
7:47
Ford RS gauges with Arduino UNO
45:38
Просмотров 271 тыс.
Fun with Transistors
24:33
Просмотров 262 тыс.