Hello everybody,
I've got a simple question:
I've attached a beeper on Pin 3 and a Switch (internal Pullup activated on Arduino -> Switch pushed -> GND) on Pin 8, when the Button is pushed the Beeper should be Muted for 30 seconds and the rest of my project should continue working. So a delay is not possible but an interrupt, but how can i make the interrupt work?
I am sorry, if my question is written in really bad english.
Can someone help me please?
Greets
![]()
#include "TimerOne.h"
const int ADC_Xin = A0; //Vertikal
int ADCValue_Xin = 0;Â
const int ADC_Yin = A1; //Horizontal
int ADCValue_Yin = 0;Â
const int Horizontal_min = 400;
const int Horizontal_max = 600;
const int Vertikal_min = 400;
const int Vertikal_max = 600;
const int OUT_LEDHorizontal = 1; //Horizontal LED
const int OUT_LEDVertikal = 2; //Vertikal LED
const int OUT_Buzzer = 3; //Buzzer
//const int OUT_LEDStatus = 13; //Buzzer
const int IN_LEDrot = 9; //Buzzer
const int IN_LEDgelb = 10; //Buzzer
const int IN_Keyswitch = 8; //Keyswitch
unsigned long timer;
boolean Muting = false;
int j=0;
//void callback()
//{
//Â Â digitalWrite(OUT_Buzzer, LOW );
//}
// the setup function runs once when you press reset or power the board
void setup() {
 pinMode(OUT_LEDVertikal, OUTPUT); // Vertical OUT LED Grün
 pinMode(OUT_LEDHorizontal, OUTPUT); // Horizontal OUT LED rot
 pinMode(OUT_Buzzer, OUTPUT); // Buzzer
 pinMode(IN_LEDrot, INPUT); // rote Warn LED
 pinMode(IN_LEDgelb, INPUT); // gelbe Warn LED
 pinMode(IN_Keyswitch, INPUT_PULLUP);//Keyswitch
//Â Timer1.initialize(500000);
//Â Timer1.setPeriod(500000);
//Â Timer1.attachInterrupt(callback);
//Â Timer1.disablePwm(OUT_Buzzer);
Â
Â
//////////////////////////// Initialisiere Ein - und Ausgänge:
////INPUTS:
ADCValue_Xin = analogRead(ADC_Xin);
ADCValue_Yin = analogRead(ADC_Yin);
}
// the loop function runs over and over again forever
void loop()
{
  Â
if (digitalRead(IN_Keyswitch) == LOW)
{
 for(j=1,
 digitalWrite(OUT_Buzzer, LOW)
}
/////////////////////////////////////////////////////Akustische Ausgabe LED ROT UND GELB
if (digitalRead(IN_LEDrot) == HIGH) {
  digitalWrite(OUT_Buzzer, HIGH);
   delay(5);Â
   digitalWrite(OUT_Buzzer, LOW);
   delay(5);Â
 }
 if (digitalRead(IN_LEDrot) == LOW)
 {
  digitalWrite(OUT_Buzzer, LOW);
 }
 if (digitalRead(IN_LEDgelb) == HIGH)
 {
//Serial.println(">>> ALARM gelbe LED ");
  digitalWrite(OUT_Buzzer, HIGH);
   delay(10);Â
   digitalWrite(OUT_Buzzer, LOW);
   delay(10);Â
 }
 if (digitalRead(IN_LEDgelb) == LOW)
 {
  digitalWrite(OUT_Buzzer, LOW);
 }
 //////////////////////////////////////////////////////////////////////////////////////
ADCValue_Xin = analogRead(ADC_Xin);
///////////////////////////////////////Kippverhalten
 if (analogRead(ADC_Xin)> Vertikal_max)
 {
   digitalWrite(OUT_LEDVertikal, HIGH);
   digitalWrite(OUT_Buzzer, HIGH);
  }
  if (analogRead(ADC_Xin)< Vertikal_min)
 {
   digitalWrite(OUT_LEDVertikal, HIGH);
   digitalWrite(OUT_Buzzer, HIGH);
  }
  if (analogRead(ADC_Xin)> Vertikal_min & analogRead(ADC_Xin) < Vertikal_max)
 {
   digitalWrite(OUT_LEDVertikal, LOW);
   digitalWrite(OUT_Buzzer, LOW);
  }
 //////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////Kippverhalten
 if (analogRead(ADC_Yin)> Horizontal_max)
 {
   digitalWrite(OUT_LEDHorizontal , HIGH);
   digitalWrite(OUT_Buzzer, HIGH);
  }
  if (analogRead(ADC_Yin)< Horizontal_min)
 {
   digitalWrite(OUT_LEDHorizontal, HIGH);
   digitalWrite(OUT_Buzzer, HIGH);
  }
  if(analogRead(ADC_Yin)> Horizontal_min & analogRead(ADC_Yin) < Horizontal_max)
 {
   digitalWrite(OUT_LEDHorizontal, LOW);
   digitalWrite(OUT_Buzzer, LOW);
  }
 //////////////////////////////////////////////////////////////////////////////////////
}