To connect it to the ATMEGA168, I followed the suggestion from the datasheet: the buzzer if driven by a 2N3904 NPN transistor and a diode protects the transistor from reverse currents from the magnetic inductance. /* Setup PB1 as an output */ DDRB = _BV(PB1); /* Initial period */ period = 1600; /* Main loop */ for(;) { PORTB |= _BV(DDB1); delay
Click here to download the full size of the above Circuit.
_us(period / 2); PORTB &= ~_BV(DDB1); delay_us(period / 2); counter+; if (counter = 200) { /* Reset the counter */ counter = 0; /* Update the toggling period */ if (period = 1600) period = 2000; else period = 1600; } } The period variable contains the period in us of the generated square wave. The counter toggles the period from 2000us (500Hz) to 1600us (625Hz) every 200 periods. Toggling an output in a loop is the easiest way to control the buzzer but it doesn`t allow the main program to do much else at the same time. To achieve this you can delegate the square wave generation to a hardware timer. An hardware timer is a counter that is constantly incremented by the CPU clock. Actions can be triggered when the counter reaches a predefined value. It is useful to measure time intervals or generate signals either for the software with an interrupt or for the hardware by toggling a pin. To generate a square wave I will use timer1 from the ATMEGA168 in CTC mode (Clear Timer on Compare). The 16-bit resolution of timer1 offers the greatest precision for selecting an output frequency. The timer is setup to toggle the OC1A/PB1 pin when it reaches the OCR1A value. By changing the OCR1A value, I can control the period of the OC1A signal. The following schema diagram excerpted from the ATMEGA168 datasheet illustrate the expected behavior: I choose a clk/8 prescaler to obtain a 2MHz counter from my 16MHz main clock. So each 0. 5us...
This project fits more for custom made battery casing that can have more space to hide things inside. This switch with few alterations can be used for any other project as well but is designed based on e-bike needs! This project use a clever functionality of....
The circuit described here uses ultrasonic oscillations and operates based on the propagation velocity of these oscillations in the air. Thus, we can easily determine the distance of two points if the time within which the wave travels this distance is....
Sometimes the precious metals are hidden too deep and are not detected except with complicated devices. In many cases, however, small pieces of precious metal buried near the surface can be detected by relatively simple means. Everyone is very attractive to....
Many times for various reasons we forget or can not water the plants that we have in our homes. And many humidity sensors units just notify us with a beeping sound or with a flashing light, that the pot needs watering. But what if we are away from home? This....
The principle behind a metal detector is really very simple. Proof of this is the circuit that follows, in which it proves that the construction of a metal detector can be done in the minute, with few components that we find very easily everywhere. With the....
The sub-harmonic bass generator is a sound producing unit for guitars. The sound it produces looks very much like that of the bass guitar. The octave generator is sometimes quite unusual since it does not produce any of the usual ways of coloring the sound,....
In the past the sounding (sea bottom measurement) was done with the "bullet", that is, with a heavy lead object that the seamen plucked into the sea hung from a calibrated rope. As soon as the "bullet" reached the bottom, the depth appeared directly from the....
This Amplifier was designed to have the following specifications: Distortion less than 0.1% at full power of 100W even at 20KHz. Power has to be attributed to an extended bandwidth. The output transistors must be protected against short circuits. The power....
A series of LEDs serve to alert the gardener when plants need water. Using two conventional digital integrated LEDs and a series of LEDs, we make a very useful device for gardening. The device detects the amount of water in the pot and alerts the grower.....
characters left: