|
|
(8 intermediate revisions by 2 users not shown) |
Line 15: |
Line 15: |
| Quadrature Encoder component implements a rotary encoder connected to two pins. Quadrature Encoders provides incremental positioning rather than absolute positioning. | | Quadrature Encoder component implements a rotary encoder connected to two pins. Quadrature Encoders provides incremental positioning rather than absolute positioning. |
| | | |
− | ==Component Source Code== | + | ==Version information== |
| | | |
− | Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_Encoder_Quadrature_2dgi.fcfx FC_Comp_Source_Encoder_Quadrature_2dgi.fcfx]
| + | Library Version, Component Version, Date, Author, Info |
− | | + | 6, 1.4, 26-11-24, BR, Updated tooltip for CheckForChanges macro |
− | Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_Encoder_Quadrature_2dgi.fcfx FC_Comp_Source_Encoder_Quadrature_2dgi.fcfx]
| |
| | | |
| ==Detailed description== | | ==Detailed description== |
| | | |
| + | Mechanical encoders can be a bit electrically noisy when switching and so to have reliable operation it is recommended to have a simple filter as shown here. |
| | | |
| + | [[Image:EncoderCircuit.jpg]] |
| | | |
| + | ==Examples== |
| | | |
| + | ===Polling=== |
| | | |
| + | Example program showing how to use a quadrature encoder component using a polling method. |
| + | {{Fcfile|Quad_Encoder_Test_2d.fcfx|Quad_Encoder_Test}} |
| + | ===Timer Interrupt Based Polling=== |
| | | |
| + | Example program showing how to use a quadrature encoder component using a polling method via a timer interrupt. |
| + | {{Fcfile|Quad_Encoder_Timer_2d.fcfx|Quad_Encoder_Timer}} |
| | | |
| + | ===Interrupt On Change=== |
| | | |
− | | + | Example program showing how to use a quadrature encoder component using a interrupt on pin state change interrupt (IOC). |
− | ''No detailed description exists yet for this component''
| + | {{Fcfile|Quad_Encoder_IOC_2d.fcfx|Quad_Encoder_IOC}} |
− | | |
− | ==Examples==
| |
− | | |
− | | |
− | | |
| | | |
| | | |
Line 43: |
Line 47: |
| | | |
| | | |
− | ''<span style="color:red;">No additional examples</span>''
| |
| | | |
| ==Macro reference== | | ==Macro reference== |
| | | |
| + | ===CheckForChanges=== |
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" |
| |- | | |- |
Line 52: |
Line 56: |
| | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckForChanges''' | | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckForChanges''' |
| |- | | |- |
− | | colspan="2" | Polling function to check changes Returns 1 for chaged, 0 for no change, 255 for error | + | | colspan="2" | Polling function to check changes and update internal counter. Returns 1 for chaged, 0 for no change, 255 for error |
| |- | | |- |
| |- | | |- |
Line 60: |
Line 64: |
| | | |
| | | |
| + | ===Disable=== |
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" |
| |- | | |- |
Line 73: |
Line 78: |
| | | |
| | | |
− | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
| + | ===Enable=== |
− | |-
| |
− | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WriteCounter32'''
| |
− | |-
| |
− | | colspan="2" | Sets the value of the internal count variable. Range: -2147483648 to 2147483647
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-s32-icon.png]] - LONG
| |
− | | width="90%" | Value
| |
− | |-
| |
− | | colspan="2" | Range: -2147483648 to 2147483647
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− | | |
− | | |
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" |
| |- | | |- |
Line 104: |
Line 92: |
| | | |
| | | |
− | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
| + | ===ReadCounter=== |
− | |-
| |
− | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Rotate'''
| |
− | |-
| |
− | | colspan="2" | Simulation Rotate function to allow accurate rotation during simulation. Automatically called by any attached coupling or gearbox component.
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-f32-icon.png]] - FLOAT
| |
− | | width="90%" | Angle
| |
− | |-
| |
− | | colspan="2" | Amount to rotate the shaft input in degrees
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− | | |
− | | |
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" |
| |- | | |- |
Line 135: |
Line 106: |
| | | |
| | | |
− | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
| + | ===ReadCounter32=== |
− | |-
| |
− | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WriteCounter'''
| |
− | |-
| |
− | | colspan="2" | Sets the value of the internal count variable. Range: -32768 to 32767
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-s16-icon.png]] - INT
| |
− | | width="90%" | Value
| |
− | |-
| |
− | | colspan="2" | Range: -32768 to 32767
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− | | |
− | | |
− | {| 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;" | '''ResetCounter'''
| |
− | |-
| |
− | | colspan="2" | Resets the current dial counter to zero
| |
− | |-
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− | | |
− | | |
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" |
| |- | | |- |
Line 179: |
Line 120: |
| | | |
| | | |
− | | + | ===ResetCounter=== |
− | | |
− | ==Property reference== | |
− | | |
− | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
| |
− | |-
| |
− | | width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| |
− | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Count Variable
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| |
− | | width="90%" | Variable Type
| |
− | |-
| |
− | | colspan="2" | Selects the size of the encoder count variable depending on the number of encoder counts required to be stored. The 16 bit variable counter is accessed via the ReadCounter and WriteCounter functions. The 32 bit variable counter is accessed via the ReadCounter32 and WriteCounter32 functions.
| |
− | |-
| |
− | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| |
− | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Encoder Resolution
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| |
− | | width="90%" | Post Scaler
| |
− | |-
| |
− | | colspan="2" | Encoders with a mechanical click will often have 4 transitions per click. 1:1 would provide the maximum output resolution. 1:4 would provide the encoder click count.
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| |
− | | width="90%" | Edges Per Revolution
| |
− | |-
| |
− | | colspan="2" | Number of signal transitions per revolution. E.g. for a 360 degree encoder you would likely get 360 x 4 = 1440 transitions and an accuracy of 0.25 degrees.
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
| |
− | | width="90%" | Resolution
| |
− | |-
| |
− | | colspan="2" | The resolution of the encoder in degrees
| |
− | |-
| |
− | | 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-5-icon.png]]
| |
− | | width="90%" | A
| |
− | |-
| |
− | | colspan="2" | Input pin A
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
| |
− | | width="90%" | B
| |
− | |-
| |
− | | colspan="2" | Input Pin B
| |
− | |-
| |
− | | 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%" | Repeat Rate
| |
− | |-
| |
− | | colspan="2" | Simulated repeat rate when clicking and rotating the encoder
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
| |
− | | width="90%" | Scope Traces
| |
− | |-
| |
− | | colspan="2" |
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-12-icon.png]]
| |
− | | width="90%" | Poiner Style
| |
− | |-
| |
− | | colspan="2" |
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| |
− | | width="90%" | Style
| |
− | |-
| |
− | | colspan="2" |
| |
− | |}==Macro reference==
| |
− | | |
| {| 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;" | '''CheckForChanges''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ResetCounter''' |
| |- | | |- |
− | | colspan="2" | Polling function to check changes Returns 1 for chaged, 0 for no change, 255 for error | + | | colspan="2" | Resets the current dial counter to zero |
− | |-
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− | | |
− | | |
− | {| 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;" | '''Disable'''
| |
− | |-
| |
− | | colspan="2" | Disables the use of the quad encoder Once this ist called, the read functions will return zeros until the next Enable() call
| |
− | |-
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− | | |
− | | |
− | {| 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;" | '''WriteCounter32'''
| |
− | |-
| |
− | | colspan="2" | Sets the value of the internal count variable. Range: -2147483648 to 2147483647
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-s32-icon.png]] - LONG
| |
− | | width="90%" | Value
| |
− | |-
| |
− | | colspan="2" | Range: -2147483648 to 2147483647
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− | | |
− | | |
− | {| 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;" | '''Enable'''
| |
− | |-
| |
− | | colspan="2" | Enables the use of the quad encoder If this is not called, the read functions will return zeros
| |
| |- | | |- |
| |- | | |- |
Line 313: |
Line 134: |
| | | |
| | | |
| + | ===Rotate=== |
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" |
| |- | | |- |
Line 331: |
Line 153: |
| | | |
| | | |
− | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
| + | ===WriteCounter=== |
− | |-
| |
− | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadCounter'''
| |
− | |-
| |
− | | colspan="2" | Reads the current dial counter This is a counter from -32768 to 32767
| |
− | |-
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− | | |
− | | |
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" |
| |- | | |- |
Line 362: |
Line 172: |
| | | |
| | | |
− | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
| + | ===WriteCounter32=== |
− | |-
| |
− | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ResetCounter'''
| |
− | |-
| |
− | | colspan="2" | Resets the current dial counter to zero
| |
− | |-
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− | | |
− | | |
− | {| 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;" | '''ReadCounter32'''
| |
− | |-
| |
− | | colspan="2" | Reads the current dial counter as a 32-bit value This is a counter from -2147483648 to 2147483647
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-s32-icon.png]] - LONG
| |
− | | width="90%" style="border-top: 2px solid #000;" | ''Return''
| |
− | |}
| |
− | | |
− | | |
− | | |
− | | |
− | ==Property reference==
| |
− | | |
− | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
| |
− | |-
| |
− | | width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| |
− | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Count Variable
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| |
− | | width="90%" | Variable Type
| |
− | |-
| |
− | | colspan="2" | Selects the size of the encoder count variable depending on the number of encoder counts required to be stored. The 16 bit variable counter is accessed via the ReadCounter and WriteCounter functions. The 32 bit variable counter is accessed via the ReadCounter32 and WriteCounter32 functions.
| |
− | |-
| |
− | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| |
− | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Encoder Resolution
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| |
− | | width="90%" | Post Scaler
| |
− | |-
| |
− | | colspan="2" | Encoders with a mechanical click will often have 4 transitions per click. 1:1 would provide the maximum output resolution. 1:4 would provide the encoder click count.
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| |
− | | width="90%" | Edges Per Revolution
| |
− | |-
| |
− | | colspan="2" | Number of signal transitions per revolution. E.g. for a 360 degree encoder you would likely get 360 x 4 = 1440 transitions and an accuracy of 0.25 degrees.
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
| |
− | | width="90%" | Resolution
| |
− | |-
| |
− | | colspan="2" | The resolution of the encoder in degrees
| |
− | |-
| |
− | | 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-5-icon.png]]
| |
− | | width="90%" | A
| |
− | |-
| |
− | | colspan="2" | Input pin A
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
| |
− | | width="90%" | B
| |
− | |-
| |
− | | colspan="2" | Input Pin B
| |
− | |-
| |
− | | 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%" | Repeat Rate
| |
− | |-
| |
− | | colspan="2" | Simulated repeat rate when clicking and rotating the encoder
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
| |
− | | width="90%" | Scope Traces
| |
− | |-
| |
− | | colspan="2" |
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-12-icon.png]]
| |
− | | width="90%" | Poiner Style
| |
− | |-
| |
− | | colspan="2" |
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| |
− | | width="90%" | Style
| |
− | |-
| |
− | | 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;" | '''CheckForChanges'''
| |
− | |-
| |
− | | colspan="2" | Polling function to check changes Returns 1 for chaged, 0 for no change, 255 for error
| |
− | |-
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− | | |
− | | |
− | {| 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;" | '''Disable'''
| |
− | |-
| |
− | | colspan="2" | Disables the use of the quad encoder Once this ist called, the read functions will return zeros until the next Enable() call
| |
− | |-
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− | | |
− | | |
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" |
| |- | | |- |
Line 507: |
Line 189: |
| | width="90%" style="border-top: 2px solid #000;" | ''Return'' | | | width="90%" style="border-top: 2px solid #000;" | ''Return'' |
| |} | | |} |
− |
| |
− |
| |
− | {| 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;" | '''Enable'''
| |
− | |-
| |
− | | colspan="2" | Enables the use of the quad encoder If this is not called, the read functions will return zeros
| |
− | |-
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− |
| |
− |
| |
− | {| 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;" | '''Rotate'''
| |
− | |-
| |
− | | colspan="2" | Simulation Rotate function to allow accurate rotation during simulation. Automatically called by any attached coupling or gearbox component.
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-f32-icon.png]] - FLOAT
| |
− | | width="90%" | Angle
| |
− | |-
| |
− | | colspan="2" | Amount to rotate the shaft input in degrees
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− |
| |
− |
| |
− | {| 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;" | '''ReadCounter'''
| |
− | |-
| |
− | | colspan="2" | Reads the current dial counter This is a counter from -32768 to 32767
| |
− | |-
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− |
| |
− |
| |
− | {| 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;" | '''WriteCounter'''
| |
− | |-
| |
− | | colspan="2" | Sets the value of the internal count variable. Range: -32768 to 32767
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-s16-icon.png]] - INT
| |
− | | width="90%" | Value
| |
− | |-
| |
− | | colspan="2" | Range: -32768 to 32767
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− |
| |
− |
| |
− | {| 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;" | '''ResetCounter'''
| |
− | |-
| |
− | | colspan="2" | Resets the current dial counter to zero
| |
− | |-
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− |
| |
− |
| |
− | {| 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;" | '''ReadCounter32'''
| |
− | |-
| |
− | | colspan="2" | Reads the current dial counter as a 32-bit value This is a counter from -2147483648 to 2147483647
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-s32-icon.png]] - LONG
| |
− | | width="90%" style="border-top: 2px solid #000;" | ''Return''
| |
− | |}
| |
− |
| |
− |
| |
| | | |
| | | |
Line 615: |
Line 207: |
| |- | | |- |
| | colspan="2" | Selects the size of the encoder count variable depending on the number of encoder counts required to be stored. The 16 bit variable counter is accessed via the ReadCounter and WriteCounter functions. The 32 bit variable counter is accessed via the ReadCounter32 and WriteCounter32 functions. | | | colspan="2" | Selects the size of the encoder count variable depending on the number of encoder counts required to be stored. The 16 bit variable counter is accessed via the ReadCounter and WriteCounter functions. The 32 bit variable counter is accessed via the ReadCounter32 and WriteCounter32 functions. |
− | |-
| |
− | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| |
− | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Encoder Resolution
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| |
− | | width="90%" | Post Scaler
| |
− | |-
| |
− | | colspan="2" | Encoders with a mechanical click will often have 4 transitions per click. 1:1 would provide the maximum output resolution. 1:4 would provide the encoder click count.
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| |
− | | width="90%" | Edges Per Revolution
| |
− | |-
| |
− | | colspan="2" | Number of signal transitions per revolution. E.g. for a 360 degree encoder you would likely get 360 x 4 = 1440 transitions and an accuracy of 0.25 degrees.
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
| |
− | | width="90%" | Resolution
| |
− | |-
| |
− | | colspan="2" | The resolution of the encoder in degrees
| |
− | |-
| |
− | | 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-5-icon.png]]
| |
− | | width="90%" | A
| |
− | |-
| |
− | | colspan="2" | Input pin A
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
| |
− | | width="90%" | B
| |
− | |-
| |
− | | colspan="2" | Input Pin B
| |
− | |-
| |
− | | 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%" | Repeat Rate
| |
− | |-
| |
− | | colspan="2" | Simulated repeat rate when clicking and rotating the encoder
| |
| |- | | |- |
| | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] |
− | | width="90%" | Scope Traces | + | | width="90%" | Invert Count |
| |- | | |- |
| | colspan="2" | | | | colspan="2" | |
| |- | | |- |
− | | width="10%" align="center" | [[File:Fc9-type-12-icon.png]] | + | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] |
− | | width="90%" | Poiner Style | + | | width="90%" | Limit Value |
| |- | | |- |
| | colspan="2" | | | | colspan="2" | |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| |
− | | width="90%" | Style
| |
− | |-
| |
− | | 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;" | '''CheckForChanges'''
| |
− | |-
| |
− | | colspan="2" | Polling function to check changes Returns 1 for chaged, 0 for no change, 255 for error
| |
− | |-
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− |
| |
− |
| |
− | {| 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;" | '''Disable'''
| |
− | |-
| |
− | | colspan="2" | Disables the use of the quad encoder Once this ist called, the read functions will return zeros until the next Enable() call
| |
− | |-
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− |
| |
− |
| |
− | {| 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;" | '''WriteCounter32'''
| |
− | |-
| |
− | | colspan="2" | Sets the value of the internal count variable. Range: -2147483648 to 2147483647
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-s32-icon.png]] - LONG
| |
− | | width="90%" | Value
| |
− | |-
| |
− | | colspan="2" | Range: -2147483648 to 2147483647
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− |
| |
− |
| |
− | {| 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;" | '''Enable'''
| |
− | |-
| |
− | | colspan="2" | Enables the use of the quad encoder If this is not called, the read functions will return zeros
| |
− | |-
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− |
| |
− |
| |
− | {| 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;" | '''Rotate'''
| |
− | |-
| |
− | | colspan="2" | Simulation Rotate function to allow accurate rotation during simulation. Automatically called by any attached coupling or gearbox component.
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-f32-icon.png]] - FLOAT
| |
− | | width="90%" | Angle
| |
− | |-
| |
− | | colspan="2" | Amount to rotate the shaft input in degrees
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− |
| |
− |
| |
− | {| 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;" | '''ReadCounter'''
| |
− | |-
| |
− | | colspan="2" | Reads the current dial counter This is a counter from -32768 to 32767
| |
− | |-
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− |
| |
− |
| |
− | {| 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;" | '''WriteCounter'''
| |
− | |-
| |
− | | colspan="2" | Sets the value of the internal count variable. Range: -32768 to 32767
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-s16-icon.png]] - INT
| |
− | | width="90%" | Value
| |
− | |-
| |
− | | colspan="2" | Range: -32768 to 32767
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− |
| |
− |
| |
− | {| 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;" | '''ResetCounter'''
| |
− | |-
| |
− | | colspan="2" | Resets the current dial counter to zero
| |
− | |-
| |
− | |-
| |
− | | 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''
| |
− | |}
| |
− |
| |
− |
| |
− | {| 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;" | '''ReadCounter32'''
| |
− | |-
| |
− | | colspan="2" | Reads the current dial counter as a 32-bit value This is a counter from -2147483648 to 2147483647
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-s32-icon.png]] - LONG
| |
− | | width="90%" style="border-top: 2px solid #000;" | ''Return''
| |
− | |}
| |
− |
| |
− |
| |
− |
| |
− |
| |
− | ==Property reference==
| |
− |
| |
− | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
| |
− | |-
| |
− | | width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| |
− | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Count Variable
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| |
− | | width="90%" | Variable Type
| |
− | |-
| |
− | | colspan="2" | Selects the size of the encoder count variable depending on the number of encoder counts required to be stored. The 16 bit variable counter is accessed via the ReadCounter and WriteCounter functions. The 32 bit variable counter is accessed via the ReadCounter32 and WriteCounter32 functions.
| |
| |- | | |- |
| | 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 867: |
Line 260: |
| | colspan="2" | Simulated repeat rate when clicking and rotating the encoder | | | colspan="2" | Simulated repeat rate when clicking and rotating the encoder |
| |- | | |- |
− | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | + | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] |
− | | width="90%" | Scope Traces | + | | width="90%" | Knob Colour |
| |- | | |- |
| | colspan="2" | | | | colspan="2" | |
| |- | | |- |
− | | width="10%" align="center" | [[File:Fc9-type-12-icon.png]] | + | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] |
− | | width="90%" | Poiner Style | + | | width="90%" | Pointer Style |
| |- | | |- |
| | colspan="2" | | | | colspan="2" | |
| |- | | |- |
− | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | + | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] |
− | | width="90%" | Style | + | | width="90%" | Scope Traces |
| |- | | |- |
| | colspan="2" | | | | colspan="2" | |
| |} | | |} |
| + | |
| + | ==Component Source Code== |
| + | |
| + | Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_Encoder_Quadrature_2dgi.fcfx FC_Comp_Source_Encoder_Quadrature_2dgi.fcfx] |
| + | |
| + | Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_Encoder_Quadrature_2dgi.fcfx FC_Comp_Source_Encoder_Quadrature_2dgi.fcfx] |