0% found this document useful (0 votes)
3 views

Proyectos Con Arduino

The document contains multiple C++ code snippets for various projects that utilize ultrasonic sensors to control different devices. Projects include a light activator based on distance, an intelligent traffic light for pedestrian crossings, a smart mug lid, a cane with a sensor and buzzer, a water dispenser, a speed-reducing car, and a light activation system when an object is within 20 cm. Each project demonstrates how to read distances using ultrasonic sensors and perform actions based on the measured distance.

Uploaded by

pipemoyita
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Proyectos Con Arduino

The document contains multiple C++ code snippets for various projects that utilize ultrasonic sensors to control different devices. Projects include a light activator based on distance, an intelligent traffic light for pedestrian crossings, a smart mug lid, a cane with a sensor and buzzer, a water dispenser, a speed-reducing car, and a light activation system when an object is within 20 cm. Each project demonstrates how to read distances using ultrasonic sensors and perform actions based on the measured distance.

Uploaded by

pipemoyita
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

1.

ACTIVADOR DE LUZ SEGÚN


DISTANCIA

// C++ code
//
int dist = 0;

long readUltrasonicDistance(int triggerPin, int echoPin)


{
pinMode(triggerPin, OUTPUT); // Clear the trigger
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
// Sets the trigger pin to HIGH state for 10 microseconds
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
// Reads the echo pin, and returns the sound wave travel time in microseconds
return pulseIn(echoPin, HIGH);
}

void setup()
{
pinMode(7, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
pinMode(4, OUTPUT);
pinMode(3, OUTPUT);
pinMode(2, OUTPUT);
pinMode(10, OUTPUT);
}
void loop()
{
dist = 0.01723 * readUltrasonicDistance(8, 9);
if (dist > 40) {
digitalWrite(7, HIGH);
digitalWrite(6, HIGH);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(3, LOW);
digitalWrite(2, LOW);
digitalWrite(10, LOW);
} else {
if (dist < 40 && dist >= 20) {
digitalWrite(7, LOW);
digitalWrite(6, LOW);
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
digitalWrite(3, LOW);
digitalWrite(2, LOW);
digitalWrite(10, LOW);
} else {
if (dist < 20) {
digitalWrite(7, LOW);
digitalWrite(6, LOW);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(3, HIGH);
digitalWrite(2, HIGH);
digitalWrite(10, HIGH);
}
}
}
delay(10); // Delay a little bit to improve simulation performance
}

2. SEMAFORO INTELIGENTE. EL
PASO PEATONAL SOLO SE
ACTIVA CUANDO HAY
PEATONES

// C++ code
//
int dist = 0;

long readUltrasonicDistance(int triggerPin, int echoPin)


{
pinMode(triggerPin, OUTPUT); // Clear the trigger
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
// Sets the trigger pin to HIGH state for 10 microseconds
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
// Reads the echo pin, and returns the sound wave travel time in microseconds
return pulseIn(echoPin, HIGH);
}

void setup()
{
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
}
void loop()
{
dist = 0.01723 * readUltrasonicDistance(8, 9);
if (dist < 20) {
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
delay(5000); // Wait for 5000 millisecond(s)
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
delay(2000); // Wait for 2000 millisecond(s)
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
delay(7000); // Wait for 7000 millisecond(s)
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
delay(2000); // Wait for 2000 millisecond(s)
} else {
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
}
delay(7000); // Wait for 7000 millisecond(s)
}

3. CANECA INTELIGENTE – TAPA SE


ACTIVA POR DISTANCIA
// C++ code
//
#include <Servo.h>

int DIS = 0;

long readUltrasonicDistance(int triggerPin, int echoPin)


{
pinMode(triggerPin, OUTPUT); // Clear the trigger
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
// Sets the trigger pin to HIGH state for 10 microseconds
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
// Reads the echo pin, and returns the sound wave travel time in microseconds
return pulseIn(echoPin, HIGH);
}

Servo servo_3;
void setup()
{
servo_3.attach(3, 500, 2500);
pinMode(0, OUTPUT);
}

void loop()
{
DIS = 0.01723 * readUltrasonicDistance(4, 5);
if (DIS < 40) {
servo_3.write(150);
digitalWrite(0, HIGH);
} else {
servo_3.write(0);
digitalWrite(0, LOW);
}
delay(10); // Delay a little bit to improve simulation performance
}

4. BASTON CON SENSOR+BUZZER


// C++ code
//
int Dist = 0;

long readUltrasonicDistance(int triggerPin, int echoPin)


{
pinMode(triggerPin, OUTPUT); // Clear the trigger
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
// Sets the trigger pin to HIGH state for 10 microseconds
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
// Reads the echo pin, and returns the sound wave travel time in microseconds
return pulseIn(echoPin, HIGH);
}

void setup()
{
pinMode(2, OUTPUT);
}
void loop()
{
Dist = 0.01723 * readUltrasonicDistance(6, 7);
if (Dist <= 40) {
digitalWrite(2, HIGH);
} else {
digitalWrite(2, LOW);
}
delay(10); // Delay a little bit to improve simulation performance
}

5. DISPENSADOR DE AGUA
SENSOR ULTRASONICO+MOTOR
CENTRIFUGA
double fnc_ultrasonic_distance(int _t, int _e){
unsigned long dur=0;
digitalWrite(_t, LOW);
delayMicroseconds(5);
digitalWrite(_t, HIGH);
delayMicroseconds(10);
digitalWrite(_t, LOW);
dur = pulseIn(_e, HIGH, 18000);
if(dur==0)return 999.0;
return (dur/57);
}

void setup()
{
pinMode(8, OUTPUT);
pinMode(9, INPUT);
pinMode(10, OUTPUT);
pinMode(11, INPUT);

digitalWrite(8, LOW);
delay(500);

}
void loop()
{

if ((digitalRead(9) == true)) {
if ((fnc_ultrasonic_distance(10,11) <= 10)) {

digitalWrite(8, LOW);
delay(100);

}
else {
digitalWrite(8, HIGH);

}
else {
digitalWrite(8, HIGH);

6. CARRO REDUCE LA VELOCIDAD


MIENTRAS MAS SE ACERCA
ALGUN OBJETO
#include <Servo.h>

// Pines del sensor ultrasonico


const int trigPin = 9;
const int echoPin = 8;

// Objetos Servo
Servo servo1;
Servo servo2;

// Pines de los servos


const int servoPin1 = 5;
const int servoPin2 = 6;

// Constantes de distancia en cm
const int distance1 = 30;
const int distance2 = 20;
const int distance3 = 10;

// Velocidades de los servos (0 - 180)


int fullSpeed = 180; // Velocidad máxima
int halfSpeed = 90; // Mitad de la velocidad
int quarterSpeed = 45; // Un cuarto de la velocidad
int stopSpeed = 0; // Parar

void setup() {
// Inicializamos el monitor serial
Serial.begin(9600);

// Configuramos los pines del sensor


pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

// Inicializamos los servos


servo1.attach(servoPin1);
servo2.attach(servoPin2);

// Inicialmente ponemos los servos a velocidad máxima


servo1.write(fullSpeed);
servo2.write(fullSpeed);
}

void loop() {
// Medir distancia
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);


distance = duration * 0.034 / 2; // Convertimos el tiempo en distancia

// Mostrar la distancia medida


Serial.print("Distancia: ");
Serial.print(distance);
Serial.println(" cm");
// Ajustar la velocidad de los servos en función de la distancia
if (distance <= distance3) {
// Si está a menos de 10 cm, parar
servo1.write(stopSpeed);
servo2.write(stopSpeed);
} else if (distance <= distance2) {
// Si está a menos de 20 cm, un cuarto de la velocidad
servo1.write(quarterSpeed);
servo2.write(quarterSpeed);
} else if (distance <= distance1) {
// Si está a menos de 30 cm, media velocidad
servo1.write(halfSpeed);
servo2.write(halfSpeed);
} else {
// Si está a más de 30 cm, velocidad completa
servo1.write(fullSpeed);
servo2.write(fullSpeed);
}

// Espera antes de la siguiente lectura


delay(100);
}

7. SE ACTIVA LA LUZ CUANDO SE


ACERCA A X DISTANCIA (20 CM)
// C++ code
//
int DIST = 0;

long readUltrasonicDistance(int triggerPin, int echoPin)


{
pinMode(triggerPin, OUTPUT); // Clear the trigger
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
// Sets the trigger pin to HIGH state for 10 microseconds
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
// Reads the echo pin, and returns the sound wave travel time in microseconds
return pulseIn(echoPin, HIGH);
}

void setup()
{
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
}

void loop()
{
DIST = 0.01723 * readUltrasonicDistance(8, 9);
if (DIST < 20) {
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
} else {
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}
delay(10); // Delay a little bit to improve simulation performance
}

You might also like