Measurement of light intensity is a prime necessity in several occasions. The diversity of such needs make their way to various branches of physics and engineering as well as in media. For instance, in engineering, such kinds of measurements are needed to design optimum lighting conditions of a room. In photography, light intensity measurements ensure good quality pictures by determining the right exposure. Wiring a phototransistor or a light-dependent-resistor (LDR) with an analogue LED voltmeter chip like the LM3914 or even to a microcontroller and displaying the ADC values is a pretty simple technique of measuring light intensity. The bad part of this technique is that these simple and amateur-level devices can only measure relative intensity of light and are unable to provide measurements on an absolute scale. However, with a precise knowledge of the transfer characteristic (resistance vs light intensity) of the LDR it is possible to relate the LDR output to the intensity of light in standard unit. In case the LDR characteristic is unknown or unreliable, you can still calibrate the sensor output by using a variable light source and an external reference photometer. This project is about a microcontroller based light intensity meter where an LDR light sensor is calibrated against an external photometer to obtain the intensity of incoming light in the unit of lux. The lux is the SI unitm of illuminance and luminous emittance, and measures lumens per square meter (lm/m2). The microcontroller used in this project is ATMega8L and its firmware is written using mikroElektronika’s MikroC Pro for AVR compiler.
Building a digital light meter with a calibrated LDR - [Link]
In the first part of this tutorial, we discussed about Winstar’s WDG0151-TMI GLCD module, which is a 128×64 pixel monochromatic display built with KS0108B and KS0107B compatible display controllers. The module was interfaced to a PIC16F887 microcontroller and a test program was written in C to demonstrate how to implement the KS0108 instruction set in the firmware of PIC to activate display pixels on the screen. We wrote our subroutine programs that would turn the GLCD on, move the display location to a specified row and column, and draw a pixel at a given coordinates. You might have realized it by now that how much of effort is required to write the firmware for just plotting a point on a GLCD screen. Today’s discussion will focus more on using the built-in GLCD library routines of mikroC Pro for PIC compiler, which will make your life a lot easier if you are using a graphical LCD in your project.
Last week I was browsing my old backup hard drive and I found a source code for a very simple PIC based digital timer that I made a couple of years ago. The actual hardware of the project isn’t with me anymore. I might have lost it when I moved from my old apartment into my new home. However, I thought this might be a good practice project for beginners and so I am sharing it here. I am not going to build it from scratch again; I will rather demonstrate it using my DIY PIC16F628A breadboard module and I/O board. The complete circuit diagram along with the firmware developed using mikroC Pro for PIC compiler is provided in the article.
00 to 99 minute timer using PIC16F628A microcontroller - [Link]
My PIC tutorials and projects use MikroC compiler for firmware development. But I don’t think I ever posted anything on its installation and setup. Today, I am going to show how to install MikroC Pro for PIC (v4.60) on a Windows PC. First of all, download the zipped installation file from here, unzip it and run the setup program. Installation is straightforward. When you first start the MikroC compiler, it opens a LED blinking example project. You can close this project by clicking on ‘Close Project’ under Project menu.
MikroC Pro for PIC : Installation and Setup – [Link]
vladutz2000 has published plans for an overclocked Atmega32 based 8-bit game system. Dubbed the Penguin, this project runs the chip at 27 MHz instead of the usual 16 MHz and uses a 128×64 monochrome KS0108 based display along with a speaker and handful of resistors and pushbuttons. The schematic couldn’t be simpler and it, along with the source code written in Mikroelektronika MikroC pro for AVR v1.45, sprite and modeling tools are available on Sourceforge.
Penguin Atmega32 game system - [Link]
Embedded-Lab.com recently posted an experimental tutorial on interfacing a character LCD to a PIC microcontroller. The programming for LCD display is little bit complicated as it requires accurate timing and proper sequence of various control signals and commands. But, today’s high-level compilers provide built-in library routines for standard HD44780 based LCDs. The author uses MikroC compiler to demonstrate the built in LCD library routines.
Tutorial on interfacing a LCD display to a PIC microcontroller – [Link]
This project is a PIC metal detector based on PIC12F683 and uses only 5 components. Source code is available and written in mikroC PRO compiler. Check this project details on the link below.
picoDetector: PIC metal detector – [Link]
This is a digital voltmeter project that uses PIC12F683 to measure the input voltage and displays it on LCD. It uses a resistor divider network to measure input voltage ranging from 0-20V. Full 10-bit resolution is used for internal ADC for higher accuracy. The firmware is written in mikroC and available for free.
0-20V Digital Voltmeter using PIC12F683 - [Link]
A PIC16F628A based digital thermometer reads temperature from a Ds1820 sensor and displays on a multiplexed 4-digit Seven Segment Display. The temperature is displayed in both Fahrenheit and Centigrade units one after the other. PIC programming is done on mikroC, and the temperature resolution is 1 in F and C scales. The range of temperature measurement is -55 to 125 C.
PIC16F628A + DS1820 Thermometer - [Link]