Diferencia entre revisiones de «Variables»

De ArduWiki
Saltar a: navegación, buscar
(Tipos de dato)
(Constantes)
 
(No se muestran 29 ediciones intermedias del mismo usuario)
Línea 6: Línea 6:
  
 
== Alcance o ámbito ==
 
== 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.
+
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 '''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.
+
* 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.  
 
* 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.
+
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]].
 
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]].
 
== Constantes ==
 
* [[Constantes enteras]]
 
* [[Constantes flotantes]]
 
  
 
== Tipos de dato ==
 
== Tipos de dato ==
Línea 32: Línea 28:
 
|[[int]]||2 byte (16 bits)||-32,768 a 32,767
 
|[[int]]||2 byte (16 bits)||-32,768 a 32,767
 
|-
 
|-
|[[unsigned int]]||2 byte (16 bits)||0 a 65,535
+
|[[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
 
|[[long]]||4 byte (32 bits)||-2,147,483,648 a 2,147,483,647
Línea 41: Línea 37:
 
|}
 
|}
  
=== Numericos ===
+
=== Numéricos ===
 +
* [[char]]
 
* [[byte]]
 
* [[byte]]
 
* [[int]]
 
* [[int]]
 +
* [[unsigned int]]
 
* [[long]]
 
* [[long]]
 +
* [[unsigned long]]
 
* [[float]]
 
* [[float]]
 
* [[double]] - solo [[MEGA]]
 
* [[double]] - solo [[MEGA]]
* [[unsigned int]]
 
 
* [[word]]
 
* [[word]]
* [[unsigned long]]
+
 
 +
=== 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 ===
 
=== Caracteres ===
* [[char]]
 
 
* [[string]] - matriz
 
* [[string]] - matriz
 
* [[String]] - clase
 
* [[String]] - clase
Línea 59: Línea 62:
 
* [[bool]]
 
* [[bool]]
 
* [[void]]
 
* [[void]]
 
== Conversiones ==
 
Cuando requieres convertir un tipo de dato en otro puedes usar estas funciones:
 
* [[char()]]
 
* [[byte()]]
 
* [[int()]]
 
* [[long()]]
 
* [[float()]]
 
* [[word()]]
 
  
 
== Utilidades ==
 
== Utilidades ==
Línea 73: Línea 67:
 
* [[PROGMEM]]
 
* [[PROGMEM]]
 
* [[F()]]
 
* [[F()]]
 +
* [[EEPROM]]
  
 
== Calificadores ==
 
== Calificadores ==
En ocaciones es necesario calificar una variable de modo que le indicas en que tipo de memoria deberá ser almacenada: [[flash]], [[RAM]] o [[EPROM]].
+
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]]
 
* [[const]]
 
* [[static]]
 
* [[static]]
 
* [[volatile]]
 
* [[volatile]]
 +
* [[extern]]
 +
* [[define|#define]]
  
 
== Matrices ==
 
== Matrices ==
Son un tipo especial de variable múltiple. Puede ser uni o bidireccional.
+
La [[matriz]] o array es un tipo especial de variable múltiple. Puede ser uni o bidimencional.
  
 
<pre>
 
<pre>
tipo nombre[] = {valor1, valor2...};
+
tipo matriz[] = {valor1, valor2...};
 +
tipo matriz[][n] = {valor11, valor12...},{valor21, valor22...}...;
 
</pre>
 
</pre>
 +
 +
{{Nota|Si la matriz en '''bidimencional''' NO puede dejar de expresar el segundo vector}}
  
 
== Palabras reservadas ==
 
== Palabras reservadas ==
 
Estas son palabra reservadas que tiene un significado especial y no pueden ser usadas como nombres de variable:
 
Estas son palabra reservadas que tiene un significado especial y no pueden ser usadas como nombres de variable:
* [[true / false]]
+
<categorytree mode=all>Palabras reservadas</categorytree>
* [[HIGH / LOW]]
+
* [[MSBFIRST / LSBFIRST]]
* [[INPUT / OUTPUT / INPUT_PULLUP]]
 
* [[LED_BUILTIN]]
 
* [[PI]]
 
  
En el IDE veras que estas palabras se pintan de color azul si están bien escritas.
+
{{Nota|En el [[IDE]] veras que estas palabras se pintan de color azul si están bien escritas.}}
  
 
== Vea también ==
 
== Vea también ==
 
* [[Estructura]]
 
* [[Estructura]]
 
* [[Funciones]]
 
* [[Funciones]]
 +
 +
== Referencias ==
 +
* [https://aprendiendoarduino.wordpress.com/2017/06/21/arrays-y-strings-2/ Arrays y string] - Enrique Crespo
  
 
[[Category:Referencias]]
 
[[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];

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.

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

Fecha y hora

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