Diferencia entre revisiones de «Variables»
(→Tipos de dato) |
(→Constantes) |
||
(No se muestran 52 ediciones intermedias de 2 usuarios) | |||
Línea 1: | Línea 1: | ||
− | + | Una variable es una palabra que representa un espacio de memoria que fue reservado expresamente durante su '''declaracion''' asignándole un tipo de dato. Al mismo tiempo o posteriormente se puede '''inicializar''' con un valor dicha variable. | |
− | = | + | <pre> |
+ | tipo nombre [= valor]; | ||
+ | </pre> | ||
− | + | == Alcance o ámbito == | |
− | + | Las variables en el lenguaje de programación C++, que usa Arduino, tienen una propiedad llamada '''ámbito'''. Esto está en contraste con las primeras versiones de lenguajes de programación como BASIC, donde todas las variable siempre son del tipo [[variable publica|global]]. | |
− | |||
− | |||
− | |||
− | |||
− | + | * Una variable [[variable publica|global]] es aquella que puede ser vista por cada función en un [[boceto]]. En el entorno Arduino, cualquier variable declarada fuera de una función (por ejemplo, [[setup()]], [[loop()]] o función de usuario), es una variable global. | |
+ | * Las variables '''locales''' solo son visibles para la función en la que están declaradas. | ||
− | + | Cuando un [[boceto]] comienza a hacerse más grande y complejo, las [[variable local|variables locales]] son una forma útil de asegurar que cada función tenga acceso a sus propias variables. Esto evita errores de programación cuando una función modifica inadvertidamente variables usadas por otra función. | |
− | + | ||
− | + | También es útil a veces '''declarar e inicializar''' una variable dentro de un bucle [[for]]. Esto crea una variable a la que solo se puede acceder desde dentro de las llaves del bucle [[for]]. | |
− | |||
− | |||
− | |||
== Tipos de dato == | == Tipos de dato == | ||
− | === | + | Estos son los tipos de datos que usa Arduino. |
+ | |||
+ | {|class="wikitable" | ||
+ | |+Tipos de dato en Arduino | ||
+ | !Tipo!!Ocupa!!Rango | ||
+ | |- | ||
+ | |[[char]]||1 byte (8 bits)||-128 a 127 | ||
+ | |- | ||
+ | |[[byte]]||1 byte (8 bits)||0 a 255 | ||
+ | |- | ||
+ | |[[int]]||2 byte (16 bits)||-32,768 a 32,767 | ||
+ | |- | ||
+ | |[[unsigned int]] o [[word]]||2 byte (16 bits)||0 a 65,535 | ||
+ | |- | ||
+ | |[[long]]||4 byte (32 bits)||-2,147,483,648 a 2,147,483,647 | ||
+ | |- | ||
+ | |[[unsigned long]]||4 byte (32 bits)||0 a 4,294,967,295 | ||
+ | |- | ||
+ | |[[float]]||4 byte (32 bits)||-3.4E38 a 3.4E38 | ||
+ | |} | ||
+ | |||
+ | === Numéricos === | ||
+ | * [[char]] | ||
* [[byte]] | * [[byte]] | ||
* [[int]] | * [[int]] | ||
+ | * [[unsigned int]] | ||
* [[long]] | * [[long]] | ||
+ | * [[unsigned long]] | ||
* [[float]] | * [[float]] | ||
− | * [[ | + | * [[double]] - solo [[MEGA]] |
− | * [[ | + | * [[word]] |
+ | |||
+ | === Fecha y hora === | ||
+ | * [[time_t]] - TimeLib.h | ||
+ | * [[tmElements_t]] - TimeLib.h | ||
+ | * [[DateTime]] - RTClib.h | ||
+ | |||
+ | {{Nota|Si usas la librería TimeLib.h puedes usar los tipos: '''time_t''' y '''tmElements_t'''}} | ||
− | === | + | === Caracteres === |
− | * [[ | + | * [[string]] - matriz |
− | * [[String]] | + | * [[String]] - clase |
− | |||
=== Otros === | === Otros === | ||
Línea 37: | Línea 63: | ||
* [[void]] | * [[void]] | ||
− | |||
== Utilidades == | == Utilidades == | ||
+ | * [[sizeof()]] | ||
+ | * [[PROGMEM]] | ||
+ | * [[F()]] | ||
+ | * [[EEPROM]] | ||
+ | |||
+ | == Calificadores == | ||
+ | En ocaciones es necesario calificar una variable de modo que le indicas en que tipo de memoria deberá ser almacenada: [[flash]], [[SRAM]] o [[EEPROM]]. | ||
+ | * [[const]] | ||
+ | * [[static]] | ||
+ | * [[volatile]] | ||
+ | * [[extern]] | ||
+ | * [[define|#define]] | ||
+ | |||
+ | == Matrices == | ||
+ | La [[matriz]] o array es un tipo especial de variable múltiple. Puede ser uni o bidimencional. | ||
+ | |||
+ | <pre> | ||
+ | tipo matriz[] = {valor1, valor2...}; | ||
+ | tipo matriz[][n] = {valor11, valor12...},{valor21, valor22...}...; | ||
+ | </pre> | ||
+ | |||
+ | {{Nota|Si la matriz en '''bidimencional''' NO puede dejar de expresar el segundo vector}} | ||
+ | |||
+ | == Palabras reservadas == | ||
+ | Estas son palabra reservadas que tiene un significado especial y no pueden ser usadas como nombres de variable: | ||
+ | <categorytree mode=all>Palabras reservadas</categorytree> | ||
+ | * [[MSBFIRST / LSBFIRST]] | ||
+ | |||
+ | {{Nota|En el [[IDE]] veras que estas palabras se pintan de color azul si están bien escritas.}} | ||
+ | |||
+ | == Vea también == | ||
+ | * [[Estructura]] | ||
+ | * [[Funciones]] | ||
+ | |||
+ | == Referencias == | ||
+ | * [https://aprendiendoarduino.wordpress.com/2017/06/21/arrays-y-strings-2/ Arrays y string] - Enrique Crespo | ||
− | [[Category: | + | [[Category:Referencias]] |
Revisión actual del 01:34 4 feb 2020
Una variable es una palabra que representa un espacio de memoria que fue reservado expresamente durante su declaracion asignándole un tipo de dato. Al mismo tiempo o posteriormente se puede inicializar con un valor dicha variable.
tipo nombre [= valor];
Contenido
Alcance o ámbito
Las variables en el lenguaje de programación C++, que usa Arduino, tienen una propiedad llamada ámbito. Esto está en contraste con las primeras versiones de lenguajes de programación como BASIC, donde todas las variable siempre son del tipo global.
- Una variable global es aquella que puede ser vista por cada función en un boceto. En el entorno Arduino, cualquier variable declarada fuera de una función (por ejemplo, setup(), loop() o función de usuario), es una variable global.
- Las variables locales solo son visibles para la función en la que están declaradas.
Cuando un boceto comienza a hacerse más grande y complejo, las variables locales son una forma útil de asegurar que cada función tenga acceso a sus propias variables. Esto evita errores de programación cuando una función modifica inadvertidamente variables usadas por otra función.
También es útil a veces declarar e inicializar una variable dentro de un bucle for. Esto crea una variable a la que solo se puede acceder desde dentro de las llaves del bucle for.
Tipos de dato
Estos son los tipos de datos que usa Arduino.
Tipo | Ocupa | Rango |
---|---|---|
char | 1 byte (8 bits) | -128 a 127 |
byte | 1 byte (8 bits) | 0 a 255 |
int | 2 byte (16 bits) | -32,768 a 32,767 |
unsigned int o word | 2 byte (16 bits) | 0 a 65,535 |
long | 4 byte (32 bits) | -2,147,483,648 a 2,147,483,647 |
unsigned long | 4 byte (32 bits) | 0 a 4,294,967,295 |
float | 4 byte (32 bits) | -3.4E38 a 3.4E38 |
Numéricos
- char
- byte
- int
- unsigned int
- long
- unsigned long
- float
- double - solo MEGA
- word
Fecha y hora
- time_t - TimeLib.h
- tmElements_t - TimeLib.h
- DateTime - RTClib.h
Nota: Si usas la librería TimeLib.h puedes usar los tipos: time_t y tmElements_t
Caracteres
Otros
Utilidades
Calificadores
En ocaciones es necesario calificar una variable de modo que le indicas en que tipo de memoria deberá ser almacenada: flash, SRAM o EEPROM.
Matrices
La matriz o array es un tipo especial de variable múltiple. Puede ser uni o bidimencional.
tipo matriz[] = {valor1, valor2...}; tipo matriz[][n] = {valor11, valor12...},{valor21, valor22...}...;
Nota: Si la matriz en bidimencional NO puede dejar de expresar el segundo vector
Palabras reservadas
Estas son palabra reservadas que tiene un significado especial y no pueden ser usadas como nombres de variable:
Nota: En el IDE veras que estas palabras se pintan de color azul si están bien escritas.
Vea también
Referencias
- Arrays y string - Enrique Crespo