Difference between revisions of "Component: Potentiometer (Analog Input)"
(14 intermediate revisions by 2 users not shown) | |||
Line 17: | Line 17: | ||
==Component Source Code== | ==Component Source Code== | ||
− | Please click here | + | Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_Potentiometer.fcfx FC_Comp_Source_Potentiometer.fcfx] |
+ | |||
+ | Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_Potentiometer.fcfx FC_Comp_Source_Potentiometer.fcfx] | ||
==Detailed description== | ==Detailed description== | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
''No detailed description exists yet for this component'' | ''No detailed description exists yet for this component'' | ||
==Examples== | ==Examples== | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
Line 32: | Line 58: | ||
{{Fcfile|Potentiometer Example.fcfx|Potentiometer Example}} | {{Fcfile|Potentiometer Example.fcfx|Potentiometer Example}} | ||
− | |||
+ | |||
+ | ===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== | ||
+ | |||
+ | ===GetAverageByte=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetAverageByte''' |
+ | |- | ||
+ | | colspan="2" | Read the ADC as a byte | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | NumSamples | ||
+ | |- | ||
+ | | colspan="2" | | ||
|- | |- | ||
− | | | + | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE |
+ | | width="90%" | DelayUs | ||
|- | |- | ||
+ | | colspan="2" | | ||
|- | |- | ||
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE |
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
+ | ===GetAverageInt=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetAverageInt''' |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Read the ADC at full bit depth |
|- | |- | ||
|- | |- | ||
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | + | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE |
+ | | width="90%" | NumSamples | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | DelayUs | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT | ||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
+ | ===GetByte=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetByte''' |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Read the ADC as a byte |
|- | |- | ||
|- | |- | ||
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE |
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
+ | ===GetInt=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetInt''' |
− | |||
− | |||
|- | |- | ||
+ | | colspan="2" | Read the ADC at full bit depth | ||
|- | |- | ||
− | |||
− | |||
|- | |- | ||
− | + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT | |
− | |||
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | ||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
+ | ===GetString=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetString''' |
|- | |- | ||
| colspan="2" | Reads the ADC as a direct voltage | | colspan="2" | Reads the ADC as a direct voltage | ||
|- | |- | ||
|- | |- | ||
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-string-icon.png]] - STRING |
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
+ | ===GetVoltage=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetVoltage''' |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Reads the ADC as a direct voltage |
|- | |- | ||
|- | |- | ||
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-f32-icon.png]] - FLOAT |
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
− | |||
− | |||
Line 164: | Line 267: | ||
|- | |- | ||
| colspan="2" | Maximum number of digital bits the ADC can sample. 8 bit = ADC range 0 - 255 10 bit = ADC range 0 - 1023 12 bit = ADC range 0 - 4095 | | colspan="2" | Maximum number of digital bits the ADC can sample. 8 bit = ADC range 0 - 255 10 bit = ADC range 0 - 1023 12 bit = ADC range 0 - 4095 | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | ||
+ | | width="90%" | Retain Value | ||
+ | |- | ||
+ | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] | ||
Line 174: | Line 282: | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9-type- | + | | width="10%" align="center" | [[File:Fc9-type-2-icon.png]] |
− | + | | width="90%" | LabelColour | |
− | |||
− | |||
− | |||
− | |||
− | | width="90%" | | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
Line 194: | Line 297: | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
− | | width="10%" align="center" | + | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] |
− | | width="90% | + | | width="90%" | Colour Style |
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-23-icon.png]] | ||
+ | | width="90%" | Fill | ||
|- | |- | ||
+ | | colspan="2" | | ||
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9-type- | + | | width="10%" align="center" | [[File:Fc9-type-2-icon.png]] |
− | | width="90%" | | + | | width="90%" | Frame Outline |
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9-type- | + | | width="10%" align="center" | [[File:Fc9-type-23-icon.png]] |
− | | width="90%" | | + | | width="90%" | Frame Fill |
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9-type- | + | | width="10%" align="center" | [[File:Fc9-type-2-icon.png]] |
− | | width="90%" | | + | | width="90%" | Pointer Outline |
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9-type- | + | | width="10%" align="center" | [[File:Fc9-type-23-icon.png]] |
− | | width="90%" | | + | | width="90%" | Pointer Fill |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | |
|- | |- | ||
− | | width="10%" align="center | + | | width="10%" align="center" | [[File:Fc9-type-2-icon.png]] |
− | | width="90% | + | | width="90%" | Text |
|- | |- | ||
+ | | colspan="2" | | ||
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9-type- | + | | width="10%" align="center" | [[File:Fc9-type-2-icon.png]] |
− | | width="90%" | | + | | width="90%" | Tick Mark Outline |
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9-type- | + | | width="10%" align="center" | [[File:Fc9-type-23-icon.png]] |
− | | width="90%" | | + | | width="90%" | Tick Mark Fill |
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9-type- | + | | width="10%" align="center" | [[File:Fc9-type-2-icon.png]] |
− | | width="90%" | | + | | width="90%" | Cap Outline |
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9-type- | + | | width="10%" align="center" | [[File:Fc9-type-23-icon.png]] |
− | | width="90%" | | + | | width="90%" | Cap Fill |
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9-type- | + | | width="10%" align="center" | [[File:Fc9-type-13-icon.png]] |
− | | width="90%" | | + | | width="90%" | Main Image |
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9-type- | + | | width="10%" align="center" | [[File:Fc9-type-13-icon.png]] |
− | | width="90%" | | + | | width="90%" | Cap Image |
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9-type- | + | | width="10%" align="center" | [[File:Fc9-type-12-icon.png]] |
− | | width="90%" | | + | | width="90%" | Style |
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9-type- | + | | width="10%" align="center" | [[File:Fc9-type-12-icon.png]] |
− | | width="90%" | | + | | width="90%" | Type |
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
+ | |- | ||
+ | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] | ||
+ | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Simulation | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | ||
+ | | width="90%" | Scope Traces | ||
+ | |- | ||
+ | | colspan="2" | Selects if the scope traces are automatically generated or not | ||
|} | |} |
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 |