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.… Continue reading

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. Continue reading

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. Continue reading

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. Continue reading

A geeky way of keeping time using PIC18F2550

The build for a geeky clock is on!  AndyO fashioned a digitally programmable clock – not just any ordinary clock this one comes with loads of geeky functions, some of which are overly geeky they are not really necessary – but in a nice way! This clock has two arms, rotary dial? Nah! That’s not geeky enough. AndyO have dials similar to an analog meter one dial for the hours while the other for the minutes. It has LED indicators and front panel lighting, also has buttons and guess what – this clock has a USB port! Settings are loaded to the clock using USB interface. The clock’s dials are actuated using servo motors with a gearbox. The brain? A clock with a brain? Yeah this one has a PIC18F2550. AndyO used the PIC18F2550 since it has enough I/O ports and it has USB compatibility! Swordfish USBHID was used for the USB communications while digital signal pulses are used to control the servo motor actuator. Continue reading

LC meter using a PIC18F2550

Most modern DMMs (Digital MultiMeters) have a built in option for measuring values of discrete components including resistance in Ohms, capacitances in Farads and inductances in Henrys. Of course we are familiar with the V=IR rule to measure resistances, but how does the DMM measure capacitances and inductances? Jus the cool guy who shared the Mini-STM32 player made this microcontroller based LC meter to demonstrate the theory behind measuring the values of capacitors and inductors. Jus used a reference capacitor with a known value of 1.0nF +/- 5% and a PLL oscillator with a 48MHz frequency range along with a PIC18F2550’s frequency counter to tune into the unknown value of the component. The project comes with a UI which connects with the PIC18F2550 using PIC’s HID class. Continue reading