Está en la página 1de 29

ELECTIVA 2

INTEGRANTES:

• Manzano Manzano Cristhian


• Santillán Caicedo Briggitte
Codificar en código de arduino lo siguiente:
Hacer girar el servomotor según sean los movimientos realizados por el
potenciometro, lo mismo que deben prender tres leds diferentes según sea la
cantidad de ángulos:

• Entre 0º y 60º prender solo el led azul


• Entre 60º y 125º prender solo el led rojo
• Entre 125º y 180º prender solo el led verde.

PROGRAMA
CODIGO

#include <Servo.h>

Servo servo9;

int grados;
int azul=3;
int rojo=4;
int verde=5;

void setup()
{
Serial.begin(9600);
servo9.attach(9);
pinMode(azul,OUTPUT);
pinMode(rojo,OUTPUT);
pinMode(verde,OUTPUT);

void loop()
{
grados = map (analogRead(A5),0,1023,0,180);
Serial.println(grados);
delay(500);
servo9.write(grados);

if (grados<=60)
{
digitalWrite(azul,HIGH);
digitalWrite(rojo,LOW);
digitalWrite(verde,LOW);
}

if (grados > 60 && grados <= 125)


{

digitalWrite(rojo,HIGH);
digitalWrite(azul,LOW);
digitalWrite(verde,LOW);
}

if (grados > 125 && grados <= 180)


{
digitalWrite(verde,HIGH);
digitalWrite(rojo,LOW);
digitalWrite(azul,LOW);
}

}
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
Tarea: Sensores digitales y LCD
Usando la programación de arduino, utilizar un sensor de proximidad que prende tres diferentes
leds basado en lo siguiente:
1. < a 100 cm (prender led azul)
2. >=100 y <=200 (prender led verde)
3. >=200 (prender led rojo)
Debe mostrar la distancia en un Display LCD con lo siguiente:
Tarea
Distancia: 20 cm.
Resolución:
1. < a 100 cm (prende led azul).
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
2. >=100 y <=200 (prende led verde).

3. >=200 (prende led rojo)


Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
Código:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const byte trigger=10;


const byte echo=9;
float distancia;
byte led1 = 6;
byte led2 = 7;
byte led3 = 8;

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

lcd.begin(16, 2);

pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
digitalWrite(trigger, LOW);

pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);

void loop()
{
float t;

digitalWrite(trigger,HIGH);
delayMicroseconds(10);
digitalWrite(trigger,LOW);

t = pulseIn(echo,HIGH);
distancia = t/58;
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);

lcd.setCursor(0, 0);

if (distancia < 100 ){


digitalWrite(led3,HIGH);
lcd.print("Led azul ON ");
}

if (distancia >=100 and distancia < 200 ){


digitalWrite(led2,HIGH);
lcd.print("Led verde ON ");
}

if (distancia >=200) {
digitalWrite(led1,HIGH);
lcd.print("Led rojo ON ");
}

lcd.setCursor(0, 1);
lcd.print("Dist: ");
lcd.print(distancia);
lcd.print("cm ");
}
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando

Taller Ejercicio usando sensores analógicos


Considerando lo explicado en la sesión de clase. Implementar un diseño que permita medir la
temperatura, para ello deberá usar dos leds (azul y rojo) que haga lo siguiente:

 Prender de manera paulatina el led color azul cuando la temperatura comience a estar por
debajo de los 20º
 Prender de manera paulatina el led color rojo cuando la temperatura comience a estar por
encima de los 25º
 Cuando la temperatura esté entre los 20º y 25º entonces ambos leds deben estar apagados.

Adicional, debe mostrar por el Display LCD la temperatura.

Resolución:

A)
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando

B)

C)
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
Código:

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const int LM35 = A0;


int ledAzul = 9;
int ledRojo = 10;
int intensidad = 0;

void setup() {
lcd.begin(16, 2);
pinMode(ledAzul, OUTPUT);
pinMode(ledRojo, OUTPUT);
lcd.print("TEMPERATURA:");
Serial.begin(9600);
}

void loop() {

int medida = analogRead(LM35);


float temperatura = ((medida * 5000.0) / 1023)/10;
Serial.println(temperatura);

lcd.setCursor(0,1);
lcd.print(temperatura);
lcd.print(" C ");

if(temperatura < 20){

analogWrite(ledRojo, 0);

for (intensidad = 0; intensidad <= 255; intensidad += 5) {


analogWrite(ledAzul, intensidad);
delay(300);
}
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando

Serial.println("MENOR A 25");

}else if(temperatura >=20 && temperatura <=25){

analogWrite(ledRojo, 0);
analogWrite(ledAzul, 0);

}else if(temperatura > 25){

analogWrite(ledAzul, 0);

for (intensidad = 0; intensidad <= 255; intensidad += 5) {


analogWrite(ledRojo, intensidad);
delay(300);
}

delay(500);
}
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
Taller: Uso de sensores digitales
Usando la programación de arduino, utilizar un sensor de proximidad para que cambie la velocidad
de la intermitencia de un Led basado en lo siguiente:

< a 100 cm (velocidad de intermitencia de led a 250)


>=100 y <=200 (velocidad de intermitencia de led a 750)
>=200 (velocidad de intermitencia de led a 1200)
Debe mostrar a través del puerto serial, el valor de la distancia
Resolución:

Imagen 1. Led tiene una intermitencia rápida, ya que es menor a 100cm.


Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando

Imgen 2: el led tiene una intermitencia mas lenta ya que la distancia es mayor que 100 y menor
que 200.
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando

Imgen 3: El led tiene una intermitencia mucho mas lenta ya que la distancia supera los 200cm.
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
Código:
const byte trigger=13;
const byte echo=12;
byte led = 5;
float distancia;
void setup()
{
Serial.begin(9600);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
digitalWrite(trigger, LOW);
pinMode(led, OUTPUT);
}
void loop()
{
float t;
digitalWrite(trigger,HIGH);
delayMicroseconds(10);
digitalWrite(trigger,LOW);

t =pulseIn(echo,HIGH);

distancia = t/58;

Serial.print ("Distancia = ");


Serial.print (distancia);
Serial.print (" cm");
Serial.println();

if (distancia < 100){


digitalWrite(led,LOW);
delay(250);
digitalWrite(led,HIGH);
delay(250);
}
if (distancia >=100 and distancia < 200){
digitalWrite(led,LOW);
delay(750);
digitalWrite(led,HIGH);
delay(750);
}else{
if (distancia >=200) {
digitalWrite(led,LOW);
delay(1200);
digitalWrite(led,HIGH);
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
delay(1200);
}
}
}
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
Tarea: Programación Arduino - Fotoceldas

Realizar el código necesario para obtener como resultados lo siguiente


 Conjunto uno: 3 leds
 Conjunto dos: 3 leds
Si la fotocelda (sensor de entrada) detecta luz entonces deberá realizar lo
siguiente:
1. Los leds del conjunto unos se prenderán y se apagan al mismo tiempo de
manera intermitente (uds decide la rapidez de la intermitencia)
2. Los leds del conjunto dos deberán estar todos apagados
Caso contrario, es decir, si no detecta luz:
1.Los leds del conjunto dos deberán prenderse en secuencia, es decir, uno
después del otro.
2.Los leds del conjunto unos deberán estar todos apagados
2.Repetir el proceso

RESOLUCIÓN:
CUANDO NO DETECTA LUZ
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
Tarea: Programación Arduino - Fotoceldas

CUANDO DETECTA LUZ


Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
Tarea: Programación Arduino - Fotoceldas

CODIGO:

int fotoceldaValor = 0;

void setup()
{
//Conjunto 1
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
//Conjunto 2
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
//Fotocelda
pinMode(1, INPUT);
}
void loop()
{
fotoceldaValor = analogRead(1);

if (fotoceldaValor>400){
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
delay(1000);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
delay(1000);
}
else if (fotoceldaValor<400){
digitalWrite(10, HIGH);
delay(1000);
digitalWrite(11, HIGH);
delay(1000);
digitalWrite(12, HIGH);
delay(1000);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
delay(1000);
}
}
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
Tarea: Programación Arduino secuencia de leds
Realizar el código necesario para obtener como resultado una secuencia de luces
(leds), que cumpla lo siguiente:

 Todos los Leds deben estar prendidos


 Luego, cada Led apagarse pasando 1 segundo hasta que todos los leds
queden apagados
 Repetir el proceso
Hacer uso de 6 leds para este trabajo. Recordar el uso de resistencias.

Resolucion:
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
Tarea: Programación Arduino secuencia de leds
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
Tarea: Programación Arduino secuencia de leds
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
Tarea: Programación Arduino secuencia de leds
Código

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

void loop()
{
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);

delay(1000);
digitalWrite(2, LOW);

delay(1000);
digitalWrite(3, LOW);

delay(1000);
digitalWrite(4, LOW);

delay(1000);
digitalWrite(5, LOW);

delay(1000);
digitalWrite(6, LOW);

delay(1000);
digitalWrite(7, LOW);

delay(1000);
}
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
Taller: Comunicación de Arduino
Considerando el código disponible en la sección de exposición. Realice las modificaciones
necesarias para que cuando el número ingresado por el monitor serial sea PAR entonces prenda el
LED color rojo, y cuando el número sea IMPAR, prenda el LED color azul. Adicional, deberá
mostrar la información respectiva en el monitor serial de los resultados del ingreso (PAR o
IMPAR) Dado estas indicaciones entonces deberá ubicar un nuevo LED color azul para que pueda
realizar este taller.
Resolución:
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
Taller: Comunicación de Arduino

Código:

//Display 7 Segmentos Catodo Común


int display7c[10]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};

//Display 7 Segmentos Anodo Común


int display7a[10]= {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x18};

//Pines del Display


byte a=2;
byte b=3;
byte c=4;
byte d=5;
byte e=6;
byte f=7;
byte g=8;

int dato=0;
char variable_global='a';
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
Taller: Comunicación de Arduino
byte led = 13;
byte led2 = 12;

//Función Display 7 Segmentos


void display7seg(int bits,int a,int b,int c,int d,int e,int f,int g){

//Mostra o numero bits no display 7 segmentos


digitalWrite(a,bitRead(bits,0));
digitalWrite(b,bitRead(bits,1));
digitalWrite(c,bitRead(bits,2));
digitalWrite(d,bitRead(bits,3));
digitalWrite(e,bitRead(bits,4));
digitalWrite(f,bitRead(bits,5));
digitalWrite(g,bitRead(bits,6));
}

void setup(){
//Configura los 8 Pines digitales como SALIDAS
for(int i=a;i<=g;i++){
pinMode(i,OUTPUT);
}
Serial.begin(9600);
pinMode(led, OUTPUT);
pinMode(led2, OUTPUT);
//Inicializa el display 7 segmentos
display7seg(display7c[dato],a,b,c,d,e,f,g);
}

void loop(){
//si existe datos disponibles en el bus serial
if (Serial.available()){
//leemos el dato enviado
dato=Serial.read();

if ( dato % 2 == 0){ // La condición que hemos impuesto


Serial.println("Es par.") ; // Si se cumple la condición
se ejecuta el mensaje.

digitalWrite(led, HIGH);
digitalWrite(led2, LOW);

}
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
Taller: Comunicación de Arduino
else {

digitalWrite(led2, HIGH);
digitalWrite(led, LOW);
Serial.println("Es impar"); // Si no se cumple la condición se
ejecuta el mensaje.

if(dato>='0' && dato<='9') { //letra a - Apagar


display7seg(display7c[dato-48],a,b,c,d,e,f,g);
Serial.print("DATO: ");
Serial.println(dato-48);
}

}
}
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
Taller: Programación con Arduino
Diseñar lo siguiente haciendo uso de la placa de arduino y los elementos que
crea necesario:
 Se desea que un Pulsor esté conectado al protoboard, el mismo que
deberá tener la función de prender el Led mientras esté presionado.
Hacer uso de los comandos de entradas para sensores digitales.
 Puede hacer uso de cualquier plataforma de simulación de Arduino.

RESOLUCIÓN
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales

Profesor: Ing. Jorge Luis Charco Aguirre


Curso: ISI-S-NO-4-4
Integrantes: Grupo G
 Cedeño Toapante Daniel
 Santillán Caicedo Briggitte
 Manzano Manzano Cristhian
 Espinel Peralta Orlando
Taller: Programación con Arduino

CÓDIGO
void setup()
{
pinMode(13, OUTPUT);
pinMode(7, INPUT);
}
void loop(){
if(digitalRead(7)){
digitalWrite(13,HIGH);
} else digitalWrite(13,LOW);
}

También podría gustarte