Difference between revisions of "DCN LED controller"
Line 19: | Line 19: | ||
==Workings== | ==Workings== | ||
First you create a ledpattern array (up to 16 ledpatterns).<br> | First you create a ledpattern array (up to 16 ledpatterns).<br> | ||
− | Each ledpattern consists of an array of bits for red LEDs and an array of bits for green LEDs, as well as an overall Red intensity and a Green intensity. | + | Each ledpattern consists of an array of bits for red LEDs and an array of bits for green LEDs, as well as an overall Red intensity and a Green intensity.<br> |
The ledpattern array is sent to one or more DCN-LED controllers.<br> | The ledpattern array is sent to one or more DCN-LED controllers.<br> | ||
The DCN-LED controller is triggered by a 5V trigger signal.<br> | The DCN-LED controller is triggered by a 5V trigger signal.<br> |
Revision as of 14:11, 24 January 2024
Description
The DCN-LED controller is a 16 channel two color led controller with an Ethernet interface. The controller is developed in house by our Technical Support Group. The controller is based on an Arduino Mega for the control of the LED output channels and a Raspberry Pi for the Ethernet communication. A pair of Matlab functions is available for the programming of the controller.
Specifications
- Arduino Mega
- Arduino software: Standard_32_LEDModule_V1.16.ino
- Response time to trigger < 200 micro sec
- Raspberry Pi 3 or 4
- Raspberry Software: %todo
- External 5V Raspberry power supply
- 16 mini jack connectors for LEDs
- Test buttons for Red and Green LEDs
- BNC connector for input trigger
- Ethernet connector for communication with the Raspberry Pi
- The LEDs that are used in all the labs are Bivar 5BC-3-CA-F LED.
Workings
First you create a ledpattern array (up to 16 ledpatterns).
Each ledpattern consists of an array of bits for red LEDs and an array of bits for green LEDs, as well as an overall Red intensity and a Green intensity.
The ledpattern array is sent to one or more DCN-LED controllers.
The DCN-LED controller is triggered by a 5V trigger signal.
After each trigger the next ledpattern is activated.
Matlab code
In the biofysica toolbox in Gitlab (see led code) there are two functions for controlling the DCN-LED controller:
- ledcontroller_pi.m
- ledpattern.m
The <ledcontroller_pi> function can control up multiple hosts at once with the same instructions (ledpatterns).
The files starting with <ex_led> are examples for how to use the functions.
Here is an example where two hosts (LED-controllers) are used with a single ledpattern array of 8 pattern. Patterns 1, 3, 5 and 7 have red and green LEDs activated, while patterns 2,4,6 and 8 have all LEDs deactivated.
If multiple hosts should behave independently you have to create multiple instances of ledpattern and of ledcontroller_pi.
1: n = 8; 2: s = ledpattern(n); 3: for i = 1:2:n 4: s(i).set(0:2:14,'r'); 5: s(i).set(1:2:15,'g'); 6: s(i).intensity('r', 50); 7: s(i).intensity('g', 50); 8: end 9: host1='dcn-led01.local'; 10: host2='dcn-led02.local'; 11: leds = ledcontroller_pi(host1, host2); 12: leds.write(s);
- In line 1 the number of ledpatterns is specified.
- In line 2 an array of n ledpatterns is created.
- In line 4 to 7 the ledpatterns of pattern 1, 3, 5 and 7 are set.
- In line 4 the leds with even channel numbers are made red.
- In line 5 the leds with odd channel numbers are made green.
- In line 6 the intensity of the red leds are set to 50. Allowed values are 0 to 50.
- In line 7 the intensity of the green leds set to intensity 50. The green intensity must be equal to the red intensity or 0.
- In line 9 and 10 the host names of the devices are assigned. These are the names on the box followed by '.local'.
- In line 11 the ledcontroller is created with references to the hosts.
- In line 12 the ledpatterns are written to the two hosts.