Difference between revisions of "Component: Potentiometer (Analog Input)"
(3 intermediate revisions by the same user not shown) | |||
Line 60: | Line 60: | ||
+ | ===Using Fixed Voltage Reference=== | ||
+ | An example of a 0 to 1023 mV meter with a resolution of 1mv. | ||
+ | {{Fcfile|ADC_using_FVR_16F15324.fcfx|ADC using FVR}} | ||
+ | A PIC16F15324 is used since it has a Fixed Voltage Reference (FVR) register. | ||
+ | Bit0 and bit1 determine what the FVR is set at. | ||
+ | A line of C code is added to set the FVR to a gain of x1 = FVR of 1.024V: | ||
+ | '''FVRCON = 0b11000001;''' | ||
+ | With this setting, the Int value from ADC directly proportional voltage in mV. | ||
+ | E.g. a value of 732 = 732mV | ||
+ | |||
+ | |||
+ | Binary is used to make reading values a lot easier. | ||
+ | |||
+ | From the datasheet: | ||
+ | |||
+ | [[File:PIC16F1532x FVRCON.png]] | ||
+ | |||
+ | If you wanted to change the fixed voltage reference to 2.048V | ||
+ | |||
+ | Then change bit0 and bit1 of the C code to '''FVRCON = 0b11000010;''' | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===Filtering ADC Inputs=== | ||
+ | |||
+ | Simple example which uses a filtering technique to provide a digital low pass filter on the ADC readings. The output of the filter is 50% the ADC reading and 50% the previous reading. | ||
+ | |||
+ | {{Fcfile|LPFilter_2D.fcfx|LPFilter}} | ||
+ | |||
+ | In this example the output of the filter is 25% the ADC reading and 75% the previous reading. | ||
+ | |||
+ | {{Fcfile|LPFilter2_2D.fcfx|LPFilter2}} | ||
+ | |||
+ | |||
+ | ===Analogue Inputs Window=== | ||
+ | |||
+ | The [[Analog_Window|Analogue inputs window]] available from the View ribbon, allows you to see the values for all of the analogue inputs which are active in your program. They can also be manually altered by dragging the mouse along one of the sliders. | ||
+ | |||
+ | |||
+ | ===Data Recorder=== | ||
+ | |||
+ | An ADC based component will automatically add a trace to the [[Using_the_Data_Recorder|data recorder]] window allowing you to get a view of the analogue data over time during simulation. | ||
+ | |||
+ | [[File:Data_Recorder1.png]] | ||
==Macro reference== | ==Macro reference== |
Latest revision as of 09:22, 20 March 2025
Author | Matrix TSL |
Version | 1.0 |
Category | Analog Input |
Contents
Potentiometer component
Component Source Code
Please click here to download the component source project: FC_Comp_Source_Potentiometer.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_Potentiometer.fcfx
Detailed description
No detailed description exists yet for this component
Examples
A simple example that shows how to use some common functions of the potentiometer in conjunction with an LCD.
Using Fixed Voltage Reference
An example of a 0 to 1023 mV meter with a resolution of 1mv.
A PIC16F15324 is used since it has a Fixed Voltage Reference (FVR) register.
Bit0 and bit1 determine what the FVR is set at.
A line of C code is added to set the FVR to a gain of x1 = FVR of 1.024V:
FVRCON = 0b11000001;
With this setting, the Int value from ADC directly proportional voltage in mV.
E.g. a value of 732 = 732mV
Binary is used to make reading values a lot easier.
From the datasheet:
If you wanted to change the fixed voltage reference to 2.048V
Then change bit0 and bit1 of the C code to FVRCON = 0b11000010;
Filtering ADC Inputs
Simple example which uses a filtering technique to provide a digital low pass filter on the ADC readings. The output of the filter is 50% the ADC reading and 50% the previous reading.
In this example the output of the filter is 25% the ADC reading and 75% the previous reading.
Analogue Inputs Window
The Analogue inputs window available from the View ribbon, allows you to see the values for all of the analogue inputs which are active in your program. They can also be manually altered by dragging the mouse along one of the sliders.
Data Recorder
An ADC based component will automatically add a trace to the data recorder window allowing you to get a view of the analogue data over time during simulation.
Macro reference
GetAverageByte
![]() |
GetAverageByte |
Read the ADC as a byte | |
![]() |
NumSamples |
![]() |
DelayUs |
![]() |
Return |
GetAverageInt
![]() |
GetAverageInt |
Read the ADC at full bit depth | |
![]() |
NumSamples |
![]() |
DelayUs |
![]() |
Return |
GetByte
![]() |
GetByte |
Read the ADC as a byte | |
![]() |
Return |
GetInt
![]() |
GetInt |
Read the ADC at full bit depth | |
![]() |
Return |
GetString
![]() |
GetString |
Reads the ADC as a direct voltage | |
![]() |
Return |
GetVoltage
![]() |
GetVoltage |
Reads the ADC as a direct voltage | |
![]() |
Return |