Feel free to see my other videos as well, perhaps you will find more tutorials that you don´t need and watch them anyway :) Thank you for your comment.
I'm glad you mentioned that it's not the best way to do this at the end, but the video is still useful because it nicely covers the basics of multiplexing.
I knew all of this already, don't really know why i watched it... It was just so well thought out that it was satisfying to watch, perfectly explained!
@@mattsadventureswithart5764 if you are doing such fancy stuff you will probably order PCB for your panel. You can use blank PCB as frame and that will be cheap (around 2$ including taxes), precise and convenient. This is exactly how I made my own masks. Owners of 3D printers can go for black PLA with added benefit - rivets. Of course PCB makers these days can print it for you and it will still be cheaper and will look better
Great job on this.. I love how you make your thought process known... an array etc.. That also looked tricky to get the pot inside the light ring... awesome work!
Thank you for your nice words, I’m glad you like it. With a proper custom PCB, fitting the potentiometer inside would be much simpler, but for my prototyping stage, it was kind of challenging.
I see lots of great ideas to do the same or similar using less pins but I think they are missing the point, that beginners, like myself, need to understand the fundamentals which you explain clearly before they can move forward! Looking forward to your future development of this project!
Thank you for your comment, I´m glad it was helpful and I´m glad someone understands that connecting LED ring light to Arduino UNO this way makes no sense other than learning how it´s done and how it works, so you can use a proper multiplexing chip later on.
Thank you for your nice comment, that´s great to hear! I just need to find out why this particular video was so much more popular compared to my other videos.. and try to repeat the process.
Great video! I commented that it could be accomplished in a better way using something like I2C, but at the very end of the video you mentioned that you will be showing how to use a multiplexing chip later :)
Nice explanation, very educational. Good demonstration of how matrix LEDs are driven. If however I did this for real, I'd want an LED matrix driver chip, if only because I don't think the AVR would survive for long if you kept driving its pins at these power levels.
Thank you for your comment. I cannot answer your question about the lifespan, but I don´t think that it would make any big difference, after all, those "power levels" are pretty low. However, as mentioned in the video, you spend way too much cycles updating the LEDs, since you need to do this all the time. If you use multiplexing chip, you only need to send new data when the content should change, and the multiplexing chip takes care of that. I have recently recorded a video with some Chinese chip that you can get for 0.2 dollars and it can drive 128 LEDs - i.e. 4 of those ring lights. I think in that case, using external chip makes a lot of sense.
Not so bad when you're running your multiplex at speed but in the experimental stages, the lack of current limit resistors could be risky - especially for this relatively expensive ring. I bought some of the Alps led ring integrated encoders and was paranoid enough to place current limits on all possible paths - but it was messy. I agree that a constant current matrix driver is a better choice. ISSI perhaps.
@@nikthefix8918 Honestly I'd fear more for the output driver logic of the MCU than for the LED. A LED can take quite a bit of overcurrent for quite a while before it dies, but the output drivers of uCs are much less forgiving. The AVRs are among the sturdier ones, if you tried the same with a motorola or pic, you'd go through a lot of chips. That's why you should always put an impedance converter between your output pin and your load.
Nice find; I was looking for an LED ring like this for a project just a few weeks ago. I decided I'd DIY something; maybe still will with the price, but it's a great reference.
It depends. If you don´t set the pinmode to output, the pin could be any value, i.e. it´s in the "floating" state. Once you set the pinmode to output, it´s either low (ground) or high (5V in case of Arduino UNO).
@@upir_upir thanks mate I’ve been using arduinos for the past couple months so still pretty fresh I didn’t even realise I was learning a variant of c++ at 1st lol
definitely in need of a driver chip and i2c then this would be really powerful and I would include it everywhere that I have a potentiometer. Nice work!
Love your video. I tried doing something with arduino a few times and I am a coding noob so I didn't really understand the whole coding part but I love the video. Might come back to it once I figure things out. You explain this really well!
hey upir I just had a question if you were czech because you really sound like a czechman and if so, DAMN DUDE that english be almost clear ale jinak nice
little suggestion that will help that blinking ALLOT. ONLY write the changes to the pins. dont always right. do a comparison from the last time the loop occured to now, and look to see if the pin values are going change, then only write the changed pin value and not all of them. you would ask why because high = high, nothing will change, but the fact is, it takes TIME to process a digitalwrite function. by only doing a digitalwrite only on the changed pins, you save time.
I pressed on this video randomly to watch something while eating, and now i understand how a led matrix works and what's the real difference between high and low pins
Always wanted to make a USBC PPS style... err, programable power supply. With the PPS you can request voltages in 50mV steppes, perfect for playing with projects. Would love a potentiometers like this to control it!
That´s strange, I have just clicked the link and it works. Anyway, try googling this and hopefully you will be able to find it "31 LED linear array, arc 300 ° suitable for audio equipment display device"
Your comment at 14:30 is flawed. If you make your code non-blocking, use state machines and millis, you can effectively multitask and it should not cause noticeable problems. And in fact, it does make sense to drive them directly, because you're saving the costs/space of an extra IC. This may not be worth the effort for a one-off project, but micro controllers are commonly used in mass-produced appliances, so in these cases it may be well worth it.
Fair enough. For most of the applications, it would still be simpler to use dedicated multiplexing chip, or perhaps a different chip than the one used in Arduino UNO, since having only 2 digital pins left would be most likely a challenge.
That's so cool! I just don't understando how the variable "show_value" works on this example. Why it has to be equal to i*8+j on that if and what exactly is it's purpose?
Thank you. Perhaps I should have used a better variable names instead of just "i" and "j". The LEDs are arraged in "grid", or perhaps in 4 separate groups - those groups have common cathode. So variable "i" is for those groups (groups of 8), and variable "j" is the LED inside that group. Pretty much just translating 2D position in a grid to a 1D position so I can access the correct LED.
Yes, that´s an interesting idea, and technically very close to driving multiple LEDs, since it also uses multiplexing. I might record a video about that soon.
When I bought it the last time, it was about $9 a piece; it looks like it´s getting more expensive, as it now costs around $11 a piece. I wonder how much it would cost if you made it by yourself.
Nettes Teil, allerdings wäre ein Mono Potentiometer für den Arduino belegt. Da müsste man sich ein Stereo Potentiometer anschließen um die eigentliche analoge Schaltung auch zu bedienen. Um Ports zu sparen wären Schieberegister direkt auf dem LED Board praktisch gewesen und der Preis wäre ein Stückchen gerechtfertigt gewesen. Beste Grüße ✌️😊👍
You could use a shift register and just two pins from the arduino to multiplex and drive those leds with common cathode. A bit more math to do (compile time) though, but less clutter and LESS USED PINS
Shift registers are surely possible, but I believe you would need two of those. I think a better solution is to use something like MAX7219. That´s the one that I actually plan to use in the next video.
@upir_upir, that's better, but consider how cheap these two are (especially comparing to $20 led module). Also seems like max7219 just uses shift registers to multiplex internally, and just takes command data via spi, so you're just proposing higher level task, omitting basics.
Multiplexing LED is a technique used to connect LEDs in a matrix of addressable rows and columns. The advantage is simplification of hardware due to the reduced number of pins required.
And here I thought I was being fancy with my 7-addressable-LED pot rings... I wish these werent so expensive if not just so mixing consoles that use them weren't thousands of dollars.
I believe the same company also has some for sliders. There are pre-made modules with X number of LEDs, but most of the time, those are much smaller than the slider.
Cool. Only if the potentiometer was not so expensive. The led ring module with driver by Mayhew Labs was cheaper. It´s sad that it is no more available.
Driving the LEDs directly from the Arduino pins is quite a no-no. The Atmega328 itself becomes the current limiting resistor and you can overdrive the pin above the 40mA limit. It really should have a resistor. Your code just needs to be able to put on more LED segments at a time. That's not difficult.
Don´t worry, I have used the current limiting resistors later in the video with the real Arduino board. It was just simpler/quicker to not use them in the simulation.
That´s great to hear! Try lowering the range of the potentiometer, perhaps it´s having hard time reaching the 1023 value, so only go up to 1020 or even 1010?
How do you know how to connect the LEDs so that they can do the function you want? And how did you know how many wires you'll need? Like for the 9 LEDs at first you can think about it, but let's say you're dealing with much much more....
It´s a number of columns X the number of rows. It´s easy to visualize with a grid-like pattern, but obviously harder with something like the LED ring light, where all the LEDs are in one line. Usually multiplexing chips like the MAX7219 can drive 8x8 LEDs, i.e. 64 LEDs in total. How many LED do you want to control?
Thank you, I´m glad you like it. It´s not super cheap, but that´s mainly because it´s quite specialized product I guess. As other has noted already, it should be simple to build something similar..
@@upir_upir True! It's probably a bit costly because it's somewhat niche for now, not mass-produced just yet. But looks really nice and I can see it being useful in a lot of projects, might try to make one. Cheers!
You don't need to light each LED individually. Light the LEDs in groups for each CA/CC. Instead of iterating 32 times, you only need to iterate 4 times.
Yes, but with this approach, you will have hard time getting a consistent brightness. If you light up 1 of 8 LEDs in one group, and 8 of 8 LEDs in second group, the one LED in first group would be much brighter.
@@upir_upir A compromise I could see is switching half a bank at once, then you'd only need to figure out on-times for 1/2/3/4 looking even. measure the brightness objectively with a camera, as long as you switch them fast enough it should all get accumulated into the same frame - or just eyeball it off the measured voltages honestly
Depends how you define “hard”. It’s definitely hard for me, but it would be not that hard for someone who understands programming a little bit more. There are many examples for custom components in WOKWI documentation, if your component is similar to any of those, it would be easier.
MAX7219 does 8x8?... 8 segment pins and 8 digit pins, allowing 8 '7 segment' displays with their decimal point being the 8th segment. Or 64 leds in an 8x8 array.
It is better if have directly accessed registers instead of digitalWrite but still good as is. I would prefer I2C IO expanders though as they are pretty cheap.
My email address should be visible when you go to the about section of this channel, but I know that sometimes it only shows on desktop and not on mobile.
@@upir_upir Arduino UNO: link-ok Arduino prototyping shield: link-ok Breadboard wires: link-ok LED ring light: link-bad LED ring light(GitHub): link-bad
It's very nice, but despite the fact that I like to use MCU for everything, I think this can be accomplished by analog means. One LED, a backlight, and a dark ring with a slot on it attached to the knob. Sometimes simpler is best
The point of this ring is not to use it with a pot but an encoder. The stored parameter value can be recalled and displayed easily. Cheaper than a motorized pot but still too expensive. Alps do an encoder with led ring as a combined unit. About 15 euro I think.
Interesting idea with the physical approach, but as someone has noted, it can quickly show a stored value with rotary encoder. With your solution, you would need a motorized version and that would probably cost more. Also, with LEDs, you can control the brightness and have some cool effects.
off course its out out of discution all that you say. just that it is over complicated in the video something that has been made in some old devices in analog way. @@upir_upir
also, this sort of thing is best to use a digal to analog chip. it saves allot of pins, which for any project with multiple modules, you'll want to save pins as much as possible, but also by using a da chip, you will also be forced to only write changes. this is because da's use i2c, and a hexdecimal representation of the pins. like 00,01,02,AA, AB and so on.. which gets converted to 8 bit binary and each position of that binary is a pin on or off. these DA's are pretty fast at what they do, so you'll hardly notice the difference, if not better than before. best part is, its not much more code to use i2c, it boils down to using a different write function instead of digitalwrite. for the led position in real life compared to hex decimal value, you can use an array for each position, then cycle through the array for what to write to i2c line.
Yes, there are many different chips that will do the same thing for less money and with better timing and support for brightness. Once you understand how multiplexing works, it should be much simpler to use those chips. I will go over some of them in the next video.
It should have been - Thank you for watching, now you know how multiplexing chips works, and it should be much easier for you to use one if you decide to.
As many has commented before, with enough knowledge, you might be able to create your own version for a fraction of a price - at least that´s what they said.
I have just checked and it looks like you can get 100 SMD LEDs for just a few dollars. However, that would probably not be the biggest expense, you also need pcb and pcb stencil. Might be an interesting idea for a next project- diy led ring light.
@@upir_upir absolutely the LED's on a reel of 2K are about 0.3-1 cent a piece and a prototype PCB even 10cm square is about 2-5$ for 10 so yeah you could build 50 for the price of 1 if you designed it your self
@@101blogArguably, when you buy from a company you are paying for the labor and material cost expense of designing and manufacturing it plus the convenience cost of being able to just buy one (or even a couple units). The "savings" from doing it yourself and making say 50+ largely come from discounting the cost of your own time and effort.
@@jnharton Absolutely but since its a hobby where you make things then making them is the fun thing not just buying them. The whole hobby thing is a price time fun tradeoff
@@jnhartonBut those savings are significant and with companies like JLCPCB and PCBWay for example that offer PCB production as well as assembly you could design a little PCB and have them build the entire thing for something like $50 for 100 of them or so... At which point they're $0.50 each... Heck they will usually even be built, assembled and shipped to you faster than a normal aliexpress purchase...
It´s very specific product, so it´s expected that the price will be somehow higher compared to let´s say a single LED. I will try to create my own version in the next video to see how much cheaper it could get if I create it on my own.
Do you want to make this project cheaper? Here is an answer - th-cam.com/video/Bot865qmdsM/w-d-xo.html
A tutorial I didn't know I needed. Very cool. The AutoCad example with multiplexing was super helpful.
Feel free to see my other videos as well, perhaps you will find more tutorials that you don´t need and watch them anyway :) Thank you for your comment.
I'm glad you mentioned that it's not the best way to do this at the end, but the video is still useful because it nicely covers the basics of multiplexing.
Thank you for your nice words, I´m glad you like it and understand the purpose of this video!
I knew all of this already, don't really know why i watched it... It was just so well thought out that it was satisfying to watch, perfectly explained!
In any case, I’m glad you have enjoyed it! Thank you.
EUR 23 for two of these rings doesn't stimulate building something with a lot of potentiometers on it 😮
I'd probably just lay LEDs around pot myself. Mask can be ordered relatively cheap
Way too expensive!
@@brylozketrzynmask could be cut from a milk carton with some care, meaning its a minimal cost.
@@mattsadventureswithart5764 if you are doing such fancy stuff you will probably order PCB for your panel. You can use blank PCB as frame and that will be cheap (around 2$ including taxes), precise and convenient. This is exactly how I made my own masks. Owners of 3D printers can go for black PLA with added benefit - rivets. Of course PCB makers these days can print it for you and it will still be cheaper and will look better
I´m sure that if you design a project that uses hundreds of those, you will get some significant discount.
One of the best videos I've seen on explaining multiplexing. Thanks!
Great job on this.. I love how you make your thought process known... an array etc.. That also looked tricky to get the pot inside the light ring... awesome work!
Thank you for your nice words, I’m glad you like it. With a proper custom PCB, fitting the potentiometer inside would be much simpler, but for my prototyping stage, it was kind of challenging.
I see lots of great ideas to do the same or similar using less pins but I think they are missing the point, that beginners, like myself, need to understand the fundamentals which you explain clearly before they can move forward! Looking forward to your future development of this project!
Thank you for your comment, I´m glad it was helpful and I´m glad someone understands that connecting LED ring light to Arduino UNO this way makes no sense other than learning how it´s done and how it works, so you can use a proper multiplexing chip later on.
Very few beginners understand that they are missing the basics. You will go far.
Very simply design, yet the results are impressive. I like it!
Thank you!
Nice explanation of how an LED matrix works.
Glad it was helpful!
This channel never misses
Honestly would love to go into business with this guy making electronics kits
Thank you for your nice words! I really appreciate it.
Can't wait for the next video on the multiplexing LED chips.
Since you can get chip to drive 64 LEDs, I’m hoping that I can you just one to control two LED rings, but let’s see how it goes..
Man I love your videos. Cool and useful ideas, clear instructions and good programming :)
Thank you, I´m glad you like them! Good luck with your projects.
Learned more from this video about arduino coding then i've ever found before, just clear and simple, not fussing around, thanks!
Thank you, that´s great to hear!
Exquisite explanation of multiplexing!
Agreed. Best video I have seen yet!
Thank you both! I really appreciate your nice comments.
Thanks so much for the video, it was pleasure for me to watch such good content! Keep up the same, dude!
Thank you for your nice comment, that´s great to hear! I just need to find out why this particular video was so much more popular compared to my other videos.. and try to repeat the process.
Great video! I commented that it could be accomplished in a better way using something like I2C, but at the very end of the video you mentioned that you will be showing how to use a multiplexing chip later :)
Thank you, I’m glad you like it. Yes, exploring the multiplexer chips is my task for the next video. Stay tuned.
@@upir_upir That is what made me Sub! I need to stay connected.
Thanks!! Looking forward to that video. 🙂
Nice explanation, very educational. Good demonstration of how matrix LEDs are driven. If however I did this for real, I'd want an LED matrix driver chip, if only because I don't think the AVR would survive for long if you kept driving its pins at these power levels.
Thank you for your comment. I cannot answer your question about the lifespan, but I don´t think that it would make any big difference, after all, those "power levels" are pretty low. However, as mentioned in the video, you spend way too much cycles updating the LEDs, since you need to do this all the time. If you use multiplexing chip, you only need to send new data when the content should change, and the multiplexing chip takes care of that. I have recently recorded a video with some Chinese chip that you can get for 0.2 dollars and it can drive 128 LEDs - i.e. 4 of those ring lights. I think in that case, using external chip makes a lot of sense.
Not so bad when you're running your multiplex at speed but in the experimental stages, the lack of current limit resistors could be risky - especially for this relatively expensive ring. I bought some of the Alps led ring integrated encoders and was paranoid enough to place current limits on all possible paths - but it was messy. I agree that a constant current matrix driver is a better choice. ISSI perhaps.
@@nikthefix8918 Honestly I'd fear more for the output driver logic of the MCU than for the LED. A LED can take quite a bit of overcurrent for quite a while before it dies, but the output drivers of uCs are much less forgiving. The AVRs are among the sturdier ones, if you tried the same with a motorola or pic, you'd go through a lot of chips. That's why you should always put an impedance converter between your output pin and your load.
He's a hard worker, i just wish he would see his own potential.
What is my potential? It´s hard to tell...
Potentionmeter,
You always find this awesome stuff ! can't wait for the next one....cheers.
Thank you, I spend way too much on AliExpress, so I have a plenty of modules to play with :) Stay tuned!
Nice find; I was looking for an LED ring like this for a project just a few weeks ago. I decided I'd DIY something; maybe still will with the price, but it's a great reference.
Thank you. Could you share more details about your project and why you needed the ring light?
I didn't think low would set it to ground, but actually makes sense it would because unused pins on an ice tend to be set to ground
It depends. If you don´t set the pinmode to output, the pin could be any value, i.e. it´s in the "floating" state. Once you set the pinmode to output, it´s either low (ground) or high (5V in case of Arduino UNO).
@@upir_upir thanks mate I’ve been using arduinos for the past couple months so still pretty fresh I didn’t even realise I was learning a variant of c++ at 1st lol
Brother.
I came for the potentiometer pimp - I stayed for the multiplexing tutorial.
Thank you.
That´s great to hear!
Nice project. It brings me to the idea how to use it with a rotary encoder. 🤔👍
Cool! What are you going to use this for?
definitely in need of a driver chip and i2c then this would be really powerful and I would include it everywhere that I have a potentiometer. Nice work!
Thank you. I do plan to record a second part of the video with the multiplexer chip to drive the LEDs. Please check back later.
This was a very good explanation. I enjoyed watching it.
Thank you!
Love your video. I tried doing something with arduino a few times and I am a coding noob so I didn't really understand the whole coding part but I love the video. Might come back to it once I figure things out. You explain this really well!
Glad it helped! Feel free to check my other videos, I have a lot of them with Arduino for beginners..
This is SO brilliantly described thank you!
You are welcome, thank you for your comment!
Awesome 😎
Always love your vids❤
keep up!
Thank you, I really appreciate it!
Brilliant. Just brilliant. Can't wait to try it out. Thank you
Thank you for your nice words and good luck with your project!
Good video and content👍👍
jsem si říkal, že zníte jako čech a je to pravda😂 musím říct, že dobrá angličtina
Díky, ale pokud to jde poznat, tak to znamená že na angličtině musím ještě trochu zapracovat 😀
já to nejvíce poznal na přízvuku než na výslovnosti 😀
All the source files are on GitHub: github.com/upiir/potentiometer_led_ring_light
Hi nice video, tip your audio feed is clipping probably because to much bass/deep voice. maybe lower output volume for your mic a bit.
hey upir I just had a question if you were czech because you really sound like a czechman and if so, DAMN DUDE that english be almost clear
ale jinak nice
@@omegacz5212 That´s right, I need to work on my English skills a little bit more :)
so that's how they make high-end Volume displays looks pretty neat
Yep, I have always admired those!
little suggestion that will help that blinking ALLOT. ONLY write the changes to the pins. dont always right. do a comparison from the last time the loop occured to now, and look to see if the pin values are going change, then only write the changed pin value and not all of them. you would ask why because high = high, nothing will change, but the fact is, it takes TIME to process a digitalwrite function. by only doing a digitalwrite only on the changed pins, you save time.
That’s an interesting idea, have you tried it? You can try it in Wokwi too see if that approach works or not.
I pressed on this video randomly to watch something while eating, and now i understand how a led matrix works and what's the real difference between high and low pins
That´s great to hear. You also now understand how pretty much any display works, because multiplexing is the way displays are updated.
omg :o
and what about the absolute maximum ratings, .. reverse voltage for instance ?
Yes, once you understand the basics, you can move on and worry about all those details.
Always wanted to make a USBC PPS style... err, programable power supply.
With the PPS you can request voltages in 50mV steppes, perfect for playing with projects. Would love a potentiometers like this to control it!
I would say go for it! If you include any kind of fancy potentiometer, I would be the first one to buy it :)
broken link LED ring light :(
That´s strange, I have just clicked the link and it works. Anyway, try googling this and hopefully you will be able to find it
"31 LED linear array, arc 300 ° suitable for audio equipment display device"
Same thing here, link doesn't work for me
@@upir_upir may be its some geo restrictions. i cant find by this words direct ali, but i see result in google.
Your comment at 14:30 is flawed.
If you make your code non-blocking, use state machines and millis, you can effectively multitask and it should not cause noticeable problems.
And in fact, it does make sense to drive them directly, because you're saving the costs/space of an extra IC.
This may not be worth the effort for a one-off project, but micro controllers are commonly used in mass-produced appliances, so in these cases it may be well worth it.
Fair enough. For most of the applications, it would still be simpler to use dedicated multiplexing chip, or perhaps a different chip than the one used in Arduino UNO, since having only 2 digital pins left would be most likely a challenge.
make it a VU meter - with the VU maxing to the point at which the volume is set! ✨
Thank you for the suggestion, that´s a very interesting idea. I might try it!
Do you like this video? Please consider buying me a coffee, thank you! www.buymeacoffee.com/upir
Thx. NOw I understand all those linear round gauges with linear LEDs.
The Cathodes are in seperate groups.
That´s great to hear that it was helpful!
That's so cool! I just don't understando how the variable "show_value" works on this example. Why it has to be equal to i*8+j on that if and what exactly is it's purpose?
Thank you. Perhaps I should have used a better variable names instead of just "i" and "j". The LEDs are arraged in "grid", or perhaps in 4 separate groups - those groups have common cathode. So variable "i" is for those groups (groups of 8), and variable "j" is the LED inside that group. Pretty much just translating 2D position in a grid to a 1D position so I can access the correct LED.
All right!
Now let's motorize it!
Good idea!
underrated
What exactly?
@@upir_upir your channel
Hi there, can you make a example how to do this with switches instead of led's?
Possibly with multiple switches switched at once
Yes, that´s an interesting idea, and technically very close to driving multiple LEDs, since it also uses multiplexing. I might record a video about that soon.
Super cool. Super expensive. However, when the potentiometer cost more than the toroidal transformer, it's time to rethink the bling.
When I bought it the last time, it was about $9 a piece; it looks like it´s getting more expensive, as it now costs around $11 a piece. I wonder how much it would cost if you made it by yourself.
@@upir_upir still cheaper to buy this one, It's a nice piece of work, it would be difficult to diy.
Nettes Teil, allerdings wäre ein Mono Potentiometer für den Arduino belegt. Da müsste man sich ein Stereo Potentiometer anschließen um die eigentliche analoge Schaltung auch zu bedienen.
Um Ports zu sparen wären Schieberegister direkt auf dem LED Board praktisch gewesen und der Preis wäre ein Stückchen gerechtfertigt gewesen. Beste Grüße ✌️😊👍
Agreed, I will use shift registers in my next video.
i wish past me realised that you need to use persistence of vision to make things like diagonal lines with multiplexing
Yeah... I wish past me realized a lot of other things as well... much sooner. But I guess it´s never too late to learn something new :)
You could use a shift register and just two pins from the arduino to multiplex and drive those leds with common cathode. A bit more math to do (compile time) though, but less clutter and LESS USED PINS
Shift registers are surely possible, but I believe you would need two of those. I think a better solution is to use something like MAX7219. That´s the one that I actually plan to use in the next video.
@upir_upir, that's better, but consider how cheap these two are (especially comparing to $20 led module).
Also seems like max7219 just uses shift registers to multiplex internally, and just takes command data via spi, so you're just proposing higher level task, omitting basics.
what does you mean by multiplexing LEDs
Multiplexing LED is a technique used to connect LEDs in a matrix of addressable rows and columns. The advantage is simplification of hardware due to the reduced number of pins required.
missing a little resistor with this led at 2:00 ;)
I like to live on the edge and not use resistors :)
@@upir_upir This will not only eventually destroy the LED, but also the pin driving it, the max current is 20 mA....
Great, now I want some
I know that feeling :) It´s usually a bad sign for my wallet..
@@upir_upir the shipment is already on the way and my pockets are empty
And here I thought I was being fancy with my 7-addressable-LED pot rings... I wish these werent so expensive if not just so mixing consoles that use them weren't thousands of dollars.
Do you have a photo? I would love to see it, it must be pretty cool as well!
Interesting project!
Thank you, I’m glad you like it!
Do you know if there's a similar one but for linear potentiometers?
I believe the same company also has some for sliders. There are pre-made modules with X number of LEDs, but most of the time, those are much smaller than the slider.
Cool. Only if the potentiometer was not so expensive. The led ring module with driver by Mayhew Labs was cheaper. It´s sad that it is no more available.
Thank you for the suggestion about the Mayhew Labs. It would make a cool addon to this video, too bad you cannot buy it anymore.
Looks awesome. You can add a flexible led wire , it'll look cool!
Thank you. What would you use the flexible wire for?
@upir_upir to make it look like Tron movie!
Every time I have gotten hold of some product that has a potentiometer, said pot has gone bad, so it doesn't make good contact anymore.
That’s strange, potentiometers are usually bulletproof.
this is awesome!
Thank you!
I don't know what the fuck a potentiometer is but I like your funny words magic man
That´s surely an interesting approach to electronic projects, but hopefully it would spark some interest at least this way :)
Driving the LEDs directly from the Arduino pins is quite a no-no. The Atmega328 itself becomes the current limiting resistor and you can overdrive the pin above the 40mA limit. It really should have a resistor. Your code just needs to be able to put on more LED segments at a time. That's not difficult.
Don´t worry, I have used the current limiting resistors later in the video with the real Arduino board. It was just simpler/quicker to not use them in the simulation.
@@upir_upir You really should warn people of this in the video though. You don't address it once. People are going to destroy their Arduinos.
very slick!
Thank you!
I got everything working with my first Arduino project 😇 but only the last led is flickering can i change something in the code to fix this?
That´s great to hear! Try lowering the range of the potentiometer, perhaps it´s having hard time reaching the 1023 value, so only go up to 1020 or even 1010?
Might be more usefull with rotary encoders
Agreed. Should be a simple swap instead of the potentiometer.
I think I understand why you used map, but that 0->1023 to 0->31 mapping definitely could be accomplished in fewer clock cycles with a right bitshift
That’s a very good point, but later on I have realized that my potentiometer works better in a slightly narrower range, so I have tweaked the values.
How do you know how to connect the LEDs so that they can do the function you want?
And how did you know how many wires you'll need?
Like for the 9 LEDs at first you can think about it, but let's say you're dealing with much much more....
It´s a number of columns X the number of rows. It´s easy to visualize with a grid-like pattern, but obviously harder with something like the LED ring light, where all the LEDs are in one line. Usually multiplexing chips like the MAX7219 can drive 8x8 LEDs, i.e. 64 LEDs in total. How many LED do you want to control?
@@upir_upirbut you for the 3×3 grid you used 6 wires
Is it 3+3?
So like column + row
Aliexpress link invalid. And I can't find this LED ring.
Please open the GitHub page and open the link there. Somehow it’s not always working directly for TH-cam link. I’m sorry for the inconvenience.
Very cool! Obscenely expensive though :X
Thank you, I´m glad you like it. It´s not super cheap, but that´s mainly because it´s quite specialized product I guess. As other has noted already, it should be simple to build something similar..
@@upir_upir True! It's probably a bit costly because it's somewhat niche for now, not mass-produced just yet. But looks really nice and I can see it being useful in a lot of projects, might try to make one. Cheers!
Fajne, dzięki ;)
You are welcome!
hezkej přízvuk
Nevím, jestli je to myšlené vážně, ale i tak dík..
Amazing !
Thank you, I’m glad you like it!
You don't need to light each LED individually. Light the LEDs in groups for each CA/CC. Instead of iterating 32 times, you only need to iterate 4 times.
Yes, but with this approach, you will have hard time getting a consistent brightness. If you light up 1 of 8 LEDs in one group, and 8 of 8 LEDs in second group, the one LED in first group would be much brighter.
@@upir_upir A compromise I could see is switching half a bank at once, then you'd only need to figure out on-times for 1/2/3/4 looking even. measure the brightness objectively with a camera, as long as you switch them fast enough it should all get accumulated into the same frame - or just eyeball it off the measured voltages honestly
Part 2 of "Pimp My Potentiometer" series is here: th-cam.com/video/sE3LSYoCqLQ/w-d-xo.html
Yes, I like!
Thank you!
Is it hard to add custom components to wowki?
Depends how you define “hard”. It’s definitely hard for me, but it would be not that hard for someone who understands programming a little bit more. There are many examples for custom components in WOKWI documentation, if your component is similar to any of those, it would be easier.
Maybe cud use a chip like max7219eng only does 7x7 tho 😅
And control it with 2 data connection
MAX7219 does 8x8?... 8 segment pins and 8 digit pins, allowing 8 '7 segment' displays with their decimal point being the 8th segment. Or 64 leds in an 8x8 array.
@@someguy4915 I ay played with it for ages TBF don't no why I thought 7x7 lol
I made a clock with it few year back, 😁
Yes, the MAX7219 is the one that I will use in my next video. Since it can drive 8x8 LEDs, I can actually use one chip to controll two LED rings.
So cool!
Thank you!
That's neat!
Thank you!
Marco Reps sent me here.
How?
@@upir_upir He's got his means and ways.
It is better if have directly accessed registers instead of digitalWrite but still good as is. I would prefer I2C IO expanders though as they are pretty cheap.
Agree with registers, but since the tutorial was aimed to beginners, using digitalWrite made more sense since it´s more understandable.
Aren't you from Czech Republic?
Maybe..
Upir, how do I get in contact with you?
My email address should be visible when you go to the about section of this channel, but I know that sometimes it only shows on desktop and not on mobile.
@@upir_upir I will try viewing via my desktop 👍 explains why I can't see it.
très chic, i like it
Thank you!
please actual link LED ring light
Please open the GitHub page and open the link there. Somehow it’s not always working directly for TH-cam link. I’m sorry for the inconvenience.
@@upir_upir Arduino UNO: link-ok
Arduino prototyping shield: link-ok
Breadboard wires: link-ok
LED ring light: link-bad
LED ring light(GitHub): link-bad
It's very nice, but despite the fact that I like to use MCU for everything, I think this can be accomplished by analog means. One LED, a backlight, and a dark ring with a slot on it attached to the knob. Sometimes simpler is best
Yup agree totally. This is just another bit of fluff that’ll need firmware updates and eventually an internet connection for “marketing reasons”.
The point of this ring is not to use it with a pot but an encoder. The stored parameter value can be recalled and displayed easily. Cheaper than a motorized pot but still too expensive. Alps do an encoder with led ring as a combined unit. About 15 euro I think.
Interesting idea with the physical approach, but as someone has noted, it can quickly show a stored value with rotary encoder. With your solution, you would need a motorized version and that would probably cost more. Also, with LEDs, you can control the brightness and have some cool effects.
@@upir_upir Maybe the video you produced could have demonstrated this approach then.
off course its out out of discution all that you say. just that it is over complicated in the video something that has been made in some old devices in analog way. @@upir_upir
The link to the product on Ali does not work. Write the full name of the product.
Please try opening the GitHub link and click the AliExpress link there.
This but smd, RGB, and a full circle for rotary encoders
they make really small smd addressable neopixels that would only require 3 wires (power, data,grnd) and would have rgb and take up waaaay less io
I agree that using small SMD neopixels would be probably the best solution.
BADASS
Thanks!
Led ring light link doesn't work 😢
Please try it now.
@@upir_upirI tried, when open the link in video description : AliExpress page is "this page doesn't exist"
@@upir_upir still doesnt work. can you say word by word name of lot?
@@StahLHerZRocK, EC11B1524B-LED ALPS LED rotary pulse encoder
Love it
Thank you!
also, this sort of thing is best to use a digal to analog chip. it saves allot of pins, which for any project with multiple modules, you'll want to save pins as much as possible, but also by using a da chip, you will also be forced to only write changes. this is because da's use i2c, and a hexdecimal representation of the pins. like 00,01,02,AA, AB and so on.. which gets converted to 8 bit binary and each position of that binary is a pin on or off. these DA's are pretty fast at what they do, so you'll hardly notice the difference, if not better than before. best part is, its not much more code to use i2c, it boils down to using a different write function instead of digitalwrite. for the led position in real life compared to hex decimal value, you can use an array for each position, then cycle through the array for what to write to i2c line.
Did you watch the full video? This is just to demonstrate the concept of multiplexing. He told to use a dedicated chip at the end of the video
Yes, there are many different chips that will do the same thing for less money and with better timing and support for brightness. Once you understand how multiplexing works, it should be much simpler to use those chips. I will go over some of them in the next video.
"Thank you for watching. Oh and by the way, this was all pointless and there's IC chips specifically for this"
It should have been - Thank you for watching, now you know how multiplexing chips works, and it should be much easier for you to use one if you decide to.
Does it turn up to 11?
Even better, it turns up to 31! (Plus the dot)
Wow the price! LOL!!
As many has commented before, with enough knowledge, you might be able to create your own version for a fraction of a price - at least that´s what they said.
@@upir_upir of course it's just a couple of led's triggered by the reading of the potentiometer value.
Nice LED Ring but at 16 quid a pop you may be better rolling your own for a couple of quid a each
I have just checked and it looks like you can get 100 SMD LEDs for just a few dollars. However, that would probably not be the biggest expense, you also need pcb and pcb stencil. Might be an interesting idea for a next project- diy led ring light.
@@upir_upir absolutely the LED's on a reel of 2K are about 0.3-1 cent a piece and a prototype PCB even 10cm square is about 2-5$ for 10 so yeah you could build 50 for the price of 1 if you designed it your self
@@101blogArguably, when you buy from a company you are paying for the labor and material cost expense of designing and manufacturing it plus the convenience cost of being able to just buy one (or even a couple units).
The "savings" from doing it yourself and making say 50+ largely come from discounting the cost of your own time and effort.
@@jnharton Absolutely but since its a hobby where you make things then making them is the fun thing not just buying them. The whole hobby thing is a price time fun tradeoff
@@jnhartonBut those savings are significant and with companies like JLCPCB and PCBWay for example that offer PCB production as well as assembly you could design a little PCB and have them build the entire thing for something like $50 for 100 of them or so...
At which point they're $0.50 each... Heck they will usually even be built, assembled and shipped to you faster than a normal aliexpress purchase...
excellent ! but the price for the LED ring is ...... HOT !
It´s very specific product, so it´s expected that the price will be somehow higher compared to let´s say a single LED. I will try to create my own version in the next video to see how much cheaper it could get if I create it on my own.
very interesting
Thank you!
Charlie! :) (plexing)
Yep, I will talk about Charlieplexing once I understand how it works 🙂
I do this with Neopixel rings
And I plan to use neopixels for the next version as well. It´s a good idea, but I don´t think it would be any cheaper.