Difference between revisions of "Component: Potentiometer (Analog Input)"

From Flowcode Help
Jump to navigationJump to search
 
(11 intermediate revisions by 2 users not shown)
Line 16: Line 16:
  
 
==Component Source Code==
 
==Component Source Code==
 +
 +
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]
 
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==
 +
 +
 +
 +
 +
 +
  
  
Line 30: Line 38:
  
 
==Examples==
 
==Examples==
 +
 +
 +
 +
 +
 +
  
  
Line 44: Line 58:
 
{{Fcfile|Potentiometer Example.fcfx|Potentiometer Example}}
 
{{Fcfile|Potentiometer Example.fcfx|Potentiometer Example}}
  
==Macro reference==
 
  
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
+
 
|-
+
===Using Fixed Voltage Reference===
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
+
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadAsInt'''
+
An example of a 0 to 1023 mV meter with a resolution of 1mv.
|-
+
 
| colspan="2" | Read the ADC at full bit depth 
+
{{Fcfile|ADC_using_FVR_16F15324.fcfx|ADC using FVR}}
|-
+
 
|-
+
A PIC16F15324 is used since it has a Fixed Voltage Reference (FVR) register.
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-s16-icon.png]] - INT
+
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
+
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;'''  
 +
 
  
  
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetValue'''
 
|-
 
| colspan="2" | Get the Float value, between lower and upper bounds. Used on App Developer 
 
|-
 
|-
 
| 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''
 
|}
 
  
  
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
+
===Filtering ADC Inputs===
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadAsFloat'''
 
|-
 
| colspan="2" | Reads the ADC as a direct voltage 
 
|-
 
|-
 
| 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''
 
|}
 
  
 +
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.
  
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
+
{{Fcfile|LPFilter_2D.fcfx|LPFilter}}
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetValue'''
 
|-
 
| colspan="2" | Sets the Float value, between lower and upper bounds. Used on App Developer 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-f32-icon.png]] - FLOAT
 
| width="90%" | Value
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
  
 +
In this example the output of the filter is 25% the ADC reading and 75% the previous reading.
  
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
+
{{Fcfile|LPFilter2_2D.fcfx|LPFilter2}}
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadAsVoltage'''
 
|-
 
| colspan="2" | Reads the ADC as a direct voltage 
 
|-
 
|-
 
| 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''
 
|}
 
  
  
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
+
===Analogue Inputs Window===
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Ev_Start'''
 
|-
 
| colspan="2" | Broadcast to all components that simulation is starting 
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u32-icon.png]] - ULONG
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
  
 +
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.
  
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadAsByte'''
 
|-
 
| colspan="2" | Read the ADC as a byte 
 
|-
 
|-
 
| 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''
 
|}
 
  
 +
===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]]
  
==Property reference==
+
==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;" | [[File:Fc9-prop-icon.png]]
+
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''  
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetAverageByte'''
 
|-
 
|-
|-
+
| colspan="2" | Read the ADC as a byte 
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Connections
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-6-icon.png]]
 
| width="90%" | Channel
 
|-
 
| colspan="2" | Analogue Input Channel - Which pin is the analogue input connected to? 
 
|-
 
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Settings
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
 
| width="90%" | VRef voltage
 
|-
 
| colspan="2" | Used by the GetVoltage or GetString component macros to take an ADC reading and convert it into a Voltage. +VRef voltage x 10mV Default 500 = 5.0V  
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="90%" | VRef option
 
|-
 
| colspan="2" | Defines what is used as the ADC maximum reference. ADC Range = GND to VRef Voltage VDD - Defines the microcontrollers power supply pin as the max reference, VREF+ Pin - Dedicated pin on the microcontroller to allow for a variable reference voltage. 
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="90%" | Conversion speed
 
|-
 
| colspan="2" | Clock setting to select how fast the ADC peripheral will perform an ADC conversion. The FRC setting is based on a RC time base and so will vary with temperature and pressure. Other settings are generally based on divisions of the master clock. 
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
 
| width="90%" | Acquisition cycles
 
|-
 
| colspan="2" | Number of micro seconds to wait for the ADC input to charge before starting the analogue sample. 
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
 
| width="90%" | Bit Depth
 
|-
 
| 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" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Appearance
 
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Component Label
+
| width="90%" | NumSamples
 
|-
 
|-
 
| colspan="2" |  
 
| colspan="2" |  
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-11-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | User Label Text
+
| width="90%" | DelayUs
|-
 
| colspan="2" | Text to display 
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="90%" | Scale Range
 
 
|-
 
|-
 
| colspan="2" |  
 
| colspan="2" |  
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
+
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Show Connection Label
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
 
| width="90%" | Show Pin Value
 
|-
 
| 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-16-icon.png]]
 
| width="90%" | Colour Style
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-12-icon.png]]
 
| width="90%" | Style
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-12-icon.png]]
 
| width="90%" | Type
 
|-
 
| colspan="2" |  
 
|-
 
| 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 
 
|-
 
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Scale
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
 
| width="90%" | Lower Bound
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
 
| width="90%" | Upper Bound
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 
| width="90%" | Major Tick Step
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
 
| width="90%" | Minor Tick Step
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
 
| width="90%" | Label Format
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
 
| width="90%" | Closed
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
 
| width="90%" | Start Angle
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
 
| width="90%" | End Angle
 
|-
 
| colspan="2" |  
 
|}==Macro reference==
 
 
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadAsInt'''
 
|-
 
| colspan="2" | Read the ADC at full bit depth 
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-s16-icon.png]] - INT
 
 
| 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;" | '''GetValue'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetAverageInt'''
 
|-
 
|-
| colspan="2" | Get the Float value, between lower and upper bounds. Used on App Developer 
+
| colspan="2" | Read the ADC at full bit depth 
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-f32-icon.png]] - FLOAT
+
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" style="border-top: 2px solid #000;" | ''Return''
+
| width="90%" | NumSamples
|}
 
 
 
 
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
 
|-
 
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
+
| colspan="2" |  
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadAsFloat'''
 
 
|-
 
|-
| colspan="2" | Reads the ADC as a direct voltage 
+
| 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-f32-icon.png]] - FLOAT
+
| 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;" | '''SetValue'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetByte'''
 
|-
 
|-
| colspan="2" | Sets the Float value, between lower and upper bounds. Used on App Developer 
+
| colspan="2" | Read the ADC as a byte 
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-f32-icon.png]] - FLOAT
+
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Value
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 
 
| 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;" | '''ReadAsVoltage'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetInt'''
 
|-
 
|-
| colspan="2" | Reads the ADC as a direct voltage 
+
| colspan="2" | Read the ADC at full bit depth 
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-f32-icon.png]] - FLOAT
+
| 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''
 
|}
 
|}
  
  
 +
===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;" | '''Ev_Start'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetString'''
 
|-
 
|-
| colspan="2" | Broadcast to all components that simulation is starting 
+
| colspan="2" | Reads the ADC as a direct voltage 
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u32-icon.png]] - ULONG
+
| 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;" | '''ReadAsByte'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetVoltage'''
 
|-
 
|-
| colspan="2" | Read the ADC as a byte 
+
| colspan="2" | Reads the ADC as a direct voltage 
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
+
| 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 431: 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 441: Line 282:
 
| colspan="2" |  
 
| colspan="2" |  
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-11-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-2-icon.png]]
| width="90%" | User Label Text
+
| width="90%" | LabelColour
|-
 
| colspan="2" | Text to display 
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="90%" | Scale Range
 
 
|-
 
|-
 
| colspan="2" |  
 
| colspan="2" |  
Line 461: Line 297:
 
| colspan="2" |  
 
| colspan="2" |  
 
|-
 
|-
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Simulation
+
| 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-16-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-2-icon.png]]
| width="90%" | Colour Style
+
| width="90%" | Frame Outline
 
|-
 
|-
 
| colspan="2" |  
 
| colspan="2" |  
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-12-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-23-icon.png]]
| width="90%" | Style
+
| width="90%" | Frame Fill
 
|-
 
|-
 
| colspan="2" |  
 
| colspan="2" |  
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-12-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-2-icon.png]]
| width="90%" | Type
+
| width="90%" | Pointer Outline
 
|-
 
|-
 
| colspan="2" |  
 
| colspan="2" |  
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-23-icon.png]]
| width="90%" | Scope Traces
+
| width="90%" | Pointer Fill
 
|-
 
|-
| colspan="2" | Selects if the scope traces are automatically generated or not 
+
| colspan="2" |  
 
|-
 
|-
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-2-icon.png]]
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Scale
+
| width="90%" | Text
 
|-
 
|-
 +
| colspan="2" |  
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-2-icon.png]]
| width="90%" | Lower Bound
+
| width="90%" | Tick Mark Outline
 
|-
 
|-
 
| colspan="2" |  
 
| colspan="2" |  
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-23-icon.png]]
| width="90%" | Upper Bound
+
| width="90%" | Tick Mark Fill
 
|-
 
|-
 
| colspan="2" |  
 
| colspan="2" |  
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-2-icon.png]]
| width="90%" | Major Tick Step
+
| width="90%" | Cap Outline
 
|-
 
|-
 
| colspan="2" |  
 
| colspan="2" |  
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-23-icon.png]]
| width="90%" | Minor Tick Step
+
| width="90%" | Cap Fill
 
|-
 
|-
 
| colspan="2" |  
 
| colspan="2" |  
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-13-icon.png]]
| width="90%" | Label Format
+
| width="90%" | Main Image
 
|-
 
|-
 
| colspan="2" |  
 
| colspan="2" |  
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-13-icon.png]]
| width="90%" | Closed
+
| width="90%" | Cap Image
 
|-
 
|-
 
| colspan="2" |  
 
| colspan="2" |  
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-12-icon.png]]
| width="90%" | Start Angle
+
| width="90%" | Style
 
|-
 
|-
 
| colspan="2" |  
 
| colspan="2" |  
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-12-icon.png]]
| width="90%" | End Angle
+
| 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


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.

FC6 Icon.png Potentiometer Example


Using Fixed Voltage Reference

An example of a 0 to 1023 mV meter with a resolution of 1mv.

FC6 Icon.png 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:

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.

FC6 Icon.png LPFilter

In this example the output of the filter is 25% the ADC reading and 75% the previous reading.

FC6 Icon.png LPFilter2


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.

Data Recorder1.png

Macro reference

GetAverageByte

Fc9-comp-macro.png GetAverageByte
Read the ADC as a byte 
Fc9-u8-icon.png - BYTE NumSamples
 
Fc9-u8-icon.png - BYTE DelayUs
 
Fc9-u8-icon.png - BYTE Return


GetAverageInt

Fc9-comp-macro.png GetAverageInt
Read the ADC at full bit depth 
Fc9-u8-icon.png - BYTE NumSamples
 
Fc9-u8-icon.png - BYTE DelayUs
 
Fc9-u16-icon.png - UINT Return


GetByte

Fc9-comp-macro.png GetByte
Read the ADC as a byte 
Fc9-u8-icon.png - BYTE Return


GetInt

Fc9-comp-macro.png GetInt
Read the ADC at full bit depth 
Fc9-u16-icon.png - UINT Return


GetString

Fc9-comp-macro.png GetString
Reads the ADC as a direct voltage 
Fc9-string-icon.png - STRING Return


GetVoltage

Fc9-comp-macro.png GetVoltage
Reads the ADC as a direct voltage 
Fc9-f32-icon.png - FLOAT Return


Property reference

Fc9-prop-icon.png Properties
Fc9-conn-icon.png Connections
Fc9-type-6-icon.png Channel
Analogue Input Channel - Which pin is the analogue input connected to? 
Fc9-conn-icon.png Settings
Fc9-type-14-icon.png VRef voltage
Used by the GetVoltage or GetString component macros to take an ADC reading and convert it into a Voltage. +VRef voltage x 10mV Default 500 = 5.0V  
Fc9-type-16-icon.png VRef option
Defines what is used as the ADC maximum reference. ADC Range = GND to VRef Voltage VDD - Defines the microcontrollers power supply pin as the max reference, VREF+ Pin - Dedicated pin on the microcontroller to allow for a variable reference voltage. 
Fc9-type-16-icon.png Conversion speed
Clock setting to select how fast the ADC peripheral will perform an ADC conversion. The FRC setting is based on a RC time base and so will vary with temperature and pressure. Other settings are generally based on divisions of the master clock. 
Fc9-type-14-icon.png Acquisition cycles
Number of micro seconds to wait for the ADC input to charge before starting the analogue sample. 
Fc9-type-14-icon.png Bit Depth
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 
Fc9-type-7-icon.png Retain Value
 
Fc9-conn-icon.png Appearance
Fc9-type-16-icon.png Component Label
 
Fc9-type-2-icon.png LabelColour
 
Fc9-type-7-icon.png Show Connection Label
 
Fc9-type-7-icon.png Show Pin Value
 
Fc9-type-16-icon.png Colour Style
 
Fc9-type-23-icon.png Fill
 
Fc9-type-2-icon.png Frame Outline
 
Fc9-type-23-icon.png Frame Fill
 
Fc9-type-2-icon.png Pointer Outline
 
Fc9-type-23-icon.png Pointer Fill
 
Fc9-type-2-icon.png Text
 
Fc9-type-2-icon.png Tick Mark Outline
 
Fc9-type-23-icon.png Tick Mark Fill
 
Fc9-type-2-icon.png Cap Outline
 
Fc9-type-23-icon.png Cap Fill
 
Fc9-type-13-icon.png Main Image
 
Fc9-type-13-icon.png Cap Image
 
Fc9-type-12-icon.png Style
 
Fc9-type-12-icon.png Type
 
Fc9-conn-icon.png Simulation
Fc9-type-7-icon.png Scope Traces
Selects if the scope traces are automatically generated or not