<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.flowcode.co.uk/wiki/index.php?action=history&amp;feed=atom&amp;title=Component%3A_Grove_I2C_Motor_Driver_%28Mechatronics%29</id>
	<title>Component: Grove I2C Motor Driver (Mechatronics) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.flowcode.co.uk/wiki/index.php?action=history&amp;feed=atom&amp;title=Component%3A_Grove_I2C_Motor_Driver_%28Mechatronics%29"/>
	<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Component:_Grove_I2C_Motor_Driver_(Mechatronics)&amp;action=history"/>
	<updated>2026-05-02T09:55:57Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Component:_Grove_I2C_Motor_Driver_(Mechatronics)&amp;diff=39672&amp;oldid=prev</id>
		<title>BenR at 11:29, 20 October 2023</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Component:_Grove_I2C_Motor_Driver_(Mechatronics)&amp;diff=39672&amp;oldid=prev"/>
		<updated>2023-10-20T11:29:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 11:29, 20 October 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l20&quot; &gt;Line 20:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 20:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_Grove_I2C_Motor_Driver.fcfx FC_Comp_Source_Grove_I2C_Motor_Driver.fcfx]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_Grove_I2C_Motor_Driver.fcfx FC_Comp_Source_Grove_I2C_Motor_Driver.fcfx]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==Detailed description==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;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.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Image:EncoderCircuit.jpg]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==Examples==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;===Polling===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Example program showing how to use a quadrature encoder component using a polling method.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Fcfile|Quad_Encoder_Test_2d.fcfx|Quad_Encoder_Test}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;===Timer Interrupt Based Polling===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Example program showing how to use a quadrature encoder component using a polling method via a timer interrupt.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Fcfile|Quad_Encoder_Timer_2d.fcfx|Quad_Encoder_Timer}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;===Interrupt On Change===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Example program showing how to use a quadrature encoder component using a interrupt on pin state change interrupt (IOC).&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Fcfile|Quad_Encoder_IOC_2d.fcfx|Quad_Encoder_IOC}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>BenR</name></author>
		
	</entry>
	<entry>
		<id>https://www.flowcode.co.uk/wiki/index.php?title=Component:_Grove_I2C_Motor_Driver_(Mechatronics)&amp;diff=39667&amp;oldid=prev</id>
		<title>Wiki bot: Created page with &quot;{| style=&quot;width:50%&quot;  |-  | width=&quot;20%&quot; style=&quot;color:gray;&quot; | Author  | Matrix TSL  |-  | width=&quot;20%&quot; style=&quot;color:gray;&quot; | Version  | 1.0  |-  | width=&quot;20%&quot; style=&quot;color:gray...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.flowcode.co.uk/wiki/index.php?title=Component:_Grove_I2C_Motor_Driver_(Mechatronics)&amp;diff=39667&amp;oldid=prev"/>
		<updated>2023-10-20T11:19:41Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{| style=&amp;quot;width:50%&amp;quot;  |-  | width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Author  | Matrix TSL  |-  | width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Version  | 1.0  |-  | width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{| style=&amp;quot;width:50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Author&lt;br /&gt;
| Matrix TSL&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Version&lt;br /&gt;
| 1.0&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; style=&amp;quot;color:gray;&amp;quot; | Category&lt;br /&gt;
| Mechatronics&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Grove I2C Motor Driver component==&lt;br /&gt;
A grove board based around the L298P motor driver IC allowing control of two DC motors or a single stepper motor.&lt;br /&gt;
&lt;br /&gt;
==Component Source Code==&lt;br /&gt;
&lt;br /&gt;
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_Grove_I2C_Motor_Driver.fcfx FC_Comp_Source_Grove_I2C_Motor_Driver.fcfx]&lt;br /&gt;
&lt;br /&gt;
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_Grove_I2C_Motor_Driver.fcfx FC_Comp_Source_Grove_I2C_Motor_Driver.fcfx]&lt;br /&gt;
&lt;br /&gt;
==Detailed description==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[Image:EncoderCircuit.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
===Polling===&lt;br /&gt;
&lt;br /&gt;
Example program showing how to use a quadrature encoder component using a polling method.&lt;br /&gt;
{{Fcfile|Quad_Encoder_Test_2d.fcfx|Quad_Encoder_Test}}&lt;br /&gt;
===Timer Interrupt Based Polling===&lt;br /&gt;
&lt;br /&gt;
Example program showing how to use a quadrature encoder component using a polling method via a timer interrupt.&lt;br /&gt;
{{Fcfile|Quad_Encoder_Timer_2d.fcfx|Quad_Encoder_Timer}}&lt;br /&gt;
&lt;br /&gt;
===Interrupt On Change===&lt;br /&gt;
&lt;br /&gt;
Example program showing how to use a quadrature encoder component using a interrupt on pin state change interrupt (IOC).&lt;br /&gt;
{{Fcfile|Quad_Encoder_IOC_2d.fcfx|Quad_Encoder_IOC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Macro reference==&lt;br /&gt;
&lt;br /&gt;
===Frequency===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Frequency'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Set the frequency of PWM (cycle length = 510, system clock = 16MHz)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | FrequencySelection&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 1=31.372 KHz, 2=3.921 KHz, 3=490 Hz, 4=122 Hz, 5=30 Hz&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Initialise===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Initialise'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets up the I2C ready for communications&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Speed===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Speed'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the speed of a motor.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Motor&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 1=Motor1 / 2=Motor2&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-s16-icon.png]] - INT&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Speed&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Range: -255 to 255 where -255 = Full Backwards, 0=Stop, 255=Full Forwards&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stop===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-comp-macro.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Stop'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Stop one motor&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-u8-icon.png]] - BYTE&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Motor&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 1 = Motor1 / 2 = Motor2&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | [[File:Fc9-void-icon.png]] - VOID&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;border-top: 2px solid #000;&amp;quot; | ''Return''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Property reference==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:60%; background-color:#FFFFFF;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#D8C9D8;&amp;quot; | [[File:Fc9-prop-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#D8C9D8; color:#4B008D;&amp;quot; | '''Properties''' &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Communications&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | I2C Address&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Channel&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Channel selection&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-5-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | SDA&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pin used for SDA (data signal)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-5-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | SCL&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Pin used for SCL (clock signal)&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-7-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Stop Delay&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | On older microcontroller devices there is a potential for the I2C hardware channel to lock up if there is not  a 10ms delay between an I2C stop event and the next I2C start event.  Most modern microcontrollers will not have a problem so this property can be disabled to speed up the  I2C communications. &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Baud Select&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Baud rate option selector&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-14-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Baud Rate&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Baud rate to be used&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Default Frequency&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background-color:#EAE1EA;&amp;quot; | [[File:Fc9-conn-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; style=&amp;quot;background-color:#EAE1EA; color:#4B008D;&amp;quot; | Simulation&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-7-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Scope Traces&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Selects if the component pin connections are automatically generated on the data recorder window or not. Yes: Automatically add the component pins to a group on the data recorder which will reflect the sim data during simultion. No: Do not show the pin signals on the data recorder window.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-7-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | Console Data&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Selects if the console data is automatically generated or not&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; align=&amp;quot;center&amp;quot; | [[File:Fc9-type-16-icon.png]]&lt;br /&gt;
| width=&amp;quot;90%&amp;quot; | API&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Specifies the API component on the panel to interact with to provide comms simulation.&amp;amp;nbsp;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wiki bot</name></author>
		
	</entry>
</feed>