\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{cruzcuautle} \pdfinfo{ /Title (arduino-cheat-sheet-1.pdf) /Creator (Cheatography) /Author (cruzcuautle) /Subject (arduino 1 Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{23EBD6} \definecolor{LightBackground}{HTML}{F1FDFC} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{arduino 1 Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{cruzcuautle} via \textcolor{DarkBackground}{\uline{cheatography.com/122883/cs/23004/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}cruzcuautle \\ \uline{cheatography.com/cruzcuautle} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 26th May, 2020.\\ Updated 26th May, 2020.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{4} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{datos}} \tn \SetRowColor{white} \mymulticolumn{1}{x{3.833cm}}{Gutierrez Cuautle Cruz Guadalupe \newline % Row Count 1 (+ 1) No. control 125872 \newline % Row Count 2 (+ 1) fecha:25/05/2020% Row Count 3 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{lcd}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{\#include \textless{}LiquidCrystal.h\textgreater{}: permite invocar la librería para el manejo del lcd. \newline LiquidCrystal lcd(12, 11, 5, 4, 3, 2): Se realiza la asignación de los pines al lcd. \newline lcd.begin(16, 2): Permite configurar el tamaño del lcd. \newline lcd.print("Hola..."): permite imprimir un texto en el lcd. \newline lcd.clear(): Permite limpiar lo escrito en el lcd. \newline lcd.setCursor(0,1): Permite posicionar el cursor en una celda del lcd en especifico. \newline \}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{El el módulo Arduino LCD KeyPad Shield/Teclado LCD está diseñado para ser compatible con las placas Arduino, y para proporcionar una interfaz fácil de usar que permite hacer menús, selecciones etc. Consta de un 2 filas de 16 caracteres blancos con la retroiluminación LCD azul. El teclado se compone de 5 teclas} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{sensor de temperatura LM35}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{const int sensorPin= A0; \newline \newline void setup() \newline \{ \newline Serial.begin(9600); \newline \} \newline \newline void loop() \newline \{ \newline int value = analogRead(sensorPin); \newline float millivolts = (value / 1023.0) * 5000; \newline float celsius = millivolts / 10; \newline Serial.print(celsius); \newline Serial.println(" C"); \newline delay(1000); \newline \}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{El LM35 es un circuito electrónico sensor que puede medir temperatura. Su salida es analógica, es decir, te proporciona un voltaje proporcional a la temperatura. El sensor tiene un rango desde −55°C a 150°C. Su popularidad se debe a la facilidad con la que se puede medir la temperatura} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{teclado 4x4}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{\#include \textless{}Keypad.h\textgreater{} \newline \newline const byte numRows= 4; // Tiene 4 filas \newline const byte numCols= 4; // Tiene 4 columnas \newline \newline char keymap{[}numRows{]}{[}numCols{]}= \newline \{ \newline \{'1', '2', '3', 'A'\}, \newline \{'4', '5', '6', 'B'\}, \newline \{'7', '8', '9', 'C'\}, \newline \{'*', '0', '\#', 'D'\} \newline \}; \newline byte rowPins{[}numRows{]} = \{9,8,7,6\}; // Estos terminales del Arduino corresponden a Filas \newline byte colPins{[}numCols{]}= \{5,4,3,2\}; // Estos terminales del Arduino corresponden a Columnas \newline void setup() \newline \{ \newline Serial.begin(9600); \newline \}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{Puede ser conectado a cualquier microcontrolador o tarjetas de desarrollo como Arduino. El teclado matricial 4x4 está formado por una matriz de pulsadores dispuestos en filas (L1, L2, L3, L4) y columnas (C1, C2, C3, C4), con la intención de reducir el número de pines necesarios para su conexión.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{motor paso a paso}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{\#include \textless{}Stepper.h\textgreater{} \newline \#define STEPS 2048 \newline Stepper stepper(STEPS, 8, 9, 10, 11); \newline \newline void setup() \{ \newline stepper.setSpeed(10); \newline \} \newline \newline void loop() \{ \newline stepper.step(2048); \newline \}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{Un motor paso a paso es un dispositivo electromecánico que convierte una serie de pulsos eléctricos en desplazamientos angulares, lo que significa que es capaz de girar una cantidad de grados (paso o medio paso) dependiendo de sus entradas de control. \newline Este paso puede variar desde 90° hasta pequeños movimientos de 180°} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{driver}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{\#include \textless{}Stepper.h\textgreater{} //Importamos la librería para controlar motores paso a paso \newline \newline \#define STEPS 200 //Ponemos el número de pasos que necesita para dar una vuelta. 200 en nuestro caso \newline \newline // Ponemos nombre al motor, el número de pasos y los pins de control \newline Stepper stepper(STEPS, 8, 9, 10, 11); //Stepper nombre motor (número de pasos por vuelta, pins de control) \newline \newline void setup() \newline \{ \newline // Velocidad del motor en RPM \newline stepper.setSpeed(100); \newline \} \newline \newline void loop() \newline \{ \newline //Girar una vuelta entera en un sentido \newline stepper.step(200); \newline delay(500); //Pequeña pausa \newline \newline //Girar una vuelta entera en sentido contrario \newline stepper.step(-200); \newline delay(500); //Pequeña pausa \newline \}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{Un motor paso a paso unipolar es más sencillo que controlar. Utilizaremos el integrado ULN2803 que es un array de 8 transistores tipo Darlington capaz de soportar cargas de hasta 500mA (datasheet). Conectaremos los cuatro pins del Arduino a las entradas del ULN2803 y las salidas de este a las bobinas. Los comunes a 12V} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{servomotor}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{// Incluímos la librería para poder controlar el servo \newline \#include \textless{}Servo.h\textgreater{} \newline \newline // Declaramos la variable para controlar el servo \newline Servo servoMotor; \newline \newline void setup() \{ \newline // Iniciamos el monitor serie para mostrar el resultado \newline Serial.begin(9600); \newline \newline // Iniciamos el servo para que empiece a trabajar con el pin 9 \newline servoMotor.attach(9); \newline \} \newline \newline void loop() \{ \newline \newline // Desplazamos a la posición 0º \newline servoMotor.write(0); \newline // Esperamos 1 segundo \newline delay(1000); \newline \newline // Desplazamos a la posición 90º \newline servoMotor.write(90); \newline // Esperamos 1 segundo \newline delay(1000); \newline \newline // Desplazamos a la posición 180º \newline servoMotor.write(180); \newline // Esperamos 1 segundo \newline delay(1000); \newline \}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{permite mantener una posición que indiquemos, siempre que esté dentro del rango de operación del propio dispositivo. Por otro lado nos permite controlar la velocidad de giro, podemos hacer que antes de que se mueva a la siguiente posición espere un tiempo.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{ultrasónico HC-SR04}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{const int Trigger = 2; //Pin digital 2 para el Trigger del sensor \newline const int Echo = 3; //Pin digital 3 para el echo del sensor \newline \newline void setup() \{ \newline Serial.begin(9600);//iniciailzamos la comunicación \newline pinMode(Trigger, OUTPUT); //pin como salida \newline pinMode(Echo, INPUT); //pin como entrada \newline digitalWrite(Trigger, LOW);//Inicializamos el pin con 0 \newline \}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{El sensor de distancia ultrasónico HC-SR04 utiliza los ultrasonidos para determinar la distancia a un objeto. Ofrece una excelente precisión y lecturas estables en un paquete fácil de usar. La operación no se ve afectada por la luz solar o el material negro como los sensores de infrarojos, aunque los materiales blandos como las telas pueden ser difíciles de detectar.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Dispositivos Bluetooth}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{\#include \textless{}SoftwareSerial.h\textgreater{} // Incluimos la librería SoftwareSerial \newline SoftwareSerial BT(10,11); // Definimos los pines RX y TX del Arduino conectados al Bluetooth \newline \newline void setup() \newline \{ \newline BT.begin(9600); // Inicializamos el puerto serie BT (Para Modo AT 2) \newline Serial.begin(9600); // Inicializamos el puerto serie \newline \} \newline \newline void loop() \newline \{ \newline if(BT.available()) // Si llega un dato por el puerto BT se envía al monitor serial \newline \{ \newline Serial.write(BT.read()); \newline \} \newline \newline if(Serial.available()) // Si llega un dato por el monitor serial se envía al puerto BT \newline \{ \newline BT.write(Serial.read()); \newline \} \newline \}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{Funciona como dispositivo maestro y esclavo bluetooth \newline Configurable mediante comandos AT \newline Bluetooth V2.0+EDR \newline Frecuencia de operación: 2.4 GHz Banda ISM \newline Modulación: GFSK (Gaussian Frequency Shift Keying) \newline Potencia de transmisión: \textless{}=4dBm, Class 2 \newline Sensibilidad: \textless{}=-84dBm @ 0.1\% BER \newline Seguridad: Autenticación y encriptación \newline Perfiles Bluetooth: Puerto serie bluetooth. \newline Distancia de hasta 10 metros en condiciones óptimas} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{IoT}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{\#include \textless{}SoftwareSerial.h\textgreater{} \newline \newline SoftwareSerial mySerial(10, 11); // RX, TX \newline \newline void setup() \{ \newline // Open serial communications and wait for port to open: \newline Serial.begin(115200); \newline while (!Serial) \{ \newline ; // wait for serial port to connect. Needed for native USB port only \newline \} \newline \newline \newline \seqsplit{Serial.println("Goodnight} moon!"); \newline \newline // set the data rate for the SoftwareSerial port \newline mySerial.begin(115200); \newline mySerial.println("Hello, world?"); \newline \} \newline \newline void loop() \{ // run over and over \newline if (mySerial.available()) \{ \newline \seqsplit{Serial.write(mySerial.read());} \newline \} \newline if (Serial.available()) \{ \newline \seqsplit{mySerial.write(Serial.read());} \newline \} \newline \}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{Internet de las cosas (en inglés Internet of things, abreviado IoT) es un concepto que se refiere a la interconexión digital de objetos cotidianos con Internet \newline un elemento que nos permite de forma sencilla y económica conectar cualquier cosa a Internet. Con un Arduino y un sencillo módulo ethernet o wifi podemos conectar a Internet sensores para informar, controlar motores o bombillas desde cualquier parte del mundo o mandar un SMS o email cada vez que se abra la puerta de casa.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}