Connection between operational amplifiers

It is better to compute the coordinate (0,-2.6) instead of guessing the correct value. For this, I label the corner at resistor R_1' by (in+3'). Then (0,-2.6) can be replaced by (in+3'|-aop3.-).enter image description here

\documentclass[border=1mm]{standalone}
\usepackage[european, straightvoltages]{circuitikz}

\begin{document}
\begin{circuitikz}
  \draw (0,0) node[en amp](aop2){AO2};
  \draw (aop2.+)
    to[short] ++(-0.5,0)
    to[open, v<=$v_2$] ++(0,-1) node[ground]{};
  \draw (aop2.out)
    -- ++(0.5,0) coordinate (out2)
    to [R=$R$] ++(0,2) coordinate (RP)
    to [pR, wiper pos=0.3, mirror, n=curseur, l=$P$] ++(0,2) coordinate (PR)
    to [R=$R$] ++(0,2) coordinate (out1)
    -- ++(-0.5,0) node[en amp, noinv input up, anchor=out](aop1){};
  \draw (aop2.-)
    --(aop2.- |- RP)
    to[short] (RP);
  \draw (RP)
    -| (curseur.wiper)
    to[short] (curseur.wiper);
  \draw (PR) -| (aop1.-);
  \draw (aop1.+)
    -- ++(-1,0)
    to[open, v<=$v_1$] ++(0,-1) node[ground]{};
  \draw (out2)
    -- ++(1,0)
    to[short] ++(0,2.7) coordinate (in+3') % <<< defined here
    to[R, l_=$R'_1$] ++(2,0) coordinate (in+3)
    -- ++(0.5,0)  node[en amp, anchor=+](aop3){AO3};
  \draw (in+3)
    to[R, l_=$R'_2$] ++(0,-2) node[ground]{};
  \draw (out1)
    -- ++(1,0) to[short] (in+3'|-aop3.-)   % <<< used here
    to[R=$R_1$] ++(2,0) coordinate (in-3)
    -- ++(0.5,0);
  \draw (in-3)
    --++(0,1.4) coordinate (R)
    to[R=$R_2$] (R-|aop3.out)
    to[short] (aop3.out)
    -- ++(0.5,0)
    to[open, v<=$v_s$] ++(0,-1) node[ground]{};
  \end{circuitikz}
\end{document}

I have no time to redraw it now how I did it (but look below) (I think that the position of the potentiometer is unfortunate; just mirror it to avoid the cross). I commented how to match the last two connections, but probably @gernot solution is much better than mine.

Explanation in the comments

\documentclass[border=1mm]{standalone}
\usepackage[european, straightvoltages]{circuitikz}

\begin{document}
\begin{circuitikz}
\draw (0,0) node[en amp](aop2){AO2};
\draw (aop2.+) to[short] ++(-0.5,0) to[open, v<=$v_2$] ++(0,-1) node[ground]{};
\draw (aop2.out) --++(0.5,0) coordinate (out2) to[R=$R$] ++(0,2) coordinate (RP) to [pR, wiper pos=0.3, mirror, n=curseur, l=$P$] ++(0,2) coordinate (PR) to[R=$R$] ++(0,2) coordinate (out1) --++(-0.5,0) node[en amp, noinv input up, anchor=out](aop1){};
\draw (aop2.-) --(aop2.- |- RP) to[short] (RP);
\draw (RP) -| (curseur.wiper) to[short] (curseur.wiper);
\draw (PR) -| (aop1.-);
\draw (aop1.+) --++(-1,0) to[open, v<=$v_1$] ++(0,-1) node[ground]{};
% let's mark where we go up here, exiting from out2
\draw (out2) --++(1,0) coordinate(go up) to[short] ++(0,2.7) to[R, l_=$R'_1$] 
      ++(2,0) coordinate (in+3) --++(0.5,0)  node[en amp, anchor=+](aop3){AO3};
\draw (in+3) to[R, l_=$R'_2$] ++(0,-2) node[ground]{};
% now we need to connect (out1) to the (-) of the amplifier via R_1. 
% It seems you want a (0.5,0) space before, to align to the resistor below; 
% so let's start from aop3.- ; use (go up) to make the "turn"
\draw (aop3.-) -- ++(-0.5,0) coordinate (in-3) to[R, l_=$R_1$] (in-3-|go up) |- (out1);
% build the feedback loop a bit taller
\draw (in-3) --++(0,1.5) coordinate (R) to[R=$R_2$] (R-|aop3.out) to[short] (aop3.out) --++(0.5,0) to[open, v<=$v_s$] ++(0,-1) node[ground]{};
    \end{circuitikz}
\end{document}

By the way, I will now copy how I drew it in my notes for electronic instrumentation. I use American symbols (because they are symbols, and you do not have to read text to understand what is what, which in my opinion makes the circuits so much more visible at a glance), and I tried to avoid a) unnecessary corners and b) crossings (this one sometimes is impossible).

enter image description here

\documentclass[border=10pt]{standalone}
\usepackage[siunitx, RPvoltages]{circuitikz}
\ctikzsetstyle{romano}
\begin{document}
\begin{circuitikz}[scale=0.7, transform shape]
    % totem pole
    \draw (0,0) node[op amp, noinv input up](A1){\texttt{A1}}
    (A1.+) to[short, -o] ++(-1,0) coordinate(ainst-) node[left]{$v^-$}
    (A1.-) to [short, -o] ++(0,-1) coordinate (ra-up);
    \draw (ra-up) to[vR, l_=$R_A$, name=RA0, o-o] ++(0,-2) coordinate (ra-down);
    \draw (ra-down) to [short, o-] ++(0,-1) node[op amp, anchor=-](A2){\texttt{A2}}
    (A2.+) to[short, -o] (A2.+ -| ainst-) coordinate(ainst+) node[left]{$v^+$}
    (ra-up) to[R, l_=$R_B$, name=RB1, o-] (ra-up -| A1.out) coordinate(vup) -- (A1.out)
    (ra-down) to[R=$R_B$, name=RB2] (ra-down -| A2.out) coordinate(vdn) -- (A2.out)
    ;
    % differential amplifier : position to avoid bends
    \draw (vdn) to[R=$R$, name=R1] ++(2,0) node[op amp, anchor=+](A3){\texttt{A3}}
    (A3.+) to[R=$R$, -o, name=R2] ++(0,-2)
    to[battery2, l_=$V_\mathrm{ref}$, invert, o-] ++(0,-1) node[ground]{}
    (vup) to[R=$R$, name=R3] (A3.- |- vup) coordinate(a3fb) --(A3.-)
    (a3fb) to [R=$R$, name=R4] (A3.out |- a3fb) -- (A3.out)
    to [short, -o] ++(.5,0) node[above]{$v_o$}
    ;
\end{circuitikz}
\end{document}

Tags:

Circuitikz