Mostrando entradas con la etiqueta código. Mostrar todas las entradas
Mostrando entradas con la etiqueta código. Mostrar todas las entradas

sábado, 19 de septiembre de 2015

Dígitos binarios

En los circuitos digitales, a diferencia de los analógicos, se emplean dos niveles de tensión distintos para transmitir la información. Los dos dígitos del sistema binario, 1 y 0, se denominan bits.  Su equivalente humano sería como si todas las preguntas que quisiéramos hacer solo pudieran ser contestadas con un Sí o un No.

Un 1 se representa por un nivel de tensión más elevado, que se denomina nivel ALTO (HIGH en inglés), y un 0 se representa por un nivel más bajo de tensión, que se denomina BAJO (LOW en inglés). Este convenio recibe el nombre de lógica positiva.

Al sistema mucho menos común, en el que un 1 se representa por un nivel BAJO y un 0 por un nivel ALTO se le denomina lógica negativa.

Los grupos de bits, llamados códigos, se emplean para representar números, letras, símbolos, instrucciones y cualquier otra cosa que se requiera en una cierta aplicación.

Las tensiones que se utilizan para identificar qué son unos y qué son ceros, reciben el nombre de niveles lógicos. Así un nivel de tensión representará el nivel alto (H) y el otro nivel de tensión representará el nivel bajo (L).

Pero aunque sobre el papel es sencillo, en la vida real las señales eléctricas no son perfectas y las pérdidas, los ruidos electrónicos, etc, pueden hacer que estas tensiones nominales se vean ligeramente alteradas, por los que para que nuestra electrónica puede convivir con ello, será necesario que sepa discriminar con unas simples reglas qué es cada cosa. De modo que esas pequeñas variaciones de tensión no varíe el resultado.



En la próxima entrada veremos cómo son estos niveles lógicos.

Y ya sabéis, si tenéis alguna sugerencia o duda, no tenéis más que mandarnos un correo a

e intentaremos responder a vuestra pregunta lo antes que podamos.

viernes, 2 de mayo de 2014

Pasos para compilar un Sketch


En muchos sitios veréis que habitualmente se usa una palabra llamada "compilar".  El código se debe compilar antes de que nuestro Arduino pueda procesar el sketch que hemos escrito. Pero ¿qué es compilar un código? y ¿por qué necesitamos ejecutarlo antes de subir nuestro sketch a nuestro Arduino?

En esta entrada intentaremos explicar las tres fases que el IDE de nuestro microcontrolador necesita ejecutar para poder ejecutar las instrucciones que le hemos dado sin errores.

PROGRAMACIÓN (CODE)

El primer paso es escribir las instrucciones que queremos que lleven a cabo. Al igual que sucede con los seres humanos con los que podemos comunicarnos en distintos idiomas, con los microcontroladores podemos comunicarnos con distintos lenguajes. En nuestro caso nos comunicaremos con un lenguaje concreto de nuestro Arduino. Que está diseñado de una versión simplificada del lenguaje C.

VERIFICACIÓN (VERIFY)

Terminado de escribir nuestro sketch, ahora necesitamos, transformar nuestro código Arduino a un código  C/C++ puro (a este proceso se le llama "preprocesado"). Y ¿por qué no hemos escrito nuestro sketch directamente en C/C++? La razón es muy sencilla, la simplificación. El lenguaje Arduino está pensado para permitirnos escribir comandos e instrucciones de forma muy rápida y simple, para hacer lo mismo con lenguaje C, necesitaríamos haber dedicado bastante tiempo en entender este lenguaje y sus estructuras, y posiblemente muchos de nosotros habríamos abandonado antes de concluir el primer ejemplo.

Una vez terminado el preprocesado, ahora comienza el "enlazado". Y ¿esto que és?, pues básicamente consiste en insertar en nuestro código, no solo la llamada a la librería que hayamos decidido usar en nuestro sketch, sino todo el código de la misma. A fin de cuentas el programa que vamos a subir a nuestro microcontrolador debe estar completo y si por ejemplo vamos a usar una librería para usar una pantalla LCD sin complicarnos en saber cómo funciona, a nuestro Arduino, hay que darle todos estos detalles que sí vienen bien descritos en el interior de la librería que vayamos a usar. En caso contrario no sabría cómo ejecutar las ordenes que les hayamos dado.

En el caso de utilizar el IDE oficial, el código binario generado (ya sea ".hex" o ".bin") solo lo guarda de forma temporal hasta que es cargado (subido) en la memoria del microcontrolador.



SUBIR (UPLOAD)

Si en los pasos anteriores no se ha encontrado ningún error, se carga (se sube) el código binario resultante en la memoria de nuestro Arduino. Eso se realiza mediante el botón "Subir" (Upload).



Cada uno de los pasos anteriores es realizado internamente por una parte separada del IDE de nuestro microcontrolador, que nosotros no vemos. Pero si quisiéramos verlas, podríamos hacerlo de forma manual, ejecutándolas una a una. Si tenéis curiosidad de cómo se podría hacer, en una próxima entrada lo explicaremos paso a paso. Pero tanto manual (que nos llevará algo más de tiempo) como automático (gracias al uso de los botones de nuestro IDE, el resultado será exactamente el mismo.


Esperamos que ahora os quede más claro, qué es y por qué es necesario compilar un sketch.

Pero si tenéis alguna duda o sugerencia, no dudéis en contactar con nosotros intentaremos resolver vuestras dudas tan pronto como podamos.




jueves, 1 de mayo de 2014

¿Qué es una función?



Una función es un trozo de código definido por un nombre y que puede ser re-ejecutado desde diferentes puntos del programa.  Por ejemplo podríamos crear una función para apagar una luz o encender todos los LEDs que tengamos conectados.

El nombre de la función tiene que ser único dentro del programa.  Si dos códigos tuvieran el mismo nombre, el programa no sabría cuál es el que debería ejecutar en cada ocasión.

A veces puede requerir que le pasemos unos elementos especiales, llamados argumentos. Y también  a veces la función puede devolver resultados. Por ejemplo si enseñamos a una función a pasar de grados centígrados a grados Fahrenheit,  la función necesitará que le pasemos como argumentos la temperatura que queremos convertir, y el sistema al que queremos convertirlo, y el resultado será la solución de la fórmula que le hayamos pedido usar.