I am new to Arduino and programming, but am enjoying the great user community and support! I am using an Arduino Uno development board and am trying to interface a RGB LED strip controlled by a TM1803 control circuit to it.
The TM1803 uses a 1-wire interface to communicate with the Arduino. According to the TM1803’s data sheet, I need to create a series of pulses to represent a High, Low and Reset signal.
To represent a High signal the TM1803 expects to see a signal with a period of 2.04uS and a duty cycle of 66%
To represent a Low signal the TM1803 expects to see a signal with a period of 2.04uS and a duty cycle of 33%
To represent a Reset signal the TM1803 expects to see a Low for 24uS
From how I understand the TM1803 works is that one TM1803 controls a single section of the LED strip which contains three RGB LED’s. Each LED in this section has 8-bit resolution, so 8 x 3 = 24-bits per TM1803 controller. Once the 24-bits have been shifted into the TM1803 the output is latched and shifted out to the next TM1803. This output remains latched until a Reset signal is sent.
Goal: Develop a function that I could send a Reset signal and a function that can set a 24-bit Color Value, and set the number of sections to shift out the Color Value out to.
If anyone would have any advice on where to start or code examples to post I would be very much appreciated!
Attached is the data sheet for the TM1803
TM18031.pdf (214 KB)