19-2 Grupo 2

## **Autores**

Alexandre de Carvalho Torres – RA 0040961723013
Bruno Felipe Ko Yan Ip – RA 0040961613034
==**Projeto**
 ==
Alarme de luz e som ativado por sensor de distância.

## **Resumo**

Projeto de um alarme com sensor de distância, LED RGB e piezoelétrico, usando o Arduino.

## **Software / Materiais utilizados**

Arduino IDE
Arduino Genuino UNO
Protoboard
LED RGB
Pastilha Piezo Elétrico
Sensor de distância ultrassônico HC-SR04
Cabos jumper
Cabo USB

## **Metodologia**

O projeto foi pensado como base para um alarme ativado por movimento.
A abordagem inicial foi de adaptação dos códigos aprendidos em aula para cada material isoladamente.
Devido a alguns erros, foram adicionadas, ainda, duas bibliotecas externas. Uma delas gera o toque do sensor piezoelétrico. A outra permite o funcionamento simultâneo do sensor, enquanto buzzer, e da lâmpada RGB.
Ao fim, o projeto funcionou adequadamente. Cabe a ressalva, entretanto, de que ele é uma base que pode ser expandida para acomodar outros componentes, como teclado (para inserção de senha), sensor de movimento, trava para portas.

## **Desenvolvimento**

**Descrição:**
No projeto utilizamos os componentes disponibilizados em aula. A montagem é bem simples, sendo que o cabo USB é suficiente para a alimentação do sistema. Porém, aqueles interessados em usar mais componentes ou, principalmente, luzes maiores, devem utilizar uma bateria.
A primeira conexão feita do Arduino para a protoboard com os cabos jumper foi da entrada 5V e GND, já que todos os componentes necessitam dessas entradas.
O primeiro componente instalado foi a luz RGB, conectando-se cada uma das cores correspondentes às portas digitais PWM, e o fio de energia à fileira do 5V na protoboard.
Em seguida, foi colocado o sensor de distância. O GND e VCC (5V) foram ligados às respectivas fileiras na protoboard, já os pinos echo e trigger foram ligados a saídas digitais.
Finalmente, o sensor piezoelétrico teve um de seus cabos conectados à fileira GND e outro à 5V.

**Código:**

```

#include <NewTone.h>

#include <NewPing.h>

int g = 9;
int b = 10;
int r = 11;

#define TRIGGER 7  // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO     6  // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 100 // Maximum distance we want to ping for (in centimeters).

#define ALARME 3

float sinVal;
int tomVal;

NewPing sonar(TRIGGER, ECHO, MAX_DISTANCE);
boolean ativado = false;
void setup() {
  // put your setup code here, to run once:

  pinMode(ALARME, OUTPUT);

  pinMode(r, OUTPUT);
  pinMode(b, OUTPUT);
  pinMode(r, OUTPUT);

  analogWrite(r, 255);
  analogWrite(b, 255);
  analogWrite(g, 255);

  delay(5000);
  Serial.begin(115200);
}
void color (unsigned char red, unsigned char green, unsigned char blue)     // Função para gerar as cores
{
    analogWrite(r, red);
    analogWrite(b, blue);
    analogWrite(g, green);
}
void alarme() {

   color(0,255,255); //vermelho
   delay(100);
   color(0,0,255); //amarelo
   delay(100);

   for (int x=0; x<180; x++) {
    // convert degrees to radians then obtain sin value
    sinVal = (sin(x*(3.1412/180)));
    // generate a frequency from the sin value
    tomVal = 2000+(int(sinVal*1000));
    NewTone(ALARME, tomVal);
  }

}

void loop(){
    if(ativado == true){
      alarme();
    }
    else{
      delay(50);// Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
      unsigned int uS = sonar.ping(); // Send ping, get ping time in microseconds (uS).
      unsigned int distance = uS / US_ROUNDTRIP_CM;
      Serial.println(distance);
      if(distance < 100){
         ativado = true;
      }
   }
}

```

Vídeo

## **Resultados**

Os resultados obtidos foram os esperados. Poucas dificuldades surgiram, mas foram superadas com a inserção de bibliotecas externas.

## Conclusão

O sistema montado é simples, mas serve de base para um sistema de alarmes complexo que pode ser criado exclusivamente com o uso do Arduino e seus componentes. Assim, apesar da simplicidade, é um exemplo das inúmeras possibilidades comportadas pelo Arduino.