[go: up one dir, main page]

0% encontró este documento útil (0 votos)
24 vistas10 páginas

Arduino Problemas Basicos

El documento presenta diez problemas de programación relacionados con el control de dispositivos electrónicos utilizando Arduino. Cada problema incluye un código específico que muestra cómo encender LEDs, controlar un semáforo, leer botones y sensores, y manejar un buzzer y un servo. Los ejemplos abarcan desde tareas simples como encender un LED hasta la implementación de un detector de movimiento con un sensor PIR.

Cargado por

Gil Urieta
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
24 vistas10 páginas

Arduino Problemas Basicos

El documento presenta diez problemas de programación relacionados con el control de dispositivos electrónicos utilizando Arduino. Cada problema incluye un código específico que muestra cómo encender LEDs, controlar un semáforo, leer botones y sensores, y manejar un buzzer y un servo. Los ejemplos abarcan desde tareas simples como encender un LED hasta la implementación de un detector de movimiento con un sensor PIR.

Cargado por

Gil Urieta
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 10

Problema 1: Encender y apagar un LED

Este programa hace parpadear un LED conectado al pin 13. Se enciende durante 1 segundo y se
apaga durante 1 segundo, repitiéndose en bucle.

Código:
int led = 13;

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

void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
Problema 2: Semáforo simple

Este programa controla tres LEDs simulando un semáforo: verde durante 5 segundos, amarillo 2
segundos y rojo 5 segundos.

Código:
int ledVerde = 8;
int ledAmarillo = 9;
int ledRojo = 10;

void setup() {
pinMode(ledVerde, OUTPUT);
pinMode(ledAmarillo, OUTPUT);
pinMode(ledRojo, OUTPUT);
}

void loop() {
digitalWrite(ledVerde, HIGH);
delay(5000);
digitalWrite(ledVerde, LOW);

digitalWrite(ledAmarillo, HIGH);
delay(2000);
digitalWrite(ledAmarillo, LOW);

digitalWrite(ledRojo, HIGH);
delay(5000);
digitalWrite(ledRojo, LOW);
}
Problema 3: Botón que enciende un LED

Cuando se presiona un botón conectado al pin 2, un LED conectado al pin 13 se enciende. Si no


está presionado, el LED permanece apagado.

Código:
int led = 13;
int boton = 2;

void setup() {
pinMode(led, OUTPUT);
pinMode(boton, INPUT);
}

void loop() {
int estado = digitalRead(boton);
if (estado == HIGH) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
}
Problema 4: Botón con memoria (toggle)

Un botón cambia el estado de un LED cada vez que se presiona: si estaba apagado, se enciende;
si estaba encendido, se apaga.

Código:
int led = 13;
int boton = 2;
int estadoLed = LOW;
int ultimoEstadoBoton = LOW;

void setup() {
pinMode(led, OUTPUT);
pinMode(boton, INPUT);
}

void loop() {
int lectura = digitalRead(boton);
if (lectura == HIGH && ultimoEstadoBoton == LOW) {
estadoLed = !estadoLed;
digitalWrite(led, estadoLed);
delay(200); // antirrebote
}
ultimoEstadoBoton = lectura;
}
Problema 5: Sensor de luz (LDR)

Un LED se enciende automáticamente cuando la luz ambiental es baja, usando una


fotorresistencia (LDR) conectada a A0.

Código:
int ldr = A0;
int led = 13;

void setup() {
pinMode(led, OUTPUT);
Serial.begin(9600);
}

void loop() {
int valor = analogRead(ldr);
Serial.println(valor);
if (valor < 500) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
delay(100);
}
Problema 6: Alarma con buzzer

Si un botón está presionado, un buzzer conectado al pin 8 emite sonido.

Código:
int buzzer = 8;
int boton = 2;

void setup() {
pinMode(buzzer, OUTPUT);
pinMode(boton, INPUT);
}

void loop() {
if (digitalRead(boton) == HIGH) {
digitalWrite(buzzer, HIGH);
} else {
digitalWrite(buzzer, LOW);
}
}
Problema 7: Control de brillo con potenciómetro

El valor leído de un potenciómetro en A0 se usa para controlar el brillo de un LED mediante PWM.

Código:
int led = 9;
int pot = A0;

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

void loop() {
int valor = analogRead(pot);
int brillo = map(valor, 0, 1023, 0, 255);
analogWrite(led, brillo);
delay(10);
}
Problema 8: Minisensor de temperatura (LM35)

Se lee la temperatura de un sensor LM35 conectado a A0 y se muestra en el monitor serial en


grados Celsius.

Código:
int lm35 = A0;

void setup() {
Serial.begin(9600);
}

void loop() {
int valor = analogRead(lm35);
float voltaje = valor * (5.0 / 1023.0);
float tempC = voltaje * 100;
Serial.print("Temperatura: ");
Serial.print(tempC);
Serial.println(" C");
delay(1000);
}
Problema 9: Servo controlado por potenciómetro

Un potenciómetro conectado a A0 controla la posición de un servo entre 0° y 180°.

Código:
#include <Servo.h>

Servo servo;
int pot = A0;

void setup() {
servo.attach(9);
}

void loop() {
int valor = analogRead(pot);
int angulo = map(valor, 0, 1023, 0, 180);
servo.write(angulo);
delay(15);
}
Problema 10: Detector de movimiento PIR

Si el sensor PIR detecta movimiento, se enciende un LED y un buzzer.

Código:
int pir = 2;
int led = 13;
int buzzer = 8;

void setup() {
pinMode(pir, INPUT);
pinMode(led, OUTPUT);
pinMode(buzzer, OUTPUT);
}

void loop() {
int estado = digitalRead(pir);
if (estado == HIGH) {
digitalWrite(led, HIGH);
digitalWrite(buzzer, HIGH);
} else {
digitalWrite(led, LOW);
digitalWrite(buzzer, LOW);
}
}

También podría gustarte