I'm designing an LED controller for an aquarium, and I need some suggestions for the right Arduino board to use. I'd like to use my 2.2" tft display with some buttons set to control settings (like brightness, turn on/off time, etc).
At first, I thought I could just use my UNO, but I quickly learned that 32kB isn't going to get me very far with a TFT . In addition, the UNO only has two interrupts, which would make the programming harder, as the Arduino has to manually check the inputs. All I really need is an UNO with more memory, so a DUE would be a bit of an overkill. Is there a cheaper alternative, or a way to build something from scratch? I've heard of people making UNOs from scratch, but is it possible to make a MEGA? I wouldn't mind making a breakout board for it if it only comes in a smd package. Also, it doesn't have to be 'Arduino', just something reasonably easy to program that's cheap.
Did you try typing "aquarium" or "reef tank" in the search box on top of this page.
All LEDs can be controlled with a two-wire I2C bus and e.g the Adafruit 12-bit PCA9685 breakout board.
The UNO can do that, but you could run out of resources when your program grows.
I would prefer a Mega.
Leo..
I'm actually using an 18v 110w power supply that powers 6 LED strings that consist of 5 3w LEDs. Each string will be configured like so:
D S
Vcc|------------|>|--|>|--|>|--|>|--|>|-------- [current reg.]----------->-------[MOSFET]
| | |
|----|>|--|>|--|>|--|>|--|>|--------[current reg.]-----------|
This is a constant current LED driver board I have developped some time ago for home lighting.
Two wire I2C interface. Runs on 12- or 24volt. 12-bit dimming (less visable steps).
Drives 1-7 LEDs in a string per channel. 16 channels of 6x3watt LEDs = 96LEDs per board.
You can do the same with the Adafruit PCA9685 breakout board and Meanwell CC drivers.
Or use the 8-bit PWM outputs of the Arduino and use e.g. this shield.
Leo..
I calculate that you need ~20volt for 5 LEDs if you use a lineair current regulator like this one.
5x 3.3volt for the LEDs, 3.25volt for the regulator, and maybe 0.25volt for the fet.
Switching regulators are efficient and have a lower volt drop.
Your LM317 (and resistor) will get hot with 3watt LEDs and ~650mA LED current.
If it doesn't get hot, the LEDs are not 100% on.
Leo..
However as soon as you move away from the AVR Arduino (Uno and Mega 2560 etc), even into the Due, library support becomes a bit limited, as not all libs work on ARM hardware
And the STM32 is a community project with no commercial support, and can be viewed as a Beta.
Anyway, see also the Teensy (as library support is more mature)
Yep, I figured it would get hot, even when its rated at 1.5 amps, so I am bolting them along with the LEDs to a hefty heatsink with thermal paste. I am aware that they are a lot less efficient, but I don't really care, as most of the time I will be running them at 50% or less.
I have taken a look at the STM32 boards, and they are very tempting, but I don't want to spend a lot of time troubleshooting and writing my own libraries .
CWashburn:
I have taken a look at the STM32 boards, and they are very tempting, but I don't want to spend a lot of time troubleshooting and writing my own libraries .
Stick to AVR Arduino's in that case. Anything else has much less well developed library support
(Well take a look at the Teensy, they may support the specific libs you want to use)
Is there a cheaper alternative, or a way to build something from scratch? I've heard of people making UNOs from scratch, but is it possible to make a MEGA?
Well, if you live in the US I don't think you will build anything from scratch for less than the below boards.
Its impossible to beat the price of these mass produced clone boards.
I used to build boards using individual ATMega328P's but found that Arduino Pro mini boards were half the price of getting hold of the chips from companies like mouser etc
(and its far less hassle when they are ready on a nice pcb and have the XTal etc)
The above clone boards use the CH340G USB/serial interface chip, which windows recognizes without having to load a driver. I got the arduino UNO clone and it was just plug and go.