There several ways to introduce buffers. Here’s one of them. Let’s consider pure water. In pure water, the only occurring process is water’s autoprotolysis:

$HX_{2}O+HX_{2}O HX_{3}OX_{+}+OHX_{−}(1)$and the stoichiometry implies $[HX_{3}OX_{+}]=[OHX_{−}]$, which, given pKw=14, means pH=7. Now, let’s take 1 L of water and add to it 250 mL of 0.1 M HCl. After dilution, the new concentration of HCl becomes $0.1/1.25=0.08M$. HCl is a strong acid, so $[HX_{3}OX_{+}]=0.08M$ meaning that pH is equal to 1.1. Adding just 250 mL of acid drops the pH from 7 to 1.1. You can repeat the calculation even with 0.05 mL of acid:

$pH=−g_{10}1+1/10000.1 =1$So adding just one drop of acid (e.g. from a buret) will drop the pH from 7 to 1.

Now, let’s imagine that instead of having 1 L of water, we had 1 L of a solution that contained 0.1 M of some acid $HA$ and 0.1 M of its deprotonated form $AX_{−}$ and the pKa of that acid is 7. You can show that the pH of that solution will be also 7. Here’s where comes the surprise. If we add 0.05 mL of 0.1 M HCl, the pH will stay equal to approximately 7. Even if we add 250 mL of that HCl, the pH will only drop to 6.778. Huh? Somewhat surprising isn’t it?

Besides surprising, this solution is surely of practical interest to us. Imagine you want to set up some pH sensitive reaction (or you want to dissolve a protein, for which the tertiary structure is stable only at a certain small range of pH), you’d surely want your medium to be resistant to some accidental drops of acid that may get into your solution.

Solutions the pH for which doesn’t change significantly upon addition of reasonable amount of acid or base are called **buffer solutions.**

## Why Buffers Work

The idea is quite simple. If we have both protonated $HA$ and deprotonated $AX_{−}$ forms of some acid (say $HCl$, then if we try to add an acid to the solution, that acid will fully (assuming we don’t add too much HCl) react with $AX_{−}$ in a Bronsted-Lowry proton transfer:

$AX_{−}+HCl HA+ClX_{−}(2)$and, as a result, there’ll be no significant injection of free $[HX_{3}OX_{+}]$ ions (which was the reason why pH dropped so dramatically with pure water), and the only thing that will change is the concentrations of $HA$ and $AX_{−}$. It just turns out, that such change in relative amounts of $HA$ and $AX_{−}$ doesn’t change the pH significantly.

Let’s see how we can calculate the pH of the new mixture.

### Henderson-Hasselbach Equation

In our solution, we have the following ions $HX_{3}OX_{+},AX_{−},HA$. If the system is at equilibrium, regardless of how the system is prepared, the ratio of these concentrations **must** be equal to Ka:

Consider the initial state of the buffer. We claimed that we somehow managed to prepare the solution in which $[HA]=[AX_{−}]=0.1$. Plugging these values into (3), we obtain that $K_{a}=[HX_{3}OX_{+}]$. $K_{a}$ is fixed, so that means that the equilibrium concentration of $[HX_{3}OX_{+}]$ is equal to Ka. We can take logs of both sides and write it as pH = pKa. This is why the pH of the initial solution was 7 (the pKa was taken as given and equal to 7).

This calculation despite being way simpler than what we usually have to do to find pH is not conceptually any different. The reason why we usually have to deal with solving quadratics is because we begin at some non-equilibrium state in which $[HA]_{0}=0$ and $[AX_{−}]_{0}=0$, so we have no idea what will be the final/equilibrium concentration of $[HA]$ and $[AX_{−}]$, and so we have to assume that $x$ moles of $HA$ will participate in the proton transfer. In this case, we’re told that somehow we obtained the solution in which two of the three equilibrium concentrations are known: $[HA]=[AX_{−}]=0.1$. So, in order to satisfy the $K_{a}$ from (3), the concentration of $[HX_{3}OX_{+}]$ can take only one unique value.

Let’s do some manipulations to (3). We might want to know the pH at other concentrations of $[HA]$ and $[AX_{−}]$.

$K_{a}[HX_{3}OX_{+}]−g[HX_{3}OX_{+}]−g[HX_{3}OX_{+}]pH =[HA][AX_{−}][HX_{3}OX_{+}] =K_{a}[AX_{−}][HA] =−g(K_{a}[AX_{−}][HA] )=−gK_{a}−g[AX_{−}][HA] =pK_{a}+g[HA][AX_{−}] (4) $The equation (4) is known as Henderson–Hasselbalch Equation. Essentially it says that if you know pKa and you know either exact values of $[AX_{−}]$ and $[HA]$ or at least their ratio, you can unambiguously determine the pH.

## When could we use Henderson-Hasselbach Equation?

The equation (4) is useful if you want to know what will be the pH of the solution if you prepare it in a way such that $[AX_{−}]$ and $[HA]$ take certain desired values. For example, you might prepare the solution by adding equal number of moles of $CHX_{3}COOH$ and $CHX_{3}COONa$, which will result in equal concentrations of $[CHX_{3}COOH]=[CHX_{3}COONa]$.

The equation (4) can be useful if you want to *approximate* what happens when you add some amount of acid or base to your buffer.

Let’s consider the following setup. Let’s say you prepared a solution with volume $V_{i}$ and concentrations $C_{i}(HA)$ and $C_{i}(AX_{−})$. The solution with these concentrations has $[HX_{3}OX_{+}]=C_{i}(HX_{3}OX_{+})$ Let’s say you then add $V_{a}$ liters of an acid with concentration $C(HCl)$. The first thing you could do is calculate what will be the concentration of $HA$ and $A$ after $AX_{−}$ fully reacts with $HCl$.

As I’ve said in the notes on finding pH of monoprotic acids, concentrations are not additive. You cannot add or subtract them. We can only work with numbers of moles. Initially, we had $C_{i}(HA)V_{i}$ mols of $HA$ and $C_{i}(AX_{−})V_{i}$ mols of $AX_{−}$. We added $C(HCl)V_{a}$ mols of HCl, and we assume that $C(HCl)V_{a}$ is smaller than $C_{i}(AX_{−})V_{i}$. Okay. After reaction completes, we have:

$C_{i}(AX_{−})V_{i}−C(HCl)V_{a}mols of A left(5)$and

$C_{i}(HA)V_{i}+C(HCl)V_{a}mols of HA(6)$The new volume of the solution is $V_{i}+V_{a}$. Let’s calculate the new concentrations of $HA$ and $A$:

$C(HA)=V_{a}+V_{i}C_{i}(HA)V_{i}+C(HCl)V_{a} (7)$and

$C(AX_{−})=V_{a}+V_{i}C_{i}(HA)V_{i}−C(HCl)V_{a} (8)$Are these concentrations equilibrium concentrations? We don’t know and we have no reasons to suspect one way or another. What we should do, ideally, is to say, okay, given these new quantities of $HA$ and $A$, let’s imagine $x$ mols of $HA$ will participate in proton transfer. Then you set the accounting/ICE table:

$HA$ | $AX_{−}$ | $HX_{3}OX_{+}$ | |
---|---|---|---|

Initial num. moles | $C_{i}(HA)V_{i}+C(HCl)V_{a}$ | $C_{i}(AX_{−})V_{i}−C(HCl)V_{a}$ | $C_{i}(HX_{3}OX_{+})V_{i}$ |

Reacted | $−x$ | $+x$ | $+x$ |

Final num. moles | $C_{i}(HA)V_{i}+C(HCl)V_{a}−x$ | $C_{i}(AX_{−})V_{i}−C(HCl)V_{a}+x$ | $C_{i}(HX_{3}OX_{+})V_{i}+x$ |

Despite looking way more frightening than we’ve used to seeing in an ICE table, this also leads to a quadratic equation:

$K_{a}=V_{i}+V_{a}C_{i}(HA)V_{i}+C(HCl)V_{a}−x V_{i}+V_{a}C_{i}(AX_{−})V_{i}−C(HCl)V_{a}+x V_{i}+V_{a}C_{i}(HX_{3}OX_{+})V_{i}+x (9)$You can solve this equation for $x$, and then calculate $C_{i}(HX_{3}OX_{+})V_{i}+x$, which will be your $[HX_{3}OX_{+}]$, and so that’s how you can find the pH.

If, for some reason, you could say that $x$ is effectively $0$, you could say that (7) and (8) are equilibrium concentrations of $HA$ and $AX_{−}$, and so then you’d be able to use equation (4) to predict pH. This is what the absolute majority of buffer problems expects you to do.

You might wonder, how justified are we in assuming $x=0$? Put differently, how big of an error will we make if we treat $x=0$? Well, one could say: solve (9) and see for yourself. Luckily for you, I did solve (9) and made a dynamic figure, that shows you the pH calculated exactly by solving (9) (or a similar equation that you get if you add base) and by using Henderson-Hasselbach equation. As you can see, for a system with pKa=7 the HH gives effectively the identical answer for all volumes of acids and bases added. If you decrease pKa to 4.76, the HH works fine up until you add ~500 mL of HCl (which is half the original buffer volume).