How do I translate a variable into HSV color values?
    2 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    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.
0 Kommentare
Akzeptierte Antwort
  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.
2 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Arduino Hardware finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!