| Per començar | Elements d'entrada | Programació CircuitPython | Recursos CITCEA | |
| Elements no electrònics | Elements de sortida | Programació Arduino | ||
| Projectes | Elements de control | Dades pràctiques | Inici | 
Podem definir molts tipus de variables. Segons el tipus, els valors que hi caben admeten rangs més grans o més petits. En general, com més gran és el rang més memòria es necessita. Els següents són els tipus de variables disponibles.
| Tipus | Correspon a | Rang | Comentaris | 
| void | No hi ha valor | Cap | Només es fa servir per a les funcions Indica que no es retorna cap resultat | 
| boolean | Cert o fals | true (cert), false (fals) | |
| char | Caràcter Enter amb signe | Qualsevol caràcter ASCII -128 a 127 | Podem fer servir les lletres (entre cometes) o el seu codi
	ASCII lletra = 'B'; lletra = 66; Atès que es guarden com a números, podem fer operacions amb ells | 
| byte | Enter sense signe | 0 a 255 | |
| unsigned char | |||
| int | Enter amb signe | -32768 a 32767 | |
| short | |||
| word | Enter sense signe | 0 a 65535 | |
| unsigned int | |||
| long | Enter amb signe | -2 147 483 648 a 2 147 483 647 | |
| unsigned long | Enter sense signe | 0 a 4 294 967 295 | |
| float | Real amb signe | -3,4028235 · 10+38 a 3,4028235 · 10+38 | Els valors poden no ser exactes En alguns casos pot passar que A i A+1 siguin iguals No convé fer-lo servir per guardar enters Atenció: En els programes haurem de separar els decimals amb un punt; no amb una coma | 
| #define | Assignació de valor | No és un tipus de variable Permet assignar un valor a un nom El nom serà substituït pel valor en el moment d'enviar-ho al microcontrolador Va bé quan un mateix valor (que pot variar) apareix en diversos llocs del programa Vegeu un exemple més avall | 
A continuació hi ha alguns exemples:
boolean estat = true; char lletra = 'm'; unsigned int a = 23;
En el següent programa tenim un LED connectat a la pota 13. Fixem-nos que fem servir una variable per guardar el valor 13.
int potaLED = 13;
void setup(){
	pinMode(potaLED, OUTPUT);
}
En aquest altre programa no fem servir cap variable i, per tant, estalviem memòria. Quan ho enviem al microcontrolador tots els potaLED seran substituïts per 13.
#define potaLED 13
void setup(){
	pinMode(potaLED, OUTPUT);
}
Fixem-nos que a la línia de #define no hi ha cap signe = ni cap punt i coma.
En alguns casos ens pot fer falta que una variable sigui d'un tipus determinat però necessitem passar-la a un altre tipus en una altra part del programa. Per això disposem d'unes funcions de canvi de tipus. En aquestes funcions podem posar una variable de qualsevol tipus com a paràmetre i el resultat de la funció serà del tipus desitjat.
Les funcions disponibles són:
| Funció | Exemple | Tipus d'entrada | Tipus de sortida | 
| char | char(a) | Qualsevol | char | 
| byte | byte(a) | Qualsevol | byte | 
| int | int(a) | Qualsevol | int | 
| word | word(a) | Qualsevol | word | 
| word(b,c) | b és el byte més significatiu (esquerra) c és el byte menys significatiu (dreta) | word = 256 * b + c | |
| long | long(a) | Qualsevol | long | 
| float | float(a) | Qualsevol | float | 
En aquest web, les fotografies marcades amb [AF] són del web d'Adafruit, les marcades amb [SF] del web d'Sparkfun i les marcades amb [AU] del web d'Arduino.

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.