Consulta clase 10/04

Consulta clase 10/04

de Juan Sebastián Rumbo Maldonado -
Número de respuestas: 1

Buenas, estaba terminando el ejercicio que fue planteado en la clase del jueves 10/04 y quería  saber si podían explicarme la siguiente parte, porque no me queda claro cual es la idea de usar byte en ese caso.


4) Implementar una función con el siguiente encabezado: void ledsToON ( byte nivel , byte pinV 1 , byte pinV 2 , ... , byte pinR 1 , byte pinR 2 , ...) ; Dicha función debe cumplir el objetivo de ir prendiendo los leds de manera consistente a la velocidad del motor. El valor de velocidad será pasado a la función como un valor en la variable byte nivel.


Gracias.

En respuesta a Juan Sebastián Rumbo Maldonado

Re: Consulta clase 10/04

de Juan Sánchez -
Hola Juan. Los tipos de datos están creados para optimizar el uso de la memoria. El tipo de datos byte utiliza 1 byte (8 bits) de memoria mientras que el tipo de datos int (por ejemplo) utiliza 2 bytes (16 bits) de memoria. Con 8 bits yo puedo representar un máximo de 256 valores enteros (del 0 al 255 -1x2^7+1x2^6+1x2^5+1x2^4+1x2^3+1x2^2+1x2^1+1x2^0-) y con 16 bits puedo representar 65536 valores enteros (del 0 al 65535). ¿Cuando usamos uno u otro tipo de datos?. No hay una respuesta general, depende de la aplicación. En el caso del ejercicio los parámetros representan pines e intensidad de luz o brillo (el parámetro "nivel"). Fijate que los pines del Arduino UNO van desde el número 0 al 13 por lo tanto con una variable/parámetro de tipo "byte" ya soy capaz de representar todos los valores posibles que puede tomar el parámetro pinV n o pinR n y utilizo unicamente un byte de memoria, podría utilizar el tipo de dato "int" u otro pero estaría desperdiciando lugar en la memoria. Lo mismo ocurre con el parámetro "nivel". Como las salidas PWM solo permiten imponer un máximo de 256 valores enteros no tiene caso utilizar otro tipo de dato.

Sds