18F ADC Example
This tutorial/example covers another quick guide on how to use Analogue to
Digital conversions with a
PIC micro. It's achieved by interfacing with a 1K
potentiometer to determine how fast the LED will blink. Some other aspects
covered in this example include the use of the 18F4550 with the internal
oscillator and basic function use.

Basically the
PIC micro will
sample AN0 (PORTA.0) and get a reading from 0 to 1023 (0V to 5V).
From there, I use the DelaymS command
to alter the time that the LED is on and off for. Its very basic,
but does cover a couple of underlying features such as the use of a
function;
Device = 18F2550 // Setup the device/clock information
Clock = 8
Config FOSC = INTOSCIO_EC
Include "ADC.bas" // Include the ADC.bas library
Dim LED as PORTC.0 // Declare the LED pin
function Get_ADC_Sample() as word // Function to grab the ADC sample
result = ADC.Read(0) // Grab an ADC sample from channel 0
result = result * 2 // Scale the answer up by a factor of 3
end function
OSCCON = %01110110 // Setup the internal OSC for 8Mhz
Input(PORTA.0) // Make AN0 an input
While True // Create an infinate loop
High(LED) // Make the LED pin High
Delayms(100 + Get_ADC_Sample) // Delay for 0.1 seconds + the ADC result
Low(LED) // Make the LED pin Low
Delayms(100 + Get_ADC_Sample) // Delay for 0.1 seconds + the ADC result
wend
Click here
to watch this circuit in action!
Note the PIC's power supply/oscillator are not shown
Where you can get
the components;
You can find a
range of and resistors to suite
here

 | Site Tutorial Index |
|  | 16F PIC Examples |
|  | 18F PIC Examples |
|  | Handy Tips |