Posts tagged ‘Atmega328P’

Arbitrary Waveform Generation with Arduino

Arbitrary waveform generators come in handy when troubleshooting digital and analog circuits. Most commercial arbitrary waveform generators are very expensive due to the functionality and very high bandwidth they offer. But for typical uses among hobbyists, the requirements are generally pretty low. Building a very basic arbitrary waveform generator is actually quite simple using a digital-to-analog converter (DAC) chip and a microcontroller (MCU). Here I will show you one such waveform generator using Linear Technology‘s LTC1450 DAC and ATmega328 programmed with Arduino libraries. Continue reading ‘Arbitrary Waveform Generation with Arduino’ »

Building a Robotic Platform

I started this project a while ago. My intention was to adapt a toy remote controlled vehicle into a generic robotic platform, which would enable me to do some experiments with robotics. To make the platform more generic, I came up with the following requirements: Continue reading ‘Building a Robotic Platform’ »

Modified Sine Wave Generation With AVR

Modified sine wave is essentially just a pulse width modified square wave. It is a very useful waveform for power inverters. Compared with the simplest inverters with square waveform, inverters using modified sine wave can compensate the output voltage by simply changing the pulse width (duty cycle) of the waveform. Continue reading ‘Modified Sine Wave Generation With AVR’ »

4KHz-170MHz Wide Band RF Signal Generator – II

Continue with my previous article, let me first explain the code a little bit. Continue reading ‘4KHz-170MHz Wide Band RF Signal Generator – II’ »

4KHz-170MHz Wide Band RF Signal Generator – I

A signal generator can come in handy when working with digital and analog circuits. While most commercial grade signal generators offer more than just outputting a sinusoidal waveform, they are quite pricey for casual use. In this article, I will show you a simple wide band signal generator that is built around a Linear Technology’s LTC6905 Silicon Oscillator, which is can generate frequencies from roughly 17MHz to 170MHz. Along with a FairChild Semiconductor’s 74VHC4040 12-stage high speed binary counter, this signal generator is capable of generating precise frequencies from as low as 4KHz all the way through the ranges of LTC6905. Continue reading ‘4KHz-170MHz Wide Band RF Signal Generator – I’ »

RF Data Link Using Si4021 And Si4311

Among the many commercial ISM band RF transmitter and receiver ICs, I have found that Silicon LabsSi4021 (transmitter IC) and Si4311 (receiver IC) are surprisingly easy to work with. Only a few commonly available external components are needed to build a fully functional circuit. The integrated automatic antenna tunning circuit in Si4021 makes building transmitters an easy task. The Si4311 receiver IC is highly integrated, more so than many other ISM band RF ICs, and is quite tolerate to the variance of the required few external capacitors. No special tuning is required. Continue reading ‘RF Data Link Using Si4021 And Si4311’ »

AVR LC Meter With Frequency Measurement

I have been thinking about building an LC meter for a while since I do not have a multimeter that is capable of measuring inductance and while the multimeters I have can measure capacitance, they are not able to give accurate readings for small capacitance in the range of several pF’s. Continue reading ‘AVR LC Meter With Frequency Measurement’ »

I2C Data Logger Using ATmega328p and DS3232 – II

In my last blog post, I showed you the schematic of a I2C data logger I built. Here I will discuss some sample code used for this data logger and how to make it even more flexible. Continue reading ‘I2C Data Logger Using ATmega328p and DS3232 – II’ »

I2C Data Logger Using ATmega328p and DS3232 – I

There is a popular data logger shield out there designed for Arduino using a DS1307 real time clock chip. And that design makes data logging extremely easy if an Arduino board is used. Continue reading ‘I2C Data Logger Using ATmega328p and DS3232 – I’ »

ZIF Arduino Prototyping Board

The official Arduino Duemilanove board is an excellent tool for prototyping. For most of the users, it is a very solid platform for various MCU experiment circuits given the number of readily-made shields available. Continue reading ‘ZIF Arduino Prototyping Board’ »

A High Current TRIAC Controller Using Arduino

One of the goals in my previous timer project was to achieve the ability to control multiple electronic devices using the precise time signal generated by the RTC chip (bq3287). For electronic devices using up to a couple of amperes, a relay should be more than capable to handle the load. But for high voltage and high current home appliances such as water heaters (typically 240V, 20 to 30 A), the relay solution becomes much more expensive and less reliable. Continue reading ‘A High Current TRIAC Controller Using Arduino’ »

A Digital Level Using Accelerometer

To measure how flat a surface is, you typically will need a level of some sort. In this article, I will show you a digital level I made with an accelerometer. It is extremely accurate, capable of measuring inclination as small as 1/1000 degree. Continue reading ‘A Digital Level Using Accelerometer’ »

POV And POV Image Encoder

One of my recent projects was to build a POV display device. There are already many microcontroller based POV devices out there, but most of those I have seen use around eight LEDs and have fixed font types. So I thought of developing something that is larger (e.g. using more LEDs) and more flexible (e.g. can display both text and images). Continue reading ‘POV And POV Image Encoder’ »

Clock Synchronization Via I2C (TWI)

When I was doing the clock/stop watch project last month, I mentioned that I intended to add I2C (TWI) communication functionality so that I could get time from this clock and use it as timer signal to control other electronics. Continue reading ‘Clock Synchronization Via I2C (TWI)’ »

The Case For Using Parallel Programmer

This is what I ran into for the first time: I was flashing the chip the other day and after many successful runs I encountered the following infamous avrdude error: Continue reading ‘The Case For Using Parallel Programmer’ »