Está en la página 1de 20

Facultad de Informática y Ciencias Aplicadas.

Alumno: Jorge Ernesto Portillo Ruano.

Asignatura: Sistemas Digitales.

Catedrático: Ing. Omar Otoniel Flores Cortez

Sección: 01

Actividad. Uso de Distancia de sensor.

Número de Carné: 2932732017.

San Salvador, 14 de diciembre de 2020

a. Objetivos: Aprender a realizar sistemas en Arduino que maneje sensor de distancia.


b. Procedimientos estudiante: Actividad previa:

0. Leer y visualizar el material y clase sobre manejo de sensor HCSR04 Actividades a desarrollar:

1. Demostración: en el simulador TinkerCad - Circuits a. simular y verifique el funcionamiento del


SE del ejemplo HC04 de material de clase Aula Virtual

2. Desafío 1:

a. Hardware: Arduino uno + 16 leds + 16 resistencias 330 + sensor HCSR04

b. Funcionamiento requerido: Semáforo de distancia a 16 leds

c. Requisitos: el mismo del ejemplo anterior pero expandido a 16 leds

d. Queda a libertad: pines a usar, rangos – siempre y cuando se cumpla el requisito de “ver bien”
el funcionamiento de los 16 leds, según cambie la distancia e. Construya el circuito y Diseñe el
código necesario para el funcionamiento requerido f. Simule su funcionamiento - tome video
captura del funcionamiento (30 seg. mínimo), y súbala a YouTube. - A entregar: enlace un único
PDF con: 1.

Sobre el Desafío 1

a. (40%) Enlace de su video – funcionamiento solución b. (40%) Código solución completamente


comentado en todas las líneas

2. (20%) Enlaces de tinkercad de los desafíos 1 Recordando: 2 pts. menos por entrega dentro de
cada 24hrs siguientes a la fecha y hora de entrega.

int distanceThreshold = 0;
int cm = 0;

int inches = 0;

long readUltrasonicDistance(int triggerPin, int echoPin)

pinMode(triggerPin, OUTPUT);

digitalWrite(triggerPin, LOW);

delayMicroseconds(2);

digitalWrite(triggerPin, HIGH);

delayMicroseconds(10);

digitalWrite(triggerPin, LOW);

pinMode(echoPin, INPUT);

return pulseIn(echoPin, HIGH);

void setup()

Serial.begin(9600);

pinMode(2, OUTPUT);

pinMode(3, OUTPUT);

pinMode(4, OUTPUT);

void loop()

distanceThreshold = 350;

cm = 0.01723 * readUltrasonicDistance(7, 6);


inches = (cm / 2.54);

Serial.print(cm);

Serial.print("cm, ");

Serial.print(inches);

Serial.println("in");

if (cm > distanceThreshold)

digitalWrite(2, LOW);

digitalWrite(3, LOW);

digitalWrite(4, LOW);

if (cm <= distanceThreshold && cm > distanceThreshold - 100)

digitalWrite(2, HIGH);

digitalWrite(3, LOW);

digitalWrite(4, LOW);

if (cm <= distanceThreshold - 100 && cm > distanceThreshold - 250)

digitalWrite(2, HIGH);

digitalWrite(3, HIGH);

digitalWrite(4, LOW);

if (cm <= distanceThreshold - 250 && cm > distanceThreshold - 350)

digitalWrite(2, HIGH);
digitalWrite(3, HIGH);

digitalWrite(4, HIGH);

if (cm <= distanceThreshold - 350) {

digitalWrite(2, HIGH);digitalWrite(3, HIGH); digitalWrite(4, HIGH);

delay(100);

Desafío 1: Hardware:
Arduino uno + 16 leds + 16 resistencias 330 + sensor HCSR04. Funcionamiento requerido:
Semáforo de distancia a 16 leds.

https://youtu.be/eq59MDlUW8M

//Desafio

// definicion

int distanceThreshold = 0; // distancia limite

int cm = 0; // distancia en centimetros

int inches = 0; // distancia en pulgadas

long readUltrasonicDistance(int triggerPin, int echoPin)

{
pinMode(triggerPin, OUTPUT); // pin TRG apagado

digitalWrite(triggerPin, LOW);

delayMicroseconds(2);

// Activar pin TRG por 10us

digitalWrite(triggerPin, HIGH);

delayMicroseconds(10);

digitalWrite(triggerPin, LOW);

pinMode(echoPin, INPUT);

// leer el pin ECHO por la respuesta

return pulseIn(echoPin, HIGH);

// configuracion de pines

void setup()//configuracion de pines

{//inicio de la configuracion

Serial.begin(9600);

pinMode(2, OUTPUT);

pinMode(3, OUTPUT);

pinMode(4, OUTPUT);

pinMode(5, OUTPUT);

pinMode(8, OUTPUT);

pinMode(9, OUTPUT);

pinMode(10, OUTPUT);

pinMode(A5, OUTPUT);

pinMode(A4, OUTPUT);

pinMode(A3, OUTPUT);

pinMode(A2, OUTPUT);

pinMode(A1, OUTPUT);

pinMode(A0, OUTPUT);

//fin de la configuración
}

void loop()//loop principal

{ //inicio de loop principal

// define el limite de distancia

distanceThreshold = 350; // define el limite de

cm = 0.01723 * readUltrasonicDistance(13, 12);// lee distancia

inches = (cm / 2.54);// convertirla en pulgadas

Serial.print(cm);

Serial.print("cm, ");

Serial.print(inches);

Serial.println("in");

// activa escala de LEDS

if (cm > distanceThreshold)

digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

digitalWrite(7, LOW);

digitalWrite(6, LOW);

digitalWrite(5, LOW);

digitalWrite(4, LOW);

digitalWrite(3, LOW);

digitalWrite(2, LOW);

digitalWrite(A5, LOW);

digitalWrite(A4, LOW);

digitalWrite(A3, LOW);

digitalWrite(A2, LOW);

digitalWrite(A1, LOW);
digitalWrite(A0, LOW);

//limite de 312cm a 336cm

if (cm <= 336 && cm > 312)

digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

digitalWrite(7, LOW);

digitalWrite(6, LOW);

digitalWrite(5, LOW);

digitalWrite(4, LOW);

digitalWrite(3, LOW);

digitalWrite(2, LOW);

digitalWrite(A5, LOW);

digitalWrite(A4, LOW);

digitalWrite(A3, LOW);

digitalWrite(A2, LOW);

digitalWrite(A1, LOW);

digitalWrite(A0, HIGH);

//limite de 270.4cm a 312cm

if (cm <= 312 && cm > 270.4)

digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, LOW);

digitalWrite(8, LOW);
digitalWrite(7, LOW);

digitalWrite(6, LOW);

digitalWrite(5, LOW);

digitalWrite(4, LOW);

digitalWrite(3, LOW);

digitalWrite(2, LOW);

digitalWrite(A5, LOW);

digitalWrite(A4, LOW);

digitalWrite(A3, LOW);

digitalWrite(A2, LOW);

digitalWrite(A1, HIGH);

digitalWrite(A0, HIGH);

//limite de 270.4cm a 291.2cm

if (cm <=291.2 && cm > 270.4)

digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

digitalWrite(7, LOW);

digitalWrite(6, LOW);

digitalWrite(5, LOW);

digitalWrite(4, LOW);

digitalWrite(3, LOW);

digitalWrite(2, LOW);

digitalWrite(A5, LOW);

digitalWrite(A4, LOW);

digitalWrite(A3, LOW);
digitalWrite(A2, HIGH);

digitalWrite(A1, HIGH);

digitalWrite(A0, HIGH);

//limite de 249.6cm a 270.4cm

if (cm <= 270.4 && cm > 249.6)

digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

digitalWrite(7, LOW);

digitalWrite(6, LOW);

digitalWrite(5, LOW);

digitalWrite(4, LOW);

digitalWrite(3, LOW);

digitalWrite(2, LOW);

digitalWrite(A5, LOW);

digitalWrite(A4, LOW);

digitalWrite(A3, HIGH);

digitalWrite(A2, HIGH);

digitalWrite(A1, HIGH);

digitalWrite(A0, HIGH);

//limite de 228.8cm a 249.6cm

if (cm <= 249.6 && cm > 228.8)

digitalWrite(11, LOW);

digitalWrite(10, LOW);
digitalWrite(9, LOW);

digitalWrite(8, LOW);

digitalWrite(7, LOW);

digitalWrite(6, LOW);

digitalWrite(5, LOW);

digitalWrite(4, LOW);

digitalWrite(3, LOW);

digitalWrite(2, LOW);

digitalWrite(A5, LOW);

digitalWrite(A4, HIGH);

digitalWrite(A3, HIGH);

digitalWrite(A2, HIGH);

digitalWrite(A1, HIGH);

digitalWrite(A0, HIGH);

//limite de 208cm a 228.8cm

if (cm <= 228.8 && cm > 208)

digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

digitalWrite(7, LOW);

digitalWrite(6, LOW);

digitalWrite(5, LOW);

digitalWrite(4, LOW);

digitalWrite(3, LOW);

digitalWrite(2, LOW);

digitalWrite(A5, HIGH);
digitalWrite(A4, HIGH);

digitalWrite(A3, HIGH);

digitalWrite(A2, HIGH);

digitalWrite(A1, HIGH);

digitalWrite(A0, HIGH);

//limite de 187.2cm a 208cm

if (cm <= 208 && cm > 187.2)

digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

digitalWrite(7, LOW);

digitalWrite(6, LOW);

digitalWrite(5, LOW);

digitalWrite(4, LOW);

digitalWrite(3, LOW);

digitalWrite(2, HIGH);

digitalWrite(A5, HIGH);

digitalWrite(A4, HIGH);

digitalWrite(A3, HIGH);

digitalWrite(A2, HIGH);

digitalWrite(A1, HIGH);

digitalWrite(A0, HIGH);

//limite de 166.4cm a 187.2cm

if (cm <= 187.2 && cm > 166.4)

{
digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

digitalWrite(7, LOW);

digitalWrite(6, LOW);

digitalWrite(5, LOW);

digitalWrite(4, LOW);

digitalWrite(3, HIGH);

digitalWrite(2, HIGH);

digitalWrite(A5, HIGH);

digitalWrite(A4, HIGH);

digitalWrite(A3, HIGH);

digitalWrite(A2, HIGH);

digitalWrite(A1, HIGH);

digitalWrite(A0, HIGH);

//limite de 145.6cm a 166.4cm

if (cm <= 166.4 && cm > 145.6)

digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

digitalWrite(7, LOW);

digitalWrite(6, LOW);

digitalWrite(5, LOW);

digitalWrite(4, HIGH);

digitalWrite(3, HIGH);
digitalWrite(2, HIGH);

digitalWrite(A5, HIGH);

digitalWrite(A4, HIGH);

digitalWrite(A3, HIGH);

digitalWrite(A2, HIGH);

digitalWrite(A1, HIGH);

digitalWrite(A0, HIGH);

//limite de 124.8cm a 145.6cm

if (cm <= 145.6 && cm > 124.8)

digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

digitalWrite(7, LOW);

digitalWrite(6, LOW);

digitalWrite(5, HIGH);

digitalWrite(4, HIGH);

digitalWrite(3, HIGH);

digitalWrite(2, HIGH);

digitalWrite(A5, HIGH);

digitalWrite(A4, HIGH);

digitalWrite(A3, HIGH);

digitalWrite(A2, HIGH);

digitalWrite(A1, HIGH);

digitalWrite(A0, HIGH);

//limite de 104cm a 124.8cm


if (cm <= 124.8 && cm > 104)

digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

digitalWrite(7, LOW);

digitalWrite(6, HIGH);

digitalWrite(5, HIGH);

digitalWrite(4, HIGH);

digitalWrite(3, HIGH);

digitalWrite(2, HIGH);

digitalWrite(A5, HIGH);

digitalWrite(A4, HIGH);

digitalWrite(A3, HIGH);

digitalWrite(A2, HIGH);

digitalWrite(A1, HIGH);

digitalWrite(A0, HIGH);

//limite de 83.2cm a 104cm

if (cm <= 104 && cm > 83.2)

digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

digitalWrite(7, HIGH);

digitalWrite(6, HIGH);

digitalWrite(5, HIGH);
digitalWrite(4, HIGH);

digitalWrite(3, HIGH);

digitalWrite(2, HIGH);

digitalWrite(A5, HIGH);

digitalWrite(A4, HIGH);

digitalWrite(A3, HIGH);

digitalWrite(A2, HIGH);

digitalWrite(A1, HIGH);

digitalWrite(A0, HIGH);

//limite de 62.4cm a 83.2cm

if (cm <= 83.2 && cm > 62.4)

digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, LOW);

digitalWrite(8, HIGH);

digitalWrite(7, HIGH);

digitalWrite(6, HIGH);

digitalWrite(5, HIGH);

digitalWrite(4, HIGH);

digitalWrite(3, HIGH);

digitalWrite(2, HIGH);

digitalWrite(A5, HIGH);

digitalWrite(A4, HIGH);

digitalWrite(A3, HIGH);

digitalWrite(A2, HIGH);

digitalWrite(A1, HIGH);

digitalWrite(A0, HIGH);
}

//limite de 41.6cm a 62.4cm

if (cm <= 62.4 && cm > 41.6)

digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, HIGH);

digitalWrite(8, HIGH);

digitalWrite(7, HIGH);

digitalWrite(6, HIGH);

digitalWrite(5, HIGH);

digitalWrite(4, HIGH);

digitalWrite(3, HIGH);

digitalWrite(2, HIGH);

digitalWrite(A5, HIGH);

digitalWrite(A4, HIGH);

digitalWrite(A3, HIGH);

digitalWrite(A2, HIGH);

digitalWrite(A1, HIGH);

digitalWrite(A0, HIGH);

//limite de 20.8cm a 41.6cm

if (cm <= 41.6 && cm > 20.8)

digitalWrite(11, LOW);

digitalWrite(10, HIGH);

digitalWrite(9, HIGH);

digitalWrite(8, HIGH);

digitalWrite(7, HIGH);
digitalWrite(6, HIGH);

digitalWrite(5, HIGH);

digitalWrite(4, HIGH);

digitalWrite(3, HIGH);

digitalWrite(2, HIGH);

digitalWrite(A5, HIGH);

digitalWrite(A4, HIGH);

digitalWrite(A3, HIGH);

digitalWrite(A2, HIGH);

digitalWrite(A1, HIGH);

digitalWrite(A0, HIGH);

//limite 20.8 cm a 2cm

if (cm <= 20.8 && cm > 2)

digitalWrite(11, HIGH);

digitalWrite(10, HIGH);

digitalWrite(9, HIGH);

digitalWrite(8, HIGH);

digitalWrite(7, HIGH);

digitalWrite(6, HIGH);

digitalWrite(5, HIGH);

digitalWrite(4, HIGH);

digitalWrite(3, HIGH);

digitalWrite(2, HIGH);

digitalWrite(A5, HIGH);

digitalWrite(A4, HIGH);

digitalWrite(A3, HIGH);

digitalWrite(A2, HIGH);
digitalWrite(A1, HIGH);

digitalWrite(A0, HIGH);

// fin

También podría gustarte