Programación 2018 Arduino Uno

Page 1

9-3-2018

Programaciรณn Alarma para lavado de manos

Elieth ESCUELA: SAN RAFAEL


#include <LiquidCrystal.h> //Se ponen las librerĂ­as para la lcd y el motor #include <Servo.h> Servo servo1; LiquidCrystal lcd(8,9,4,5,6,7); int pinVerde = 11; int pinRojo = 10;//VARIABLES int v=-1; int puertoservo =3; int trig = 13; int echo = 12; int Zumbador = 2; int grados; int pulsominimo=650; int pulsomaximo=2550; float disCalculada; //Se hacen las variables para las notas musicales int c[5]={131,262,523,1046,2093}; octavas de Do

// frecuencias 4

int cs[5]={139,277,554,1108,2217};

// Do#

int d[5]={147,294,587,1175,2349};

// Re

int ds[5]={156,311,622,1244,2489}; // Re# int e[5]={165,330,659,1319,2637};

// Mi

int f[5]={175,349,698,1397,2794};

// Fa

int fs[5]={185,370,740,1480,2960};

// Fa#

int g[5]={196,392,784,1568,3136};

// Sol

int gs[5]={208,415,831,1661,3322}; // Sol# int a[5]={220,440,880,1760,3520};

// La

int as[5]={233,466,932,1866,3729}; // La# int b[5]={247,494,988,1976,3951};

// Si


void nota(int a, int b);

// Se declara una función auxiliar para recibir números enteros

void setup() { lcd.setCursor(4,1); lcd.print("MANOS"); lcd.noBlink(); delay(2000); servo1.attach (puertoservo,pulsominimo,pulsomaximo); pinMode(pinRojo, OUTPUT); pinMode(pinVerde, OUTPUT); pinMode (trig, OUTPUT); pinMode (echo, INPUT); pinMode (Zumbador, OUTPUT); Serial.begin (9600); } void nota(int frec, int t) //se crea método para la nota { digitalWrite(pinRojo, HIGH); digitalWrite(pinVerde, HIGH); // Se encienden los led tone(Zumbador,frec); delay(t);

// da las nota frecuencia tocada

// logo de un tiempo t

} void silencio(int t)

// metodo para el tiempo

{ digitalWrite(pinRojo, LOW); digitalWrite(pinVerde, LOW); //se apaga los led noTone(Zumbador); delay(t); }


void loop() { disCalculada = calcularDistancia(); grados=servo1.read(); Serial.println("Grados :"); Serial.println(grados); Serial.println("-----------"); Serial.print ("cm :"); Serial.println(disCalculada); lcd.setCursor(1,1); lcd.print("Distancia"); lcd.println(disCalculada); //Si el sensor ultrasónico capta distancia menor a 100 el motor gira 100 grados y suena la melodía if (disCalculada < 150) { servo1.write (2000); //Se colocan las notas musicales para la melodía nota(b[1],150);noTone(Zumbador);delay(50); nota(d[2],900);noTone(Zumbador);delay(100); nota(a[1],1200);noTone(Zumbador);delay(2000); nota(a[1],150);noTone(Zumbador);delay(50); nota(g[2],900);noTone(Zumbador);delay(150); nota(d[2],900);noTone(Zumbador);delay(100); nota(c[2],150);noTone(Zumbador);delay(15); nota(b[1],150);noTone(Zumbador);delay(150); nota(d[2],900);noTone(Zumbador);delay(90); nota(c[2],150);noTone(Zumbador);delay(50); nota(b[1],150);noTone(Zumbador);delay(50); nota(c[2],150);noTone(Zumbador);delay(50); nota(a[1],1200);noTone(Zumbador);delay(2000); nota(b[1],150);noTone(Zumbador);delay(50); nota(c[2],150);noTone(Zumbador);delay(50);


// }

else { digitalWrite (pinRojo, LOW); digitalWrite (pinVerde, LOW); servo1.write (0); } delay (1500); } int calcularDistancia (){ long distancia; long duracion; digitalWrite (trig, LOW); delayMicroseconds (4); digitalWrite (trig, HIGH); delayMicroseconds (10); digitalWrite (trig, LOW); duracion = pulseIn (echo, HIGH); duracion = duracion/2; distancia = duracion/29; return distancia; }


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.