[Arduino UNO R3] Looking for a rechargeable battery system for my car project

Hello,
I am trying to do my first Arduino project but I cannot find a proper solution for powering it. I hope someone will have specific clues to help me.

Goal:
Build a small car

Specs:

  • Arduino UNO R3 + L293D extension card (I really don't know if I need this extension yet. Just copying tutorials to be honest)
  • 1 Bluetooth connector HC-05 (for an app control)
  • 1 speaker + 1 micro SD (random small talk)
  • 1 LED + 1 HC-SR04 sensor (for anti-collision)
  • 1 9G servo motor + 4 gear and wheels
  • 1 switch and a rechargeable system similar to TP4056 module and batteries

Other infos:

  • I made some calculations and it seems that my project will need 2722mA to work (not sure though)
  • I intend to use the 5V Arduino Operating Voltage
  • I thought this video will help me but only 1A of charging current output seems not enough: How To Build Your Own DIY 9000mAh USB Power Bank! - YouTube

I don't find similar project so I am learning from scratch and this power subject is very hard because most of the project I see use simple batteries without a charging system integrated.

Thank you in advance

  • Arduino UNO R3 + L293D extension card (I really don't know if I need this extension yet. Just copying tutorials to be honest)
  • 1 Bluetooth connector HC-05 (for an app control)
  • 1 speaker + 1 micro SD (random small talk)
  • 1 LED + 1 HC-SR04 sensor (for anti-collision)
  • 1 9G servo motor + 4 gear and wheels
  • 1 switch and a rechargeable system similar to TP4056 module and batteries

A good start would be 5 projects each to make the Bluetooth, random small talk w/o MP3 player, anti-collision, motor/gears/wheels, and recharge system work by themselves.

You may want to work on your code first if you expect them to easily run together later.
-- The most important lesson is to write non-blocking code, it starts with millis timing.
-- Next most important is state machine, how to make code run according to the value in a variable instead of doing the same thing every time.
-- These are things that beginners can learn, but they won't be beginners any more.

As an example the first thing you find out is how blinking 2 leds asynchronously can be a project in itself/

My favorite tutorials (not my doing, Nick Gammon's) on these subjects are at
http://gammon.com.au/blink
http://gammon.com.au/serial

The second tutorial contains a state machine example but it's all good stuff concerning serial input/output.

OTOH you can avoid those lessons since jumping off the code cliff will only waste lots of your time to reach dead ends.

Oh I see, you think I need to find my answers by separating each part of the project before trying to find a main solution for everything.

Thanks for the advice.

tourneskeud:
Oh I see, you think I need to find my answers by separating each part of the project before trying to find a main solution for everything.

Thanks for the advice.

I think that each step is going to teach you things but mostly I gave you a stock answer for most any multi-part project. I do that as a person who wrote code for money through the 80's and 90's and would save you some of the pains I went through.

You can find a lot of threads giving the same advice. I gave it maybe 1% or 2% of the time, this forum has more than a few pros on it. It's solid advice.

You grow yourself one big sketch and the debug time you spend will get longer and longer. You may get to understand what the phrases spaghetti code and can of worms mean before you see any better way.

With short sketches there's less to debug. As the code grows the debug time goes up like square of the size. So you write the shorts, debug those and when you put them together one at a time you only have one set of bugs to deal with at a time.

Write one big sketch and -then- deal with the bugs, you will find that one bug will hide others and can make you think that good code is bad.

With troubleshooting the first order of business is reducing the number of unknowns, not making more.