Saltar al contenido principal
LibreTexts Español

18.1: Introducción

  • Page ID
    82190
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Bienvenido a Bits & Pieces (nombre pegadizo, ¿eh?). Esta secuencia de capítulos profundiza en una variedad de aspectos de la programación del microcontrolador Atmel AVR ATMega 328P a través de la placa Arduino Uno y bibliotecas asociadas. El foco está en la programación IO (Input-Output). Específicamente, veremos formas de codificar la interfaz entre el Uno y los circuitos externos. Esto es solo de código; el aspecto del hardware se trata por separado en laboratorio. Estaremos explorando el código IO utilizado para leer y escribir desde puertos digitales y analógicos para que podamos realizar tareas como leer el estado de los interruptores, iluminar LED, leer datos continuamente variables como fuerza o temperatura, cronometrar o contar eventos, y controlar dispositivos como motores. La forma más sencilla de realizar estos elementos es a través de las funciones de biblioteca que vienen con el sistema Arduino. 1 A veces, sin embargo, estas funciones no son lo suficientemente rápidas o eficientes, o necesitamos usar una plataforma que no sea Arduino. Por esas razones, nos sumergiremos en las funciones de la biblioteca para ver cómo funcionan. Para los no iniciados, revisar el código fuente de la biblioteca puede ser una tarea desalentadora, así que piense en Bits & Pieces como una serie de visitas guiadas que cubren partes importantes de la biblioteca. Concedido, probablemente no sea tan divertido como, digamos, una serie de visitas guiadas a las islas tropicales del Pacífico Sur, pero solo puedes obtener tanto por tu matrícula. Y si bien no cabe duda de que podría haber usos interesantes para los controladores embebidos en dichas islas, una excursión está enseguida.

    Las primeras cosas que tenemos que examinar son algunos de uso común incluyen archivos. Recordemos que los archivos include (también conocidos como archivos de cabecera, es decir, los que terminan en “.h”) se utilizan para recopilar prototipos de funciones, referencias a variables globales, definiciones de estructura, y esos maravillosos (y a veces confusos) #define s. Recuerde, el lenguaje C es bastante “flaco” y el funciones que llamamos son escritas por nosotros o provienen de una biblioteca. Los prototipos para las funciones se encuentran en el archivo de cabecera de la biblioteca. Un giro interesante a esto es que algunas llamadas funciones de biblioteca no son funciones en absoluto. En cambio, son simplemente expansiones en línea a través de #define s. Hay muchas bibliotecas diferentes disponibles, por lo que para hacer la vida aún más fácil, los sistemas suelen incluir un archivo de inclusión “maestro” que contiene directivas para hacer referencia a otros archivos de inclusión (chico, esos programadores profesionales están constantemente buscando formas para que cada pulsación de tecla cuente).


    1. Los detalles completos de la biblioteca y muchas otras golosinas, incluido el código de ejemplo, se pueden encontrar en www.arduino.cc. La página de referencia en particular resultará útil.

    This page titled 18.1: Introducción is shared under a CC BY-NC-SA 4.0 license and was authored, remixed, and/or curated by James M. Fiore via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.