How do I translate a variable into HSV color values?

2 Ansichten (letzte 30 Tage)
Shovnik Paul
Shovnik Paul am 15 Jul. 2022
Kommentiert: William Rose am 15 Jul. 2022
I have this project where I am interfacing MATLAB with an Arduino board and reading input from an analog pin connected to a potentiometer. I want to use the voltage values read from the potentiometer to control the color of a rectangle. The voltage read is stored in the variable voltage
I have the following code:
while true
voltage = a.readVoltage('A0');
color = ??voltage??
fill([0 1 1 0], [0 0 1 1], color)
pause(0.1)
end
I would like to map the variable voltage to an HSV color value, specifically controlling the H(hue) parameter - so than when I turn my potentiometer wheel, I basically cycle through the different colors of the color wheel (ie change the hue). Is this possible? Any help is appreciated. Thanks.
Edit: the value of the voltage variable is in the range 0 - 5.

Akzeptierte Antwort

William Rose
William Rose am 15 Jul. 2022
Vmax=5;
while true
voltage = a.readVoltage('A0');
color = hsv2rgb(voltage/Vmax,1,1);
fill([0 1 1 0], [0 0 1 1], color);
pause(0.1)
end
Try the above. I tested it with the following modified code, which does not require an external input. It worked as expected, generating a whole range of colors from R to Y to G to C to B to M to R.
Vmax=5;
for i=0:24
voltage = i*Vmax/24;
color = hsv2rgb(voltage/Vmax,1,1);
fill([0 1 1 0], [0 0 1 1], color);
pause(0.5)
end
Good luck.

Weitere Antworten (0)

Kategorien

Mehr zu Arduino Hardware finden Sie in Help Center und File Exchange

Produkte


Version

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by