I have read 20 odd tutorials on rotary encoder. But those miss the philosophy and application of encoders. This video is better than all those 20 videos.
OH, man, you nailed it. well explained with demo integration. Thank you for sharing knowledge and for giving the opportunity to a person like me to evolve and progress. great video with great value
So this is the first time I'm watching a SparkFun video - my first impression was like "whoa this guy with the stereotypical scientist costume... wtf is this a comedy?" but for some reason I kept watching and in the end I subscribed. Well done.
At 9:47, there is an error in explanation: If B is high (should be low) on A's falling edge, then we know that disc is rotating clockwise At 10:02, there is an error in explanation: if there is a falling edge on A and we detect B is low (should be high) then we know that the disc is rotating counter-clockwise
@ 9:51, "If B is HIGH on A's falling edge, then we know that the disk is rotating Clockwise" Wouldn't we be able to tell if the disk is rotating Clockwise when B is LOW on A's falling edge? Using the videos diagram, I think this logic makes sense. If the disk is rotating Counterclockwise, B would read HIGH on A's falling edge. Please correct me if I'm wrong, I would like to make sure I understand the rotary encoder logic.
Thanks soooo much for this. You don't know how hard it was to find a good tutorial on this subject. Its funny but I have about 4 Arduino books on bots and not a one talk about this. They all talk about line following and other easy stuff. SparkFun, you have made a customer today!!!!
If I may share my experience, instead of comparing the rising and falling moments to determine the direction, I'm simply using flags for moving forward, which I set at the end of every direction function and reset at the begining of it. Therefore I always know when my robot is moving forward or spinning/turning to a side, or moving back etc.
Not exactly my point. I'm talking about integers or booleans set or reset every time on every action. Then you will have a "source" for many conditions after.
Use a good quality encoder. Otherwise go for stepper motor. I personally tried all three. Servo (real rc servo only rotate 180° , 360° servo doesn't have feedback so there just plain dc motors with speed control) , dc motor with encoders and stepper.
Hi, thanks for the video. I recently had an idea for the navigation for bot I’m designing using encoders to essentially map a grid for the bot to travel within. I think my idea is doable. What are your thoughts?
Ncheeta Morero read about H bridges. 2 digital output pins for every wheel determine the direction of rotation + 1 pwm output (again, 1 for each wheel) to control the speed of that wheel. This should explain it!
For each motor there are two pins and one pwm pin. For two motors that's 6 pins. There is one standby pin that has to be held high for motor driver to work. And then there are one pin each for encoder output.( If u r using quadrature encoders, then there are 2pins each for a motor). So in total there are 6+1+1+1=9 pins.
@@АльбертИванов-ц4х I'm quite space limited. That's why I was looking for magnetic discs with a hall sensor. But I ordered the ones from Pololu by now and they work perfectly
Can anyone help me? I don't understand this section: // Constrain power to between -255 and 255 power_a = constrain(power_a, -255, 255); power_b = constrain(power_b, -255, 255); Why constrain power between -255 and 255? motor speed only 0-255. Thank you
Yes, if you watch the video at around 7:53 (th-cam.com/video/oLBYHbLO8W0/w-d-xo.htmlm53s), you'll see that I set the robot to measure millimeters and stop after it's traveled 1000 mm. For a human-scale example, measuring wheels (like this one www.amazon.com/TR-Industrial-Collapsible-Measuring-Yellow/dp/B01018D7MS/ref=lp_3753421_1_1) work on the same principle. As you walk with it on the ground, a device counts the number of rotations and by knowing the circumference of the wheel, you can figure out how far you've walked with it.
Many of the last generation of mass production VCR's use them as well. I've taken several from old TV's that had integrated VCR's. They are usually mounted on stands that are easier to incorporate in other hacked designs too. You can also grab the LED's from a remote control and the IR receiver to make your own encoder, although you need the simple kind. A lot of newer IR receivers have integrated IC's in them and that can complicate the design.
Your explanation for graph at 3:40 is faulty. If one is rising edge and one is falling, what is with the empty space in the schematic? If u are using bipolar hall senzor that explanation is ok but change the simplification animation then.
Why INT? At least my Arduino doesn't have enough pins that I need int. At least byte thick is enough for me! But as in every example - a few delay and you can use the example for nothing else - congratulations.
Oops, •¿° d x pi =c But won't d vary with weight on the axel? Oh,, and is there a difference between absolute encoder and a gray code... oops. I just dated myself....
The diameter might decrease slightly if your wheels are particularly squishy. A gray code is used to correct the potential issue of an absolute encoder counting false states between two real states (en.wikipedia.org/wiki/Rotary_encoder#Ways_of_encoding_shaft_position).
I don'y get why, with all the popularity of "robots", people are not being taught about feedback. Would you build a temperature control system with no feedback? No! Real encoders feature 3 channels; A, B, Index. The method demonstrated here cannot detect a change of direction. Forget the interrupt counter and grab a LS7366 (SPI). Grab a DC motor with a HEDS encoder and learn about PID control.
Every time I see a quadrature encoder I imagine the inventor smiling when he thinks of it. It's just such a beautiful concept.
I have read 20 odd tutorials on rotary encoder. But those miss the philosophy and application of encoders. This video is better than all those 20 videos.
OH, man, you nailed it. well explained with demo integration. Thank you for sharing knowledge and for giving the opportunity to a person like me to evolve and progress. great video with great value
Getting me through my Masters degree in engineering, thanks Bud
So this is the first time I'm watching a SparkFun video - my first impression was like "whoa this guy with the stereotypical scientist costume... wtf is this a comedy?" but for some reason I kept watching and in the end I subscribed. Well done.
At 9:47, there is an error in explanation: If B is high (should be low) on A's falling edge, then we know that disc is rotating clockwise
At 10:02, there is an error in explanation: if there is a falling edge on A and we detect B is low (should be high) then we know that the disc is rotating counter-clockwise
yeah i noticed this one too. thanks for mentioning it. a bit confused but overall the whole video explanation is very clear.
@ 9:51, "If B is HIGH on A's falling edge, then we know that the disk is rotating Clockwise" Wouldn't we be able to tell if the disk is rotating Clockwise when B is LOW on A's falling edge? Using the videos diagram, I think this logic makes sense. If the disk is rotating Counterclockwise, B would read HIGH on A's falling edge. Please correct me if I'm wrong, I would like to make sure I understand the rotary encoder logic.
This is fantastic, Shawn and team. Well done, thanks.
Thanks soooo much for this. You don't know how hard it was to find a good tutorial on this subject. Its funny but I have about 4 Arduino books on bots and not a one talk about this. They all talk about line following and other easy stuff. SparkFun, you have made a customer today!!!!
That was great!Flipped from the very basic to the relatively advanced - lots of info. Thanks
Simply superb, good piece of information for new entrants like me in the world of Arduino. Do keep sharing your knowledge....
something similar for devs regarding centering a div.
the explanation was very good!
Wow ! So Far your video is so informative about this topic and Even special for me because 1:26 now i know where to find it near by .👍
Love it, excellent explanation on the workings of encoders.
Thank you.
If I may share my experience, instead of comparing the rising and falling moments to determine the direction, I'm simply using flags for moving forward, which I set at the end of every direction function and reset at the begining of it. Therefore I always know when my robot is moving forward or spinning/turning to a side, or moving back etc.
Not exactly my point.
I'm talking about integers or booleans set or reset every time on every action. Then you will have a "source" for many conditions after.
We're do you buy this encoder in the video
Great tutorial...One step more closer to my Project...Thanks
remarkable, well explained. Good work Shawn.
Brilliant! This work is much appreciated. Please keep them coming.
Great lecture! Thank you so much🙏🙏
How would you mount the disc onto the output shaft?
Thanks for this. I was thinking about buying a servo but now I know I could just make a rotary encoder instead.
Use a good quality encoder. Otherwise go for stepper motor. I personally tried all three. Servo (real rc servo only rotate 180° , 360° servo doesn't have feedback so there just plain dc motors with speed control) , dc motor with encoders and stepper.
Does Sparkfun carry any "thru-shaft" rotor encoders? I'm wondering how to prototype a inverted pendulum without wires creating issues.
Can we use rotary encoder for sensing the projection's xy coordinates?
As we can use Lidar for the same.
i am glad i found your channel. i have subbed looking forward to looking through your videos
Can I use a Rotary Encoder in a wind vane circuit for wind direction?
Amazing explanation. Your the best.
would the same code work for optical encoders?
Hi, thanks for the video. I recently had an idea for the navigation for bot I’m designing using encoders to essentially map a grid for the bot to travel within. I think my idea is doable. What are your thoughts?
Exactly what I am looking for.
Do you guys have something with draw wire encoder for Arduino?
where can i buy the magnetic disk and hall effect sensor for this demo?
Hall effect sensor is available on e.g. banggood, eBay or AliExpress. Did you find any magnetic encoder disks?
thanks a lot sir,
i 've a question, is rotary encoder and shaft encoder mean the same thing?
There is so many pins defined....i only have the two encoders. The others i don't understand what they are, please explain.
Ncheeta Morero read about H bridges. 2 digital output pins for every wheel determine the direction of rotation + 1 pwm output (again, 1 for each wheel) to control the speed of that wheel. This should explain it!
For each motor there are two pins and one pwm pin. For two motors that's 6 pins. There is one standby pin that has to be held high for motor driver to work. And then there are one pin each for encoder output.( If u r using quadrature encoders, then there are 2pins each for a motor). So in total there are 6+1+1+1=9 pins.
Hi sir
Could u tell me please
Can we use PushPull encoder instead of TTL or HTL
I just try the code showed. But why do I get different value of ticks everytime the coding I uplod to arduino board?
Regard,
I'll make a library for this if you want
How do you extend the shaft of the yellow motor in order to mount the encoder?, thanks
Francisco José Campos Arizmendi you buy a motor with shafts out both sides.
This video is gold!
Sir how use camera in a remote car using arsduino plz reply
is it the same for optical encoders ?
Where can I get those magnetic encoder discs? I only find those ones from pololu and I'd just like some more options...
Bastian Springer you can take cheap standard optical encoders, the result will be the same
@@АльбертИванов-ц4х I'm quite space limited. That's why I was looking for magnetic discs with a hall sensor. But I ordered the ones from Pololu by now and they work perfectly
thank you for that great work ❤
Can anyone help me? I don't understand this section:
// Constrain power to between -255 and 255
power_a = constrain(power_a, -255, 255);
power_b = constrain(power_b, -255, 255);
Why constrain power between -255 and 255? motor speed only 0-255.
Thank you
Roinaldo Pho it most probably is because it uses and 8 bit data system and can’t handle more than +/- 255.
@@roguepathfinder2477 microcontroller has an 8bit ADC.
zeus 0101 good to know! And i was almost right, that’s a win in my book.
hi
how we can make dc motor as servo ? with encoder
or how can i control dc motor shaft to turn 20 degrees 45 degrees 360 degrees etc ?
You can however do not that these encoders are very inefficient.
Very interesting! Good explanations.
Is it possible to measure distance using rotary encoders?
Yes, if you watch the video at around 7:53 (th-cam.com/video/oLBYHbLO8W0/w-d-xo.htmlm53s), you'll see that I set the robot to measure millimeters and stop after it's traveled 1000 mm. For a human-scale example, measuring wheels (like this one www.amazon.com/TR-Industrial-Collapsible-Measuring-Yellow/dp/B01018D7MS/ref=lp_3753421_1_1) work on the same principle. As you walk with it on the ground, a device counts the number of rotations and by knowing the circumference of the wheel, you can figure out how far you've walked with it.
PACKED with info...luv it.
Where can we find these magnetic encoder discs? Do they have a rpm sensing limit?
Depends on the hall effect sensor and the electronics detecting the pulses.
Are there any rotary encoders that are 0.75 inches?
Thank You. You got me off on a I want to learn this stuff start.
Can a command from this encoder if connected to a priting head will print a 5meter long tape
This I want to sell in market
How can we use this for raspberry pi? please help
Awesome video!
Kids, take apart your home printer to see an example of an optical encoder!!
A linear optical encoder (if it's an inkjet)
Many of the last generation of mass production VCR's use them as well. I've taken several from old TV's that had integrated VCR's. They are usually mounted on stands that are easier to incorporate in other hacked designs too. You can also grab the LED's from a remote control and the IR receiver to make your own encoder, although you need the simple kind. A lot of newer IR receivers have integrated IC's in them and that can complicate the design.
Great tutorial
Your explanation for graph at 3:40 is faulty. If one is rising edge and one is falling, what is with the empty space in the schematic?
If u are using bipolar hall senzor that explanation is ok but change the simplification animation then.
You didn't show how to adjust the speed of one wheel to keep up with the other. You just said could be done and blew past it.
Speaking about computer mouse, kids this days have no idea about the old school ball mouse
If I have single shaft bo motor and main motor shaft in no long so what I do.
Make it with n20 micro gear motor with encoder
3:21
excellent all the way 😍
Why INT?
At least my Arduino doesn't have enough pins that I need int.
At least byte thick is enough for me!
But as in every example - a few delay and you can use the example for nothing else - congratulations.
Thank you so much!!!
Nice!!!! Tks so much!
please add english subtitles. thanks in advance
pretty cool!
Awesome !
Oops, •¿° d x pi =c
But won't d vary with weight on the axel?
Oh,, and is there a difference between absolute encoder and a gray code... oops. I just dated myself....
The diameter might decrease slightly if your wheels are particularly squishy. A gray code is used to correct the potential issue of an absolute encoder counting false states between two real states (en.wikipedia.org/wiki/Rotary_encoder#Ways_of_encoding_shaft_position).
Thanx!
amazing
perfect
Please normalize your volume
Best video
GREAT
* odometrie
Anyone else bothered by his rounding on multiple steps?
Nice vid with very annoying background music.
I don'y get why, with all the popularity of "robots", people are not being taught about feedback. Would you build a temperature control system with no feedback? No!
Real encoders feature 3 channels; A, B, Index. The method demonstrated here cannot detect a change of direction.
Forget the interrupt counter and grab a LS7366 (SPI). Grab a DC motor with a HEDS encoder and learn about PID control.
What a stupid music in the background. Have you heard this in your scool too?
Is this a tutorial or a personal show?
It's hard to believe that people who don't know how an encoder works, would buy anything from your store!
Well, I'm hoping that the video can teach someone about encoders, and it might entice them to look at our store. We were all beginners at one point :)
Great tutorial