Arduino Solar Charge controller with energy monitoring and protection circuit, automatic Battery Voltage Selection, and USB port for Charging Gadgets