/********* Pleasedontcode.com ********** Pleasedontcode thanks you for automatic code generation! Enjoy your code! - Terms and Conditions: You have a non-exclusive, revocable, worldwide, royalty-free license for personal and commercial use. Attribution is optional; modifications are allowed, but you're responsible for code maintenance. We're not liable for any loss or damage. For full terms, please visit pleasedontcode.com/termsandconditions. - Project: Battery Monitor - Source Code compiled for: Arduino Pro Mini 3.3V - Source Code created on: 2024-09-27 22:59:14 ********* Pleasedontcode.com **********/ /****** SYSTEM REQUIREMENTS *****/ /****** SYSTEM REQUIREMENT 1 *****/ /* read and provide pot value via wifi */ /****** END SYSTEM REQUIREMENTS *****/ /****** DEFINITION OF LIBRARIES *****/ // Removed WiFiPicker as it is not compatible with Arduino Pro Mini 3.3V /* * 18650 Ion-Li battery charge */ #ifndef Pangodream_18650_CL_h #define Pangodream_18650_CL_h #include "Arduino.h" #define DEF_PIN 34 // GPIO34 is not available on Arduino Pro Mini 3.3V #define DEF_CONV_FACTOR 1.7 #define DEF_READS 20 /* * 18650 Ion-Li battery charge * Calculates charge level of an 18650 Ion-Li battery */ class Pangodream_18650_CL { public: /* * Constructor * @param addressPin, ADC pin number where the voltage divider is connected to */ Pangodream_18650_CL(int addressPin); /* * Constructor * @param addressPin, ADC pin number where the voltage divider is connected to * @param convFactor, Convertion factor for analog read units to volts */ Pangodream_18650_CL(int addressPin, double convFactor); /* * Constructor * @param addressPin, ADC pin number where the voltage divider is connected to * @param convFactor, Convertion factor for analog read units to volts * @param reads, Number of reads of analog pin to calculate an average value */ Pangodream_18650_CL(int addressPin, double convFactor, int reads); /* * Constructor */ Pangodream_18650_CL(); /* * Get the battery charge level (0-100) * @return The calculated battery charge level */ int getBatteryChargeLevel(); double getBatteryVolts(); int getAnalogPin(); int pinRead(); double getConvFactor(); private: int _addressPin; //!< ADC pin used, default is GPIO34 - ADC1_6 int _reads; // Number of reads of ADC pin to calculate an average value double _convFactor; //!< Convertion factor to translate analog units to volts double _vs[101]; // Array with voltage - charge definitions void _initVoltsArray(); int _getChargeLevel(double volts); int _analogRead(int pinNumber); double _analogReadToVolts(int readValue); }; #endif /****** FUNCTION PROTOTYPES *****/ void setup(void); void loop(void); /***** DEFINITION OF ANALOG INPUT PINS *****/ const uint8_t pot_Potentiometer_Vout_PIN_A0 = A0; /****** DEFINITION OF LIBRARIES CLASS INSTANCES *****/ // No WiFiPicker instance as it is not compatible with Arduino Pro Mini 3.3V void setup(void) { // Initialize serial communication Serial.begin(115200); // Print a message indicating that the setup is complete Serial.println("Setup complete. No WiFi functionality available."); // Set the potentiometer pin as input pinMode(pot_Potentiometer_Vout_PIN_A0, INPUT); } void loop(void) { // Read the potentiometer value int potValue = analogRead(pot_Potentiometer_Vout_PIN_A0); // Read the analog value from the potentiometer // Print the potentiometer value to the serial monitor Serial.print("Potentiometer Value: "); Serial.println(potValue); // Add a small delay to avoid flooding the serial output delay(1000); // Delay for 1 second } /* END CODE */