Skip to main content
Standard 5mm LED.

Pin names

A
pin
Anode (positive pin)
C
pin
Cathode (negative pin)

Attributes

color
string
default:"red"
The color of the LED body
lightColor
string
default:"depends on color"
The color of the light
label
string
default:""
Text that appears below the LED
gamma
string
default:"2.8"
Gamma correction factor
flip
string
default:""
Flips the LED horizontally
fps
string
default:"80"
The framerate of the LED
To rotate LEDs, click on them and press “R”, or set the “rotate” property in the diagram format.

Gamma correction

The LED automatically applies gamma correction. This means that even a very short burst of current will result in some visible light, similar to how physical LEDs work, so you get more accurate simulation in the following cases:
  1. Using analogWrite() with very small values (short duty cycle),
  2. LED scanning techniques such as Charlieplexing.
You can disable the gamma correction by setting the “gamma” attribute to “1.0”. You can also choose a different gamma factor by setting this attribute to the desired value. The default gamma correction factor is 2.8. The Gamma Correction Demo project shows the behavior of different gamma values: the LED on the left has the default gamma factor of 2.8, while the LED on the right has a gamma factor of 1.0. You can see how lower values of analogWrite() look much brighter on the left LED. For more information about gamma correction, including some code examples, check out this great guide from Adafruit.

FPS

The fps attribute controls the framerate of the LED, that is how often the LED brightness is updated. The default value is 80. If you are using PWM (analogWrite()) and noticing flickering, try setting a smaller the fps value. In case you are experiencing LED light ghosting, you can try increasing the fps value. For example, this rotating cube uses an fps value of 10000 to update the LEDs at a higher rate and avoid ghosting of the rotating cube.

Simulator examples

  • Blink - Arduino’s standard Blink sketch
  • Fade - Using analogWrite() + gamma correction

Build docs developers (and LLMs) love