\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{paracol}
\usepackage{hyperref}
\usepackage{vmargin}
\setpapersize{A4}
\setmargins{2.5cm}
{1.5cm}
{16.5cm}
{23.42cm}
{10pt}
{1cm}
{0pt}
{1cm}
\input{arduino_code.tex}
\input{latex_code.tex}
\title{Incluir código Arduino en documentos \LaTeX{}}
\author{Mg. Fausto Mauricio Lagos Suárez}
\date{\today}
\begin{document}
\maketitle
El archivo \bftt{arduino\_code.tex} contiene la definición del comando \cmdbs{ArduinoSketch} y el ambiente \linebreak \cmd{ArduinoSketchBox} los cuales utilizan el paquete \bftt{listings} para definir el resaltado de sintaxis propio del Arduino IDE, el comando \bftt{ArduinoSketch} carga el código de un sketch de Arduino desde el archivo \bftt{.ino} por tanto es adecuado para sketch largos que puedan ocupar más de una página del documento, por otro lado el ambiente \bftt{ArduinoSketchBox} utiliza escribe el código de Arduino dentro de una caja coloreada que puede ajustarse dentro de una columna o un espacio reducido dentro del texto, es adecuado para sketch pequeños que no ocupen más de una página o para resaltar partes del código.
El resaltado de sintaxis utilizado en el archivo \bftt{arduino\_code.tex} se corresponde al indicado en \url{https://www.arduino.cc/en/Reference/HomePage}.
\section{Modo de empleo del archivo \bftt{arduino\_code.tex}}
Para empezar a incluir código Arduino en un documento \LaTeX{} simplemente copie el archivo \bftt{arduino\_code.tex} en el directorio raíz de su documento y utilice el comando \cmdbs{input} en el preámbulo.
\begin{minted}[frame = single]{latex}
\input{Arduino_code.tex}
\end{minted}
\section{Modo de empleo del comando \cmdbs{ArduinoSketch}}
La sintaxis de uso del comando \cmdbs{ArduinoSketch} es muy simple ya que el comando utiliza dos parámetros de entrada \bftt{archivo.ino} el cual no debe llevar la extensión \bftt{.ino} y \bftt{Etiqueta para el código} que corresponde al \bftt{caption} del contador \bftt{Listing}
\begin{minted}[frame = single]{latex}
\ArduinoSketch{archivo.ino}{Etiqueta para el código}
\end{minted}
Como se observa en este ejemplo de uso, si el código utiliza más del espacio disponible en la página actual, se divide automáticamente el frame que lo contiene.
\ArduinoSketch{ejemplo_Blink}{Ejemplo Blink}
\section{Modo de uso del ambiente \cmd{ArduinoSketchBox}}
\begin{minted}[frame = single]{latex}
\begin{ArduinoSketchBox}{title}
code...
\end{ArduinoSketchBox}
\end{minted}
\begin{paracol}{2}
El ambiente \bftt{ArduinoSketchBox} no carga el código del sketch desde el archivo \bftt{.ino} por lo tanto es muy aconsejable utilizado con sketch cortos o para resaltar partes del sketch general, utiliza un parámetro de entrada que corresponde al título del sketch, en este ejemplo se ha utilizando en combinación con el paquete \bftt{paracol} para incluir código Arduino en una de las columnas.
\switchcolumn
\begin{ArduinoSketchBox}{Leer el valor de un potenciometro}
int sensor = A0;
int valSensor = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
valSensor = analogRead(sensor);
Serial.println(valSensor);
delay(100);
}
\end{ArduinoSketchBox}
\end{paracol}
\end{document}