Monday, March 4, 2024

Make This Arduino Uno-Based Window Alarm Annunciator

By P. Balasubramanian

- Advertisement -

Presented here is a window alarm annunciator based on Arduino Uno board. An annunciator is mainly used in process plants, power plants and industries to monitor various plant conditions to alert operators about abnormal conditions or parameter deviations. It can also be used as a security/fire alarm. The author’s prototype is shown in Fig. 1.

Author’s prototype for Window Alarm Annunciator
Fig. 1: Author’s prototype for Window Alarm Annunciator

Circuit and working

The circuit diagram of the window alarm annunciator is shown in Fig. 2. It is built around Arduino Uno board (board1), seven LEDs (LED1 through LED7), three tactile switches (S1 through S3) and a few discrete components.

Fig. 2: Circuit diagram of the window alarm annunciator
Fig. 2: Circuit diagram of the window alarm annunciator

This annunciator has seven inputs connected across connectors CON1 through CON7 for initiating the alarm through normally-open (NO) contacts. There are also three input switches (S1 through S3) for test, acknowledge and reset. There are eight outputs, out of which seven are connected with LEDs, corresponding to seven input alarm contacts, while the eighth output is provided for the buzzer. (The buzzer can be replaced with a hooter using additional circuitry.)

- Advertisement -

All alarm inputs are designed for NO contacts. Apart from digital pin 2 through pin 13 of Arduino, analogue pin A0 through pin A5 are also used as digital I/O pins to monitor the seven different input conditions.

If any input alarm contact is closed, the corresponding output LED will blink/flash at a fast rate and the piezo buzzer will be activated to attract the attention of the user, or people, nearby. The alarm can be stopped by pressing the acknowledge pushbutton switch (S2). This will de-active the piezo buzzer and the LED will blink at a slower rate. That is, if alarm input contact is opened, alarm sound will stop but the LED will continue to flash at a slow rate. When reset button (S3) is pressed, the LED will go off completely.

Let us take an example. Initially, all inputs are open, so all LEDs are off. If there is problem with the first machine, first input I/P1 at CON1 will close, LED1 will flash at a fast rate and PZ1 will make an alarm sound. When S2 is pressed, with I/P1 closed, PZ1 will be off but LED1 will stay on. When S2 is pressed, with I/P1 open, PZ1 will be off and LED1 will flash slowly until S3 is pressed momentarily.

Test pushbutton switch S1 is provided to test the LEDs and the buzzer. When S1 is pressed, all window alarm LEDs will glow steadily, and the buzzer will be activated. This will continue till S1 is released.


The software is written in Arduino programming language using Arduino IDE version 1.8.5. Before uploading the given sketch/program to Arduino Uno, ensure that elapsed Millis library function is available in Arduino IDE (Sketch>Include libraries>Arduino libraries). If not, download elapsedMillis-master folder from Then, include the zip file by following the steps given below.

Sketch>Include libraries>Add. ZIP Library…>and browse the location where elapsed Millis file is saved. After adding the above library function, ensure that it appears in the list of library functions. Now, upload Annunciator.ino sketch file to the board.

Download Source Folder

Construction and testing

A PCB layout of the window alarm annunciator is shown in Fig. 3 and its components layout in Fig. 4. After assembling the circuit, enclose it in a suitable box, along with Arduino Uno. Fix all LEDs on one side of the cabinet and piezo buzzer on the other. Power supply for the circuit is used through Arduino board and connected through the USB port of the laptop/desktop.

PCB layout of the window alarm annunciator
Fig. 3: PCB layout of the window alarm annunciator
Fig. 4: Components layout for the PCB

Download PCB and Component Layout PDFs: click here

All inputs, I/P1 through I/P7, are potential-free external NO contacts with a common ground rail. That is, all inputs coming from the appliances/machineries should be NO. Input contacts should close when problems like overload or short-circuit occur in the load of one or more appliances/machineries.

For easy and quick testing, assemble the circuit on a breadboard, as per the given connection diagram. All inputs can be initiated, including acknowledge, test and reset inputs, by pressing the respective switches.

Caution. 1

Only potential-free external NO contacts should be used as alarm contacts (CON1 through CON7) with a common ground. Otherwise, external voltage injected into the circuit will damage Arduino Uno.

If long cables are used for alarm input, EMI suppression circuits/optocoupler circuits should be added to prevent spurious operation or damage.

P. Balasubramanian is a retired scientific officer from Nuclear Power Corp. of India Ltd (NPCIL). His areas of interest include microcontrollers and power electronics



Electronics News

Truly Innovative Tech

MOst Popular Videos

Electronics Components