#include <TimerOne.h>
#include <Arduino.h>
#define PIN_LED 13
#define TRIG 2
#define ECHO 3
#define SW1 18
#define buzzerPin 4
void ISR_SW1();
void playBuzzer(float distance);
float last_distance = 0;
float distance = 0;
float tempo = 0;
int time = 0;
void setup()
{
DDRE = 0b00010100;
PORTE = 0b00001000;
attachInterrupt(digitalPinToInterrupt(SW1), ISR_SW1, FALLING);
pinMode(SW1, INPUT_PULLUP);
UCSR0A = 0x00;
UCSR0B = 0x18;
UCSR0C = 0x06;
UBRR0H = 0x00;
UBRR0L = 0x67;
Timer1.initialize(time);
Timer1.attachInterrupt(ISR_Timer1);
}
void loop(){
time = 100;
}
void ISR_SW1()
{
while (digitalRead(SW1) == 0)
{
digitalWrite(PIN_LED, HIGH);
digitalWrite( TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
tempo = pulseIn(ECHO, HIGH );
distance = ((tempo / 2) * 0.034) * 0.01;
void ISR_Timer1();
if (distance == last_distance) {
}
else
{
Serial.print("O objeto está a: ");
Serial.print(distance);
Serial.println("m.");
last_distance = distance;
}
//delay(10000);
}
if (digitalRead(SW1) == 1)
{
digitalWrite(PIN_LED, LOW);
}
// delay(1000);
}
void ISR_Timer1() {
if (digitalRead(SW1) == 1) {
tone(buzzerPin,500);
Serial.println("ui");
}
}