IP Controlled CC Source / LED Driver - Page 1
Forum section: electronics / projects

author: klr5205
author_rank: Regular Contributor
timestamp: September 23, 2022, 02:50:45 pm
content: I need to control some LEDs attached to a piece of underwater tooling remotely across a local network. My preference would be to have physical knobs to turn at the operator's station, so it'd be nice if there is some sort of ecosystem that takes analog inputs from one device and translates that into a scaled output on another. Is anybody aware of a purpose-built LED driver that can do this? If not, I'd also be interested in generic network I/O solutions. If I had a 0-10v or 4-20mA output then I'm sure there's no shortage of drivers I could control with that.I've found this so far which seems close to the "generic" solution I just described:https://www.controlbyweb.com/x317/specs.htmland I would have to pair it with one of their analog input modules as well.I haven't been in the PLC game since college so I'm not sure what all is out there or where to start digging, so I thought I'd ask around here to see if anything jumps to the front of anyone's mind.

author: ajb
author_rank: Super Contributor
timestamp: September 24, 2022, 06:16:08 pm
content: How many channels of control do you need?I’m not sure about LED drivers that take an IP control connection directly, but there are converters to 0-10V from Art-Net or sACN (entertainment lighting control protocols):http://www.dfd.com/e8anl.html. Art-Net is a fairly simple protocol to implement, sACN is also not hard to implement but is documented in an annoyingly complicated way. There are open source implementations out there for both. There are probably some boxes out there, meant to be installed in walls to control architectural/house lighting that with a couple of slide pots that can send Art-Net/sACN, but I don’t know of any offhand. I’m sure there are also architectural lighting control solutions that could work, but most of those are designed for very large installations and likely to be cumbersome for only a handful of channels.I think “Field I/O” is the term you’re looking for for off-the-shelf IO-over-IP. There are a few options here, they’re not cheap, at least until you consider the engineering cost of building something like this yourself as a one-off:https://www.automationdirect.com/adc/shopping/catalog/field_i-z-o#start=0Alternatively, the Click series of PLCs are incredibly cheap for their capabilities, and they have models with Ethernet and analog IO included in the base unit, no extra modules required unless you need more channels. This looks like the cheapest approach, and would probably be the easiest way to get the physical knobs you want, not to mention you have a lot of options for additional functionality. You’d just need one of these at each end with a simple program to read the analog knob values and send them from the control PLC to the output PLC—the output unit might not even need to be programmed if its output registers can be directly written via MODBUS / MODBUS TCP:https://www.automationdirect.com/adc/shopping/catalog/programmable_controllers/click_series_plcs#start=0&Item_Type_ms=%22PLC%22&Series_ms=%22CLICK%20Ethernet%20Analog%22

author: rstofer
author_rank: Super Contributor
timestamp: September 25, 2022, 05:19:39 pm
content: Berkeley Sockets is an easy protocol to use. Google for it...I used the mbed LPC 1768 as a client to the built-in server on a Laserjet and it was easy to create. I had to build a daughter card to hold the MagJackhttps://os.mbed.com/platforms/mbed-LPC1768/If you want wired Ethernet, the Raspberry Pi Pico will support this - sort of...https://www.raspberrypi.com/news/how-to-add-ethernet-to-raspberry-pi-pico/If you can get by with WiFi, the Raspberry Pi Pico W is ready to go. I haven't done much with it but I can get an IP address over DHCP and connect to my LAN.Code:import networkimport timefrom secrets import secretswlan = network.WLAN(network.STA_IF)wlan.active(True)ssid = secrets['ssid']pw = secrets['pw']# print (ssid, pw)wlan.connect(ssid, pw)led = machine.Pin('LED', machine.Pin.OUT)led.off()time.sleep(1)timeout = 10while timeout > 0:if wlan.status() >= 3:led.on()print("Connected as:" + wlan.ifconfig())breaktimeout -= 1print('Waiting for connection...')time.sleep(1)wlan_status = wlan.status()https://www.raspberrypi.com/news/raspberry-pi-pico-w-your-6-iot-platform/Of course, other than boot time, a Raspberry Pi is a good solution because it is its own development platform. Sure, it's a lot of overkill but it has a ton of flexibility for scope creep.

author: klr5205
author_rank: Regular Contributor
timestamp: September 26, 2022, 12:32:09 pm
content: Quote from: ajb on September 24, 2022, 06:16:08 pmThanks, these are the answers I was hoping for. I only need two channels, and given that I will only need to build 2-3 of these systems (famous last words, I know) an off-the-shelf solution is what I am after.