Non-invasive tachometer using IR reflection technique and PIC18F2550

Back in the old days where you won’t find any LCDs and seven segment displays – thus in the past the world of electronic indicators is ruled by the infamous analog dials – the one with the arm that points to values in the back ground. Back then tachometers, which are used to measure rotational speed is made up of a DC generator, the voltage output of the generator is then used to crank up the analog dial to indicate the speed of the shaft of interest – which is given in RPM or rotations per minute. This is not portable since one must attach the DC generator to the shaft either by a coupling or any other means – not to mention the dangers when dealing with high speed mechanical entities.

This project demonstrates the use of a microcontroller and IR reflective techniques to build a non invasive tachometer – yup non invasive it doesn’t touch the rotating shaft all you need is a piece of white paper and your good to go measuring RPMs on a speeding shaft. The tachometer counts the number of times the white piece of paper passes through the infrared pair in a given time number of passes over the specific time [a fraction of 1 minute] would give us the number of rotations per minute. The timer0 module of PIC18F2550 was used to keep track of the time. microElectronika’s microC IDE was use to build the program – two more thing about this tachometer? It doesn’t come with old school analog dials, it comes with a 2×20 LCD and no contact thus less chances of getting a finger ripped off.

How to scroll characters on LED dot matrix display?

At the beginning of this month, we reviewed Embedded Lab’s ( tutorial for beginners on interfacing an LED dot matrix to PICMicro ( It was a very good description of basic structure of LED dot matrix and how static characters are displayed on it. Embedded Lab has just posted a continuation of that and now explains how to scroll the characters on LED dot matrix display.

The LED matrix used has 8 rows and 16 columns. The sixteen columns are driven by two 8-bit serial-in-parallel-out shift registers (74HC595) whereas the eight rows are controlled through the decoded outputs from a decade counter (CD4017). This arrangement requires only 5 I/O pins of microcontrollers to drive the matrix of 128 LEDs, and therefore, a mid-range microcontroller can also be used (although, the author used PIC18F2550 microcontroller to demonstrate the technique).

The author explains in very detail how the individual display bit information are saved in a buffer and are continuously updated while scrolling the text message from right to left. The firmware was written in C and compiled with mikroC.

Connecting multiple I2C devices on a common bus

I2C communication protocol is so popular today that you can buy varieties of I2C compatible devices in the form of temperature sensors, serial EEPROMs, real-time clocks, LCD drivers, port expander, and so on. While most modern microcontrollers do have built-in I2C communication port, it’s implementation requires a good understanding of the protocol in general, its signal types, and an addressing scheme for uniquely identifying multiple devices on a common I2C bus. Embedded Lab’s new tutorial on I2C communication covers all the detail that is required for connecting multiple devices on a common I2C bus.

The tutorial uses PIC18F2550 microcontroller, to which are connected three I2C compatible devices: 2 EEPROMs (24LC512) and 1 temperature sensor (DS1631). In the experiment, the microcontroller receives the temperature readings from DS1631 sensor and stores them in to the two EEPROMs. Later, the readings are retrieved from the EEPROMs and displayed on a LCD screen. The author has put a significant effort in covering both the theory and its implementation in one article.

Interfacing LED dot matrix display to PIC

LED dot matrix displays are great way to display text, graphical and animated information. Interfacing of these displays is easy. In following tutorial you’ll find all those simple tips on how properly connect LED dot matrix display to microcontroller and how to write code to drive it.

Tutorial is wrapped around StartUSB for PIC board with PIC18F2550 microcontroller. It drives LEDs via ULN2003A Darlington transistor array IC. Great tutorial with great explanation that will lead you to easy start.