Contact-less tachometer counts up to 99kRPM

There may be some situations when it is hard to use a tachometer only because it is impossible to read revolutions per minute mechanically. The only way is to read RPM without touching rotating shaft.   This great design was constructed by Ibrahim Kamal who used an IR signal to transmit and receive it reflected from reflective stripe fixed to rotating shaft. Device is controlled by AT89S52 microcontroller which counts reflected pulses and displays value on LCD. RPM counting algorithm uses last three times between pulses and this way constantly gives instant RPM value. RPM meter consists of two parts: microcontroller board and IR proximity sensor connected to microcontroller board via simple 4 wire cable. Project files are available for download in a single zip. Continue reading

Matrix keypad interfacing with microcontrollers

Matrix keypads are common devices where human has to interact with embedded system. Most common are scanning matrix keypads where rows or columns are constantly scanned to detect which button were pressed.   This nice course takes goes through theoretical explanation to practical implementation on AVR and 8051 microcontrollers. Each schematic is followed by ASM and C example programs. This is really practical tutorial especially for those who are new to microcontrollers. Continue reading

Flexible Atmel AT89xx Flash programmer

The idea of this programmer was to get rid of Parallel port which is common for ISP programmers. One reason is that parallel ports are disappearing from computers(I think COMs are also). Second reason is that most ISP programmers aren’t safe – especially without buffering circuits or simple resistors. Anyway these things are a matter of discussions. There is a simple ISP programmer that runs from COM port.   One shortcoming is that programmer uses another microcontroller AT89C2051 which communicates between PC and target MCU. But this option gives flexibility for future upgrades. As author promises it will also going to support AVR microcontrollers. For now it has following features: Supported devices – AT89S51, AT89S52, AT89S8252, AT89S8253; Read and write of Intel Hex files. Chip Erase. Verify. Lock. Read Device Signature. Advanced Device Specific Functions. Windows GUI and firmware are available for download. But keep track for newer versions. Continue reading

Interfacing IDE hard drive with 82C55 microcontroller

Have you ever thought about of having huge amount of backup memory in your embedded system. The only cheap way is to connect IDE hard drive. And it seems that interfacing IDE isn’t that hard as it may seem.   The software provided for download doesn’t support any of file system formats like FAT16, FAT32 or any other. It just provides ability to access raw sectors. With 82C55 microcontroller running at 14.7456MHz reading speed reached 24 kbytes/s. Continue reading

Simple and cheap AT89S learning board

If you decide to learn microcontrollers you always need a real board to test programs in reality. Using development boards rather than simulators is more exciting as you can see really working results…or not:). Tahan Prahara have developed simple cheap AT89Sxx development board that every beginner can build for learning assembly or C language programming.     Board can be equipped with one of 40pin MSC-51 series microcontrollers: 89S51, 89S52 or 89S53. S letter means that these microcontrollers are ISP programmable. Board schematic is simple as it has plain 32 GPIO pins available including serial port communication TxD and RxD pins. It is powered via simple 5V voltage regulator circuit. ISP programming adapter probably is the lowest budget. Personally me – I wouldn’t recommend to use it without additional protection circuitry like 74HC244 buffering. But anyway this also works ok if there is no power problems. PCB is single side and easy to build by using any methods you use at home including Laser printer toner transfer or ultraviolet exposing. Continue reading

Very simple countdown timer with 7 segment displays

This is very simple countdown timer implemented on 89C2051 microcontroller. One button is used to set time up to 99 seconds, another is for starting timer. Time is displayed on two 7 segment LED displays.   Buttons and display scanning share same pins so algorithm has to check buttons and display time on LED displays in a row sequence. Source code is included that allows yo modify program and compile. Continue reading