M1H 287003 281535 272016
M1H 287003 281535 272016
M1H 287003 281535 272016
ENTREGA DE EJERCICIOS
TALLER DE TECNOLOGÍAS – 2022
1)
Código
void setup(){
pinMode(7, OUTPUT);
}
void loop(){
digitalWrite(7, HIGH);
delay(1000);
digitalWrite(7, LOW);
delay(1000);
}
Diagrama
2)
Código
void setup(){
pinMode(8, OUTPUT);
pinMode(7, INPUT);
}
void loop(){
if(digitalRead(7) == HIGH){
digitalWrite(8,HIGH);
}else{
digitalWrite(8,LOW);
}
}
Diagrama
3)
Código
void setup(){
pinMode(8, OUTPUT);
pinMode(7, INPUT);
Serial.begin(9600);
}
void loop(){
if(digitalRead(7) == HIGH){
digitalWrite(8,HIGH);
Serial.println("Presionado");
}else{
digitalWrite(8,LOW);
}
}
Diagrama
4)
Código
void setup(){
pinMode(5, OUTPUT);
Serial.begin(9600);
}
void loop(){
int voltajePote = analogRead(A0);
voltajePote = voltajePote/4;
analogWrite(5,voltajePote);
Serial.println(voltajePote);
}
Diagrama
5)
Código
long distanciaEnCm;
long tiempoTriggEcho;
int Echo = 11;
int Trigg = 12;
void setup(){
pinMode(Trigg, OUTPUT);
pinMode(Echo, INPUT);
Serial.begin(9600);
}
void loop(){
digitalWrite(Trigg,HIGH);
delayMicroseconds(5);
digitalWrite(Trigg,LOW);
delayMicroseconds(5);
tiempoTriggEcho = pulseIn(Echo,HIGH);
distanciaEnCm = int(0.01715*tiempoTriggEcho);
Serial.println("Distancia en cm:");
Serial.println(distanciaEnCm);
delay(1000);
}
Diagrama
6)
Código
long distanciaEnCm;
long tiempoTriggEcho;
int Echo=11;
int Trigg=12;
int rojo = 5;
int amarillo = 6;
int verde = 7;
void setup(){
Serial.begin(9600);
pinMode(Echo, INPUT);
pinMode(Trigg, OUTPUT);
pinMode(rojo, OUTPUT);
pinMode(amarillo, OUTPUT);
pinMode(verde, OUTPUT);
}
void loop(){
digitalWrite(Trigg,HIGH);
delayMicroseconds(1);
digitalWrite(Trigg,LOW);
delayMicroseconds(1);
tiempoTriggEcho=pulseIn(Echo,HIGH);
distanciaEnCm=int(0.01715*tiempoTriggEcho);
Serial.println("Distancia en cm:");
Serial.println(distanciaEnCm);
delay(1000);
if((distanciaEnCm>10)&&(distanciaEnCm<=20)){
digitalWrite(rojo, HIGH);
digitalWrite(amarillo, LOW);
digitalWrite(verde, LOW);
} else if ((distanciaEnCm>20)&&(distanciaEnCm<=30)){
digitalWrite(amarillo, HIGH);
digitalWrite(rojo, LOW);
}else if((distanciaEnCm>30)&&(distanciaEnCm<=40)){
digitalWrite(verde, HIGH);
digitalWrite(amarillo, LOW);
digitalWrite(rojo, LOW);
} else if(distanciaEnCm>40){
digitalWrite(rojo, LOW);
digitalWrite(amarillo, LOW);
digitalWrite(verde, LOW);
} else{
digitalWrite(rojo, HIGH);
digitalWrite(amarillo, HIGH);
digitalWrite(verde, HIGH);
}
}
Diagrama
7)
Código
long distanciaEnCm = 0;
long tiempoTriggEcho;
long aux = 0;
int Trigg = 12;
int Echo = 11;
int rojo = 2;
int verde = 3;
void setup(){
Serial.begin(9600);
pinMode(Echo, INPUT);
pinMode(Trigg, OUTPUT);
pinMode(rojo, OUTPUT);
pinMode(verde, OUTPUT);
}
void loop(){
Serial.println("Distancia en cm:");
Serial.println(distanciaEnCm);
digitalWrite(Trigg,HIGH);
delay(1);
digitalWrite(Trigg,LOW);
tiempoTriggEcho=pulseIn(Echo,HIGH);
distanciaEnCm=int(0.01715*tiempoTriggEcho);
Serial.println("Distancia en cm:");
Serial.println(distanciaEnCm);
Serial.println(aux);
Serial.println("aux");
If (distanciaEnCm == aux){
digitalWrite(rojo,LOW);
digitalWrite(verde, LOW);
Serial.println("Nada");
} else if (distanciaEnCm < aux){
digitalWrite(rojo,HIGH);
digitalWrite(verde,LOW);
Serial.println("rojo");
aux = distanciaEnCm;
} else if (distanciaEnCm > aux){
digitalWrite(rojo,LOW);
digitalWrite(verde,HIGH);
Serial.println("verde");
aux = distanciaEnCm;
}
Serial.println("Distancia en cm:");
Serial.println(distanciaEnCm);
Serial.println(aux);
Serial.println("aux");
delay(3000);
}
Diagrama
8)
Código
long distanciaEnCm = 0;
long tiempoTriggEcho;
int Trigg = 12;
int Echo = 11;
int rojo = 2;
void setup(){
Serial.begin(9600);
pinMode(Echo, INPUT);
pinMode(Trigg, OUTPUT);
pinMode(rojo, OUTPUT);
}
void loop(){
Serial.println("Distancia en cm:");
Serial.println(distanciaEnCm);
digitalWrite(Trigg,HIGH);
delay(1);
digitalWrite(Trigg,LOW);
tiempoTriggEcho=pulseIn(Echo,HIGH);
distanciaEnCm=int(0.01715*tiempoTriggEcho);
Serial.println("Distancia en cm:");
Serial.println(distanciaEnCm);
digitalWrite(rojo,LOW);
if(distanciaEnCm < 10){
digitalWrite(rojo,HIGH);
Serial.println("todo");
delay(1000);
} else if (distanciaEnCm > 255){
digitalWrite(rojo,LOW);
Serial.println("Nada");
delay(1000);
} else {
digitalWrite(rojo, (255-distanciaEnCm));
Serial.println("medio");
delay(1000);
}
Serial.println("Distancia en cm:");
Serial.println(distanciaEnCm);
delay(1000);
}
Diagrama
9)
Código
#include <Adafruit_LiquidCrystal.h>
int distanciaEnCm = 0;
int tiempoTriggEcho;
int Trigg = 12;
int Echo = 11;
int rojo = 2;
Adafruit_LiquidCrystal lcd_1(0);
void setup(){
Serial.begin(9600);
pinMode(Echo, INPUT);
pinMode(Trigg, OUTPUT);
pinMode(rojo, OUTPUT);
lcd_1.begin(16, 2);
lcd_1.print("Distancia: ");
}
void loop(){
Serial.println("Distancia en cm:");
Serial.println(distanciaEnCm);
digitalWrite(Trigg,HIGH);
delay(1);
digitalWrite(Trigg,LOW);
distanciaEnCm = 0;
tiempoTriggEcho=pulseIn(Echo,HIGH);
distanciaEnCm=int(0.01715*tiempoTriggEcho);
Serial.println("Distancia en cm:");
Serial.println(distanciaEnCm);
lcd_1.setCursor(0, 1);
lcd_1.print(distanciaEnCm);
Serial.println("Distancia en cm:");
Serial.println(distanciaEnCm);
delay(1000);
}
Diagrama
10)
Código
Diagrama
11)
Código
int estado1 = HIGH;
int estado2 = HIGH;
int reiniciar = true;
int led1 = 7;
int led2 = 5;
int boton1 = 9;
int boton2 = 8;
long val1 = LOW;
long val2 = LOW;
int cant1 = 0;
int cant2 = 0;
void setup() {
pinMode(led2, OUTPUT);
pinMode(6,OUTPUT);
pinMode(led1,OUTPUT);
pinMode(8,INPUT);
pinMode(9,INPUT);
}
void loop() {
for(int i = 0; i < 3; i++){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
delay(500);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
delay(500);
}
for (int j = 0; j < 11; j++){
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
reiniciar = true;
while (reiniciar == true){
delay(10);
int val1 = digitalRead(boton1);
int val2 = digitalRead(boton2);
if(estado1 != val1 || estado2 != val2) {
estado2 = val2;
estado1 = val1;
}
if (val1 == HIGH){
digitalWrite(led1, val1);
digitalWrite(led2, val2);
reiniciar = false;
delay(1000);
cant1++;
}
if (val2 == HIGH){
digitalWrite(led2, val2);
digitalWrite(led1, val1);
reiniciar = false;
delay(1000);
cant2++;
}
}
}
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
delay(500);
if (cant1>cant2){
for(int k = 0; k < 10; k++){
digitalWrite(led1, HIGH);
delay(150);
digitalWrite(led1, LOW);
delay(150);
}
}else{
for(int k = 0; k < 10; k++){
digitalWrite(led2, HIGH);
delay(150);
digitalWrite(led2, LOW);
digitalWrite(verde, LOW);
delay(150);
}
}
}
Diagrama
12)
Código
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
float hic = dht.computeHeatIndex(t, h, false);
Serial.print(F(" Humedad: "));
Serial.print(h);
Serial.print(F("% Temperatura: "));
Serial.print(t);
Serial.print(F("°C "));
}
Diagrama
13)
Código
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
delay(2000);
float t = dht.readTemperature();
float hic = dht.computeHeatIndex(t, false);
Serial.print(sqrt(((t+273.15)*1.4*8.314)/0.029));
Serial.print(" m/s");
}
Diagrama
14)
Código
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
float distanciaEnCm;
long tiempoTriggEcho;
DHT dht(DHTPIN, DHTTYPE);
int Echo = 11;
int Trigg = 12;
float velocidad;
void setup() {
Serial.begin(9600);
pinMode(Trigg, OUTPUT);
pinMode(Echo, INPUT);
dht.begin();
}
void loop() {
delay(2000);
float t = dht.readTemperature();
float hic = dht.computeHeatIndex(t, false);
velocidad = sqrt(((t+273.15)*1.4*8.314)/0.029);
digitalWrite(Trigg,HIGH);
delayMicroseconds(5);
digitalWrite(Trigg,LOW);
delayMicroseconds(5);
tiempoTriggEcho = pulseIn(Echo,HIGH);
distanciaEnCm = ((((velocidad*100)/1000000)/2)*tiempoTriggEcho);
Serial.println("Distancia en cm:");
Serial.println(distanciaEnCm);
delay(1000);
}
Diagrama
15)
Código
#include <SoftwareSerial.h>
#define A 10
#define B 9
char C;
String recData;
SoftwareSerial mySerial = SoftwareSerial(A, B);
void setup(){
pinMode(A, INPUT);
pinMode(B, OUTPUT);
mySerial.begin(5000);
Serial.begin(5000);
}
void loop(){
if (mySerial.available() > 0) {
recData = "";
while(mySerial.available()) {
C = mySerial.read();
recData += C;
}
Serial.println("Recibido: " + recData);
}
If (Serial.available()){
recData = "";
recData = Serial.readString();
Serial.println("Enviado: " + recData);
mySerial.print(recData);
}
delay(1500);
}
Diagrama
16)
Código
#include <Servo.h>
int pinPot = A1;
Servo miServo;
void setup(){
miServo.attach(10);
}
void loop(){
int potRead = analogRead(pinPot);
int servoValue = map(potRead, 0, 1023, 0, 180);
miServo.write(servoValue);
delay(500);
}
Diagrama
17)
Código
#include "DHT.h"
#include <Servo.h>
#define DHTPIN 2
#define DHTTYPE DHT22
int azul = 12;
int rojo = 4;
DHT dht(DHTPIN, DHTTYPE);
Servo Servo;
void setup(){
Serial.begin(5000);
pinMode(8, INPUT);
pinMode(7, INPUT);
pinMode(12, OUTPUT);
pinMode(4, OUTPUT);
dht.begin();
Servo.attach(10);
}
void loop(){
if(digitalRead(7) == HIGH){
encenderPor(rojo, 60);
}
if(digitalRead(8) == HIGH){
encenderPor(azul, 60);
}
float h = dht.readHumidity();
float t = dht.readTemperature();
float hic = dht.computeHeatIndex(t, h, false);
if ((t>25)&&(h>90)){
Servo.write((t-25)*20);
} else {
Servo.write(0);
}
}
Diagrama
1) (4 puntos) ¿De qué forma realiza sus mediciones el sensor de distancia dado en el
curso? ¿Cuáles son sus pines y para qué sirven?
2) (3 puntos) En Arduino principalmente existen dos modos para los pines digitales
(OUTPUT, INPUT). ¿Qué comando usa para definir el tipo de un pin digital? ¿En que
casos asignaría OUTPUT y en qué casos asignaría INPUT?
18)
Busque para qué se utiliza la función millis () en Arduino. Proponga un ejercicio y de
solución a él.
Nuestro ejercicio
Encender y apagar un LED verde de forma cíclica cada 1 segundo y simultáneamente
encender un LED rojo cuando se presiona un pulsador, y apagarlo al dejar de hacerlo.
Diagrama
Código
void blinkLed(){
estado = !estado;
if (estado) {
digitalWrite(pinLed,HIGH);
}
if (!estado) {
digitalWrite(pinLed,LOW);
}
}
19)
Busque un sensor no visto en el curso y explique su funcionamiento. Indique si utiliza
librerías, sus funciones y conexiones con Arduino.
Sensor PIR
¿Qué es un sensor PIR?
Los sensores infrarrojos pasivos (PIR) son dispositivos que se utilizan para la detección
de movimiento de diferentes objetos. Estos sensores tienen varios puntos positivos ya
que son baratos, de un tamaño pequeño, tienen una baja potencia y son fáciles de usar.
Es por esto que este tipo de sensor se usan a menudo en juguetes de niños, en
actividades domésticas, en sistemas de seguridad, etc.
Funcionamiento:
Este tipo de sensores está dividido en dos campos y tienen un circuito eléctrico que
compensa ambas mediciones. Cuando estos dos campos reciben la misma cantidad de
infrarrojos la señal eléctrica es nula. Y si esto no es lo que ocurre, y sucede que los dos
campos no están recibiendo la misma cantidad de infrarrojos, se genera una señal
eléctrica
De esta forma, si hay algún tipo de objeto que atraviesa o se interpone en uno de los
campos se genera una señal eléctrica diferente, que es captada por el sensor, y se emite
una señal digital.
La otra parte que nos queda hablar para que este pueda funcionar es la óptica del
sensor. Esto es básicamente una cúpula de plástico que formada por lentes de Fresnel
(Lentes de gran apertura, con una corta distancia focal sin el peso y volumen de material
que debería usarse en una lente de diseño convencional), que divide el espacio en zonas,
y enfoca la radiación infrarroja a cada uno de los campos del PIR.
Al final cada uno de los sensores capta un promedio de la radiación infrarroja que se
encuentra en el entorno. Cuando un objeto entra en el rango del sensor, alguna de las
zonas marcadas por la óptica recibirá una cantidad distinta de radiación, que terminará
siendo captado por uno de los campos del sensor, disparando la alarma.
Otro tema importante es que, si este tipo de sensor usa librería o no, y en este caso
específico este tipo de sensor no usa librería
Funciones
Los sensores PIR habitualmente se usan para la iluminación en zonas como entradas de
casa, pasillos, en el patio, etc. También este tipo de sensores no está solamente
relacionado con la iluminación sino también se puede usar para sistemas de
climatización o ventilación.
Hablando de la ventilación, un uso muy frecuente es cuando se los instala en los cuartos
de baño con el objetivo de activas los extractores del baño para eliminar mal olores y
humedad.
Es bastante frecuente, que los extractores de baño estén conectados a los interruptores
de la luz para así siempre que alguien entre al baño se va a activar su funcionamiento,
pero estos sensores nos puede hacer gastar menos energía y más eficiente en los casos
que no sea necesario prender la luz del baño ya que hay baños que de día tienen luz
natural, gracias a esto se va a poder prender solo los extractores sin la necesidad de
prender la luz.
Otro tipo de función muy habitual de estos sensores es para la seguridad tanto de casas,
como comercios, etc. Estos sensores como ya sabemos pueden detectar el movimiento
y es por esto que es muy frecuente en tema de seguridad y más específicamente en
alarmas. Se utilizan como método para activar una alarma de sonido y que los
delincuentes se vayan y que tu puedas saber si te entraron a robar
Este tipo tiene 3 tres conexiones con Arduino, la primera es ground y como su nombre
en inglés indica es la tierra que necesita el sensor, la segunda es el numero de pin que
va conectado el sensor y la última conexión es al pin de 5v que es el pin para darle
energía al sensor.