Página oficial : arduino.cc
Arduino es una plataforma electrónica de código abierto basada en hardware y software fáciles de usar. Está pensada para cualquiera que haga proyectos interactivos.
| Característica | Valor |
|---|---|
| Microcontrolador | ATMEGA 2560 |
| Alimentación | Jack 7-12V o USB |
| Corriente máxima por pin digital I/O | 40 mA |
| Corriente máxima por pin de alimentación de 3.3V | 50 mA |
| Número de pines digitales I/O | 54 pines |
| Entradas analógicas | 16 pines |
| Salidas PWM (pseudo analógicas)$^1$ | 15 pines |
| Frecuencia del reloj interno | 16 MHz |
| Memoria Flash | 256 kB |
| Memoria SRAM | 8 kB |
| Memoria EEPROM | 4 kB |
| Comunicaciones | USB-Serial + I2C + SPI |
$^1$Incluidas en los pines digitales
Arduino es un "sabor" de C++ donde sus principales diferencias son el almacenamiento en memoria.
| Diferencias | Memoria | Instrucciones |
|---|---|---|
| Computador | 2GB | 32-bit / 64-bit |
| Arduino UNO | 2kB | 8-bit |
| Nombre | Tamaño | Rango sin signo unsigned |
Rango con signo | Ejemplo |
|---|---|---|---|---|
boolean |
1 bit | false / true | ~no aplica~ | boolean state = false ; |
char |
8 bits | 0 ... 255 | -128 ... 127 | char myChar = 65;$^1$ |
byte |
8 bits | 0 ... 255 | ~no aplica~ | byte myByte = B00000111;$^2$ |
int$^3$ |
16 bits | 0 ... 65 535 | -32 768 ... 32 767 | int counter = 0; |
long |
32 bits | 0 ... 4 294 967 295 | -2 147 483 848 ... 2 147 483 847 | long number = 20000; |
float$^4$ |
32 bits | ~no aplica~ | -3.4028235e+38 ... 3.4028235e+38 | float temperature = 37.5; |
B indica notacion binaria.word = unsigned int y short = int.float aquí.| Símbolo | Descripción |
|---|---|
= |
Asignación |
+ |
Adición |
- |
Sustracción |
* |
Multiplicación |
/ |
División |
% |
Módulo |
| Símbolo | Descripción |
|---|---|
== |
Igual a ($x$ es igual a $y$?) |
!= |
Diferente de ($x$ es diferente de $y$?) |
< |
Menor que |
> |
Mayor que |
<= |
Menor o igual que |
>= |
Mayor o igual que |
| Símbolo | Descripción |
|---|---|
&& |
Operador Y |
|| |
Operador O |
! |
Negación |
| Símbolo | Descripción | Ejemplo | Equivalente |
|---|---|---|---|
++ |
Incremento | y = x++; |
y = x+1; |
-- |
Decremento | y = x--; |
y = x-1; |
+= |
Asignación con suma | y += x; |
y = y+x; |
-= |
Asignación con resta | y -= x; |
y = y-x; |
*= |
Asignación con multiplicación | y *= x; |
y = y*x; |
/= |
Asignación con división | y /= x; |
y = y/x; |
/* 1: Declaración de libreria */ #include <SFEMP3Shield.h>
/* 2: Definición de etiquetas */ #define LEDPIN 3
/* 3: Declaración de constantes */ const unsigned int contMax = 10;
/* 4: Declaración de variables */ float temperature = 0;
/* 5: Declaración de subrutinas */ void readSensor(){
int y = analogRead(1);
temperature = 100.0*y/1023.0;
}
/* 6: Declaración de funciones */ int sum(int x, int y){
return x + y;
}
/* 7: Subrutina de configuración */ void setup(){...}
/* 8: Subrutina de ejecución inf. */ void loop(){...}
| Botones | Atajo | Descripción |
|---|---|---|
![]() |
Ctrl+R |
Verificar (compilar) el código |
![]() |
Ctrl+U |
Subir el código al microcontrolador |
![]() |
Ctrl+N |
Nuevo |
![]() |
Ctrl+O |
Abrir |
![]() |
Ctrl+S |
Guardar |
![]() |
Ctrl+Shift+M |
Monitor Serial |
// Definimos etiquetas
#define L1 2 // Etiquetamos el LED conectado al pin 2 como "L1"
// Declaramos constantes
const unsigned long TBlink = 2000; // Constante para el tiempo de parpadeo de 500ms
void setup() {
// Configuramos los pines
pinMode(L1, OUTPUT); // Definimos L1 como una salida
// Limpieza de la salida por seguridad
digitalWrite(L1, LOW); // Apagamos L1
}
void loop() {
digitalWrite(L1, HIGH); // Prendemos L1
delay(TBlink); // Esperamos TBlink ms
digitalWrite(L1, LOW); // Apagamos L1
delay(TBlink); // Esperamos TBlink ms
}
if (condition) { //Do something here
}
else if (othercondition){ //Do something else if the first condition wasn’t met but the othercondition was met
}
else { //Do something here in other case
}
Controlemos el L1 con la entrada externa
// Definimos etiquetas
#define SW 8 // Etiquetamos el Suiche conectado en el pin 8
#define L1 2 // Etiquetamos el LED conectado al pin 2 como "L1"
void setup() {
// Configuramos los pines
pinMode(SW, INPUT); // Definimos SW como una entrada
pinMode(L1, OUTPUT); // Definimos L1 como una salida
// Limpieza de la salida por seguridad
digitalWrite(L1, LOW); // Apagamos L1
}
void loop() {
if(digitalRead(SW) == HIGH){// Comparamos si el SW esta en HIGH
digitalWrite(L1, HIGH); // Prendemos L1
}else{ // De lo contrario
digitalWrite(L1, LOW); // Apagamos L1
}
}
if y else if para la misma variable con diferentes valores.break.switch ( var ){
case 0:
//Do something here if var is equal to zero
break;
case 1:
//Do something here if var is equal to one
break;
case 2:
//Do something here if var is equal to two
break;
}
💾 Código arduino para la declaración switch
// Definimos etiquetas
#define L1 2 // Etiquetamos el LED conectado al pin 2 como "L1"
// Declaramos variables
byte brillo = 0;
char paso = 5; // Paso para el aumento y disminución del brillo
void setup() {
// Configuramos los pines
pinMode(L1, OUTPUT); // Definimos L1 como una salida
}
void loop() {
analogWrite(L1, brillo); // Definimos el brillo a L1
brillo = brillo + paso; // Aumentamos o disminuimos el brillo
switch(brillo){ // Dependiendo del valor de brillo
case 0: // Si es 0
paso = 5; // Vamos a aumentar el brillo
break;
case 255: // Si es 255
paso = -5; // Vamos a disminuir el brillo
break;
}
delay(50); // Esperamos 50 ms
}