DEV Community

Iztronics
Iztronics

Posted on

CÓDIGOS BÁSICOS EN ARDUINO

  1. Estructura del programa (setup + loop)
  2. Variables y tipos de datos
  3. Entradas y salidas digitales
  4. Entradas analógicas
  5. Control de flujo (if, for, while)

El siguiente tutorial es una introduccion basica de los codigos de arduino ,para mayor informacion

ESTRUCTURA DEL PROGRAMA

_

// ============ CONFIGURACIÓN INICIAL ============
void setup() {
// Se ejecuta UNA SOLA VEZ al encender o resetear
// Aquí se configuran pines, puerto serie, etc.
}
// ============ BUCLE PRINCIPAL ============
void loop() {
// Se ejecuta REPETIDAMENTE (en bucle infinito)
// Aquí va la lógica principal del programa
}
_

Ejemplo:

void setup() {
// Configurar el LED integrado como salida
pinMode(LED_BUILTIN, OUTPUT);
}

_void loop() {
// Encender LED
digitalWrite(LED_BUILTIN, HIGH);
delay(1000); // Esperar 1 segundo

// Apagar LED
digitalWrite(LED_BUILTIN, LOW);
delay(1000); // Esperar 1 segundo
}_

2. Variables y tipos de datos

Tipo Rango Ejemplo Uso típico
int -32,768 a 32,767 int edad = 25; Números enteros
float ±3.4×10³⁸ float temp = 23.5; Números decimales
bool true / false bool ledOn = true; Estados (encendido/apagado)
char -128 a 127 char letra = 'A'; Un solo carácter
String Hasta memoria String texto = "Hola"; Cadenas de texto
byte 0 a 255 byte valor = 255; Valores de 8 bits
long -2³¹ a 2³¹-1 long tiempo = 1000000; Números grandes

Ejemplos:

int sensorPin = A0; // Pin analógico
float voltaje = 0.0; // Voltaje medido
bool ledEstado = false; // Estado del LED
String mensaje = "Hola Mundo"; // Texto
byte valorPWM = 128; // Valor para PWM (0-255)

3. Entradas y salidas digitales

Configurar un pin:

pinMode(pin, modo);
// modo puede ser: INPUT, OUTPUT, INPUT_PULLUP

Escribir en un pin (salida):
digitalWrite(pin, estado);
// estado puede ser: HIGH (5V/3.3V) o LOW (0V)

Leer de un pin (entrada):
int estado = digitalRead(pin);
// Devuelve HIGH o LOW

EJEMPLO PRÁCTICO (LED + Botón):

El codigo siguiente lee la entrada botonpin 2 y verifica si esta pulsado, en caso que este , se activa la salida en 1 logico de ledpin 13

int ledPin = 13;
int botonPin = 2;

void setup() {
pinMode(ledPin, OUTPUT);
pinMode(botonPin, INPUT_PULLUP); // Pull-up interno
}

void loop() {
if (digitalRead(botonPin) == LOW) { // Botón presionado
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}

4. Entradas analógicas

Leer un valor analógico: Lee el voltaje en el pin de entrada en formato de bits ojo no lee el voltaje en valor sino su valor binario

int valor = analogRead(pin);
// Devuelve 0 a 1023 (10 bits de resolución)
// 0 = 0V, 1023 = 5V (o 3.3V)

Convertir a voltaje: Convierte el valor numero en voltaje

float voltaje = (valor / 1023.0) * 5.0;

ESCRIBIR PWM (Salida analógica simulada):

analogWrite(pin, valor);
// valor: 0 a 255 (8 bits)
// Solo funciona en pines ~ (3, 5, 6, 9, 10, 11 en Arduino Uno)

EJEMPLO PRÁCTICO (Control de intensidad de led con Potenciometro):

_int potPin = A0;
int ledPin = 9; // Pin PWM (~)

void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600); // Iniciar comunicación serie
}

void loop() {
int valor = analogRead(potPin); // 0 a 1023
int brillo = map(valor, 0, 1023, 0, 255); // Escalar a 0-255

analogWrite(ledPin, brillo);

Serial.print("Valor: ");
Serial.print(valor);
Serial.print(" → Brillo: ");
Serial.println(brillo);

delay(100);
}_

  1. Control de flujo (if, for, while)

IF - ELSE (Decisiones):

if (condición) {
// Código si se cumple
} else if (otra_condición) {
// Código si se cumple la otra
} else {
// Código si no se cumple ninguna
}

EJEMPLO if:

int temperatura = analogRead(A0);

if (temperatura > 800) {
digitalWrite(LED, HIGH);
} else if (temperatura > 400) {
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
} else {
digitalWrite(LED, LOW);
}

FOR (Bucles contados)

for (int i = 0; i < 10; i++) {
// Código que se repite 10 veces
}

Ejemplo Bucle for:

void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
for (int i = 0; i < 5; i++) {
digitalWrite(LED_BUILTIN, HIGH);
delay(200);
digitalWrite(LED_BUILTIN, LOW);
delay(200);
}
delay(1000); // Pausa entre ciclos
}

Aplicaciones : Son usados para patrones de luces led de interiores, luces de advertencia vehiculares, Luces de ambiente

Top comments (0)