diff --git a/quad8/electro/lab/p2/informe/main.tex b/quad8/electro/lab/p2/informe/main.tex
new file mode 100644
index 0000000..4f1cd1b
--- /dev/null
+++ b/quad8/electro/lab/p2/informe/main.tex
@@ -0,0 +1,157 @@
+\input{../../preamble.tex}
+
+% Changing margins just so the tables fit nicely:
+\geometry{margin=20mm}
+
+\graphicspath{ {./img/} }
+
+\pagestyle{fancy}
+\fancyhf{}
+\rhead{Víctor Rubio Español, Adrià Vilanova Martínez}
+\lhead{Pràctica 2}
+\rfoot{\thepage}
+%%%% Title %%%%
+\title{Pràctica 2. Construcció i connexió d'aparells de mesura}
+\author{Víctor Rubio Español, Adrià Vilanova Martínez (4b, grup C1)}
+\date{Primavera 2020}
+
+\begin{document}
+  {\parskip=0pt
+    \maketitle
+  }
+
+  \section{Amperímetre}
+
+  \begin{center}
+    \centering
+    \includegraphics[scale=0.5]{2_3_1.png}
+    \captionof{figure}{Circuit de calibratge.}
+  \end{center}
+
+  \begin{center}
+    \centering
+    \pgfplotstabletypeset[
+        columns/0/.style={column name=$I_c$, fixed, fixed zerofill, precision=0},
+        columns/1/.style={column name=$I_p \, (\si{\milli\ampere})$, fixed, fixed zerofill, precision=2},
+        columns/2/.style={column name=$\frac{I_c - I_p}{I_p}$, fixed, fixed zerofill, precision=2},
+    ]{../data/2_3_1.dat}
+
+    \captionof{figure}{Taula de correspondència entre les lectures de l'amperímetre patró $I_p$ i el construït $I_c$.}
+  \end{center}
+
+  La regressió és:
+  \[ I_p(I_c) = m I_c + b. \]
+
+  \begin{figure}[H]
+    \centering
+    \input{../output/2_3_1.tex}
+    \caption{Recta de regressió que calibra l'amperímetre.}
+  \end{figure}
+  \[ m = \SI{0.0099760(13)}{}, \]
+  \[ b = \SI{0.0356(14)}{\milli\ampere} \]
+
+  \section{Voltímetre}
+
+  \begin{center}
+    \centering
+    \includegraphics[scale=0.5]{2_3_2.png}
+    \captionof{figure}{Circuit de calibratge.}
+  \end{center}
+
+  \begin{center}
+    \centering
+    \pgfplotstabletypeset[
+        columns/0/.style={column name=$V_c$, fixed, fixed zerofill, precision=0},
+        columns/1/.style={column name=$V_p \, (\si{\volt})$, fixed, fixed zerofill, precision=2},
+        columns/2/.style={column name=$\frac{V_c - V_p}{V_p}$, fixed, fixed zerofill, precision=2},
+    ]{../data/2_3_2.dat}
+
+    \captionof{figure}{Taula de correspondència entre les lectures del voltímetre patró $V_p$ i el construït $V_c$.}
+  \end{center}
+
+  La regressió és:
+  \[ V_p(V_c) = m V_c + b. \]
+
+  \begin{figure}[H]
+    \centering
+    \input{../output/2_3_2.tex}
+    \caption{Recta de regressió que calibra el voltímetre.}
+  \end{figure}
+  \[ m = \SI{0.00997648(19)}{}, \]
+  \[ b = \SI{0.035(2)}{\milli\ampere} \]
+
+  \newpage
+
+  \section{Mesura de la resistència}
+
+  \begin{figure}[H]
+    \centering
+    \input{../output/2_3_3.tex}
+    \caption{Comparació de les mesures de la resistència amb el muntatge (a) i el muntatge (b) del guió.}
+  \end{figure}
+
+  \subsection{Muntatge (a)}
+
+  \begin{center}
+    \centering
+    \pgfplotstabletypeset[
+        columns/0/.style={column name=$R_{\text{nominal}} \, (\si{\ohm})$, fixed, fixed zerofill, precision=0},
+        columns/1/.style={column name=$V \, (\si{\milli\volt})$, fixed, fixed zerofill, precision=0},
+        columns/2/.style={column name=$I \, (\si{\ampere})$, fixed, fixed zerofill, precision=4},
+        columns/3/.style={column name=$R_{\text{mesurada}} \, (\si{\ohm})$, fixed, fixed zerofill, precision=2},
+        columns/4/.style={column name=$\frac{\Delta R}{R} \, (\%)$, fixed, fixed zerofill, precision=2},
+    ]{../data/2_3_3_a.dat}
+
+    \captionof{figure}{Valors obtinguts a partir de l'amperímetre i el voltímetre per diferents resistències, amb el muntatge (a).}
+  \end{center}
+
+  \subsection{Muntatge (b)}
+
+  \begin{center}
+    \centering
+    \pgfplotstabletypeset[
+        columns/0/.style={column name=$R_{\text{nominal}} \, (\si{\ohm})$, fixed, fixed zerofill, precision=0},
+        columns/1/.style={column name=$V \, (\si{\milli\volt})$, fixed, fixed zerofill, precision=0},
+        columns/2/.style={column name=$I \, (\si{\ampere})$, fixed, fixed zerofill, precision=4},
+        columns/3/.style={column name=$R_{\text{mesurada}} \, (\si{\ohm})$, fixed, fixed zerofill, precision=2},
+        columns/4/.style={column name=$\frac{\Delta R}{R} \, (\%)$, fixed, fixed zerofill, precision=2},
+    ]{../data/2_3_3_b.dat}
+
+    \captionof{figure}{Valors obtinguts a partir de l'amperímetre i el voltímetre per diferents resistències, amb el muntatge (b).}
+  \end{center}
+
+  \section{Qüestions}
+
+  \textbf{(a) Impedància d'entrada de l'amperímetre construït:}
+  \[ R_{\text{A}} = \frac{1}{\frac{1}{R_V} + \frac{1}{r}} \approx \SI{50}{\ohm}. \]
+
+  \textbf{(b) Impedància d'entrada del voltímetre construït:}
+  \[ R_{\text{V}} = R_1 + \frac{1}{\frac{1}{R_2} + \frac{1}{R_V}} \approx \SI{1.999}{\mega\ohm}. \]
+
+  \textbf{(c) Si en el voltímetre construït substituïm la resistència $R_2$ per una altra de valor $R_2/2$, adaptant el valor de $R_1$ en aquesta nova situació per tal que la relació enre elles es mantingui constant, quin és el rang del nou aparell? I la resolució? Comenteu en quins aspectes aquest nou voltímetre és millor o pitjor que l'anterior.} \\
+  Com la relació es manté constant, tant el rang com la resolució seguiran sent els mateixos per simetria, ja que amb un voltatge fix, la caiguda de potencial mantindrà les mateixes proporcions (aproximant que $R_V \gg R_2$) i per tant mesurarem el mateix.
+
+  L'única diferència és que en aquest cas estem fent que la nova $R_2$ sigui encara més petita que $R_V$, i per tant estem millorant el fet que s'assembla més a un voltímetre ideal (passa menys corrent pel voltímetre bàsic). Tot i així, la mala notícia és que quan mesurem resistències petites, el voltatge mesurat no serà tant precís.
+
+  \textbf{(d) En quines regions s'aparten de la linealitat les gràfiques de l'apartat 2.3? Per què?}
+  En el muntatge (a) en la regió de resistències grans, ja que les resistències són de l'ordre de magnitud de les impedàncies d'entrada (el problema que ja hem comentat a l'apartat (c)).
+
+  En el muntatge (b) en la regió de resistències petites, ja que l'amperímetre té una impedància d'entrada molt petita.
+
+  \textbf{(e) Quan estem mesurant la resistència d'$\SI{1}{\ohm}$ amb el circuit (a), un canvi en l'escala de l'amperímetre provoca un canvi en la tensió mesurada pel voltímetre.}
+
+  \textbf{a.} Mai es mesura la tensió real, sempre és una aproximació. Però tot i així, en el cas del circuit (a) l'aproximació és prou bona, ja que la resistència del voltímetre (que està en paral·lel amb la resistència de prova) és molt gran.
+
+  \textbf{b.} El fet que si augmenta la resistència, aleshores la impedància de l'amperímetre és més petita, així que la diferència de tensió als dos extrems de l'amperímetre és menor.
+
+  \textbf{c.} No, degut a dues coses: el fet que el voltímetre no té una impedància infinita, i la de l'amperímetre no és nul·la.
+
+  \textbf{(f) Si fem servir el circuit (b) per a mesurar una resistència de valor similar al de la resistència interna del voltímetre:}
+
+  \textbf{a.} Com les resistències són semblants, les intensitats també ho seran.
+
+  \textbf{b.} No, degut al fet que passa corrent pel voltímetre, fet que està molt lluny del comportament d'un voltímetre ideal.
+
+  \textbf{c.} La intensitat que circula per la resistència és molt més petita que la que passa per l'amperímetre (ja que els amperímetres tenen una resistència molt més petita que els voltímetres). Tot i així, la mesura és bastant bona degut justament al fet que com la resistència té un valor similar a la resistència interna del voltímetre, aquesta és més gran que la de l'amperímetre.
+
+\end{document}
