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.

PIC LED Blinking Via ADC Samples

    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

Skip Navigation Links.

Collapse Site Tutorial IndexSite Tutorial Index
Expand 16F PIC Examples16F PIC Examples
Expand 18F PIC Examples18F PIC Examples
Expand Handy TipsHandy Tips