Simulate Capacitor charge-discharge cycle, without any external Capacitor

Hi there,
I'm a beginner, and I'm trying to simulate a Capacitor charge-discharge cycle, without any external Capacitor, but just a R.
I've been trying for long, but I have some problem with the software (I tried something like nested loop or similar). I tried searching on the web but I didn't find anything like this. Anyone could help me?
Any advice is welcome.
Thank you very much. :slight_smile:

Let me be the first to ask: what have you tried so far? Are you testing with an LED? Post the code you've written so far.

No, I'm not testing with an LED. My hw is just a R(power and gnd obviously) on which depend the time costant. I need to simulate the behavior of the voltage across the capacitor, not having an external capacitor.
The code I wrote is this (I know the definition of the data is missing, my problem it's the flow chart, as nested loop or whatever I need to realize my purpose):

void setup()
{
Serial.begin(9600);
Vrload = A*(3.3/4096);
Rsens = Rl*(Vheater/Vrload-1);
tau = Rsens*C;
}

void loop()
{
analogReadResolution(12);
A = analogRead(analogPin);
double Vc=0;
while (Vc<Vrh)
{
Vc=Voh-(Voh-Vrl)exp(-t/tau);
Th=tau
log((Voh-Vrl)/(Vol-Vrh));
Serial.print("Vc = ");
Serial.println(Vc);
Serial.print("Thigh =");
Serial.println(Th);
}

while (Vc>=Vrh)
{
Vc=Vol-(Vol-Vrh)exp(-t/tau);
Tl=tau
log((Vol-Vrh)/(Voh-Vrl));
Serial.print("Vc = ");
Serial.println(Vc);
Serial.print("Thigh =");
Serial.println(Th);
if (Vc<Vrl)
{
Vc=Voh-(Voh-Vrl)*exp(-t/tau);
};
}

Show all the code. C is used before it is defined/declared.

Can you please explain what the code should be doing? What is not working with it? Also don't forget to use code tags to make it easier to read :slight_smile:

To simulate a capacitor charging, you need 3 things. Supply voltage, a resistor, and of course a capacitor.
With the resistor and capacitor you can calculate Tau, the time it takes to charge and discharge, which is R*C.
Then you can plug every thing into this formula.

Vc = E*(1 - e^( -Time / Tau) ).

Vc = capacitor Voltage @ time.
E = supply Voltage.
Time is usually in milliseconds, but for better results, use microseconds.

Discharge:

Vc = E*e^(-Time / Tau) .

You will need to convert the formula to C language.