APUNTES

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 28

6/5/2024, 2:49:00 AM

¡Por supuesto! Aquí tienes más ejercicios con sus cpp


respectivas soluciones:
13. **Ejercicio: Controlar la posición de un
11. **Ejercicio: Controlar la intensidad de un LED RGB servomotor SG90 con dos potenciómetros de 10kΩ**
con potenciómetro de 10kΩ** - **Materiales:** Arduino Uno, servomotor SG90,
- **Materiales:** Arduino Uno, LED RGB 5mm, potenciómetros de 10kΩ (x2), cables.
potenciómetro de 10kΩ, resistencias adecuadas, - **Código:**
cables.
- **Código:**
#include <Servo.h>

int redPin = 9; Servo servoMotor;


int greenPin = 10; int potPin1 = A0;
int bluePin = 11; int potPin2 = A1;
int potPin = A0;
void setup() {
void setup() { servoMotor.attach(9);
pinMode(redPin, OUTPUT); }
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT); void loop() {
} int angle = map(analogRead(potPin1), 0, 1023, 0,
180);
void loop() { int speed = map(analogRead(potPin2), 0, 1023, 0,
int val = analogRead(potPin); 180);
analogWrite(redPin, val/4);
analogWrite(greenPin, val/4); servoMotor.write(angle);
analogWrite(bluePin, val/4); delay(speed);
} }

cpp
**Ejercicio: Sistema de Monitoreo y Control de
12. **Ejercicio: Mostrar la temperatura en un LCD Temperatura y Distancia**
20X4 y encender un LED si supera cierto umbral**
- **Materiales:** Arduino Uno, sensor de temperatura - **Materiales:** Arduino Uno, sensor de temperatura
TMP36, LCD 20X4, diodo LED, resistencia 220Ω, TMP36, sensor de ultrasonido HC-SR04, LCD 20X4,
cables. potenciómetro de 10kΩ, resistencias, cables.
- **Código:**
- **Descripción:** Este proyecto combina la medición
de temperatura y distancia, mostrando los datos en
#include <LiquidCrystal.h> un LCD 20X4 y permitiendo controlar un LED RGB en
base a ciertos umbrales.
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int tempPin = A0; - **Código:**
int ledPin = 9;
#include <LiquidCrystal.h>
void setup() {
lcd.begin(20, 4); LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
pinMode(ledPin, OUTPUT); const int tempPin = A0;
} const int trigPin = 9;
const int echoPin = 10;
void loop() { const int redPin = 6;
float tempC = analogRead(tempPin) * 0.48828125; const int greenPin = 5;
lcd.setCursor(0, 0); const int bluePin = 3;
lcd.print("Temp: ");
lcd.print(tempC); void setup() {
lcd.begin(20, 4);
if (tempC > 25) { pinMode(trigPin, OUTPUT);
digitalWrite(ledPin, HIGH); pinMode(echoPin, INPUT);
} else { pinMode(redPin, OUTPUT);
digitalWrite(ledPin, LOW); pinMode(greenPin, OUTPUT);
} pinMode(bluePin, OUTPUT);
}
delay(1000);
} void loop() {
float tempC = analogRead(tempPin) * 0.48828125; pinMode(echoPin, INPUT);
lcd.setCursor(0, 0); pinMode(motorPin1, OUTPUT);
lcd.print("Temp: "); pinMode(motorPin2, OUTPUT);
lcd.print(tempC); pinMode(enablePin, OUTPUT);
}
digitalWrite(trigPin, LOW);
delayMicroseconds(2); void loop() {
digitalWrite(trigPin, HIGH); float tempC = analogRead(tempPin) * 0.48828125;
delayMicroseconds(10); lcd.setCursor(0, 0);
digitalWrite(trigPin, LOW); lcd.print("Temp: ");
lcd.print(tempC);
long duration = pulseIn(echoPin, HIGH);
int distance = duration * 0.034 / 2; digitalWrite(trigPin, LOW);
lcd.setCursor(0, 1); delayMicroseconds(2);
lcd.print("Dist: "); digitalWrite(trigPin, HIGH);
lcd.print(distance); delayMicroseconds(10);
digitalWrite(trigPin, LOW);
if (tempC > 25 || distance < 10) {
analogWrite(redPin, 255); long duration = pulseIn(echoPin, HIGH);
analogWrite(greenPin, 0); int distance = duration * 0.034 / 2;
analogWrite(bluePin, 0); lcd.setCursor(0, 1);
} else { lcd.print("Dist: ");
analogWrite(redPin, 0); lcd.print(distance);
analogWrite(greenPin, 255);
analogWrite(bluePin, 0); if (tempC > 25 && distance < 10) {
} servoMotor.write(90);
analogWrite(enablePin, 255);
delay(1000); digitalWrite(motorPin1, HIGH);
} digitalWrite(motorPin2, LOW);
} else {
**Ejercicio: Sistema de Control de Servomotor basado servoMotor.write(0);
en Distancia y Temperatura** analogWrite(enablePin, 0);
digitalWrite(motorPin1, LOW);
- **Materiales:** Arduino Uno, servomotor SG90, digitalWrite(motorPin2, LOW);
sensor de temperatura TMP36, sensor de ultrasonido }
HC-SR04, motor DC, puente H L293D, LCD 20X4, }
resistencias, cables.
cpp
- **Descripción:** En este proyecto, el servomotor
girará a una cierta cantidad de grados dependiendo En este ejercicio, el servomotor girará a 90 grados si
de la distancia medida por el sensor ultrasónico y la la temperatura es mayor a 25 grados y la distancia es
temperatura medida por el sensor de temperatura. menor a 10 cm. Además, el motor DC se activará a
Además, se activará el motor DC a cierta velocidad si máxima velocidad en esa misma condición. Recuerda
se cumplen ciertas condiciones de distancia y ajustar las conexiones y adaptar el código según tus
temperatura. necesidades específicas. ¡Espero que este ejercicio te
resulte útil y desafiante! Si necesitas más detalles o
- **Código:** ayuda adicional, no dudes en decírmelo.

#include <Servo.h> 6/5/2024, 2:49:00 AM


#include <LiquidCrystal.h> ¡Por supuesto! Aquí tienes otro ejercicio completo
que combina varios componentes y funcionalidades,
Servo servoMotor; junto con las conexiones y el código correspondiente:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
**Ejercicio: Control de Servomotor, Motor DC y LED
const int trigPin = 9; basado en Temperatura y Distancia**
const int echoPin = 10;
const int tempPin = A0; - **Materiales:**
const int motorPin1 = 6; - Arduino Uno
const int motorPin2 = 7; - Servomotor SG90
const int enablePin = 8; - Motor DC
- Puente H L293D
void setup() { - Sensor de temperatura TMP36
servoMotor.attach(9); - Sensor de ultrasonido HC-SR04
lcd.begin(20, 4); - LED
pinMode(trigPin, OUTPUT); - Resistencias
- Cables En este ejercicio, el servomotor girará a 90 grados, el
motor DC se activará y un LED se encenderá si la
- **Conexiones:** temperatura supera los 25 grados y la distancia es
- Sensor de temperatura TMP36: Conectar el pin menor a 10 cm. Asegúrate de realizar las conexiones
central a A0. correctamente y adaptar el código según tus
- Sensor de ultrasonido HC-SR04: Conectar trigPin a necesidades. ¡Espero que este ejercicio te resulte
9 y echoPin a 10. interesante y útil! Si necesitas más detalles o ayuda
- Servomotor SG90: Conectar al pin 9. adicional, házmelo saber.
- Motor DC con Puente H L293D: Conectar los pines
al puente H y este a los pines 6, 7 y 8 de Arduino. 6/5/2024, 2:49:00 AM
- LED: Conectar a un pin digital y una resistencia ¡Claro! Aquí tienes un nuevo ejercicio que combina
apropiada. diferentes componentes y funcionalidades para un
proyecto completo:
- **Código:**
**Ejercicio: Sistema de Control de Luces y Sonido
#include <Servo.h> basado en Luz y Distancia**

Servo servoMotor; - **Materiales:**


const int trigPin = 9; - Arduino Uno
const int echoPin = 10; - Sensor de luz LDR
const int tempPin = A0; - Sensor de ultrasonido HC-SR04
const int motorPin1 = 6; - Zumbador pasivo
const int motorPin2 = 7; - LED RGB
const int enablePin = 8; - Resistencias
const int ledPin = 4; - Cables

void setup() { - **Conexiones:**


servoMotor.attach(9); - Sensor de luz LDR: Conectar a A0.
pinMode(trigPin, OUTPUT); - Sensor de ultrasonido HC-SR04: Conectar trigPin a
pinMode(echoPin, INPUT); 9 y echoPin a 10.
pinMode(motorPin1, OUTPUT); - Zumbador pasivo: Conectar a un pin digital.
pinMode(motorPin2, OUTPUT); - LED RGB: Conectar los pines a pines digitales para
pinMode(enablePin, OUTPUT); cada color y una resistencia para cada pin.
pinMode(ledPin, OUTPUT);
} - **Código:**

void loop() { const int trigPin = 9;


float tempC = analogRead(tempPin) * 0.48828125; const int echoPin = 10;
const int ldrPin = A0;
digitalWrite(trigPin, LOW); const int buzzerPin = 6;
delayMicroseconds(2); const int redPin = 3;
digitalWrite(trigPin, HIGH); const int greenPin = 5;
delayMicroseconds(10); const int bluePin = 6;
digitalWrite(trigPin, LOW);
void setup() {
long duration = pulseIn(echoPin, HIGH); pinMode(trigPin, OUTPUT);
int distance = duration * 0.034 / 2; pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
if (tempC > 25 && distance < 10) { pinMode(redPin, OUTPUT);
servoMotor.write(90); pinMode(greenPin, OUTPUT);
analogWrite(enablePin, 255); pinMode(bluePin, OUTPUT);
digitalWrite(motorPin1, HIGH); Serial.begin(9600);
digitalWrite(motorPin2, LOW); }
digitalWrite(ledPin, HIGH);
} else { void loop() {
servoMotor.write(0); int lightValue = analogRead(ldrPin);
analogWrite(enablePin, 0); digitalWrite(trigPin, LOW);
digitalWrite(motorPin1, LOW); delayMicroseconds(2);
digitalWrite(motorPin2, LOW); digitalWrite(trigPin, HIGH);
digitalWrite(ledPin, LOW); delayMicroseconds(10);
} digitalWrite(trigPin, LOW);
} long duration = pulseIn(echoPin, HIGH);
int distance = duration * 0.034 / 2;
cpp
if (lightValue < 100) {
tone(buzzerPin, 1000); Asegúrate de utilizar las resistencias adecuadas para
analogWrite(redPin, 255); los LEDs y el diodo.
analogWrite(greenPin, 0);
analogWrite(bluePin, 0); - **Código:**
} else { - El siguiente código combina la lectura de la
noTone(buzzerPin); temperatura, la medición de distancia con el sensor
analogWrite(redPin, 0); ultrasónico, el control del servomotor y del motor DC,
analogWrite(greenPin, 255); y la visualización de datos en el LCD. Además, se
analogWrite(bluePin, 0); activará el relay y se mostrará información en el
} display de 7 segmentos.

Serial.print("Light Value: ");


Serial.print(lightValue); // Código de ejemplo para el ejercicio combinado
Serial.print(", Distance: ");
Serial.print(distance); #include <LiquidCrystal.h>
Serial.println(" cm"); #include <Servo.h>

delay(1000); Servo servoMotor;


} LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

cpp const int trigPin = 9;


const int echoPin = 10;
En este ejercicio, el LED RGB cambiará de color y el const int tempPin = A0;
zumbador sonará dependiendo de la intensidad de luz const int motorPin1 = 6;
detectada por el sensor LDR. Además, se mostrará la const int motorPin2 = 7;
distancia medida por el sensor de ultrasonido en el const int enablePin = 8;
monitor serial. Asegúrate de realizar las conexiones const int relayPin = 13;
correctamente y adaptar el código según tus const int segA = 2;
necesidades. ¡Espero que este ejercicio sea de tu // Definir pines para el display de 7 segmentos
interés! Si necesitas más detalles o ayuda adicional,
no dudes en decírmelo. void setup() {
servoMotor.attach(9);
6/5/2024, 2:49:00 AM lcd.begin(16, 2);
¡Entendido! Aquí te dejo un ejercicio completo que pinMode(trigPin, OUTPUT);
combina todos los materiales que mencionaste para pinMode(echoPin, INPUT);
un proyecto desafiante y completo: pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
**Ejercicio: Sistema de Control de Dispositivos pinMode(enablePin, OUTPUT);
basado en Temperatura y Distancia** pinMode(relayPin, OUTPUT);
// Configurar pines para display de 7 segmentos
- **Materiales:** }
- Arduino Uno
- Diodo LED void loop() {
- Resistencia de 220 ohmios // Realizar las lecturas de temperatura y distancia,
- Resistencia de 10k ohmios controlar el servomotor y motor DC
- Potenciómetro de 10k ohmios // Mostrar información en LCD
- Potenciómetro de 5k ohmios // Activar relay y mostrar datos en el display de 7
- Sensor de temperatura TMP36 segmentos
- LED RGB 5mm }
- Botón pulsador
- Sensor de ultrasonido HC-SR04 6/5/2024, 2:49:00 AM
- Módulo UART ¡Entendido! Aquí te presento un ejercicio más
- Relay complejo que cumple con los requisitos que
- Comunicación serial mencionaste utilizando los componentes que
- LCD 16X2 especificaste.
- Servomotor SG90
- Motor DC **Ejercicio: Sistema de Control de LED RGB con
- Puente H L293D Contador y Selección de Colores**
- Fuente de alimentación de 9V
- Display de 7 segmentos - **Materiales:**
- Arduino Uno
- **Conexiones:** - Diodo LED RGB
- Realiza las conexiones siguiendo el diagrama de - Resistencia de 220 ohmios
conexión específico para cada componente. - Resistencia de 10k ohmios
- Potenciómetro de 10k ohmios
- Botón pulsador }
- Comunicación serial
Serial.print("Color seleccionado: ");
- **Conexiones:** Serial.println(colorIndex);
- Conecta el diodo LED RGB con las resistencias a }
los pines correspondientes del Arduino. }
- Conecta el botón pulsador a un pin digital y a GND.
void setColor(int red, int green, int blue) {
- **Código:** analogWrite(redPin, red);
- El siguiente código implementa un contador de analogWrite(greenPin, green);
pulsos que controla el color del LED RGB. Se pueden analogWrite(bluePin, blue);
seleccionar diferentes colores utilizando el botón }
pulsador.
6/5/2024, 2:49:00 AM
Entiendo tu solicitud de ejemplos más complejos. A
// Código para el ejercicio de control de LED RGB con continuación, te presento un ejercicio detallado que
contador y selección de colores cumple con los requisitos mencionados utilizando un
Arduino UNO, un pulsador y un LED RGB:
const int buttonPin = 2; // Pin del pulsador
const int redPin = 6; **Ejercicio: Control de LED RGB con Contador de
const int greenPin = 5; Pulsos y Selección de Colores**
const int bluePin = 3;
int colorIndex = 0; // Índice de color - **Materiales:**
int count = 0; // Contador de pulsos - Arduino Uno
- Pulsador
void setup() { - LED RGB
pinMode(buttonPin, INPUT); - Resistencias (220 ohmios para el LED RGB)
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT); - **Conexiones:**
pinMode(bluePin, OUTPUT); - Conecta el pulsador a un pin digital (por ejemplo,
Serial.begin(9600); pin 2) y a GND.
} - Conecta cada pin del LED RGB (rojo, verde, azul) a
un pin digital del Arduino (por ejemplo, pines 6, 5, 3) a
void loop() { través de una resistencia de 220 ohmios.
if (digitalRead(buttonPin) == HIGH) {
count++; // Incrementar contador al presionar el - **Código:**
botón
delay(200); // Debounce del botón // Código para el control de LED RGB con contador de
} pulsos y selección de colores

selectColor(); // Función para seleccionar color const int buttonPin = 2; // Pin del pulsador
basado en el contador const int redPin = 6;
} const int greenPin = 5;
const int bluePin = 3;
void selectColor() { int colorIndex = 0; // Índice de color
if (count > 0) { int count = 0; // Contador de pulsos
colorIndex = count % 5; // Establecer el índice de
color basado en el contador void setup() {
pinMode(buttonPin, INPUT);
switch (colorIndex) { pinMode(redPin, OUTPUT);
case 0: pinMode(greenPin, OUTPUT);
setColor(255, 0, 0); // Rojo pinMode(bluePin, OUTPUT);
break; Serial.begin(9600);
case 1: }
setColor(0, 255, 0); // Verde
break; void loop() {
case 2: if (digitalRead(buttonPin) == HIGH) {
setColor(0, 0, 255); // Azul count++; // Incrementar contador al presionar el
break; botón
case 3: delay(200); // Debounce del botón
setColor(255, 255, 0); // Amarillo }
break;
case 4: selectColor(); // Función para seleccionar color
setColor(255, 0, 255); // Magenta basado en el contador
break; }
Asegúrate de utilizar las resistencias necesarias y
void selectColor() { conectar correctamente los pines de cada dispositivo.
if (count > 0) {
colorIndex = count % 5; // Establecer el índice de - **Código:**
color basado en el contador - El siguiente código implementa un sistema que
controla el servo, el motor DC y muestra información
switch (colorIndex) { en el LCD basado en diferentes condiciones como la
case 0: distancia, temperatura, pulsador y potenciómetro.
setColor(255, 0, 0); // Rojo
break;
case 1: // Código para el sistema de control multifuncional
setColor(0, 255, 0); // Verde
break; #include <LiquidCrystal.h>
case 2: #include <Servo.h>
setColor(0, 0, 255); // Azul
break; Servo servoMotor;
case 3: LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
setColor(255, 255, 0); // Amarillo
break; const int trigPin = 9;
case 4: const int echoPin = 10;
setColor(255, 0, 255); // Magenta const int tempPin = A0;
break; const int buttonPin = 7;
} const int potPin = A1;
const int motorPin1 = 6;
Serial.print("Color seleccionado: "); const int motorPin2 = 7;
Serial.println(colorIndex); const int enablePin = 8;
} const int relayPin = 13;
} const int segA = 2;

void setColor(int red, int green, int blue) { void setup() {


analogWrite(redPin, red); servoMotor.attach(9);
analogWrite(greenPin, green); lcd.begin(16, 2);
analogWrite(bluePin, blue); pinMode(trigPin, OUTPUT);
} pinMode(echoPin, INPUT);
pinMode(buttonPin, INPUT);
cpp pinMode(potPin, INPUT);
pinMode(motorPin1, OUTPUT);
6/5/2024, 2:49:00 AM pinMode(motorPin2, OUTPUT);
¡Entendido! A continuación te presento un ejercicio pinMode(enablePin, OUTPUT);
completo que combina los componentes pinMode(relayPin, OUTPUT);
mencionados para un proyecto desafiante y detallado }
que incluye un sistema de control basado en
diferentes condiciones: void loop() {
int distance = getDistance();
**Ejercicio: Sistema de Control Multifuncional con int temperature = getTemperature();
Arduino Uno** int angle = map(analogRead(potPin), 0, 1023, 0, 180);

- **Materiales:** if (distance < 20) {


- Arduino Uno servoMotor.write(90);
- Resistencia } else {
- Potenciómetro digitalWrite(motorPin1, LOW);
- Sensor de temperatura TMP36 digitalWrite(motorPin2, LOW);
- Botón pulsador servoMotor.write(30);
- Sensor de ultrasonido HC-SR04 }
- Módulo UART para comunicación serial
- Relay if (distance % 5 == 0) {
- LCD 16x2 servoMotor.write(10);
- Servomotor SG90 temperature++;
- Motor DC con puente H L293D }
- Display de 7 segmentos
if (digitalRead(buttonPin) == HIGH) {
- **Conexiones:** servoMotor.write(angle);
- Realiza las conexiones siguiendo el diagrama de }
conexión específico para cada componente.
displayInfo(angle, temperature, distance);
} #include <Servo.h>

int getDistance() { Servo servoMotor;


// Implementar la lectura de distancia con el sensor
ultrasónico const int trigPin = 9;
} const int echoPin = 10;
const int tempPin = A0;
int getTemperature() { const int motorPin1 = 6;
// Implementar la lectura de temperatura con el const int motorPin2 = 7;
sensor TMP36
} void setup() {
servoMotor.attach(9);
void displayInfo(int angle, int temp, int dist) { pinMode(trigPin, OUTPUT);
lcd.clear(); pinMode(echoPin, INPUT);
lcd.setCursor(0, 0); pinMode(tempPin, INPUT);
lcd.print("Angulo: "); pinMode(motorPin1, OUTPUT);
lcd.print(angle); pinMode(motorPin2, OUTPUT);
lcd.print(" Temp: "); }
lcd.println(temp);
void loop() {
lcd.setCursor(0, 1); int distance = getDistance();
lcd.print("Distancia: "); int temperature = getTemperature();
lcd.print(dist);
} if (distance < 20) {
servoMotor.write(90);
cpp } else {
digitalWrite(motorPin1, HIGH);
Este código combina diferentes condiciones para digitalWrite(motorPin2, LOW);
controlar el servo y el motor DC, además de mostrar }
información en el LCD. Asegúrate de adaptar las }
conexiones y el código según tus necesidades
específicas. ¡Espero que este ejercicio sea de tu int getDistance() {
interés y te resulte desafiante! Si necesitas más // Implementar la lectura de distancia con el sensor
detalles o ayuda adicional, no dudes en decírmelo. ultrasónico
¡Estoy aquí para ayudarte! }

6/5/2024, 3:05:05 AM int getTemperature() {


Por supuesto, a continuación te presento tres ejemplos // Implementar la lectura de temperatura con el sensor
adicionales de proyectos complejos que combinan los TMP36
componentes mencionados. Cada código está comentado }
para explicar su funcionamiento y se incluye una
descripción de las conexiones necesarias. cpp

### Ejemplo 1: Control de Servomotor y Motor DC ### Ejemplo 2: Control de Servomotor basado en
basado en Distancia y Temperatura Distancia

- **Descripción:** En este proyecto, el servo y el motor DC - **Descripción:** En este proyecto, el servomotor gira en
se controlan en función de la distancia y la temperatura. función de la distancia medida por el sensor ultrasónico.
El servo se mueve según la distancia medida por el Si la distancia es menor a 20, el servomotor gira 90
sensor ultrasónico y el motor DC se activa en función de grados a la derecha; de lo contrario, se apaga o gira 30
la temperatura. grados a la izquierda.

- **Conexiones:** - **Conexiones:**
- Conectar el sensor ultrasónico HC-SR04 al Arduino - Conectar el sensor ultrasónico HC-SR04 al Arduino
Uno. Uno.
- Conectar el sensor de temperatura TMP36 al Arduino - Conectar el servomotor SG90 al Arduino Uno.
Uno.
- Conectar el servo SG90 y el motor DC con el puente H - **Código:**
L293D al Arduino Uno.
// Código para control de servomotor basado en distancia
- **Código:**
#include <Servo.h>
// Código para control de servo y motor DC basado en
distancia y temperatura Servo servoMotor;
const int trigPin = 9;
const int echoPin = 10; Espero que estos ejemplos te sean útiles y satisfagan tus
requerimientos. Si necesitas más detalles sobre las
void setup() { conexiones o el funcionamiento de algún código en
servoMotor.attach(9); particular, no dudes en preguntar. ¡Estoy aquí para
pinMode(trigPin, OUTPUT); ayudarte!
pinMode(echoPin, INPUT);
} 6/5/2024, 3:05:05 AM
¡Claro! Aquí te presento otros tres ejemplos de proyectos
void loop() { complejos que combinan los componentes que
int distance = getDistance(); mencionaste. Cada código está comentado para explicar
su funcionamiento y se incluye una descripción de las
if (distance < 20) { conexiones necesarias.
servoMotor.write(90);
} else { ### Ejemplo 1: Control de Motor DC con Display LCD y
servoMotor.write(30); Sensor de Temperatura
}
} - **Descripción:** En este proyecto, un motor DC se
controla en función de la temperatura medida por el
int getDistance() { sensor TMP36. Además, la temperatura se muestra en un
// Implementar la lectura de distancia con el sensor display LCD.
ultrasónico
} - **Conexiones:**
- Conectar el sensor de temperatura TMP36 al Arduino
cpp Uno.
- Conectar el motor DC con el puente H L293D al
### Ejemplo 3: Control de Servomotor con Pulsador y Arduino Uno.
Potenciómetro - Conectar el display LCD 16x2 al Arduino Uno.

- **Descripción:** En este proyecto, el servomotor gira - **Código:**


cierta cantidad de grados según la posición del
potenciómetro y la pulsación del botón. // Código para control de motor DC con display LCD y
sensor de temperatura
- **Conexiones:**
- Conectar el servomotor SG90 al Arduino Uno. #include <LiquidCrystal.h>
- Conectar el potenciómetro y el botón pulsador al
Arduino Uno. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

- **Código:** const int tempPin = A0;


const int motorPin1 = 6;
// Código para control de servomotor con pulsador y const int motorPin2 = 7;
potenciómetro
void setup() {
#include <Servo.h> lcd.begin(16, 2);
pinMode(tempPin, INPUT);
Servo servoMotor; pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
const int potPin = A0; }
const int buttonPin = 7;
void loop() {
void setup() { int temperature = getTemperature();
servoMotor.attach(9);
pinMode(potPin, INPUT); if (temperature > 25) {
pinMode(buttonPin, INPUT); digitalWrite(motorPin1, HIGH);
} digitalWrite(motorPin2, LOW);
} else {
void loop() { digitalWrite(motorPin1, LOW);
int angle = map(analogRead(potPin), 0, 1023, 0, 180); digitalWrite(motorPin2, LOW);
}
if (digitalRead(buttonPin) == HIGH) {
servoMotor.write(angle); displayTemperature(temperature);
} }
}
int getTemperature() {
cpp
// Implementar la lectura de temperatura con el sensor
TMP36 void displayDistance(int dist) {
} // Implementar la visualización de la distancia en el
display de 7 segmentos
void displayTemperature(int temp) { }
lcd.clear();
lcd.setCursor(0, 0); cpp
lcd.print("Temp: ");
lcd.print(temp); ### Ejemplo 3: Control de Relay con Comunicación Serial
lcd.print(" C"); y UART
}
- **Descripción:** En este proyecto, un relay se controla a
cpp través de la comunicación serial UART. Se envían
comandos desde un dispositivo externo para activar o
### Ejemplo 2: Control de Servomotor con Ultrasonido y desactivar el relay.
Display de 7 Segmentos
- **Conexiones:**
- **Descripción:** En este proyecto, un servomotor se - Conectar el relay al Arduino Uno.
controla en función de la distancia medida por el sensor - Implementar la comunicación serial UART para recibir
ultrasónico HC-SR04. La distancia se muestra en un comandos.
display de 7 segmentos.
- **Código:**
- **Conexiones:**
- Conectar el sensor ultrasónico HC-SR04 al Arduino // Código para control de relay con comunicación serial y
Uno. UART
- Conectar el servomotor SG90 al Arduino Uno.
- Conectar el display de 7 segmentos al Arduino Uno. const int relayPin = 13;

- **Código:** void setup() {


pinMode(relayPin, OUTPUT);
// Código para control de servomotor con ultrasonido y Serial.begin(9600);
display de 7 segmentos }

#include <Servo.h> void loop() {


if (Serial.available() > 0) {
Servo servoMotor; char command = Serial.read();

const int trigPin = 9; if (command == 'ON') {


const int echoPin = 10; digitalWrite(relayPin, HIGH);
const int segA = 2; // Pin para el segmento A del display } else if (command == 'OFF') {
de 7 segmentos digitalWrite(relayPin, LOW);
}
void setup() { }
servoMotor.attach(9); }
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT); cpp
pinMode(segA, OUTPUT);
} Espero que estos ejemplos te sean de ayuda y te inspiren
a explorar más proyectos con los componentes
void loop() { mencionados. Si tienes alguna pregunta o necesitas más
int distance = getDistance(); información, no dudes en decírmelo. ¡Estoy aquí para
ayudarte!
if (distance < 20) {
servoMotor.write(90); 6/5/2024, 3:05:05 AM
} else { ¡Claro! Aquí te presento tres ejemplos adicionales de
servoMotor.write(30); proyectos complejos que involucran los componentes
} mencionados. Cada proyecto está diseñado para ser
desafiante y combina múltiples elementos de hardware y
displayDistance(distance); software para lograr funcionalidades avanzadas.
}
### Ejemplo 1: Sistema de Control de Temperatura y
int getDistance() { Humedad con Servomotor y Pantalla LCD
// Implementar la lectura de distancia con el sensor
ultrasónico - **Descripción:** En este proyecto, se utilizará el sensor
} de temperatura TMP36 y un sensor de humedad para
controlar un servomotor y mostrar la información en una // Código para sistema de alarma de proximidad con LED
pantalla LCD. El servomotor se moverá en función de la RGB y ultrasonido
temperatura y la humedad medida.
const int trigPin = 9;
- **Conexiones:** const int echoPin = 10;
- Conectar el sensor de temperatura TMP36 y el sensor const int redPin = 6;
de humedad al Arduino Uno. const int greenPin = 5;
- Conectar el servomotor SG90 y la pantalla LCD al const int bluePin = 3;
Arduino Uno.
void setup() {
- **Código:** pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Código para control de temperatura y humedad con pinMode(redPin, OUTPUT);
servomotor y LCD pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
#include <Servo.h> }
#include <LiquidCrystal.h>
void loop() {
Servo servoMotor; int distance = getDistance();
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
if (distance < 10) {
const int tempPin = A0; setColor(255, 0, 0); // Rojo
const int humidityPin = A1; } else if (distance < 20) {
const int servoPin = 9; setColor(0, 255, 0); // Verde
} else {
void setup() { setColor(0, 0, 255); // Azul
servoMotor.attach(servoPin); }
lcd.begin(16, 2); }
pinMode(tempPin, INPUT);
pinMode(humidityPin, INPUT); int getDistance() {
} // Implementar la lectura de distancia con el sensor
ultrasónico
void loop() { }
int temperature = analogRead(tempPin);
int humidity = analogRead(humidityPin); void setColor(int red, int green, int blue) {
analogWrite(redPin, red);
int servoAngle = map(temperature, 0, 1023, 0, 180); analogWrite(greenPin, green);
servoMotor.write(servoAngle); analogWrite(bluePin, blue);
}
lcd.setCursor(0, 0);
lcd.print("Temp: "); cpp
lcd.print(temperature);
lcd.setCursor(0, 1); ### Ejemplo 3: Control de Motor DC con Relay y
lcd.print("Humidity: "); Comunicación Serial
lcd.print(humidity);
delay(1000); - **Descripción:** En este proyecto, se controlará un
} motor DC utilizando un relay activado por comandos
recibidos a través de la comunicación serial. Se podrán
cpp enviar instrucciones para encender o apagar el motor.

### Ejemplo 2: Sistema de Alarma de Proximidad con - **Conexiones:**


LED RGB y Ultrasonido - Conectar el motor DC y el relay al Arduino Uno.

- **Descripción:** En este proyecto, se implementará un - **Código:**


sistema de alarma de proximidad utilizando el sensor
ultrasónico HC-SR04 y un LED RGB. El LED cambiará de // Código para control de motor DC con relay y
color según la distancia medida por el sensor. comunicación serial

- **Conexiones:** const int relayPin = 13;


- Conectar el sensor ultrasónico HC-SR04 y el LED RGB
al Arduino Uno. void setup() {
pinMode(relayPin, OUTPUT);
- **Código:** Serial.begin(9600);
}
void loop() { - Mostrar información sobre la humedad del suelo y el
if (Serial.available() > 0) { estado del riego en la pantalla LCD.
char command = Serial.read();
- **Código:**
if (command == 'ON') { - Desarrollar un programa que monitorea
digitalWrite(relayPin, HIGH); constantemente la humedad del suelo, activa la bomba de
} else if (command == 'OFF') { agua cuando sea necesario, y muestra información
digitalWrite(relayPin, LOW); relevante en la pantalla LCD para el usuario.
}
} ### Ejemplo 3: Sistema de Seguridad con Control de
} Acceso y Notificaciones por SMS

cpp - **Descripción:** En este proyecto, se creará un sistema


de seguridad que controla el acceso a un lugar mediante
Estos ejemplos te proporcionan proyectos desafiantes un teclado numérico, envía notificaciones por SMS en
que combinan diferentes componentes y funcionalidades. caso de intrusión y activa una alarma sonora. Se utilizará
Si necesitas más información o tienes alguna pregunta un teclado numérico, un módulo GSM para SMS, un
específica sobre alguno de los proyectos, no dudes en buzzer, un relay y un Arduino Uno.
decírmelo. ¡Estoy aquí para ayudarte!
- **Conexiones:**
6/5/2024, 3:05:05 AM - Conectar el teclado numérico y el módulo GSM al
¡Por supuesto! Aquí te presento tres ejemplos más de Arduino Uno.
proyectos complejos que involucran los componentes - Utilizar un relay para activar la alarma sonora y un
mencionados. Estos proyectos abordan funcionalidades buzzer para generar alertas audibles.
avanzadas y desafiantes que te permitirán explorar
nuevas posibilidades con Arduino. - **Código:**
- Programar un sistema que permita ingresar códigos de
### Ejemplo 1: Sistema de Monitoreo y Control Domótico acceso por el teclado numérico, enviar notificaciones por
con Arduino Uno SMS a números predefinidos en caso de intrusión, y
activar la alarma sonora para disuadir a los intrusos.
- **Descripción:** En este proyecto, se creará un sistema
domótico que monitorea y controla diferentes aspectos de Estos proyectos son desafiantes y te permitirán explorar
una casa, como la temperatura, la iluminación y la funcionalidades avanzadas con Arduino. Si necesitas más
seguridad. Se utilizarán sensores de temperatura, un detalles sobre la implementación de alguno de estos
servomotor, un relay, un sensor de movimiento, un LCD y proyectos o si tienes alguna pregunta específica, no
comunicación serial para interactuar con el usuario. dudes en decírmelo. ¡Estoy aquí para ayudarte en lo que
necesites!
- **Conexiones:**
- Conectar los sensores y actuadores según el diagrama 6/5/2024, 3:04:37 AM
de conexión detallado. pero desarrollamelo dame codigo
- Utilizar un LCD para mostrar información relevante al
usuario. 6/5/2024, 3:05:05 AM
¡Por supuesto! A continuación te presento el código para
- **Código:** el primer ejemplo, un Sistema de Monitoreo y Control
- Implementar un programa que permita al usuario Domótico con Arduino Uno. Este proyecto combina
monitorear la temperatura, encender o apagar luces diferentes componentes y funcionalidades para crear un
usando el relay, activar el servomotor para controlar una sistema domótico avanzado.
puerta, y recibir alertas de seguridad por medio del sensor
de movimiento. ### Código para Sistema de Monitoreo y Control
Domótico
### Ejemplo 2: Sistema de Riego Automático con Control
de Humedad y Pantalla LCD
#include <Servo.h>
- **Descripción:** En este proyecto, se desarrollará un #include <LiquidCrystal.h>
sistema de riego automático para plantas que controla la
humedad del suelo y activa un sistema de riego basado Servo servoMotor;
en las necesidades de las plantas. Se utilizará un sensor LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
de humedad, un relay, una bomba de agua, una pantalla
LCD y un Arduino Uno. const int tempPin = A0;
const int lightSensorPin = A1;
- **Conexiones:** const int motionSensorPin = 6;
- Conectar el sensor de humedad y la bomba de agua al const int relayPin = 7;
Arduino Uno.
- Utilizar un relay para controlar la activación de la void setup() {
bomba de agua. servoMotor.attach(9);
lcd.begin(16, 2); - Conectar los otros dos terminales a VCC y GND.
pinMode(tempPin, INPUT); - **Código en Proteus:**
pinMode(lightSensorPin, INPUT); - No se necesita un código específico en Proteus para el
pinMode(motionSensorPin, INPUT); potenciómetro, ya que se simulará la variación de voltaje
pinMode(relayPin, OUTPUT); manualmente.
Serial.begin(9600);
} ### Sensor de temperatura TMP36
- **Conexiones:**
void loop() { - Conectar la señal del sensor TMP36 al pin analógico
int temperature = analogRead(tempPin); de Arduino.
int lightIntensity = analogRead(lightSensorPin); - Conectar el pin de tierra (GND) del sensor a GND.
int motionDetected = digitalRead(motionSensorPin); - Conectar el pin de alimentación (VCC) del sensor a 5V.
- **Código en Proteus:**
if (temperature > 30) {
servoMotor.write(90); // Abrir la ventana int tempPin = A0;
} else { void setup() {
servoMotor.write(0); // Cerrar la ventana Serial.begin(9600);
} }
void loop() {
if (lightIntensity < 100) { int tempValue = analogRead(tempPin);
digitalWrite(relayPin, HIGH); // Encender la luz float voltage = tempValue * (5.0 / 1023.0);
} else { float temperature = (voltage - 0.5) * 100;
digitalWrite(relayPin, LOW); // Apagar la luz Serial.print("Temperatura: ");
} Serial.print(temperature);
Serial.println("°C");
if (motionDetected == HIGH) { delay(1000);
lcd.setCursor(0, 0); }
lcd.print("Intruso detectado!");
Serial.println("Intruso detectado en la casa."); cpp
} else {
lcd.clear(); ### Botón pulsador
} - **Conexiones:**
} - Conectar un terminal del botón a un pin de entrada
digital de Arduino.
cpp - Conectar el otro terminal a GND.
- **Código en Proteus:**
En este código, se monitorea la temperatura, la intensidad - Puedes utilizar una interrupción en el código para
de luz y la presencia de movimiento en una casa. Se detectar el estado del botón y realizar acciones en
controla un servomotor para abrir y cerrar una ventana en consecuencia.
función de la temperatura, se activa un relay para encender
y apagar la luz según la intensidad de luz detectada, y se ### Sensor ultrasónico HC-SR04
muestra un mensaje en la pantalla LCD y se envía una - **Conexiones:**
notificación por Serial en caso de detectar movimiento. - Conectar los pines Trigger y Echo del sensor al
Arduino.
- **Código en Proteus:**
Si deseas el código para los otros ejemplos presentados
o si necesitas más detalles sobre la implementación de - Puedes utilizar una librería para el sensor HC-SR04 en
este proyecto, por favor házmelo saber. Estoy aquí para Proteus y simular la medición de distancia.
ayudarte en lo que necesites.
### UART, puerto serie
me puedes decir todas las conexxiones y cada codigo en
- **Conexiones:**
proteus para cada equipos: potenciometro, sensor de
temperatura TMP36, boton pulsador, ultrasonido HC- - Conectar los pines TX y RX del módulo UART al
SR04, UART, puerto de serie, relay, comunicacion serial, Arduino.
LCD 16X2, LCD 20X4, servomotor SG90, motor DC, - **Código en Proteus:**
- Puedes enviar y recibir datos a través del puerto serie
puente H, L293D DIPLAY 7.
utilizando las funciones Serial.print() y Serial.read().
6/5/2024, 9:17:58 AM
¡Claro! A continuación te proporciono la información ### Relay
- **Conexiones:**
detallada sobre las conexiones y el código en Proteus
para cada uno de los componentes que mencionaste. - Conectar el pin de control del relay a un pin digital de
Arduino.
### Potenciómetro - Conectar los otros pines del relay según las
necesidades del circuito.
- **Conexiones:**
- Conectar el terminal central del potenciómetro a un pin - **Código en Proteus:**
analógico de Arduino. - Puedes controlar el estado del relay mediante el pin de
control en el código.
void loop() {
### Comunicación serial potValue = analogRead(potPin);
- **Conexiones:** Serial.print("Valor del potenciómetro: ");
- Conectar los pines TX y RX del módulo de Serial.println(potValue);
comunicación serial al Arduino. delay(500);
- **Código en Proteus:** }
- Puedes enviar y recibir datos a través de la
comunicación serial utilizando las funciones Serial.print() cpp
y Serial.read().
### Código para Sensor de Temperatura TMP36:
### LCD 16x2 y LCD 20x4
- **Conexiones:** int tempPin = A1;
- Conectar los pines de datos y control del LCD al
Arduino. void setup() {
- **Código en Proteus:** Serial.begin(9600);
- Utilizar una librería para controlar el LCD y mostrar }
información en la pantalla.
void loop() {
### Servomotor SG90 int sensorValue = analogRead(tempPin);
- **Conexiones:** float voltage = sensorValue * (5.0 / 1023.0);
- Conectar el pin de control del servomotor a un pin float temperature = (voltage - 0.5) * 100.0;
PWM de Arduino.
- **Código en Proteus:** Serial.print("Temperatura: ");
- Utilizar la librería Servo.h para controlar la posición del Serial.print(temperature);
servomotor en el código. Serial.println(" °C");

### Motor DC y Puente H L293D delay(1000);


- **Conexiones:** }
- Conectar los pines de control del puente H al Arduino.
- Conectar el motor DC al puente H para controlar la cpp
dirección y velocidad.
- **Código en Proteus:** ### Código para Botón Pulsador:
- Utilizar el puente H para controlar la dirección y
velocidad del motor en el código. int buttonPin = 2;
int buttonState = 0;
### Display 7 segmentos
- **Conexiones:** void setup() {
- Conectar los pines de datos del display 7 segmentos al pinMode(buttonPin, INPUT);
Arduino. Serial.begin(9600);
- **Código en Proteus:** }
- Utilizar un código para enviar los dígitos o caracteres a
mostrar en el display 7 segmentos. void loop() {
buttonState = digitalRead(buttonPin);
Espero que esta información te sea útil para realizar las
conexiones y programación en Proteus de los if(buttonState == HIGH) {
componentes mencionados. Si necesitas más detalles o Serial.println("Botón pulsado");
ayuda adicional, ¡no dudes en decírmelo! }

6/5/2024, 9:18:34 AM delay(100);


pero dime los codigos de cada uno }

6/5/2024, 9:19:04 AM cpp


Por supuesto, a continuación te proporciono el código
para cada uno de los componentes que mencionaste en ### Código para Sensor Ultrasónico HC-SR04:
Proteus.
#define trigPin 9
### Código para Potenciómetro: #define echoPin 10

int potPin = A0; void setup() {


int potValue = 0; Serial.begin(9600);
pinMode(trigPin, OUTPUT);
void setup() { pinMode(echoPin, INPUT);
Serial.begin(9600); }
}
void loop() {
long duration, distance; duration = pulseIn(echoPin, HIGH); int distance = duration
digitalWrite(trigPin, LOW); * 0.034 / 2; if (tempC > 25 && distance < 10) {
delayMicroseconds(2); servoMotor.write(90); analogWrite(enablePin, 255);
digitalWrite(trigPin, HIGH); digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2,
delayMicroseconds(10); LOW); digitalWrite(ledPin, HIGH); } else {
digitalWrite(trigPin, LOW); servoMotor.write(0); analogWrite(enablePin, 0);
duration = pulseIn(echoPin, HIGH); digitalWrite(motorPin1, LOW); digitalWrite(motorPin2,
distance = (duration / 2) / 29.1; LOW); digitalWrite(ledPin, LOW); } } cpp En este ejercicio,
Serial.print("Distancia: "); el servomotor girará a 90 grados, el motor DC se activará
Serial.print(distance); y un LED se encenderá si la temperatura supera los 25
Serial.println(" cm"); grados y la distancia es menor a 10 cm. Asegúrate de
delay(500); realizar las conexiones correctamente y adaptar el código
} según tus necesidades. ¡Espero que este ejercicio te
resulte interesante y útil! Si necesitas más detalles o
cpp ayuda adicional, házmelo saber. dame mas ejercicios asi

### Código para Comunicación Serial (UART): 6/5/2024, 9:25:08 AM


¡Claro! Aquí te dejo otro ejercicio que combina diferentes
void setup() { componentes y funcionalidades para que puedas seguir
Serial.begin(9600); practicando con Arduino.
}
**Ejercicio: Control de Motor DC y LED con Potenciómetro
void loop() { y Sensor Ultrasonido**
if(Serial.available() > 0) {
char data = Serial.read(); - **Materiales:**
Serial.print("Dato recibido: "); - Arduino Uno
Serial.println(data); - Motor DC
} - Sensor de ultrasonido HC-SR04
} - Potenciómetro
- LED
cpp - Resistencias
- Cables
Estos son los códigos básicos para cada componente en
Proteus. Recuerda adaptarlos según tus necesidades y la - **Conexiones:**
configuración de tu circuito. Si necesitas más información - Sensor de ultrasonido HC-SR04: Conectar trigPin a 9 y
o ayuda con algún código específico, ¡no dudes en echoPin a 10.
hacérmelo saber! - Potenciómetro: Conectar a un pin analógico (por
ejemplo, A0).
6/5/2024, 9:24:32 AM - Motor DC: Conectar al puente H L293D y este a los
6/5/2024, 2:49:00 AM ¡Por supuesto! Aquí tienes otro pines 6, 7 y 8 de Arduino.
ejercicio completo que combina varios componentes y - LED: Conectar a un pin digital y una resistencia
funcionalidades, junto con las conexiones y el código adecuada.
correspondiente: **Ejercicio: Control de Servomotor,
Motor DC y LED basado en Temperatura y Distancia** - - **Código:**
**Materiales:** - Arduino Uno - Servomotor SG90 - Motor
DC - Puente H L293D - Sensor de temperatura TMP36 -
Sensor de ultrasonido HC-SR04 - LED - Resistencias - const int trigPin = 9;
Cables - **Conexiones:** - Sensor de temperatura const int echoPin = 10;
TMP36: Conectar el pin central a A0. - Sensor de const int potPin = A0;
ultrasonido HC-SR04: Conectar trigPin a 9 y echoPin a const int motorPin1 = 6;
10. - Servomotor SG90: Conectar al pin 9. - Motor DC con const int motorPin2 = 7;
Puente H L293D: Conectar los pines al puente H y este a const int enablePin = 8;
los pines 6, 7 y 8 de Arduino. - LED: Conectar a un pin const int ledPin = 4;
digital y una resistencia apropiada. - **Código:**
#include Servo servoMotor; const int trigPin = 9; const int void setup() {
echoPin = 10; const int tempPin = A0; const int motorPin1 pinMode(trigPin, OUTPUT);
= 6; const int motorPin2 = 7; const int enablePin = 8; const pinMode(echoPin, INPUT);
int ledPin = 4; void setup() { servoMotor.attach(9); pinMode(motorPin1, OUTPUT);
pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(motorPin2, OUTPUT);
pinMode(motorPin1, OUTPUT); pinMode(motorPin2, pinMode(enablePin, OUTPUT);
OUTPUT); pinMode(enablePin, OUTPUT); pinMode(ledPin, OUTPUT);
pinMode(ledPin, OUTPUT); } void loop() { float tempC = Serial.begin(9600);
analogRead(tempPin) * 0.48828125; digitalWrite(trigPin, }
LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH);
delayMicroseconds(10); digitalWrite(trigPin, LOW); long void loop() {
int distance = getDistance(); myServo.write(0); // Posición inicial del servo
int potValue = analogRead(potPin);
// Inicialización del sensor de distancia
if (distance < 20) { pinMode(trigPin, OUTPUT);
analogWrite(enablePin, 255); pinMode(echoPin, INPUT);
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW); // Inicialización del puente H
digitalWrite(ledPin, HIGH); pinMode(enablePin, OUTPUT);
} else { pinMode(motorIn1, OUTPUT);
analogWrite(enablePin, 0); pinMode(motorIn2, OUTPUT);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW); // Habilitar el motor
digitalWrite(ledPin, LOW); digitalWrite(enablePin, HIGH);
}
// Inicialización del Serial
Serial.print("Distance: "); Serial.begin(9600);
Serial.print(distance); }
Serial.print(" cm Potentiometer Value: ");
Serial.println(potValue); void loop() {
delay(500); // Medir la distancia
} digitalWrite(trigPin, LOW);
delayMicroseconds(2);
int getDistance() { digitalWrite(trigPin, HIGH);
digitalWrite(trigPin, LOW); delayMicroseconds(10);
delayMicroseconds(2); digitalWrite(trigPin, LOW);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); duration = pulseIn(echoPin, HIGH);
digitalWrite(trigPin, LOW); distance = duration * 0.034 / 2;

long duration = pulseIn(echoPin, HIGH); // Mostrar la distancia en el LCD


int distance = duration * 0.034 / 2; lcd.setCursor(0, 1);
lcd.print(distance);
return distance; lcd.print(" cm ");
}
// Condición para el servo y motor DC
if (distance < 10) {
#include <LiquidCrystal.h> myServo.write(90); // Mover el servo a 90 grados
#include <Servo.h>
// Avanzar el motor DC
// Configuración del LCD digitalWrite(motorIn1, HIGH);
LiquidCrystal lcd(13, 12, 5, 4, 3, 2); digitalWrite(motorIn2, LOW);

// Configuración del Servo


Servo myServo;

// Pines del HC-SR04 } else if (distance >= 10 && distance < 20) {
const int trigPin = 9; myServo.write(45); // Mover el servo a 45 grados
const int echoPin = 10;
// Retroceder el motor DC
// Pines del Puente H para el motor DC digitalWrite(motorIn1, LOW);
const int enablePin = 6; digitalWrite(motorIn2, HIGH);
const int motorIn1 = 7; //Izquierda
const int motorIn2 = 8; //Derecha }
else {
// Variables para el sensor de distancia myServo.write(0); // Poner el servo en posición 0
long duration; grados
int distance; // Apagar el motor DC
digitalWrite(motorIn1, LOW);
void setup() { digitalWrite(motorIn2, LOW);
// Inicialización del LCD }
lcd.begin(16, 2);
lcd.print("Distancia:"); delay(500); // Pequeña pausa antes de la siguiente
medición
// Inicialización del Servo }
myServo.attach(11);
#include <LiquidCrystal.h> myServo.write(90); // Mover el servo a 90 grados
#include <Servo.h>
// Avanzar el motor DC
// Configuración del LCD digitalWrite(motorIn1, HIGH);
LiquidCrystal lcd(13, 12, 5, 4, 3, 2); digitalWrite(motorIn2, LOW);

// Configuración del Servo


Servo myServo; } else if (distance >= 10 && distance < 20) {
myServo.write(45); // Mover el servo a 45 grados
// Pines del HC-SR04
const int trigPin = 9; // Retroceder el motor DC
const int echoPin = 10; digitalWrite(motorIn1, LOW);
digitalWrite(motorIn2, HIGH);
// Pines del Puente H para el motor DC
const int enablePin = 6; }
const int motorIn1 = 7; //Izquierda else {
const int motorIn2 = 8; //Derecha myServo.write(0); // Poner el servo en posición 0
grados
// Variables para el sensor de distancia // Apagar el motor DC
long duration; digitalWrite(motorIn1, LOW);
int distance; digitalWrite(motorIn2, LOW);
}
void setup() {
// Inicialización del LCD delay(500); // Pequeña pausa antes de la siguiente
lcd.begin(16, 2); medición
lcd.print("Distancia:"); }

// Inicialización del Servo


myServo.attach(11); #include <LiquidCrystal.h>
myServo.write(0); // Posición inicial del servo #include <Servo.h>

// Inicialización del sensor de distancia // Configuración del LCD


pinMode(trigPin, OUTPUT); LiquidCrystal lcd(13, 12, 5, 4, 3, 2);
pinMode(echoPin, INPUT);
// Configuración del Servo
// Inicialización del puente H Servo myServo;
pinMode(enablePin, OUTPUT);
pinMode(motorIn1, OUTPUT); // Pines del HC-SR04
pinMode(motorIn2, OUTPUT); const int trigPin = 9;
const int echoPin = 10;
// Habilitar el motor
digitalWrite(enablePin, HIGH); // Pines del Puente H para el motor DC
const int enablePin = 6;
// Inicialización del Serial const int motorIn1 = 7; //Izquierda
Serial.begin(9600); const int motorIn2 = 8; //Derecha
}
// Variables para el sensor de distancia
void loop() { long duration;
// Medir la distancia int distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2); void setup() {
digitalWrite(trigPin, HIGH); // Inicialización del LCD
delayMicroseconds(10); lcd.begin(16, 2);
digitalWrite(trigPin, LOW); lcd.print("Distancia:");

duration = pulseIn(echoPin, HIGH); // Inicialización del Servo


distance = duration * 0.034 / 2; myServo.attach(11);
myServo.write(0); // Posición inicial del servo
// Mostrar la distancia en el LCD
lcd.setCursor(0, 1); // Inicialización del sensor de distancia
lcd.print(distance); pinMode(trigPin, OUTPUT);
lcd.print(" cm "); pinMode(echoPin, INPUT);

// Condición para el servo y motor DC // Inicialización del puente H


if (distance < 10) { pinMode(enablePin, OUTPUT);
pinMode(motorIn1, OUTPUT); const int trigPin = 9;
pinMode(motorIn2, OUTPUT); const int echoPin = 10;

// Habilitar el motor // Pines del Puente H para el motor DC


digitalWrite(enablePin, HIGH); const int enablePin = 6;
const int motorIn1 = 7; //Izquierda
// Inicialización del Serial const int motorIn2 = 8; //Derecha
Serial.begin(9600);
} // Variables para el sensor de distancia
long duration;
void loop() { int distance;
// Medir la distancia
digitalWrite(trigPin, LOW); void setup() {
delayMicroseconds(2); // Inicialización del LCD
digitalWrite(trigPin, HIGH); lcd.begin(16, 2);
delayMicroseconds(10); lcd.print("Distancia:");
digitalWrite(trigPin, LOW);
// Inicialización del Servo
duration = pulseIn(echoPin, HIGH); myServo.attach(11);
distance = duration * 0.034 / 2; myServo.write(0); // Posición inicial del servo

// Mostrar la distancia en el LCD // Inicialización del sensor de distancia


lcd.setCursor(0, 1); pinMode(trigPin, OUTPUT);
lcd.print(distance); pinMode(echoPin, INPUT);
lcd.print(" cm ");
// Inicialización del puente H
// Condición para el servo y motor DC pinMode(enablePin, OUTPUT);
if (distance < 10) { pinMode(motorIn1, OUTPUT);
myServo.write(90); // Mover el servo a 90 grados pinMode(motorIn2, OUTPUT);

// Avanzar el motor DC // Habilitar el motor


digitalWrite(motorIn1, HIGH); digitalWrite(enablePin, HIGH);
digitalWrite(motorIn2, LOW);
// Inicialización del Serial
Serial.begin(9600);
} else if (distance >= 10 && distance < 20) { }
myServo.write(45); // Mover el servo a 45 grados
void loop() {
// Retroceder el motor DC // Medir la distancia
digitalWrite(motorIn1, LOW); digitalWrite(trigPin, LOW);
digitalWrite(motorIn2, HIGH); delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
} delayMicroseconds(10);
else { digitalWrite(trigPin, LOW);
myServo.write(0); // Poner el servo en posición 0
grados duration = pulseIn(echoPin, HIGH);
// Apagar el motor DC distance = duration * 0.034 / 2;
digitalWrite(motorIn1, LOW);
digitalWrite(motorIn2, LOW); // Mostrar la distancia en el LCD
} lcd.setCursor(0, 1);
lcd.print(distance);
delay(500); // Pequeña pausa antes de la siguiente lcd.print(" cm ");
medición
} // Condición para el servo y motor DC
if (distance < 10) {
#include <LiquidCrystal.h> myServo.write(90); // Mover el servo a 90 grados
#include <Servo.h>
// Avanzar el motor DC
// Configuración del LCD digitalWrite(motorIn1, HIGH);
LiquidCrystal lcd(13, 12, 5, 4, 3, 2); digitalWrite(motorIn2, LOW);

// Configuración del Servo


Servo myServo;

// Pines del HC-SR04 } else if (distance >= 10 && distance < 20) {
myServo.write(45); // Mover el servo a 45 grados
void loop() {
// Retroceder el motor DC // Medir la distancia
digitalWrite(motorIn1, LOW); digitalWrite(trigPin, LOW);
digitalWrite(motorIn2, HIGH); delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
} delayMicroseconds(10);
else { digitalWrite(trigPin, LOW);
myServo.write(0); // Poner el servo en posición 0
grados duration = pulseIn(echoPin, HIGH);
// Apagar el motor DC distance = duration * 0.034 / 2;
digitalWrite(motorIn1, LOW);
digitalWrite(motorIn2, LOW); // Mostrar la distancia en el LCD
} lcd.setCursor(0, 1);
lcd.print(distance);
delay(500); // Pequeña pausa antes de la siguiente lcd.print(" cm ");
medición
} // Condición para el servo y motor DC
if (distance < 10) {
#include <LiquidCrystal.h> myServo.write(90); // Mover el servo a 90 grados
#include <Servo.h>
// Avanzar el motor DC
// Configuración del LCD digitalWrite(motorIn1, HIGH);
LiquidCrystal lcd(13, 12, 5, 4, 3, 2); digitalWrite(motorIn2, LOW);

// Configuración del Servo


Servo myServo;

// Pines del HC-SR04 } else if (distance >= 10 && distance < 20) {
const int trigPin = 9; myServo.write(45); // Mover el servo a 45 grados
const int echoPin = 10;
// Retroceder el motor DC
// Pines del Puente H para el motor DC digitalWrite(motorIn1, LOW);
const int enablePin = 6; digitalWrite(motorIn2, HIGH);
const int motorIn1 = 7; //Izquierda
const int motorIn2 = 8; //Derecha }
else {
// Variables para el sensor de distancia myServo.write(0); // Poner el servo en posición 0
long duration; grados
int distance; // Apagar el motor DC
digitalWrite(motorIn1, LOW);
void setup() { digitalWrite(motorIn2, LOW);
// Inicialización del LCD }
lcd.begin(16, 2);
lcd.print("Distancia:"); delay(500); // Pequeña pausa antes de la siguiente
medición
// Inicialización del Servo }
myServo.attach(11);
myServo.write(0); // Posición inicial del servo #include <LiquidCrystal.h>
#include <Servo.h>
// Inicialización del sensor de distancia
pinMode(trigPin, OUTPUT); // Configuración del LCD
pinMode(echoPin, INPUT); LiquidCrystal lcd(13, 12, 5, 4, 3, 2);

// Inicialización del puente H // Configuración del Servo


pinMode(enablePin, OUTPUT); Servo myServo;
pinMode(motorIn1, OUTPUT);
pinMode(motorIn2, OUTPUT); // Pines del HC-SR04
const int trigPin = 9;
// Habilitar el motor const int echoPin = 10;
digitalWrite(enablePin, HIGH);
// Pines del Puente H para el motor DC
// Inicialización del Serial const int enablePin = 6;
Serial.begin(9600); const int motorIn1 = 7; //Izquierda
} const int motorIn2 = 8; //Derecha
else {
// Variables para el sensor de distancia myServo.write(0); // Poner el servo en posición 0
long duration; grados
int distance; // Apagar el motor DC
digitalWrite(motorIn1, LOW);
void setup() { digitalWrite(motorIn2, LOW);
// Inicialización del LCD }
lcd.begin(16, 2);
lcd.print("Distancia:"); delay(500); // Pequeña pausa antes de la siguiente
medición
// Inicialización del Servo }
myServo.attach(11);
myServo.write(0); // Posición inicial del servo #include <LiquidCrystal.h>
#include <Servo.h>
// Inicialización del sensor de distancia
pinMode(trigPin, OUTPUT); // Configuración del LCD
pinMode(echoPin, INPUT); LiquidCrystal lcd(13, 12, 5, 4, 3, 2);

// Inicialización del puente H // Configuración del Servo


pinMode(enablePin, OUTPUT); Servo myServo;
pinMode(motorIn1, OUTPUT);
pinMode(motorIn2, OUTPUT); // Pines del HC-SR04
const int trigPin = 9;
// Habilitar el motor const int echoPin = 10;
digitalWrite(enablePin, HIGH);
// Pines del Puente H para el motor DC
// Inicialización del Serial const int enablePin = 6;
Serial.begin(9600); const int motorIn1 = 7; //Izquierda
} const int motorIn2 = 8; //Derecha

void loop() { // Variables para el sensor de distancia


// Medir la distancia long duration;
digitalWrite(trigPin, LOW); int distance;
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); void setup() {
delayMicroseconds(10); // Inicialización del LCD
digitalWrite(trigPin, LOW); lcd.begin(16, 2);
lcd.print("Distancia:");
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2; // Inicialización del Servo
myServo.attach(11);
// Mostrar la distancia en el LCD myServo.write(0); // Posición inicial del servo
lcd.setCursor(0, 1);
lcd.print(distance); // Inicialización del sensor de distancia
lcd.print(" cm "); pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Condición para el servo y motor DC
if (distance < 10) { // Inicialización del puente H
myServo.write(90); // Mover el servo a 90 grados pinMode(enablePin, OUTPUT);
pinMode(motorIn1, OUTPUT);
// Avanzar el motor DC pinMode(motorIn2, OUTPUT);
digitalWrite(motorIn1, HIGH);
digitalWrite(motorIn2, LOW); // Habilitar el motor
digitalWrite(enablePin, HIGH);

// Inicialización del Serial


Serial.begin(9600);
} else if (distance >= 10 && distance < 20) { }
myServo.write(45); // Mover el servo a 45 grados
void loop() {
// Retroceder el motor DC // Medir la distancia
digitalWrite(motorIn1, LOW); digitalWrite(trigPin, LOW);
digitalWrite(motorIn2, HIGH); delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
} delayMicroseconds(10);
digitalWrite(trigPin, LOW); lcd.begin(16, 2);
lcd.print("Distancia:");
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2; // Inicialización del Servo
myServo.attach(11);
// Mostrar la distancia en el LCD myServo.write(0); // Posición inicial del servo
lcd.setCursor(0, 1);
lcd.print(distance); // Inicialización del sensor de distancia
lcd.print(" cm "); pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Condición para el servo y motor DC
if (distance < 10) { // Inicialización del puente H
myServo.write(90); // Mover el servo a 90 grados pinMode(enablePin, OUTPUT);
pinMode(motorIn1, OUTPUT);
// Avanzar el motor DC pinMode(motorIn2, OUTPUT);
digitalWrite(motorIn1, HIGH);
digitalWrite(motorIn2, LOW); // Habilitar el motor
digitalWrite(enablePin, HIGH);

// Inicialización del Serial


Serial.begin(9600);
} else if (distance >= 10 && distance < 20) { }
myServo.write(45); // Mover el servo a 45 grados
void loop() {
// Retroceder el motor DC // Medir la distancia
digitalWrite(motorIn1, LOW); digitalWrite(trigPin, LOW);
digitalWrite(motorIn2, HIGH); delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
} delayMicroseconds(10);
else { digitalWrite(trigPin, LOW);
myServo.write(0); // Poner el servo en posición 0
grados duration = pulseIn(echoPin, HIGH);
// Apagar el motor DC distance = duration * 0.034 / 2;
digitalWrite(motorIn1, LOW);
digitalWrite(motorIn2, LOW); // Mostrar la distancia en el LCD
} lcd.setCursor(0, 1);
lcd.print(distance);
delay(500); // Pequeña pausa antes de la siguiente lcd.print(" cm ");
medición
} // Condición para el servo y motor DC
if (distance < 10) {
#include <LiquidCrystal.h> myServo.write(90); // Mover el servo a 90 grados
#include <Servo.h>
// Avanzar el motor DC
// Configuración del LCD digitalWrite(motorIn1, HIGH);
LiquidCrystal lcd(13, 12, 5, 4, 3, 2); digitalWrite(motorIn2, LOW);

// Configuración del Servo


Servo myServo;

// Pines del HC-SR04 } else if (distance >= 10 && distance < 20) {
const int trigPin = 9; myServo.write(45); // Mover el servo a 45 grados
const int echoPin = 10;
// Retroceder el motor DC
// Pines del Puente H para el motor DC digitalWrite(motorIn1, LOW);
const int enablePin = 6; digitalWrite(motorIn2, HIGH);
const int motorIn1 = 7; //Izquierda
const int motorIn2 = 8; //Derecha }
else {
// Variables para el sensor de distancia myServo.write(0); // Poner el servo en posición 0
long duration; grados
int distance; // Apagar el motor DC
digitalWrite(motorIn1, LOW);
void setup() { digitalWrite(motorIn2, LOW);
// Inicialización del LCD }
lcd.print(distance);
delay(500); // Pequeña pausa antes de la siguiente lcd.print(" cm ");
medición
} // Condición para el servo y motor DC
if (distance < 10) {
#include <LiquidCrystal.h> myServo.write(90); // Mover el servo a 90 grados
#include <Servo.h>
// Avanzar el motor DC
// Configuración del LCD digitalWrite(motorIn1, HIGH);
LiquidCrystal lcd(13, 12, 5, 4, 3, 2); digitalWrite(motorIn2, LOW);

// Configuración del Servo


Servo myServo;

// Pines del HC-SR04 } else if (distance >= 10 && distance < 20) {
const int trigPin = 9; myServo.write(45); // Mover el servo a 45 grados
const int echoPin = 10;
// Retroceder el motor DC
// Pines del Puente H para el motor DC digitalWrite(motorIn1, LOW);
const int enablePin = 6; digitalWrite(motorIn2, HIGH);
const int motorIn1 = 7; //Izquierda
const int motorIn2 = 8; //Derecha }
else {
// Variables para el sensor de distancia myServo.write(0); // Poner el servo en posición 0
long duration; grados
int distance; // Apagar el motor DC
digitalWrite(motorIn1, LOW);
void setup() { digitalWrite(motorIn2, LOW);
// Inicialización del LCD }
lcd.begin(16, 2);
lcd.print("Distancia:"); delay(500); // Pequeña pausa antes de la siguiente
medición
// Inicialización del Servo }
myServo.attach(11);
myServo.write(0); // Posición inicial del servo #include <LiquidCrystal.h>
#include <Servo.h>
// Inicialización del sensor de distancia
pinMode(trigPin, OUTPUT); // Configuración del LCD
pinMode(echoPin, INPUT); LiquidCrystal lcd(13, 12, 5, 4, 3, 2);

// Inicialización del puente H // Configuración del Servo


pinMode(enablePin, OUTPUT); Servo myServo;
pinMode(motorIn1, OUTPUT);
pinMode(motorIn2, OUTPUT); // Pines del HC-SR04
const int trigPin = 9;
// Habilitar el motor const int echoPin = 10;
digitalWrite(enablePin, HIGH);
// Pines del Puente H para el motor DC
// Inicialización del Serial const int enablePin = 6;
Serial.begin(9600); const int motorIn1 = 7; //Izquierda
} const int motorIn2 = 8; //Derecha

void loop() { // Variables para el sensor de distancia


// Medir la distancia long duration;
digitalWrite(trigPin, LOW); int distance;
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); void setup() {
delayMicroseconds(10); // Inicialización del LCD
digitalWrite(trigPin, LOW); lcd.begin(16, 2);
lcd.print("Distancia:");
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2; // Inicialización del Servo
myServo.attach(11);
// Mostrar la distancia en el LCD myServo.write(0); // Posición inicial del servo
lcd.setCursor(0, 1);
// Inicialización del sensor de distancia #include <Servo.h>
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT); // Configuración del LCD
LiquidCrystal lcd(13, 12, 5, 4, 3, 2);
// Inicialización del puente H
pinMode(enablePin, OUTPUT); // Configuración del Servo
pinMode(motorIn1, OUTPUT); Servo myServo;
pinMode(motorIn2, OUTPUT);
// Pines del HC-SR04
// Habilitar el motor const int trigPin = 9;
digitalWrite(enablePin, HIGH); const int echoPin = 10;

// Inicialización del Serial // Pines del Puente H para el motor DC


Serial.begin(9600); const int enablePin = 6;
} const int motorIn1 = 7; //Izquierda
const int motorIn2 = 8; //Derecha
void loop() {
// Medir la distancia // Variables para el sensor de distancia
digitalWrite(trigPin, LOW); long duration;
delayMicroseconds(2); int distance;
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); void setup() {
digitalWrite(trigPin, LOW); // Inicialización del LCD
lcd.begin(16, 2);
duration = pulseIn(echoPin, HIGH); lcd.print("Distancia:");
distance = duration * 0.034 / 2;
// Inicialización del Servo
// Mostrar la distancia en el LCD myServo.attach(11);
lcd.setCursor(0, 1); myServo.write(0); // Posición inicial del servo
lcd.print(distance);
lcd.print(" cm "); // Inicialización del sensor de distancia
pinMode(trigPin, OUTPUT);
// Condición para el servo y motor DC pinMode(echoPin, INPUT);
if (distance < 10) {
myServo.write(90); // Mover el servo a 90 grados // Inicialización del puente H
pinMode(enablePin, OUTPUT);
// Avanzar el motor DC pinMode(motorIn1, OUTPUT);
digitalWrite(motorIn1, HIGH); pinMode(motorIn2, OUTPUT);
digitalWrite(motorIn2, LOW);
// Habilitar el motor
digitalWrite(enablePin, HIGH);

// Inicialización del Serial


} else if (distance >= 10 && distance < 20) { Serial.begin(9600);
myServo.write(45); // Mover el servo a 45 grados }

// Retroceder el motor DC void loop() {


digitalWrite(motorIn1, LOW); // Medir la distancia
digitalWrite(motorIn2, HIGH); digitalWrite(trigPin, LOW);
delayMicroseconds(2);
} digitalWrite(trigPin, HIGH);
else { delayMicroseconds(10);
myServo.write(0); // Poner el servo en posición 0 digitalWrite(trigPin, LOW);
grados
// Apagar el motor DC duration = pulseIn(echoPin, HIGH);
digitalWrite(motorIn1, LOW); distance = duration * 0.034 / 2;
digitalWrite(motorIn2, LOW);
} // Mostrar la distancia en el LCD
lcd.setCursor(0, 1);
delay(500); // Pequeña pausa antes de la siguiente lcd.print(distance);
medición lcd.print(" cm ");
}
// Condición para el servo y motor DC
if (distance < 10) {
#include <LiquidCrystal.h> myServo.write(90); // Mover el servo a 90 grados
pinMode(motorIn1, OUTPUT);
// Avanzar el motor DC pinMode(motorIn2, OUTPUT);
digitalWrite(motorIn1, HIGH);
digitalWrite(motorIn2, LOW); // Habilitar el motor
digitalWrite(enablePin, HIGH);

// Inicialización del Serial


Serial.begin(9600);
} else if (distance >= 10 && distance < 20) { }
myServo.write(45); // Mover el servo a 45 grados
void loop() {
// Retroceder el motor DC // Medir la distancia
digitalWrite(motorIn1, LOW); digitalWrite(trigPin, LOW);
digitalWrite(motorIn2, HIGH); delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
} delayMicroseconds(10);
else { digitalWrite(trigPin, LOW);
myServo.write(0); // Poner el servo en posición 0
grados duration = pulseIn(echoPin, HIGH);
// Apagar el motor DC distance = duration * 0.034 / 2;
digitalWrite(motorIn1, LOW);
digitalWrite(motorIn2, LOW); // Mostrar la distancia en el LCD
} lcd.setCursor(0, 1);
lcd.print(distance);
delay(500); // Pequeña pausa antes de la siguiente lcd.print(" cm ");
medición
} // Condición para el servo y motor DC
if (distance < 10) {
#include <LiquidCrystal.h> myServo.write(90); // Mover el servo a 90 grados
#include <Servo.h>
// Avanzar el motor DC
// Configuración del LCD digitalWrite(motorIn1, HIGH);
LiquidCrystal lcd(13, 12, 5, 4, 3, 2); digitalWrite(motorIn2, LOW);

// Configuración del Servo


Servo myServo;

// Pines del HC-SR04 } else if (distance >= 10 && distance < 20) {
const int trigPin = 9; myServo.write(45); // Mover el servo a 45 grados
const int echoPin = 10;
// Retroceder el motor DC
// Pines del Puente H para el motor DC digitalWrite(motorIn1, LOW);
const int enablePin = 6; digitalWrite(motorIn2, HIGH);
const int motorIn1 = 7; //Izquierda
const int motorIn2 = 8; //Derecha }
else {
// Variables para el sensor de distancia myServo.write(0); // Poner el servo en posición 0
long duration; grados
int distance; // Apagar el motor DC
digitalWrite(motorIn1, LOW);
void setup() { digitalWrite(motorIn2, LOW);
// Inicialización del LCD }
lcd.begin(16, 2);
lcd.print("Distancia:"); delay(500); // Pequeña pausa antes de la siguiente
medición
// Inicialización del Servo }
myServo.attach(11);
myServo.write(0); // Posición inicial del servo
#include <LiquidCrystal.h>
// Inicialización del sensor de distancia #include <Servo.h>
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT); // Configuración del LCD
LiquidCrystal lcd(13, 12, 5, 4, 3, 2);
// Inicialización del puente H
pinMode(enablePin, OUTPUT); // Configuración del Servo
Servo myServo;

// Pines del HC-SR04 } else if (distance >= 10 && distance < 20) {
const int trigPin = 9; myServo.write(45); // Mover el servo a 45 grados
const int echoPin = 10;
// Retroceder el motor DC
// Pines del Puente H para el motor DC digitalWrite(motorIn1, LOW);
const int enablePin = 6; digitalWrite(motorIn2, HIGH);
const int motorIn1 = 7; //Izquierda
const int motorIn2 = 8; //Derecha }
else {
// Variables para el sensor de distancia myServo.write(0); // Poner el servo en posición 0
long duration; grados
int distance; // Apagar el motor DC
digitalWrite(motorIn1, LOW);
void setup() { digitalWrite(motorIn2, LOW);
// Inicialización del LCD }
lcd.begin(16, 2);
lcd.print("Distancia:"); delay(500); // Pequeña pausa antes de la siguiente
medición
// Inicialización del Servo }
myServo.attach(11);
myServo.write(0); // Posición inicial del servo #include <LiquidCrystal.h>
#include <Servo.h>
// Inicialización del sensor de distancia
pinMode(trigPin, OUTPUT); // Configuración del LCD
pinMode(echoPin, INPUT); LiquidCrystal lcd(13, 12, 5, 4, 3, 2);

// Inicialización del puente H // Configuración del Servo


pinMode(enablePin, OUTPUT); Servo myServo;
pinMode(motorIn1, OUTPUT);
pinMode(motorIn2, OUTPUT); // Pines del HC-SR04
const int trigPin = 9;
// Habilitar el motor const int echoPin = 10;
digitalWrite(enablePin, HIGH);
// Pines del Puente H para el motor DC
// Inicialización del Serial const int enablePin = 6;
Serial.begin(9600); const int motorIn1 = 7; //Izquierda
} const int motorIn2 = 8; //Derecha

void loop() { // Variables para el sensor de distancia


// Medir la distancia long duration;
digitalWrite(trigPin, LOW); int distance;
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); void setup() {
delayMicroseconds(10); // Inicialización del LCD
digitalWrite(trigPin, LOW); lcd.begin(16, 2);
lcd.print("Distancia:");
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2; // Inicialización del Servo
myServo.attach(11);
// Mostrar la distancia en el LCD myServo.write(0); // Posición inicial del servo
lcd.setCursor(0, 1);
lcd.print(distance); // Inicialización del sensor de distancia
lcd.print(" cm "); pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Condición para el servo y motor DC
if (distance < 10) { // Inicialización del puente H
myServo.write(90); // Mover el servo a 90 grados pinMode(enablePin, OUTPUT);
pinMode(motorIn1, OUTPUT);
// Avanzar el motor DC pinMode(motorIn2, OUTPUT);
digitalWrite(motorIn1, HIGH);
digitalWrite(motorIn2, LOW); // Habilitar el motor
digitalWrite(enablePin, HIGH);
// Inicialización del Serial // Pines del Puente H para el motor DC
Serial.begin(9600); const int enablePin = 6;
} const int motorIn1 = 7; //Izquierda
const int motorIn2 = 8; //Derecha
void loop() {
// Medir la distancia // Variables para el sensor de distancia
digitalWrite(trigPin, LOW); long duration;
delayMicroseconds(2); int distance;
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); void setup() {
digitalWrite(trigPin, LOW); // Inicialización del LCD
lcd.begin(16, 2);
duration = pulseIn(echoPin, HIGH); lcd.print("Distancia:");
distance = duration * 0.034 / 2;
// Inicialización del Servo
// Mostrar la distancia en el LCD myServo.attach(11);
lcd.setCursor(0, 1); myServo.write(0); // Posición inicial del servo
lcd.print(distance);
lcd.print(" cm "); // Inicialización del sensor de distancia
pinMode(trigPin, OUTPUT);
// Condición para el servo y motor DC pinMode(echoPin, INPUT);
if (distance < 10) {
myServo.write(90); // Mover el servo a 90 grados // Inicialización del puente H
pinMode(enablePin, OUTPUT);
// Avanzar el motor DC pinMode(motorIn1, OUTPUT);
digitalWrite(motorIn1, HIGH); pinMode(motorIn2, OUTPUT);
digitalWrite(motorIn2, LOW);
// Habilitar el motor
digitalWrite(enablePin, HIGH);

// Inicialización del Serial


} else if (distance >= 10 && distance < 20) { Serial.begin(9600);
myServo.write(45); // Mover el servo a 45 grados }

// Retroceder el motor DC void loop() {


digitalWrite(motorIn1, LOW); // Medir la distancia
digitalWrite(motorIn2, HIGH); digitalWrite(trigPin, LOW);
delayMicroseconds(2);
} digitalWrite(trigPin, HIGH);
else { delayMicroseconds(10);
myServo.write(0); // Poner el servo en posición 0 digitalWrite(trigPin, LOW);
grados
// Apagar el motor DC duration = pulseIn(echoPin, HIGH);
digitalWrite(motorIn1, LOW); distance = duration * 0.034 / 2;
digitalWrite(motorIn2, LOW);
} // Mostrar la distancia en el LCD
lcd.setCursor(0, 1);
delay(500); // Pequeña pausa antes de la siguiente lcd.print(distance);
medición lcd.print(" cm ");
}
// Condición para el servo y motor DC
if (distance < 10) {
#include <LiquidCrystal.h> myServo.write(90); // Mover el servo a 90 grados
#include <Servo.h>
// Avanzar el motor DC
// Configuración del LCD digitalWrite(motorIn1, HIGH);
LiquidCrystal lcd(13, 12, 5, 4, 3, 2); digitalWrite(motorIn2, LOW);

// Configuración del Servo


Servo myServo;

// Pines del HC-SR04 } else if (distance >= 10 && distance < 20) {
const int trigPin = 9; myServo.write(45); // Mover el servo a 45 grados
const int echoPin = 10;
// Retroceder el motor DC
digitalWrite(motorIn1, LOW); // Medir la distancia
digitalWrite(motorIn2, HIGH); digitalWrite(trigPin, LOW);
delayMicroseconds(2);
} digitalWrite(trigPin, HIGH);
else { delayMicroseconds(10);
myServo.write(0); // Poner el servo en posición 0 digitalWrite(trigPin, LOW);
grados
// Apagar el motor DC duration = pulseIn(echoPin, HIGH);
digitalWrite(motorIn1, LOW); distance = duration * 0.034 / 2;
digitalWrite(motorIn2, LOW);
} // Mostrar la distancia en el LCD
lcd.setCursor(0, 1);
delay(500); // Pequeña pausa antes de la siguiente lcd.print(distance);
medición lcd.print(" cm ");
}
// Condición para el servo y motor DC
if (distance < 10) {
#include <LiquidCrystal.h> myServo.write(90); // Mover el servo a 90 grados
#include <Servo.h>
// Avanzar el motor DC
// Configuración del LCD digitalWrite(motorIn1, HIGH);
LiquidCrystal lcd(13, 12, 5, 4, 3, 2); digitalWrite(motorIn2, LOW);

// Configuración del Servo


Servo myServo;

// Pines del HC-SR04 } else if (distance >= 10 && distance < 20) {
const int trigPin = 9; myServo.write(45); // Mover el servo a 45 grados
const int echoPin = 10;
// Retroceder el motor DC
// Pines del Puente H para el motor DC digitalWrite(motorIn1, LOW);
const int enablePin = 6; digitalWrite(motorIn2, HIGH);
const int motorIn1 = 7; //Izquierda
const int motorIn2 = 8; //Derecha }
else {
// Variables para el sensor de distancia myServo.write(0); // Poner el servo en posición 0
long duration; grados
int distance; // Apagar el motor DC
digitalWrite(motorIn1, LOW);
void setup() { digitalWrite(motorIn2, LOW);
// Inicialización del LCD }
lcd.begin(16, 2);
lcd.print("Distancia:"); delay(500); // Pequeña pausa antes de la siguiente
medición
// Inicialización del Servo }
myServo.attach(11);
myServo.write(0); // Posición inicial del servo #include <LiquidCrystal.h>
#include <Servo.h>
// Inicialización del sensor de distancia
pinMode(trigPin, OUTPUT); // Configuración del LCD
pinMode(echoPin, INPUT); LiquidCrystal lcd(13, 12, 5, 4, 3, 2);

// Inicialización del puente H // Configuración del Servo


pinMode(enablePin, OUTPUT); Servo myServo;
pinMode(motorIn1, OUTPUT);
pinMode(motorIn2, OUTPUT); // Pines del HC-SR04
const int trigPin = 9;
// Habilitar el motor const int echoPin = 10;
digitalWrite(enablePin, HIGH);
// Pines del Puente H para el motor DC
// Inicialización del Serial const int enablePin = 6;
Serial.begin(9600); const int motorIn1 = 7; //Izquierda
} const int motorIn2 = 8; //Derecha

void loop() { // Variables para el sensor de distancia


long duration; myServo.write(0); // Poner el servo en posición 0
int distance; grados
// Apagar el motor DC
void setup() { digitalWrite(motorIn1, LOW);
// Inicialización del LCD digitalWrite(motorIn2, LOW);
lcd.begin(16, 2); }
lcd.print("Distancia:");
delay(500); // Pequeña pausa antes de la siguiente
// Inicialización del Servo medición
myServo.attach(11); }
myServo.write(0); // Posición inicial del servo
#include <LiquidCrystal.h>
// Inicialización del sensor de distancia #include <Servo.h>
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT); // Configuración del LCD
LiquidCrystal lcd(13, 12, 5, 4, 3, 2);
// Inicialización del puente H
pinMode(enablePin, OUTPUT); // Configuración del Servo
pinMode(motorIn1, OUTPUT); Servo myServo;
pinMode(motorIn2, OUTPUT);
// Pines del HC-SR04
// Habilitar el motor const int trigPin = 9;
digitalWrite(enablePin, HIGH); const int echoPin = 10;

// Inicialización del Serial // Pines del Puente H para el motor DC


Serial.begin(9600); const int enablePin = 6;
} const int motorIn1 = 7; //Izquierda
const int motorIn2 = 8; //Derecha
void loop() {
// Medir la distancia // Variables para el sensor de distancia
digitalWrite(trigPin, LOW); long duration;
delayMicroseconds(2); int distance;
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); void setup() {
digitalWrite(trigPin, LOW); // Inicialización del LCD
lcd.begin(16, 2);
duration = pulseIn(echoPin, HIGH); lcd.print("Distancia:");
distance = duration * 0.034 / 2;
// Inicialización del Servo
// Mostrar la distancia en el LCD myServo.attach(11);
lcd.setCursor(0, 1); myServo.write(0); // Posición inicial del servo
lcd.print(distance);
lcd.print(" cm "); // Inicialización del sensor de distancia
pinMode(trigPin, OUTPUT);
// Condición para el servo y motor DC pinMode(echoPin, INPUT);
if (distance < 10) {
myServo.write(90); // Mover el servo a 90 grados // Inicialización del puente H
pinMode(enablePin, OUTPUT);
// Avanzar el motor DC pinMode(motorIn1, OUTPUT);
digitalWrite(motorIn1, HIGH); pinMode(motorIn2, OUTPUT);
digitalWrite(motorIn2, LOW);
// Habilitar el motor
digitalWrite(enablePin, HIGH);

// Inicialización del Serial


} else if (distance >= 10 && distance < 20) { Serial.begin(9600);
myServo.write(45); // Mover el servo a 45 grados }

// Retroceder el motor DC void loop() {


digitalWrite(motorIn1, LOW); // Medir la distancia
digitalWrite(motorIn2, HIGH); digitalWrite(trigPin, LOW);
delayMicroseconds(2);
} digitalWrite(trigPin, HIGH);
else { delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;

// Mostrar la distancia en el LCD


lcd.setCursor(0, 1);
lcd.print(distance);
lcd.print(" cm ");

// Condición para el servo y motor DC


if (distance < 10) {
myServo.write(90); // Mover el servo a 90 grados

// Avanzar el motor DC
digitalWrite(motorIn1, HIGH);
digitalWrite(motorIn2, LOW);

} else if (distance >= 10 && distance < 20) {


myServo.write(45); // Mover el servo a 45 grados

// Retroceder el motor DC
digitalWrite(motorIn1, LOW);
digitalWrite(motorIn2, HIGH);

}
else {
myServo.write(0); // Poner el servo en posición 0
grados
// Apagar el motor DC
digitalWrite(motorIn1, LOW);
digitalWrite(motorIn2, LOW);
}

delay(500); // Pequeña pausa antes de la siguiente


medición
}

También podría gustarte