Difference between revisions of "Component: ADC Template (Analog Input)"
(Created page with "{| style="width:50%" |- | width="20%" style="color:gray;" | Author | Matrix Ltd |- | width="20%" style="color:gray;" | Version | 1.3 |- | width="20%" style="color:gray...") |
|||
| (10 intermediate revisions by 2 users not shown) | |||
| Line 15: | Line 15: | ||
Base ADC component with no graphical interface. Contains all of the embedded side component calls to provide an ADC interface suitable for wrapping with a new ADC style component. | Base ADC component with no graphical interface. Contains all of the embedded side component calls to provide an ADC interface suitable for wrapping with a new ADC style component. | ||
| − | == | + | ==Detailed description== |
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| − | |||
| − | |||
''No detailed description exists yet for this component'' | ''No detailed description exists yet for this component'' | ||
| Line 25: | Line 31: | ||
==Examples== | ==Examples== | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| + | |||
| + | ===Read a 8-bit Byte=== | ||
| + | |||
| + | Simple ADC example allowing analogue values to be read on ADC inputs AN0 and AN1 as a byte, these are then displayed on the LCD connected to PortB as a number ranging from 0-255 representing 0V to VCC. | ||
| + | |||
| + | {{Fcfile|ADCByte.fcfx|ADCByte}} | ||
| + | |||
| + | [[File:ADCPanel.jpg]] | ||
| + | |||
| + | |||
| + | ===Read a 10-bit or 12-bit sample=== | ||
| + | |||
| + | Simple ADC example allowing analogue values to be read on ADC inputs AN0 and AN1 as a 10 or 12-bit value depending on the target microcontroller, these are then displayed on the LCD connected to PortB as a number ranging from 0-1023 or 0-4095 representing 0V to VCC. | ||
| + | |||
| + | {{Fcfile|ADCInt.fcfx|ADCInt}} | ||
| + | |||
| + | |||
| + | ===Reading a sample as a Voltage=== | ||
| + | |||
| + | Simple ADC example allowing analogue Voltages to be read on ADC inputs AN0 and AN1, these are then displayed on the LCD connected to PortB in Volts from 0.0V-VCC. The VRef Voltage property needs to be correct for the Voltage to be calculated correctly. | ||
| + | |||
| + | {{Fcfile|ADCVoltage.fcfx|ADCVoltage}} | ||
| + | |||
| + | |||
| + | ===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.fcfx|LPFilter}} | ||
| + | |||
| + | In this example the output of the filter is 25% the ADC reading and 75% the previous reading. | ||
| + | |||
| + | {{Fcfile|LPFilter2.fcfx|LPFilter2}} | ||
| + | |||
| + | |||
| + | ===Analogue Inputs Window=== | ||
| + | |||
| + | The Analogue inputs window available from the View menu 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. | ||
| + | |||
| + | [[File:AnalogueInputs.jpg]] | ||
| + | |||
| + | |||
| + | ===Chip Diagram=== | ||
| + | |||
| + | Active analogue inputs are highlighted in yellow on the chip diagram. | ||
| + | |||
| + | [[File:AnalogueChip.jpg]] | ||
| + | |||
| + | |||
| + | ===Scope Window=== | ||
| + | |||
| + | 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. | ||
| + | |||
| + | [[File:ADCScope.jpg]] | ||
| + | |||
| + | Based on the Scope Traces component property. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==Macro reference== | ||
| + | |||
| + | ===GetAverageByte=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| Line 114: | Line 134: | ||
| − | + | ===GetAverageInt=== | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| Line 173: | Line 158: | ||
| + | ===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" | Blocking call to read the ADC as a byte |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|- | |- | ||
|- | |- | ||
| Line 263: | Line 172: | ||
| + | ===GetInt=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| Line 276: | Line 186: | ||
| + | ===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" | | + | | colspan="2" | Reads the ADC as a direct voltage and returns as a string |
|- | |- | ||
|- | |- | ||
| − | | 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 359: | Line 269: | ||
| colspan="2" | Selects if the scope traces are automatically generated or not | | colspan="2" | Selects if the scope traces are automatically generated or not | ||
|} | |} | ||
| + | |||
| + | ==Component Source Code== | ||
| + | |||
| + | Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_adc_Base.fcfx FC_Comp_Source_adc_Base.fcfx] | ||
| + | |||
| + | Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_adc_Base.fcfx FC_Comp_Source_adc_Base.fcfx] | ||
Latest revision as of 16:45, 25 June 2026
| Author | Matrix Ltd |
| Version | 1.3 |
| Category | Analog Input |
Contents
ADC Template component
Base ADC component with no graphical interface. Contains all of the embedded side component calls to provide an ADC interface suitable for wrapping with a new ADC style component.
Detailed description
No detailed description exists yet for this component
Examples
Read a 8-bit Byte
Simple ADC example allowing analogue values to be read on ADC inputs AN0 and AN1 as a byte, these are then displayed on the LCD connected to PortB as a number ranging from 0-255 representing 0V to VCC.
Read a 10-bit or 12-bit sample
Simple ADC example allowing analogue values to be read on ADC inputs AN0 and AN1 as a 10 or 12-bit value depending on the target microcontroller, these are then displayed on the LCD connected to PortB as a number ranging from 0-1023 or 0-4095 representing 0V to VCC.
Reading a sample as a Voltage
Simple ADC example allowing analogue Voltages to be read on ADC inputs AN0 and AN1, these are then displayed on the LCD connected to PortB in Volts from 0.0V-VCC. The VRef Voltage property needs to be correct for the Voltage to be calculated correctly.
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 menu 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.
Chip Diagram
Active analogue inputs are highlighted in yellow on the chip diagram.
Scope Window
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.
Based on the Scope Traces component property.
Macro reference
GetAverageByte
| GetAverageByte | |
| Function call to read the ADC as a byte average sample over time | |
| NumSamples | |
| DelayUs | |
| Number of micro seconds in between taking each sample | |
| Return | |
GetAverageInt
| GetAverageInt | |
| Function call to read the ADC as a full width average sample over time | |
| NumSamples | |
| DelayUs | |
| Number of micro seconds in between taking each sample | |
| Return | |
GetByte
| GetByte | |
| Blocking call to read the ADC as a byte | |
| Return | |
GetInt
| GetInt | |
| Blocking call to read the ADC at full bit depth | |
| Return | |
GetString
| GetString | |
| Reads the ADC as a direct voltage and returns as a string | |
| Return | |
GetVoltage
| GetVoltage | |
| Reads the ADC as a direct voltage | |
| Return | |
Property reference
Component Source Code
Please click here to download the component source project: FC_Comp_Source_adc_Base.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_adc_Base.fcfx



