I remember the basics of using logic gates from an old ECE college course. Since then, I've focused chiefly on software. I would really like to get back to my hardware roots and learn about using microcontrollers.
For my first project, I want to make a garden LED strip, using solar power to charge up a battery and play some cool animations at night. Here is a copy of my pin out table and part list so far:
As you can see in the notes, I am curious about making sure my design is safe and accurate. I have so many questions!
Are all the connections reasonably safe? I understand that voltage ranges often change over the course of a system. I know voltage tolerances are important, and I have done my best to place an "LDO" where needed. But odds are good that I could be missing something.
Can I send a bunch of components to the same ground, of differing high thresholds? Should I think of GND tolerance as similar to addition, where a "100V" tolerance GND could take 10V high levels from 10 different components?
What is the voltage tolerance of the Arduino Pro Mini's ground pin?
When this portable device is not plugged into AC, then is the microcontroller ground or the BMS ground generally the best to target?
If I turn on too many LED's at once, will that damage any of the components? Or simply reboot the microcontroller?
Should I go ahead and hit the Buy button on this part list, or are there design problems for us to fix first? I don't mind that the alligator clip barrel plug adapter could be swapped for a better JST-PH crimp long term. And I could even practice soldering the connections once the thing tests well. But right now, I'm simply more concerned about the ease of wiring it all up, from scratch!
Okay, I found 40% of the parts. The rest are mostly ancilliary details--important for newbies like me, but not super critical to the electrical logic.
That's the basic set of components. Later I'll figure out how to take my earlier pinout and implement it in the EasyEDA sketch.
Update
Connected the wires and moved the annotations into the component metadata. T'ain't pretty but it's accurate to how I'm planning to connect the pins so far.
You're not the only one.
I don't see any (required) decoupling caps on the supply lines.
Are you expecting 5volt out with ≤4.2volt input from an ancient linear 7805 (not an LDO)...
The RAW pin of the Arduino runs through an LDO, which looses more voltage, which you don't have. A 3.3volt ProMini, with LED and LDO removed, runs fine between 2.7 and 5.5volt.
But you need 5volt logic for your addressable LEDs...
Why the CH340. Is it detachable?
How many addressable LEDs. One might already be too much for an 80mm solar panel on cloudy days.
Leo..
Yes, the CH340 is simply an FTDI for making programming changes. A simpler design would be to use a fuller board with USB included. But internalizing the USB port uses more power passively.
Regarding LED power, the LED animations only play at night, when the batteries have been charged up.
There are multiple working examples of this on Amazon. My 18650 will be overkill for this. A typical 3 to 11 LED configuration runs from a single AAA battery overnight.
But this is a compromise between available solar BMS's and batteries able to be easily charged by common external chargers, in case of several cloudy days in a row.
Regarding the battery / BMS output vs. the LED strip input power... Would a 5V, 500 mA boost component solve the gap in powering the LED strip?
Regarding "LDO"s, could you please clarify further? I think I will no longer need one for the LED strip after inserting the 5V boost.
For the sound sensor power input, I can simply configure one of the spare Arduino Pro Mini GPIO 3.3V pins as a high bit, right? Then no need for the 3.3V LDO.
Yes, I see that a reliable 5V power source is required in order to turn on the LED strip.
I still want to try for a 3.3V microcontroller, as a way of saving energy where I can. I will try to solve the 5V problem with a 3.3V microcontroller in two ways:
Insert a 5V boost between my 4.2V BMS and the LED strip power pin.
Replace APA-104 with WS2812B LED strip implementation, which is known to tolerate 3.3V data signals better.
In my case, it is okay if the lights are a touch dim. I'm going for subtle effects anyway. And I can upgrade to a 5V microcontroller later if truly needed.
An I2C level shifter has open drain outputs with weak pull up.
Not designed for push/pull driving of addressable LEDs, so it might or might not work reliably.
No improvement over direct driving the LEDs with a 3.3volt pin, which also might or might not work.
Maybe you could power the ProMini from 5volt (the VCC pin).
Leo..
Continuing to improve the design as I discover more about each component. Good news, Adafruit bundles internal capacitors and resistors for many of their IC's! So the shopping list has trimmed back down. I'm not only reading the datasheets now but the product pages, too.
Say, does Adafruit's bq24074 PGOOD pin still need a resistor as the generic datasheet says? How are we supposed to convert this "high impedance" thing into a useful logic signal to be read by an Arduino GPIO pin?