Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Lenguajes de Programación y Montaje en Arduino, Guías, Proyectos, Investigaciones de Electrotecnia

Una comparativa de diferentes tipos de lenguajes de programación, desde ensamblador hasta lenguajes de alto nivel, y explica cómo programar un circuito contador de 0 a 99 usando Arduino. Se incluyen materiales, pasos y el proceso de creación del código.

Tipo: Guías, Proyectos, Investigaciones

2020/2021

Subido el 26/05/2021

mq2020
mq2020 🇨🇴

3 documentos

1 / 9

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
LENGUAJES DE PROGRAMACIÓN Y CIRCUITO
MONTAJE EN ARDUINO
Iván Alejandro Carrillo Rodríguez, Maira Tatiana Quiroga Peralta, Cristian Fabian Castro Santana
Ingeniería de Sistemas, Universidad de Cundinamarca
Resumen- Este documento da a conocer que es un lenguaje de
programación, junto con sus distintos tipos y subtipos, de
acuerdo con ello mediante cuadros comparativos se establecieron
sus principales diferencias y semejanzas. A su vez se explica de
manera detallada como se llevó a cabo la construcción del
circuito en Arduino con el propósito de que se logre percibir un
conteo de 0 a 99 de manera automática.
Abstract - This document reveals that it is a programming
language, along with its different types and subtypes, in
accordance with it, through a comparative table, its main
differences and similarities were established. In turn, it is
explained in detail how the construction of the circuit was carried
out in Arduino in order to automatically perceive a count from 0
to 99.
I. INTRODUCCIÓN
Este documento contiene información sobre los lenguajes
de programación dando conocer que es, sus primordiales
características, tipos y subtipos estableciendo sus principales
diferencias y semejanzas mediante cuadros comparativos. A
su ves da a conocer los materiales y pasos llevados a cabo para
la construcción del contador de 0 a 99 haciendo uso del
Arduino Uno en el simulador web Tinkercad.
II. LENGUAJES DE PORGRAMACIÓN
Un lenguaje de programación es la forma en la cual se
puede lograr una comunicación con una máquina para
indicarle los diferentes procesos que se desean realizar en base
a comandos, los cuales están preestablecidos según el lenguaje
, como la comunicación en una máquina, se da en base al
sistema binario estas instrucciones se deben transformar a
binario, por lo cual se requiere un proceso de compilación,
para resumir es un conjunto de instrucciones a través de los
cuales, los humanos interactúan con las computadoras [1].
Permite al programador establecer una comunicación con las
computadoras a través de algoritmos e instrucciones escritas
en una sintaxis que la computadora entiende e interpreta en
lenguaje de máquina, generando a las computadoras la
capacidad de procesar de forma rápida y eficientemente
grandes y complejas cantidades de información [1].
Fig. 1 Lenguajes de programación más usados en el 2021 [2]
III. TIPOS Y SUBTIPOS DE LENGUAJES EN
PROGRAMACIÓN
Los lenguajes de programación son la base para construir
todas las aplicaciones digitales que se utilizan en la actualidad
estos se clasifican según su nivel (alto y bajo) y su generación
(primera, segunda, tercera, cuarta y quinta).
A. Lenguajes de bajo nivel
Son aquellos que su estructura va directamente relacionada
al comportamiento de una máquina, “consolidan vínculos
inseparables entre el hardware y el software, Además, ejerce un
control directo sobre el equipo y su estructura física, los
lenguajes de bajo nivel se dividen en dos grupos” [3].
1. Lenguaje Maquina
Es el más primitivo de todos los lenguajes, sus instrucciones
se dan en colecciones de dígitos binarios (bits), “está
completamente adaptado a los circuitos de la máquina y muy
alejado de la forma de expresión y análisis de los problemas
propios de los humanos. La programación es complicada, de
manera que se requiere un profundo conocimiento de la
arquitectura física del ordenador” [4].
Fig. 2 Lenguaje Maquina [5]
2. Lenguaje Ensamblador
Es el primer intento de un lenguaje que sustituyera el código
maquina “Un programa escrito en este lenguaje es almacenado
como texto consiste en una serie de instrucciones que
corresponden al flujo de órdenes ejecutables por un
microprocesador”. Sin embargo, dichas máquinas no
comprenden el lenguaje ensamblador, por lo que se debe
convertir a lenguaje máquina mediante un programa llamado
Ensamblador [3]. Dado que el lenguaje ensamblador está
fuertemente condicionado por la arquitectura del ordenador que
soporta, los programadores no suelen escribir programas de
tamaño considerable en ensamblador, sino que utilizan este
lenguaje para afinar partes importantes de programas escritos en
lenguajes de mayor alto nivel. El lenguaje ensamblador sigue
siendo importante, ya que brinda al programador el control total
pf3
pf4
pf5
pf8
pf9

Vista previa parcial del texto

¡Descarga Lenguajes de Programación y Montaje en Arduino y más Guías, Proyectos, Investigaciones en PDF de Electrotecnia solo en Docsity!

LENGUAJES DE PROGRAMACIÓN Y CIRCUITO

MONTAJE EN ARDUINO

Iván Alejandro Carrillo Rodríguez, Maira Tatiana Quiroga Peralta, Cristian Fabian Castro Santana

Ingeniería de Sistemas, Universidad de Cundinamarca [email protected] [email protected] [email protected] Resumen - Este documento da a conocer que es un lenguaje de programación, junto con sus distintos tipos y subtipos, de acuerdo con ello mediante cuadros comparativos se establecieron sus principales diferencias y semejanzas. A su vez se explica de manera detallada como se llevó a cabo la construcción del circuito en Arduino con el propósito de que se logre percibir un conteo de 0 a 99 de manera automática. Abstract - This document reveals that it is a programming language, along with its different types and subtypes, in accordance with it, through a comparative table, its main differences and similarities were established. In turn, it is explained in detail how the construction of the circuit was carried out in Arduino in order to automatically perceive a count from 0 to 99. I. INTRODUCCIÓN Este documento contiene información sobre los lenguajes de programación dando conocer que es, sus primordiales características, tipos y subtipos estableciendo sus principales diferencias y semejanzas mediante cuadros comparativos. A su ves da a conocer los materiales y pasos llevados a cabo para la construcción del contador de 0 a 99 haciendo uso del Arduino Uno en el simulador web Tinkercad. II. LENGUAJES DE PORGRAMACIÓN Un lenguaje de programación es la forma en la cual se puede lograr una comunicación con una máquina para indicarle los diferentes procesos que se desean realizar en base a comandos, los cuales están preestablecidos según el lenguaje , como la comunicación en una máquina, se da en base al sistema binario estas instrucciones se deben transformar a binario, por lo cual se requiere un proceso de compilación, para resumir es un conjunto de instrucciones a través de los cuales, los humanos interactúan con las computadoras [1]. Permite al programador establecer una comunicación con las computadoras a través de algoritmos e instrucciones escritas en una sintaxis que la computadora entiende e interpreta en lenguaje de máquina, generando a las computadoras la capacidad de procesar de forma rápida y eficientemente grandes y complejas cantidades de información [1]. Fig. 1 Lenguajes de programación más usados en el 2021 [2]

III. TIPOS Y SUBTIPOS DE LENGUAJES EN

PROGRAMACIÓN

Los lenguajes de programación son la base para construir todas las aplicaciones digitales que se utilizan en la actualidad estos se clasifican según su nivel (alto y bajo) y su generación (primera, segunda, tercera, cuarta y quinta). A. Lenguajes de bajo nivel Son aquellos que su estructura va directamente relacionada al comportamiento de una máquina, “consolidan vínculos inseparables entre el hardware y el software, Además, ejerce un control directo sobre el equipo y su estructura física, los lenguajes de bajo nivel se dividen en dos grupos” [3].

1. Lenguaje Maquina Es el más primitivo de todos los lenguajes, sus instrucciones se dan en colecciones de dígitos binarios (bits), “está completamente adaptado a los circuitos de la máquina y muy alejado de la forma de expresión y análisis de los problemas propios de los humanos. La programación es complicada, de manera que se requiere un profundo conocimiento de la arquitectura física del ordenador” [4]. _Fig. 2 Lenguaje Maquina [5]

  1. Lenguaje Ensamblador_ Es el primer intento de un lenguaje que sustituyera el código maquina “Un programa escrito en este lenguaje es almacenado como texto consiste en una serie de instrucciones que corresponden al flujo de órdenes ejecutables por un microprocesador”. Sin embargo, dichas máquinas no comprenden el lenguaje ensamblador, por lo que se debe convertir a lenguaje máquina mediante un programa llamado Ensamblador [3]. Dado que el lenguaje ensamblador está fuertemente condicionado por la arquitectura del ordenador que soporta, los programadores no suelen escribir programas de tamaño considerable en ensamblador, sino que utilizan este lenguaje para afinar partes importantes de programas escritos en lenguajes de mayor alto nivel. El lenguaje ensamblador sigue siendo importante, ya que brinda al programador el control total

de la máquina y como resultado genera un código compacto, rápido y eficiente [4]. Fig. 3 Lenguaje Ensamblador [6] B. Lenguajes de alto nivel Un lenguaje de programación de alto nivel tiene como objetivo facilitar el trabajo del programador, ya que utiliza instrucciones más fáciles de entender, además el lenguaje de alto nivel permite escribir códigos haciendo uso de un idioma conocido como lo es el inglés y luego, pasar a ser ejecutados utilizando traductores o compiladores [3]. Los lenguajes de alto nivel se dividen en la forma en la que se realizan sus ejecuciones.

1. Lenguaje Compilado En este tipo de lenguaje el código escrito se compila para crear un paquete de código maquina el cual puede ser ejecutado por la computadora [7]. Ejemplos de este lenguaje son: C#: Es un lenguaje de programación utilizado para la creación de aplicaciones robustas, su pronunciación es C Sharp y pertenece a la empresa Microsoft [8]. C++: Es un lenguaje de programación que proviene de la extensión del lenguaje C para que pudiese manipular objetos, Por lo tanto, C++ contiene los paradigmas de la programación estructurada y orientada a objetos, por lo que se le conoce como un lenguaje de programación multiparadigma [9]. Go: El Lenguaje Go, al igual que C y C++, es un lenguaje compilado y concurrente, desarrollado por Google el cual busca ser el sustituto natural de C [10]. _Fig. 4 Lenguaje Compilado [7]

  1. Lenguaje interpretado_ Este tipo de lenguaje ¡ya no cuenta con un compilador!, el código va directo a la máquina quien ahora tiene un intérprete, que traduce el código y lo convierte a leguaje máquina. Su diferencia principal con el compilado es que el intérprete lo realiza al momento de la ejecución y al ser en tiempo real puede alentar el proceso [7]. Unos ejemplos de este lenguaje son: JavaScript: Es un lenguaje de programación o de secuencias de comandos que permite implementar funciones complejas en páginas web, se considera un lenguaje para la estructuración de páginas web [11]. PHP: Es el lenguaje de programación para el desarrollo del Backend más popular, Con este se puede desarrollar sitios y aplicaciones de todo tipo [12]. Python: Es un lenguaje de programación interpretado, multiparadigma y multiplataforma usado, principalmente, en Big Data, AI (Inteligencia Artificial), Data Science, frameworks de pruebas y desarrollo web. Esto lo convierte en un lenguaje de propósito general de gran nivel debido a su extensa biblioteca, cuya colección ofrece una amplia gama de instalaciones [13]. Ruby: Es un lenguaje de programación dinámico y de código abierto enfocado en la simplicidad y productividad. Su elegante sintaxis se siente natural al leerla y fácil al escribirla [14].

IV. COMPARACIÓN ENTRE LOS DISTINTOS TIPOS

Y SUBTIPOS DE LENGUAJES DE

PROGRAMACIÓN

Los lenguajes de programación se clasifican en distintos tipos y subtipos los cuales cuentan con múltiples características propias, de acuerdo con ello se decidió plasmar en unas tablas sus principales diferencias y semejanzas teniendo en cuenta su clasificación. TABLA 1 COMPARATIVO ENTRE LOS TIPOS DE LENGUAJES DE PROGRAMACIÓN TIPOS DE LENGUAJES DE PROGRAMACIÓ N DIFERENCIAS SIMILITUDES BAJO NIVEL Consolida vínculos inseparables entre el hardware y el software Vincula directamente el software y el hardware. Ejerce control directo sobre la estructura física de la máquina. Cuenta con una sintaxis alejada del lenguaje humano. Cuenta con códigos fuentes robustos con baja capacidad de solución de fallos. Cuentan con librerías robustas mejorando a experiencia y la capacidad de desarrollo. Permiten una programación lineal la cual es la base de todos los demás paradigmas de programación Cuentan con traductores, los cuales permiten la ejecución transformando el código fuente en código maquina Se utilizan editores de texto o entornos de desarrollo integrado para realizar el proceso de programación ALTO NIVEL Desvincula el software con el hardware. Se utiliza un idioma humano para el desarrollo de la sintaxis. Cuenta con distintos paradigmas de programación. Mejor estructuración de los códigos fuentes, proporcionando soporte en la solución de fallos. La Tabla 1. Da a conocer cuáles son las principales diferencias y similitudes entre los tipos de lenguajes en programación de acuerdo con su estructura, sintaxis y características propias. TABLA 2 COMPARATIVO ENTRE LOS SUBTIPOS DE LENGUAJES DE PROGRAMACIÓN DE BAJO NIVEL SUBTIPOS DE LENGUAJES DE PROGRAMACIÓ N DE BAJO NIVEL DIFERENCIAS SIMILITUDES ENSAMBLADOR Mejora la sintaxis de programación. Cuenta con un programa llamado ensamblador el cual traduce el código fuente en código máquina. Ejerce un control estricto sobre la máquina. Lenguajes de programación de gran complejidad No cuentan con los distintos paradigmas de programación. MAQUINA Desarrollo de software más complejo. Alejado de la forma de expresión y análisis de los humanos. Requiere un profundo conocimiento de la estructura física de un ordenador. La Tabla 2. Da a conocer cuáles son las principales diferencias y similitudes entre los subtipos correspondientes a los lenguajes en programación de bajo nivel, de acuerdo con su estructura, sintaxis y características propias. TABLA 3 COMPARATIVO ENTRE LOS SUBTIPOS DE LENGUAJES DE PROGRAMACIÓN DE ALTO NIVEL SUBTIPOS DE LENGUAJES DE PROGRAMACIÓ N DE ALTO NIVEL DIFERENCIAS SIMILITUDES INTERMEDIO Cuenta con un código llamado Bytecode el cual se obtiene luego de compilar y su función principal es hacer el código fuente multiplataforma puesto que después de esto el Bytecode se puede ejecutar utilizando el intérprete de Bytecode (Java Virtual Machine). Esto puede hacer el proceso de ejecución más lento Permiten distintos paradigmas de programación. Su sintaxis similar a el lenguaje humano. Contienen robustas librerías para una mejor experiencia de programación. Tienen la capacidad de utilizarse conjuntamente en un solo proyecto. Tiene estructuras heredadas de los lenguajes de bajo nivel. Son utilizados actualmente por una amplia comunidad de programadores. COMPILADO El código fuente se compila antes de realizar la ejecución esto permite que el tiempo de ejecución sea más corto, la función principal del compilador es transformar el código fuente en código máquina. INTERPRETADO El código fuente se va interpretando en el momento de la ejecución, lo cual puede hacer que el tiempo de ejecución sea más lento que el compilado, pero más rápido que el intermedio. La Tabla 3. Da a conocer cuáles son las principales diferencias y similitudes entre los subtipos correspondientes a los lenguajes en programación de alto nivel, de acuerdo con su estructura, sintaxis y características propias. V. ARDUINO

Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo (software), diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares. El hardware de Arduino consiste en una placa con un microcontrolador generalmente Atmel AVR con puertos de comunicación y puertos de entrada / salida [23]. Cuenta con un circuito integrado mediante el cual se pueden grabar instrucciones. A su vez, estas instrucciones se escriben usando un lenguaje de programación que permite al usuario establecer programas que interactúan con circuitos electrónicos. A. Funcionamiento Interfaz de entrada: Esta puede estar directamente unida a los periféricos, o conectarse a ellos a través de puertos. Flujo de la información al microcontrolador: El microcontrolador es la pieza que se encarga de procesar esos datos. Además, varía dependiendo de las necesidades del proyecto en el que se desee usar la placa, y existe una gran variedad de fabricantes y versiones disponibles. Interfaz de salida: Este se encarga de llevar la información procesada a los periféricos autorizados de hacer el uso final de esos datos. En algunos casos puede tratarse de otra placa en la que se centraliza y procesa la información de forma totalmente renovada, o sencillamente, puede ser una pantalla o un altavoz encargado de mostrar la versión final de los datos [23]. B. Lenguaje de Programación La plataforma Arduino se programa con un lenguaje propio basado en el lenguaje de programación de alto nivel Processing, lo que significa que es similar a C++. Se trata de un lenguaje de programación asociado a un sistema operativo llamado UNIX. Este lenguaje es de medio nivel, trata con objetos básicos como caracteres, números, bits y direcciones de memoria, entre otros. Gracias a ello se suele utilizar para la programación de sistemas como la construcción de intérpretes, compiladores, y editores de texto [23]. VI. CIRCUITO MONTAJE EN ARDUINO Se debe realizar un circuito contador de 0 a 99 haciendo uso de la tarjeta de control Arduino, a continuación, se dará a conocer cuáles son los materiales utilizados, pasos llevados a cabo y el proceso de construcción del código. A. Materiales Para llevar a cabo la construcción adecuada del circuito contador se hizo uso de los siguientes materiales: Arduino Uno: Es una placa de microcontrolador de código abierto basado en el microchip ATmega328P y desarrollado por Arduino.cc. La placa está equipada con conjuntos de pines de E/ S digitales y analógicas que pueden conectarse a varias placas de expansión y otros circuitos [23]. Resistencias de 330Ω: Se hace uso de 14 resistencias de 330Ω, son uno de los tipos básicos de componentes electrónicos, tienen dos terminales y un semiconductor, está formada por carbón y otros elementos resistivos [25]. Fig. 9 Resistencia 330Ω [25] Led 7 segmentos: El led 7 segmentos es un dispositivo electrónico que se utiliza para representar visualmente números y algunos caracteres en configuración ánodo común este interconecta todos los ánodos de los leds [26]. Fig. 10 Esquemático interno del Led 7 segmentos [26] Protoboard: Es una especie de tableros con orificios la cual permite la inserción de integrados y cables para realizar pruebas o practicas electrónicas con lo cual se busca asegurar el buen funcionamiento del circuito antes de diseñar una PCB (Printed Circuit Board o placa de circuito impreso) y montarlo en la misma [27]. Fig. 11 Distribución de la Protoboard [27] Fig.Fig. 7 Arduino [24] 8 Arduino

output(salida), los cuales están indicados con variables a

las cuales anteriormente se le fueron asignados los

números de los pines (Fig. 16).

Fig. 16 Asignación de los pines (código)

Después, se configuraron los pines con variables

anteriormente definidas que hacen referencia los pines

configurados para transmitir una señal digital baja el cual

hace referencia a un 0 (Fig. 17).

Fig. 17 Configuración de los pines (código) De acuerdo a lo anterior se prosiguió a emplear una sentencia Switch la cual ejercerá control sobre los pines relacionados con el primer led 7 segmentos estableciendo como condicional la variable entera Cont definida anteriormente con un valor de 0, luego se crean los casos de la sentencia ubicando en el caso 0 un condicional if definiendo como condición la variable Controlador estableciendo que si la condición es mayor que 0 entonces a la variable Cont aumentara en una unidad cada vez que el condicional sea verdadero esto para ejercer un control de las instrucciones para el segundo led 7 segmentos. Adicionalmente se establece un cambio en el pin 7 el cual hace referencia a la letra g, estableciendo su salida en alto una salida digital cercana a los 5 voltios o 1 y se incrementa en una unidad la variable Cont la cual hace referencia a el primer led 7 segmentos, luego se establece el caso 1 en el cual se analiza que pines del led 7 segmentos se deben apagar para formar el número uno en la unidades estableciendo los pines 1,4,5,6,7 en una salida digital HIGH , cercana a los 56 voltios o 1 , finalizando al aumentarle en una unidad a la variable Cont y por último se establece el caso 2 con las misma lógica estableciendo la salida de los pines 3 y 6 en una señal digital HIGH, con el fin de así visualizar el número dos. Para los casos 3 ,4 ,5 ,6 ,7 y 8 se aplica la misma lógica, la cual es analizar los pines de los cuales deben ser emitidas las señales altas para formar los distintos números (Fig. 18). Fig. 18 Sentencia Switch (código) Para el default representa el caso 9 en el cual se analizan los pines que emitirán una señal HIGH para así poder visualizar el número 9 en el led 7 segmentos y antes de finalizar el default se reinicia la variable Cont a cero (Fig.19).

Fig. 19 Cierre del primer Switch (código)

Se define una sentencia switch ejercerá control sobre

los pines relacionados con el segundo led 7 segmentos

estableciendo como condicional la variable entera Cont

definida anteriormente con un valor de 0 y la cual ira

aumentado en el caso 0 de la primera sentencia switch.

Con el fin de ir aumentando las decenas según sea

correspondiente, todo esto empleando el análisis de los

pines que se realizó anteriormente para representar las

unidades se emplean en todos los casos del switch

estableciendo una correspondencia (Fig. 20).

Fig. 20 Segundo Switch (código) VII. CONCLUSIONES A. Los lenguajes de programación están presentes en el día a día, hacen parte de la cotidianidad por lo tanto es importante reconocerlos e intentar aprenderlos puesto que estor permiten establecer una comunicación con las computadoras a través de algoritmos e instrucciones escritas en una sintaxis que la computadora entiende e interpreta en lenguaje de máquina. B. La creación de los lenguajes de programación ha generado que se hayan evolucionado diferentes tipos de tecnologías, por lo tanto, el aprendizaje de estos lenguajes genera que se esté preparado para los próximos desarrollos de las nuevas eras de la humanidad. C. El software libre permite la experimentación, sin necesidad de adquirir una licencia por lo tanto es de gran importancia el reconocimiento de estas herramientas debido a su bajo costo y gran accesibilidad, un ejemplo de ello es Arduino, basado en una placa con un microcontrolador y un entorno de desarrollo (software), diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares. VIII. ANEXOS Anexo 1: Enlace del circuito Arduino en Tinkercad: https://www.tinkercad.com/things/ig7nkqQMusJ-contador- 0-a-9/editel?sharecode=BM68Mr47wt1XLVu9- 5Hk1bRz96Y5hufgQ_B8NYT8- Anexo 2: Enlace del Archivo ino generado por Tinkercad: https://drive.google.com/file/d/ 1rDhyuEYGQKqXp8oLaoaTB2RYpIGtNccR/view? usp=sharing Anexo 3: Enlace del Datasheet del Led 7 Segmentos: