mirror of
https://github.com/PaulStoffregen/Tlc5940
synced 2025-09-27 18:12:22 +02:00
Rename examples to ino extension
This commit is contained in:
101
examples/BasicUse/BasicUse.ino
Normal file
101
examples/BasicUse/BasicUse.ino
Normal file
@@ -0,0 +1,101 @@
|
||||
/*
|
||||
Basic Pin setup:
|
||||
------------ ---u----
|
||||
ARDUINO 13|-> SCLK (pin 25) OUT1 |1 28| OUT channel 0
|
||||
12| OUT2 |2 27|-> GND (VPRG)
|
||||
11|-> SIN (pin 26) OUT3 |3 26|-> SIN (pin 11)
|
||||
10|-> BLANK (pin 23) OUT4 |4 25|-> SCLK (pin 13)
|
||||
9|-> XLAT (pin 24) . |5 24|-> XLAT (pin 9)
|
||||
8| . |6 23|-> BLANK (pin 10)
|
||||
7| . |7 22|-> GND
|
||||
6| . |8 21|-> VCC (+5V)
|
||||
5| . |9 20|-> 2K Resistor -> GND
|
||||
4| . |10 19|-> +5V (DCPRG)
|
||||
3|-> GSCLK (pin 18) . |11 18|-> GSCLK (pin 3)
|
||||
2| . |12 17|-> SOUT
|
||||
1| . |13 16|-> XERR
|
||||
0| OUT14|14 15| OUT channel 15
|
||||
------------ --------
|
||||
|
||||
- Put the longer leg (anode) of the LEDs in the +5V and the shorter leg
|
||||
(cathode) in OUT(0-15).
|
||||
- +5V from Arduino -> TLC pin 21 and 19 (VCC and DCPRG)
|
||||
- GND from Arduino -> TLC pin 22 and 27 (GND and VPRG)
|
||||
- digital 3 -> TLC pin 18 (GSCLK)
|
||||
- digital 9 -> TLC pin 24 (XLAT)
|
||||
- digital 10 -> TLC pin 23 (BLANK)
|
||||
- digital 11 -> TLC pin 26 (SIN)
|
||||
- digital 13 -> TLC pin 25 (SCLK)
|
||||
- The 2K resistor between TLC pin 20 and GND will let ~20mA through each
|
||||
LED. To be precise, it's I = 39.06 / R (in ohms). This doesn't depend
|
||||
on the LED driving voltage.
|
||||
- (Optional): put a pull-up resistor (~10k) between +5V and BLANK so that
|
||||
all the LEDs will turn off when the Arduino is reset.
|
||||
|
||||
If you are daisy-chaining more than one TLC, connect the SOUT of the first
|
||||
TLC to the SIN of the next. All the other pins should just be connected
|
||||
together:
|
||||
BLANK on Arduino -> BLANK of TLC1 -> BLANK of TLC2 -> ...
|
||||
XLAT on Arduino -> XLAT of TLC1 -> XLAT of TLC2 -> ...
|
||||
The one exception is that each TLC needs it's own resistor between pin 20
|
||||
and GND.
|
||||
|
||||
This library uses the PWM output ability of digital pins 3, 9, 10, and 11.
|
||||
Do not use analogWrite(...) on these pins.
|
||||
|
||||
This sketch does the Knight Rider strobe across a line of LEDs.
|
||||
|
||||
Alex Leone <acleone ~AT~ gmail.com>, 2009-02-03 */
|
||||
|
||||
#include "Tlc5940.h"
|
||||
|
||||
void setup()
|
||||
{
|
||||
/* Call Tlc.init() to setup the tlc.
|
||||
You can optionally pass an initial PWM value (0 - 4095) for all channels.*/
|
||||
Tlc.init();
|
||||
}
|
||||
|
||||
/* This loop will create a Knight Rider-like effect if you have LEDs plugged
|
||||
into all the TLC outputs. NUM_TLCS is defined in "tlc_config.h" in the
|
||||
library folder. After editing tlc_config.h for your setup, delete the
|
||||
Tlc5940.o file to save the changes. */
|
||||
|
||||
void loop()
|
||||
{
|
||||
int direction = 1;
|
||||
for (int channel = 0; channel < NUM_TLCS * 16; channel += direction) {
|
||||
|
||||
/* Tlc.clear() sets all the grayscale values to zero, but does not send
|
||||
them to the TLCs. To actually send the data, call Tlc.update() */
|
||||
Tlc.clear();
|
||||
|
||||
/* Tlc.set(channel (0-15), value (0-4095)) sets the grayscale value for
|
||||
one channel (15 is OUT15 on the first TLC, if multiple TLCs are daisy-
|
||||
chained, then channel = 16 would be OUT0 of the second TLC, etc.).
|
||||
|
||||
value goes from off (0) to always on (4095).
|
||||
|
||||
Like Tlc.clear(), this function only sets up the data, Tlc.update()
|
||||
will send the data. */
|
||||
if (channel == 0) {
|
||||
direction = 1;
|
||||
} else {
|
||||
Tlc.set(channel - 1, 1000);
|
||||
}
|
||||
Tlc.set(channel, 4095);
|
||||
if (channel != NUM_TLCS * 16 - 1) {
|
||||
Tlc.set(channel + 1, 1000);
|
||||
} else {
|
||||
direction = -1;
|
||||
}
|
||||
|
||||
/* Tlc.update() sends the data to the TLCs. This is when the LEDs will
|
||||
actually change. */
|
||||
Tlc.update();
|
||||
|
||||
delay(75);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user