Cargando duoestudios.es

Hoy volvemos con una entrada superinteresante. ¿Y por qué interesante? Muy sencillo, hoy descubriremos como es el lenguaje de una máquina (te adelanto, binario). Además, nos introduciremos un poco por el mundo de Arduino… ¿Preparado?

Un mundo digital

En el mundo digital, todo las cosas se ven como si solo tuviesen dos estados a los que denominamos estado binarios. Por ejemplo, una luz puede estar encendido (1) o apagado (0).

Estos estados tienen una relación con la electricidad:

  • Encendido (HIGH) ( 1 ): hay tensión.
  • Apagado (LOW) ( 0 ): no hay tensión

Código binario (1 y 0)

Las personas empleamos las letras para transmitir mensajes. La lengua castellana dispone de 27 letras, 27 letras que empleamos para formar palabras, frases, oraciones y textos enteros.

Pero una máquina (ej: ordenador) solo sabe interpretar 1 y 0. Este lenguaje lo denominamos «lenguaje binario«. Los dos estados del código binario se pueden representar de muchas formas. Con un byte (1 byte = 8 bits) podemos representar 256 combinaciones (2^8) diferentes que podrían ser letras o números del 0 al 255.

Para pasar de letras (caracteres) a decimal empleamos el ASCII, en el cual relacionamos cada letra con un número decimal. A continuación aprenderemos como convertir un decimal en binario, un binario a decimal y algo a hexadecimal, para convertirlo en binario.

Podría interesarte Cuenta en binario del cero al quince, 45 a Binario, «Hola Mundo» en binario, disponible en Actividades Resueltas

Funciones lógicas

Las funciones lógicas prueban una condición para evaluarla como verdadera o falsa. Se conocen como valores booleanos.

Lógica Binaria

En la lógica binaria, toda pregunta se puede responder con dos respuestas. O verdadero (1, TRUE) o falso (0, FALSE).

Los circuitos de un ordenador que permiten realizar operaciones matemáticas y tomar decisiones en los programas, están formados por circuitos lógicos o puertas lógicas.

PUERTA AND

La salida proporciona un 1 lógico solo cuando las dos entradas (A y B) son 1. Cualquier otra combinación de entradas proporciona un 0 a la salida. Se podría decir que la puerta AND multiplica: A * B

Dicho de otra forma, si A y B son TRUE (Verdadero), la puerta lógica te devuelve TRUE. En cambio, si uno de las dos entradas A/B es FALSE (Falso), la puerta lógica te devuelve FALSE.

ABSalida
000
010
100
111
Tabla de verdad

PUERTA NOT

Dispone de una sola entrada y una salida. Cuando a entrada está a 0, la salida proporcionará un 1, y viceversa. La puerta NOT invierte el valor: A.

Visto de otra forma, si A es distinto de 0 (FALSE), la puerta lógica nos devolverá 1 (TRUE).

ASalida
01
10
Tabla de verdad

PUERTA OR

La salida proporciona un 1 lógico cuando una u otra entrada (A o B) son 1. Solo en el caso de que ambas sean 0 proporcionará a la salida un 0. Se podría pensar que OR suma A+B

Es decir, si A o B es TRUE (1), esta puerta lógica nos devolverá, como bien has pensado, TRUE (1).

También, si A y B es TRUE (1), esta puerta también nos devolverá TRUE (1)

En caso contrario, si A y B es FALSE (0), la puerta nos devolverá FALSE.

ABSalida
000
011
101
111
Tabla de verdad

PUERTA XOR

Se denomina OR exclusiva. La salida proporciona 1 lógico solo si sus entradas están en estados lógicos diferentes. Se podría decir que XOR resta A-B

A diferencia de la puerta OR, en el caso de XOR, si A o B es TRUE (1), nos devolverá TRUE (1).

Pero si A y B sol TRUE (1) o FALSE (0), te devolverá FALSE (0).

ABSalida
000
011
101
110
Tabla de verdad

PUERTA NAND

La puerta NAND, compuerta NAND o NOT AND es una puerta lógica que produce una salida falsa solamente si todas sus entradas son verdaderas; por tanto, su salida es complemento a la de la puerta AND.

Wikipedia.org
ABSalida
001
011
101
110

PUERTA NOR

La puerta NOR o compuerta NOR es una puerta lógica digital que implementa la disyunción lógica negada.

Wikipedia.org
ABSalida
001
010
100
110

¿Qué es Arduino? Computación física

Imagen de Tayeb MEZAHDIA en Pixabay

Arduino es una plataforma electrónica de código abierto basada en hardware y software fáciles de usar. Las placas Arduino pueden leer entradas (luz en un sensor, un dedo en un botón o un mensaje de Twitter) y convertirlo en una salida, activando un motor, encendiendo un LED, publicando algo en línea. Puede decirle a su tablero qué hacer enviando un conjunto de instrucciones al microcontrolador en el tablero. Para hacerlo, utiliza el lenguaje de programación Arduino (basado en Wiring ) y el Software Arduino (IDE), basado en Processing .

Arduino.cc || Versión traducida al Español a través de Google Translate.

De forma muy resumida, una placa Arduino es un pequeño ordenador que se puede programar. Ya sea para encender un led o para crear un pequeño coche eléctrico.

Arduino es una plataforma de computación física constituida por:

  • Hardware libre: placa sencilla con entradas y salidas que se puede montar, siguiendo los esquemas eléctricos del mismo, o directamente comprarlo ya montado
  • Software libre: un entorno de desarrollo (IDE) en el que se utiliza un lenguaje de programación llamado Processing (basado en Java).

El cerebro de la placa Arduino combina una Unidad Central de Proceso (CPU, para los amigos), con otras funcionalidades como la gestión de memoria, gestión de entradas y salidas y comunicaciones en serie.

Los buses son un conjunto de cables o pistas que comunican microcontroladores entre sí.

Cuando hablamos sobre el almacenamiento de datos, podríamos pensar en un armario, con muchas estanterías y cajones, donde cada cajón tiene una etiqueta en el exterior (para identificarla) y dentro de cada cajón almacenamos un dato. Podemos meter cosas en el cajón (escribir datos) o sacarlas (leer datos).

Veamos unos cuantos tipos de memorias:

  • ROM (Read Only Memory)
  • RAM (Random Access Memory)
  • EEPROM (Electrically Erasable Programmable Read Only Memory)

En este curso, no indagaremos más en cómo funcionan estas memorias.

Generalmente, cuando vamos a utilizar una placa Arduino, siempre empleamos también una protoboard. ¿Qué es? Una protoboard es una placa lleno de agujeros con una chapa metálica por debajo de forma que, introduciendo la patita de un componente en un agujero, se conectará a otra patita de otro componente que metamos de la misma columna.

El software de Arduino

Una placa Arduino no tiene pantalla, teclado ni ratón. El Arduino es una placa que, para poder usarlo y ejecutar algo en este, deberás utilizar un ordenador con programas específicos para poder programar en Arduino. En nuestro caso, utilizaremos el editor oficial Arduino IDE.

Estructura de un programa

Cualquier programa de Arduino se compone de dos bloques de instrucciones entre llave a los que llamamos funciones (void). Veamos el siguiente código para aprender sobre estas funciones.

int led = 13; // Definimos el pin en el que conectamos el LED
void setup() {
   pinMode(led, OUTPUT) // Indicar a placa que LED es salida de señal
}
void loop() {
   digitalWrite(led, HIGH) // Encendemos el LED
}

El programa anterior es un programa sencillo de Arduino que enciende un LED. Analicemos el programa:

void setup () {···} // Todo lo que hay dentro de esta función, se ejecutará cuando se encienda la placa.
void loop () {···} // Todo lo que hay dentro de esta función, se ejecutará de forma repetida mientras que la placa disponga de alimentación

Alucinante, ¿verdad?

Ledes

Los ledes son diodos que emiten luz cuando una corriente pasa a su través.

Pata Larga ( + ); Pata Corta ( – )

A continuación, te muestro un pequeño programa en Arduino para hacer parpadear un led:

void setup() {
    pinMode(13, OUTPUT);
}

void loop() {
    digitalWrite(13, HIGH); // Encendemos el LED
    delay(1000); // Esperamos 1 segundo
    digitalWrite(13, LOW); // Apagamos el LED
    delay(1000); // Esperamos 1 segundo
}

Sonidos

Los sonidos se producen con altavoces. Estos pueden ser de dos tipos:

  • Dinámicos: Formado por un imán y una bobina unida a una membrana. Cuando pasa la corriente por la bobina, esta es atraía por el imán y se produce un clic. Cuando cesa la corriente, vuelve a su posición de reposo produciendo otro clic.
  • Está formado por dos discos de materiales distintos: uno metálico y el otro cerámico. Cuando se aplica un voltaje a estos materiales, se deforman y producen un chasquido audible. Cuando cesa, estos vuelven a producir un sonido.

Entradas digitales

Volvamos a la teoría. En Arduino, no solo puedes encender un LED o hacer sonar la marcha imperial, si no que también puedes hacer un juego.

Variables

Las variables son como cajas que almacenan un dato. Para poder usar una variable, primero debemos declararlo. ¿Qué datos puede almacenar?

Tipo de datoPuede almacenarOcupaEjemplo
charUn carácter8 Bitschar letra = 'a';
byteNúmero pequeño entre 0 y 2558 Bitsbyte numero = 57;
intUn número16 Bitsint entero = 2;
longUn número más extenso32 Bitslong largo = 555;
floatUn número decimal32 Bitsfloat decimal = 45.5;
doubleUn número decimal64 Bitsdouble decimalb = 495.6;
StringUna frase (con espacios)Todo lo necesarioString frase = "Hola Gente!";
En Arduino, para poner decimales usamos .

Según el lugar donde declaremos la variable, esta tendrá:

  • Ámbito Global, es decir, accesible en todo el programa. Este debe ser declarado antes de void setup.
  • Ámbito local, es decir, solo accesible en la función en la que se declara.

Matrices (arrays)

Una matriz es un tipo de dato especial que consiste en una hilera de variables que comparten el mismo nombre. Se diferencia por un subíndice numérico entre corchetes. Se declara así:

int pins[] = {3,4,5,7}

Para acceder a un valor de la matriz (utilizaremos la matriz anterior), ponemos el nombre de la variable, precedido de dos corchetes (pins[]). Dentro del corchete indicaremos la posición del dato al que queremos acceder.

pins[0]3
pins[1]4
pins[2]5
pins[3]7

Condicionales

En función de esto, hacer una cosa u otra si se cumple X. Para poder hacer una condicional en Arduino, usaremos if.

Definición de Andar Por Casa
if (nombre == 5){
// Instrucciones
} else {
// Intrucciones si no se cumple la condición
}

Aquí tienes un listado de los comparadores que se pueden emplear en los if.

ComparadorSignifica
==Igual que
<>Distinto que
<Menor que
>Mayor que

Bucles

Se utiliza para repetir instrucciones un número determinado de veces.

for (byte i=0; i<10; i=i+1){···}

La sentencia for consta de tres partes dentro de los paréntesis.

  • byte i=0; declara la variable de iteración y la inicializa a cero.
  • i < 10; es la condición de control. El bucle se ejecutará mientras está sea verdadera.
  • i = i + 1; después de cada iteración incrementamos en uno la variable. También se puede poner así: i++;

También podemos utilizar la sentencia while.

while (boton == 0) {
// Intrucciones a repetir
}

Y colorín colorado, esta publicación ha finalizado.

No te vayas aún. Aquí te dejo una lista de reproducción con tutoriales de Arduino.


Alexandru Theodor Muntenas

Estudiante de la ESO en el IES Montevives. Miembro del Área de Altas Capacidades del IES Montevives y percusionista en la Banda Municipal Las Gabias. Aprender es una pasión : 9

0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *