How to measure the battery voltage while charging
When to monitor? 

All the time! You need to be in control of what you are doing at all time. If there's an overvoltage or overcurrent, you need to detect that fast and cut the power out.

A battery charger is normally regulated in current, which means you set a charge current and don't really look at the output voltage of your buck (which is anyway biased by the battery). Therefore you will control the PWM based on the current reading, making a regulation loop. A PI regulator may be well enough for your application, or you may go more complex if you need fancy stuff such as power factor correction on your input (but I doubt you do).

Also, since your battery voltage will raise when pushing current inside the battery, you will need to occasionally stop the charge current to read the battery voltage at open load. This will help you correctly find the actual State Of Charge (SOC). For some type of battery, the voltage is enough, for some other type (such as LiFePo4), there's a flat section in the V/SOC graph. In that case, you also need to keep track of the current you inject in the battery to know your SOC.

How to monitor?

With a voltage sensor circuit and a current sensor circuit of course. A voltage sensor circuit is often a simple resistive voltage divider. For the current sensor, @mkeith comment is very relevant. You can go with an option where the current pass through an IC that measure it, or you can put a small serial resistor in series with the battery and measure the voltage drop with an differential amplifier designed for that.







simulate this circuit &ndash; Schematic created using CircuitLab

I only drew the main parts. To do a good charger, you would need some protection circuit to resist short circuits, ESD discharge, harsh electrical environment, unstable source, etc. You may even want to consider redundency in the sensors for safety. All depends on your application.

Good luck