---
title: Rainbow Changing Lights 
slug: rainbow-changing-lights
description: Learn how to implement rainbow changing lights in your Visual Basic program with this code document. It includes two subroutines for initializing the effect with different configurations and two subroutines for stopping it. The color changing logic is han
docTags: 
createdAt: 2021-01-16T16:50:35.000Z
---



```vb

	'*************************
	' Rainbow Changing Lights
	'*************************

	Dim RGBStep, RGBFactor, rRed, rGreen, rBlue, RainbowLights

	Sub StartRainbow(n)
		set RainbowLights = n
		RGBStep = 0
		RGBFactor = 5
		rRed = 255
		rGreen = 0
		rBlue = 0
		RainbowTimer.Enabled = 1
	End Sub

	Dim RGBStep2, RGBFactor2, rRed2, rGreen2, rBlue2, RainbowLights2
	Sub StartRainbow2(n)
		set RainbowLights2 = n
		RGBStep2 = 0
		RGBFactor2 = 5
		rRed2 = 255
		rGreen2 = 0
		rBlue2 = 0
		RainbowTimer1.Enabled = 1
	End Sub

	Sub StopRainbow(n)
		Dim obj
		RainbowTimer.Enabled = 0
		RainbowTimer.Enabled = 0
			For each obj in RainbowLights
				SetLightColor obj, "white", 0
			Next
	End Sub

	Sub StopRainbow2(n)
		Dim obj
		RainbowTimer1.Enabled = 0
			For each obj in RainbowLights2
				SetLightColor obj, "white", 0
				obj.state = 1
				obj.Intensity = 7
			Next
	End Sub

	Sub RainbowTimer_Timer 'rainbow led light color changing
		Dim obj
		Select Case RGBStep
			Case 0 'Green
				rGreen = rGreen + RGBFactor
				If rGreen > 255 then
					rGreen = 255
					RGBStep = 1
				End If
			Case 1 'Red
				rRed = rRed - RGBFactor
				If rRed < 0 then
					rRed = 0
					RGBStep = 2
				End If
			Case 2 'Blue
				rBlue = rBlue + RGBFactor
				If rBlue > 255 then
					rBlue = 255
					RGBStep = 3
				End If
			Case 3 'Green
				rGreen = rGreen - RGBFactor
				If rGreen < 0 then
					rGreen = 0
					RGBStep = 4
				End If
			Case 4 'Red
				rRed = rRed + RGBFactor
				If rRed > 255 then
					rRed = 255
					RGBStep = 5
				End If
			Case 5 'Blue
				rBlue = rBlue - RGBFactor
				If rBlue < 0 then
					rBlue = 0
					RGBStep = 0
				End If
		End Select
			For each obj in RainbowLights
				obj.color = RGB(rRed \ 10, rGreen \ 10, rBlue \ 10)
				obj.colorfull = RGB(rRed, rGreen, rBlue)
			Next
	End Sub

	Sub RainbowTimer1_Timer 'rainbow led light color changing
		Dim obj
		Select Case RGBStep2
			Case 0 'Green
				rGreen2 = rGreen2 + RGBFactor2
				If rGreen2 > 255 then
					rGreen2 = 255
					RGBStep2 = 1
				End If
			Case 1 'Red
				rRed2 = rRed2 - RGBFactor2
				If rRed2 < 0 then
					rRed2 = 0
					RGBStep2 = 2
				End If
			Case 2 'Blue
				rBlue2 = rBlue2 + RGBFactor2
				If rBlue2 > 255 then
					rBlue2 = 255
					RGBStep2 = 3
				End If
			Case 3 'Green
				rGreen2 = rGreen2 - RGBFactor2
				If rGreen2 < 0 then
					rGreen2 = 0
					RGBStep2 = 4
				End If
			Case 4 'Red
				rRed2 = rRed2 + RGBFactor2
				If rRed2 > 255 then
					rRed2 = 255
					RGBStep2 = 5
				End If
			Case 5 'Blue
				rBlue2 = rBlue2 - RGBFactor2
				If rBlue2 < 0 then
					rBlue2 = 0
					RGBStep2 = 0
				End If
		End Select
		'	For each obj in RainbowLights2
		'		obj.color = RGB(rRed2 \ 10, rGreen2 \ 10, rBlue2 \ 10)
		'		obj.colorfull = RGB(rRed2, rGreen2, rBlue2)
		'	Next
	End Sub
```

