La programación es un gran recurso que nos permite crear diversas secuen-cias de pasos lógicos que van a satisfacer nuestras necesidades y las de nuestros sistemas. Programar es todo un arte que requiere de una gran habilidad lógica y concentración por parte del programador.
Es el proceso de diseñar, escribir, probar, depurar y mantener el código fuente de programas computa-cionales. El código fuente es escrito en un lenguaje de programación. El propósito de la programación es crear programas que exhiban un comportamiento deseado.
El proceso de escribir código requiere frecuente-mente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algorit-mos especializados y lógica formal. Programar involucra áreas como el análisis y diseño de la aplicación.
Los primeros científicos que trabajaban en el área decidieron reemplazar las instrucciones, secuencias de unos y ceros, por palabras o letras provenientes del inglés, codificándolas así y creando un lenguaje de mayor nivel, que se conoce como Assembly o lenguaje ensamblador. Por ejem-plo, para sumar se usa la letra A de la palabra inglesa add (sumar). En realidad es-cribir en lenguaje ensamblador es básicamente lo mismo que hacerlo en lenguaje máquina, pero las letras y palabras son bastante más fáciles de recordar y entender que secuencias de números binarios.
A medida que la complejidad de las tareas que realizaban las computadoras aumen-taba, se hizo necesario disponer de un método sencillo para programar. Entonces, se crearon los lenguajes de alto nivel. Mientras que una tarea tan trivial como multi-plicar dos números puede necesitar un conjunto de instrucciones en len-guaje ensamblador, en un lenguaje de alto nivel bastará con sólo una.
Un lenguaje de programación es un idioma artificial diseñado para expresar operaciones que pueden ser llevadas a cabo por máquinas como los computadores. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el códi-go fuente de un programa informático se le llama programación.
El Lenguaje de máquina es el sistema de códigos directamente interpretable por un circuito micro-programable, como el microprocesador de un com-putador o un microcontrolador. Este lenguaje está compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la máqui-na. Estas instrucciones son normalmente ejecuta-das en secuencia, con eventuales cambios de flujo causados por el propio programa o eventos externos.
El lenguaje máquina trabaja con dos niveles de voltaje. Dichos niveles, por abstrac-ción, se simbolizan con el cero (0) y el uno (1), por eso el lenguaje de máquina sólo utiliza dichos signos. Esto permite el empleo de las teorías del álgebra booleana y del sistema binario en el diseño de este tipo de circuitos y en su programación.
El lenguaje ensamblador o assembler es un lenguaje de programación de bajo nivel para los computadores, mi-crocontroladores, y otros circuitos integrados programa-bles. Implementa una representación simbólica de los códigos de máquina. Esta representación es usualmente definida por el fabricante de hardware, y está basada en códigos mnemotécnicos que simbolizan los pasos de procesamiento (las instrucciones).
Un lenguaje ensamblador es por lo tanto específico a cierta arquitectura de computador física (o virtual). Esto está en contraste con la mayoría de los lenguajes de programación de alto nivel que idealmente son portables.
Un lenguaje de programación de alto nivel se caracteriza por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de la capacidad ejecutora de las máquinas.
Para los lenguajes de alto nivel se requiere de ciertos conocimientos de programación para realizar las secuen-cias de instrucciones lógicas. Los lenguajes de alto nivel se crearon para que el usuario común pudiese solucionar un problema de procesamiento de datos de una manera más fácil y rápida.
Un algoritmo es un conjunto pre-escrito de instruc-ciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba reali-zar dicha actividad. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución.
Con las capacidades de Arduino solo debemos tener nociones básicas de electrónica y programación, eso es suficiente para comenzar a desarrollar nuestros proyectos. Arduino cuenta con una gran comunidad donde se comparte todo lo desarrollado y es una gran ventana para que puedas ver todo lo que es posible desarrollar.
Familia Arduino
Como toda familia que se respete, tenemos de los integrantes más grandes a los más pequeños, te invitamos a conocerlos:
Un Shield o escudo es una placa que permite expandir funcionalidades a tu Arduino, con lo cual puedes conectar motores, o a la red celular, a una red WiFi, a una red Ethernet o tener un MP3 en el Arduino, entre muchos más solo mira:
Conector USB para el cable Tipo AB
Pulsador de Reset
Pines de E/S digitales y PWM
LED verde de placa encendida
LED naranja conectado al pin13
ATmega 16U2 encargado de la comunicación con el PC
LED TX (Transmisor) y RX (Receptor) de la comunicación serial
Puerto ICSP para programación serial
Microcontrolador ATmega 328, cerebro del Arduino
Cristal de cuarzo de 16Mhz
Regulador de voltaje
Conector hembra 2.1mm con centro positivo
Pines de voltaje y tierra
Entradas análogas
Arduino se programa en el lenguaje de alto nivel C/C++ y generalmente tiene los siguiente componentes para elaborar el algoritmo:
Estructuras
Variables
Operadores matemáticos, lógicos y booleanos
Estructuras de control (Condicionales y ciclos)
Funciones
Son dos funciones principales que debe tener todo programa en Arduino:
setup (){
}
Código de configuración inicial, solo se ejecuta una vez.
loop (){
}
Esta función se ejecuta luego del setup (), se mantiene ejecutándose hasta que se des- energice o desconecte el Arduino.
Una variable es una manera de nombrar y almacenar un valor numérico para su uso posterior por el programa. Como su nombre indica, las variables son números que se pueden variar continuamente en contra de lo que ocurre con las constantes cuyo valor
nunca cambia. Una variable debe ser declarada y, opcionalmente, asignarle un valor. El siguiente código de ejemplo declara una variable llamada variableEntrada y luego le asigna el valor obtenido en la entrada analógica del PIN2:
int variableEntrada = 0; // declara una variable y le asigna el valor 0
variableEntrada = analogRead(2);// la variable recoge el valor analógico del PIN2
Consultar el tipo de variables ocupadas en Arduino.