<?xml version="1.0" encoding="UTF-8"?>        <rss version="2.0"
             xmlns:atom="http://www.w3.org/2005/Atom"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
             xmlns:admin="http://webns.net/mvcb/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:content="http://purl.org/rss/1.0/modules/content/">
        <channel>
            <title>
									Remote Control of Three Servos - Motors &amp; Control				            </title>
            <link>https://forum.dronebotworkshop.com/motors/remote-control-of-three-servos/</link>
            <description>Discussion board for Robotics, Arduino, Raspberry Pi and other DIY electronics and modules. Join us today!</description>
            <language>en-US</language>
            <lastBuildDate>Wed, 12 Aug 2026 18:31:38 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>RE: Remote Control of Three Servos</title>
                        <link>https://forum.dronebotworkshop.com/motors/remote-control-of-three-servos/#post-5903</link>
                        <pubDate>Tue, 26 Nov 2019 11:58:55 +0000</pubDate>
                        <description><![CDATA[@pugwashHaha... I&#039;ll look into getting an Avatar... may even make my own in Blender 3D :-)Yes, as a concept, I like the idea of checksum (and of course, a lot of code I have posted has no re...]]></description>
                        <content:encoded><![CDATA[<p>@pugwash</p><p>Haha... I'll look into getting an Avatar... may even make my own in Blender 3D :-)</p><p>Yes, as a concept, I like the idea of checksum (and of course, a lot of code I have posted has no real error checking at all, as it's mostly to show the basics), and would certainly implement important checks in production code.</p><p>I have to run (just started a new job and need some shut eye), but I'll have a closer look tomorrow.</p><p>BTW... the code I posted with the 2 pots/servos can be increased by the array size to allow for 16 pots, which will take it to the 32 byte limit.</p><p>Cheers!</p>]]></content:encoded>
						                            <category domain="https://forum.dronebotworkshop.com/motors/">Motors &amp; Control</category>                        <dc:creator>frogandtoad</dc:creator>
                        <guid isPermaLink="true">https://forum.dronebotworkshop.com/motors/remote-control-of-three-servos/#post-5903</guid>
                    </item>
				                    <item>
                        <title>RE: Remote Control of Three Servos</title>
                        <link>https://forum.dronebotworkshop.com/motors/remote-control-of-three-servos/#post-5901</link>
                        <pubDate>Tue, 26 Nov 2019 11:32:10 +0000</pubDate>
                        <description><![CDATA[@frogandtoadIt is time you got yourself an avatar. There must be a picture somewhere on the internet showing a pub sign &quot;Frog and Toad&quot;, or something from &quot;Wind in the Willows&quot;.Early this mo...]]></description>
                        <content:encoded><![CDATA[<p>@frogandtoad</p><p>It is time you got yourself an avatar. There must be a picture somewhere on the internet showing a pub sign "Frog and Toad", or something from "Wind in the Willows".</p><p>Early this morning, over my first cup o' tea, I was thinking about rewriting the code above, with my new-found knowledge of the struct objects. But firstly, I must correct the false statement above about only 3 PWM pins, I had meant to say "available", as this is how somebody else had wired up their own setup.</p><p>Now I am talking about six pots and six servos, one local Uno and one remote Uno/Nano.</p><p>The following is only my initial concept:</p><pre><span style="color: #434f54">// servo0 connected to PWM pin D3</span>
<span style="color: #434f54">// servo1 connected to PWM pin D5</span>
<span style="color: #434f54">// servo2 connected to PWM pin D6</span>
<span style="color: #434f54">// servo3 connected to PWM pin D9</span>
<span style="color: #434f54">// servo4 connected to PWM pin D10</span>
<span style="color: #434f54">// servo5 connected to PWM pin D11</span>
<span style="color: #434f54">// pots connected to analog pins A0 to A5</span>

<span style="color: #00979c">typedef</span> <span style="color: #00979c">struct</span> <span style="color: #000000">ServoData</span><span style="color: #000000">{</span>
  <span style="color: #00979c">byte</span> <span style="color: #000000">servo0</span><span style="color: #000000">;</span>
  <span style="color: #00979c">byte</span> <span style="color: #000000">servo1</span><span style="color: #000000">;</span>
  <span style="color: #00979c">byte</span> <span style="color: #000000">servo2</span><span style="color: #000000">;</span>
  <span style="color: #00979c">byte</span> <span style="color: #000000">servo3</span><span style="color: #000000">;</span>
  <span style="color: #00979c">byte</span> <span style="color: #000000">servo4</span><span style="color: #000000">;</span>
  <span style="color: #00979c">byte</span> <span style="color: #000000">servo5</span><span style="color: #000000">;</span>
  <span style="color: #00979c">byte</span> <span style="color: #000000">checksum</span><span style="color: #000000">;</span>  
  <span style="color: #000000">}</span><span style="color: #000000">;</span>

<span style="color: #000000">ServoData</span> <span style="color: #000000">myObject</span><span style="color: #000000">;</span> <span style="color: #434f54">// declare the message object</span>

<span style="color: #00979c">byte</span> <span style="color: #000000">tempArray</span><span style="color: #000000"></span><span style="color: #000000">;</span>

<span style="color: #00979c">void</span> <span style="color: #5e6d03">setup</span><span style="color: #000000">(</span><span style="color: #000000">)</span><span style="color: #000000">{</span>

  <span style="color: #434f54">// get initial checksum</span>
  <span style="color: #000000">tempArray</span><span style="color: #000000"></span> <span style="color: #434f54">=</span> <span style="color: #000000">AnalogRead</span><span style="color: #000000">(</span><span style="color: #000000">A0</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">tempArray</span><span style="color: #000000"></span> <span style="color: #434f54">=</span> <span style="color: #000000">AnalogRead</span><span style="color: #000000">(</span><span style="color: #000000">A1</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">tempArray</span><span style="color: #000000"></span> <span style="color: #434f54">=</span> <span style="color: #000000">AnalogRead</span><span style="color: #000000">(</span><span style="color: #000000">A2</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">tempArray</span><span style="color: #000000"></span> <span style="color: #434f54">=</span> <span style="color: #000000">AnalogRead</span><span style="color: #000000">(</span><span style="color: #000000">A3</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">tempArray</span><span style="color: #000000"></span> <span style="color: #434f54">=</span> <span style="color: #000000">AnalogRead</span><span style="color: #000000">(</span><span style="color: #000000">A4</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">tempArray</span><span style="color: #000000"></span> <span style="color: #434f54">=</span> <span style="color: #000000">AnalogRead</span><span style="color: #000000">(</span><span style="color: #000000">A5</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  
  <span style="color: #000000">lastChecksum</span> <span style="color: #434f54">=</span> <span style="color: #000000">checkSum</span><span style="color: #000000">(</span><span style="color: #000000">)</span><span style="color: #000000">;</span>

<span style="color: #000000">}</span>

<span style="color: #00979c">void</span> <span style="color: #5e6d03">loop</span><span style="color: #000000">(</span><span style="color: #000000">)</span><span style="color: #000000">{</span>

  <span style="color: #000000">tempArray</span><span style="color: #000000"></span> <span style="color: #434f54">=</span> <span style="color: #000000">AnalogRead</span><span style="color: #000000">(</span><span style="color: #000000">A0</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">tempArray</span><span style="color: #000000"></span> <span style="color: #434f54">=</span> <span style="color: #000000">AnalogRead</span><span style="color: #000000">(</span><span style="color: #000000">A1</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">tempArray</span><span style="color: #000000"></span> <span style="color: #434f54">=</span> <span style="color: #000000">AnalogRead</span><span style="color: #000000">(</span><span style="color: #000000">A2</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">tempArray</span><span style="color: #000000"></span> <span style="color: #434f54">=</span> <span style="color: #000000">AnalogRead</span><span style="color: #000000">(</span><span style="color: #000000">A3</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">tempArray</span><span style="color: #000000"></span> <span style="color: #434f54">=</span> <span style="color: #000000">AnalogRead</span><span style="color: #000000">(</span><span style="color: #000000">A4</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">tempArray</span><span style="color: #000000"></span> <span style="color: #434f54">=</span> <span style="color: #000000">AnalogRead</span><span style="color: #000000">(</span><span style="color: #000000">A5</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  
  <span style="color: #000000">newChecksum</span> <span style="color: #434f54">=</span> <span style="color: #000000">checkSum</span><span style="color: #000000">(</span><span style="color: #000000">)</span><span style="color: #000000">;</span> 
  
  <span style="color: #5e6d03">if</span><span style="color: #000000">(</span><span style="color: #000000">newChecksum</span> <span style="color: #434f54">!=</span> <span style="color: #000000">lastChecksum</span><span style="color: #000000">)</span><span style="color: #000000">{</span>
    
    <span style="color: #000000">myObject</span><span style="color: #434f54">.</span><span style="color: #000000">servo0</span> <span style="color: #434f54">=</span> <span style="color: #000000">tempArray</span><span style="color: #000000"></span><span style="color: #000000">;</span>
    <span style="color: #000000">myObject</span><span style="color: #434f54">.</span><span style="color: #000000">servo1</span> <span style="color: #434f54">=</span> <span style="color: #000000">tempArray</span><span style="color: #000000"></span><span style="color: #000000">;</span>
    <span style="color: #000000">myObject</span><span style="color: #434f54">.</span><span style="color: #000000">servo2</span> <span style="color: #434f54">=</span> <span style="color: #000000">tempArray</span><span style="color: #000000"></span><span style="color: #000000">;</span>
    <span style="color: #000000">myObject</span><span style="color: #434f54">.</span><span style="color: #000000">servo3</span> <span style="color: #434f54">=</span> <span style="color: #000000">tempArray</span><span style="color: #000000"></span><span style="color: #000000">;</span>
    <span style="color: #000000">myObject</span><span style="color: #434f54">.</span><span style="color: #000000">servo4</span> <span style="color: #434f54">=</span> <span style="color: #000000">tempArray</span><span style="color: #000000"></span><span style="color: #000000">;</span>
    <span style="color: #000000">myObject</span><span style="color: #434f54">.</span><span style="color: #000000">servo5</span> <span style="color: #434f54">=</span> <span style="color: #000000">tempArray</span><span style="color: #000000"></span><span style="color: #000000">;</span>
    <span style="color: #000000">myObject</span><span style="color: #434f54">.</span><span style="color: #000000">checksum</span> <span style="color: #434f54">=</span> <span style="color: #000000">newChecksum</span><span style="color: #000000">;</span>
    
    <span style="color: #000000">radio</span><span style="color: #434f54">.</span><span style="color: #d35400">write</span><span style="color: #000000">(</span><span style="color: #434f54">&amp;</span><span style="color: #000000">myObject</span><span style="color: #434f54">,</span> <span style="color: #00979c">sizeof</span><span style="color: #000000">(</span><span style="color: #000000">myObject</span><span style="color: #000000">)</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
    
    <span style="color: #000000">lastChecksum</span> <span style="color: #434f54">=</span> <span style="color: #000000">newChecksum</span><span style="color: #000000">;</span> 
  <span style="color: #000000">}</span> 
<span style="color: #000000">}</span>

<span style="color: #00979c">byte</span> <span style="color: #000000">checkSum</span><span style="color: #000000">(</span><span style="color: #000000">)</span><span style="color: #000000">{</span>
  
  <span style="color: #00979c">byte</span> <span style="color: #000000">result</span> <span style="color: #434f54">=</span> <span style="color: #000000">tempArray</span><span style="color: #000000"></span><span style="color: #000000">;</span>
  
  <span style="color: #5e6d03">for</span> <span style="color: #000000">(</span><span style="color: #00979c">int</span> <span style="color: #000000">i</span> <span style="color: #434f54">=</span> <span style="color: #000000">1</span><span style="color: #000000">;</span> <span style="color: #000000">i</span> <span style="color: #434f54">&lt;</span> <span style="color: #00979c">sizeof</span><span style="color: #000000">(</span><span style="color: #000000">tempArray</span><span style="color: #000000">)</span><span style="color: #000000">;</span> <span style="color: #000000">i</span><span style="color: #434f54">++</span><span style="color: #000000">)</span><span style="color: #000000">{</span>
    <span style="color: #000000">result</span> <span style="color: #434f54">^=</span> <span style="color: #000000">tempArray</span><span style="color: #000000"></span><span style="color: #000000">;</span>
  <span style="color: #000000">}</span>  
  <span style="color: #5e6d03">return</span> <span style="color: #000000">result</span><span style="color: #000000">;</span>  
<span style="color: #000000">}</span>

</pre><p>This code is of course nowhere near finished!!</p><p>On the <span style="color: #0000ff">remote</span> side, the checksum will be verified and if OK, the values passed to the servos. If not <span style="color: #0000ff">remote</span> will set a flag and <span style="color: #0000ff">remote</span> will send a request back to <span style="color: #0000ff">local</span> to have the data resent until the flag is cleared. Only then will the values passed to the servos. The checksum routine is far more critical for controlling servos than reading display values from the BME280. Imagine what would happen if the remote was in a model aeroplane and it was getting corrupt data.</p><p>I was wondering what you thought about the basic concept?</p>]]></content:encoded>
						                            <category domain="https://forum.dronebotworkshop.com/motors/">Motors &amp; Control</category>                        <dc:creator>Pugwash</dc:creator>
                        <guid isPermaLink="true">https://forum.dronebotworkshop.com/motors/remote-control-of-three-servos/#post-5901</guid>
                    </item>
				                    <item>
                        <title>RE: Remote Control of Three Servos</title>
                        <link>https://forum.dronebotworkshop.com/motors/remote-control-of-three-servos/#post-5547</link>
                        <pubDate>Wed, 13 Nov 2019 16:03:31 +0000</pubDate>
                        <description><![CDATA[@robo-piI don&#039;t know whether you remember but a couple of months ago we were discussing the merits of 433MHz modules. Have you tried these NRF24L04 modules?I have had a few of them lying aro...]]></description>
                        <content:encoded><![CDATA[<p>@robo-pi</p><p>I don't know whether you remember but a couple of months ago we were discussing the merits of 433MHz modules. Have you tried these NRF24L04 modules?</p><p>I have had a few of them lying around for a couple of months and today I finally got around to setting up a small test with two of them. The reception far surpasses the 433 modules, with a reliable signal through 4 concrete walls. something I wasn't getting with the 433s.</p><p>The setup was made without the small stubby antenna, and I am suitably impressed. The only drawback that I have found is that the modules must be suitably orientated where signal attenuation is present.</p>]]></content:encoded>
						                            <category domain="https://forum.dronebotworkshop.com/motors/">Motors &amp; Control</category>                        <dc:creator>Pugwash</dc:creator>
                        <guid isPermaLink="true">https://forum.dronebotworkshop.com/motors/remote-control-of-three-servos/#post-5547</guid>
                    </item>
				                    <item>
                        <title>Remote Control of Three Servos</title>
                        <link>https://forum.dronebotworkshop.com/motors/remote-control-of-three-servos/#post-5523</link>
                        <pubDate>Tue, 12 Nov 2019 14:23:29 +0000</pubDate>
                        <description><![CDATA[Requirements:2 Arduino Unos or Nanos2 NRF24L04 Modules3 Pots3 ServosThe setup for one Servo can be found atexpand the number of controllable servos to three, two more pots should be connecte...]]></description>
                        <content:encoded><![CDATA[<p>Requirements:</p><ul><li>2 Arduino Unos or Nanos</li><li>2 NRF24L04 Modules</li><li>3 Pots</li><li>3 Servos</li></ul><p>The setup for one Servo can be found at:</p><p><a href="https://howtomechatronics.com/tutorials/arduino/how-to-build-an-arduino-wireless-network-with-multiple-nrf24l01-modules/">https://howtomechatronics.com/tutorials/arduino/how-to-build-an-arduino-wireless-network-with-multiple-nrf24l01-modules/</a></p><p>To expand the number of controllable servos to three, two more pots should be connected to analogue pins A1 &amp; A2, and two more Servos to digital pins D5 &amp; D6.</p><p>The following code should be on the transmitting Arduino</p><pre><span style="color: #95a5a6">/*</span>
<span style="color: #95a5a6">Arduino Wireless Network - Multiple NRF24L01 Tutorial</span>
<span style="color: #95a5a6">== Example 01 - Servo Control / Node 00 - Potentiometer ==</span>
<span style="color: #95a5a6">by Dejan, </span><u><span style="color: #95a5a6">www.HowToMechatronics.com</span></u>
<span style="color: #95a5a6">Adapted for multiple Servos by Pugwash 2019.</span>
<span style="color: #95a5a6">Libraries:</span>
<span style="color: #95a5a6">nRF24/RF24,  </span><u><span style="color: #95a5a6">https://github.com/nRF24/RF24</span></u> 
<span style="color: #95a5a6">nRF24/RF24Network,  </span><u><span style="color: #95a5a6">https://github.com/nRF24/RF24Network</span></u> 
<span style="color: #95a5a6">*/</span>
<span style="color: #5e6d03">#include</span> <span style="color: #434f54">&lt;</span><strong><span style="color: #d35400">RF24</span></strong><span style="color: #434f54">.</span><span style="color: #000000">h</span><span style="color: #434f54">&gt;</span>
<span style="color: #5e6d03">#include</span> <span style="color: #434f54">&lt;</span><span style="color: #000000">RF24Network</span><span style="color: #434f54">.</span><span style="color: #000000">h</span><span style="color: #434f54">&gt;</span>
<span style="color: #5e6d03">#include</span> <span style="color: #434f54">&lt;</span><strong><span style="color: #d35400">SPI</span></strong><span style="color: #434f54">.</span><span style="color: #000000">h</span><span style="color: #434f54">&gt;</span>

<strong><span style="color: #d35400">RF24</span></strong> <span style="color: #000000">radio</span><span style="color: #000000">(</span><span style="color: #000000">8</span><span style="color: #434f54">,</span> <span style="color: #000000">10</span><span style="color: #000000">)</span><span style="color: #000000">;</span> <span style="color: #434f54">// nRF24L01 (CE,CSN)</span>
<span style="color: #000000">RF24Network</span> <span style="color: #000000">network</span><span style="color: #000000">(</span><span style="color: #000000">radio</span><span style="color: #000000">)</span><span style="color: #000000">;</span> <span style="color: #434f54">// Include the radio in the network</span>
<span style="color: #00979c">const</span> <span style="color: #00979c">uint16_t</span> <span style="color: #000000">this_node</span> <span style="color: #434f54">=</span> <span style="color: #000000">00</span><span style="color: #000000">;</span> <span style="color: #434f54">// Address of this node in Octal format ( 04,031, etc)</span>
<span style="color: #00979c">const</span> <span style="color: #00979c">uint16_t</span> <span style="color: #000000">node01</span> <span style="color: #434f54">=</span> <span style="color: #000000">01</span><span style="color: #000000">;</span>

<span style="color: #00979c">int</span> <span style="color: #000000">lastPotValue0</span><span style="color: #000000">;</span>
<span style="color: #00979c">int</span> <span style="color: #000000">lastPotValue1</span><span style="color: #000000">;</span>
<span style="color: #00979c">int</span> <span style="color: #000000">lastPotValue2</span><span style="color: #000000">;</span>

<span style="color: #00979c">int</span> <span style="color: #000000">newPotValue0</span><span style="color: #000000">;</span>
<span style="color: #00979c">int</span> <span style="color: #000000">newPotValue1</span><span style="color: #000000">;</span>
<span style="color: #00979c">int</span> <span style="color: #000000">newPotValue2</span><span style="color: #000000">;</span>

<span style="color: #00979c">int</span> <span style="color: #000000">angleValue</span><span style="color: #000000">;</span>

<span style="color: #00979c">void</span> <span style="color: #5e6d03">setup</span><span style="color: #000000">(</span><span style="color: #000000">)</span> <span style="color: #000000">{</span>
  
  <strong><span style="color: #d35400">SPI</span></strong><span style="color: #434f54">.</span><span style="color: #d35400">begin</span><span style="color: #000000">(</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">radio</span><span style="color: #434f54">.</span><span style="color: #d35400">begin</span><span style="color: #000000">(</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">network</span><span style="color: #434f54">.</span><span style="color: #d35400">begin</span><span style="color: #000000">(</span><span style="color: #000000">90</span><span style="color: #434f54">,</span> <span style="color: #000000">this_node</span><span style="color: #000000">)</span><span style="color: #000000">;</span> <span style="color: #434f54">//(channel, node address)</span>

  <span style="color: #434f54">//get the initial pot values</span>
  <span style="color: #000000">lastPotValue0</span> <span style="color: #434f54">=</span> <span style="color: #d35400">analogRead</span><span style="color: #000000">(</span><span style="color: #000000">A0</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">lastPotValue1</span> <span style="color: #434f54">=</span> <span style="color: #d35400">analogRead</span><span style="color: #000000">(</span><span style="color: #000000">A1</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">lastPotValue2</span> <span style="color: #434f54">=</span> <span style="color: #d35400">analogRead</span><span style="color: #000000">(</span><span style="color: #000000">A2</span><span style="color: #000000">)</span><span style="color: #000000">;</span>  
<span style="color: #000000">}</span>

<span style="color: #00979c">void</span> <span style="color: #5e6d03">loop</span><span style="color: #000000">(</span><span style="color: #000000">)</span> <span style="color: #000000">{</span>
  
  <span style="color: #000000">network</span><span style="color: #434f54">.</span><span style="color: #d35400">update</span><span style="color: #000000">(</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  
  <span style="color: #434f54">// read the values on Analog Pins A0, A1, A2</span>
  <span style="color: #000000">newPotValue0</span> <span style="color: #434f54">=</span> <span style="color: #d35400">analogRead</span><span style="color: #000000">(</span><span style="color: #000000">A0</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">newPotValue1</span> <span style="color: #434f54">=</span> <span style="color: #d35400">analogRead</span><span style="color: #000000">(</span><span style="color: #000000">A1</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">newPotValue2</span> <span style="color: #434f54">=</span> <span style="color: #d35400">analogRead</span><span style="color: #000000">(</span><span style="color: #000000">A2</span><span style="color: #000000">)</span><span style="color: #000000">;</span>

  <span style="color: #434f54">// only transmit if the values have changed</span>
  <span style="color: #5e6d03">if</span><span style="color: #000000">(</span><span style="color: #000000">newPotValue0</span> <span style="color: #434f54">!=</span> <span style="color: #000000">lastPotValue0</span><span style="color: #000000">)</span><span style="color: #000000">{</span>
    <span style="color: #000000">angleValue</span> <span style="color: #434f54">=</span> <span style="color: #d35400">map</span><span style="color: #000000">(</span><span style="color: #000000">newPotValue0</span><span style="color: #434f54">,</span> <span style="color: #000000">0</span><span style="color: #434f54">,</span> <span style="color: #000000">1023</span><span style="color: #434f54">,</span> <span style="color: #000000">0</span><span style="color: #434f54">,</span> <span style="color: #000000">180</span><span style="color: #000000">)</span><span style="color: #000000">;</span> <span style="color: #434f54">// Convert the value to 0-180</span>
    <span style="color: #000000">sendMyData</span><span style="color: #000000">(</span><span style="color: #000000">angleValue</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
    <span style="color: #000000">lastPotValue0</span> <span style="color: #434f54">=</span> <span style="color: #000000">newPotValue0</span><span style="color: #000000">;</span>
  <span style="color: #000000">}</span>
  
  <span style="color: #5e6d03">if</span><span style="color: #000000">(</span><span style="color: #000000">newPotValue1</span> <span style="color: #434f54">!=</span> <span style="color: #000000">lastPotValue1</span><span style="color: #000000">)</span><span style="color: #000000">{</span>
    <span style="color: #000000">angleValue</span> <span style="color: #434f54">=</span> <span style="color: #d35400">map</span><span style="color: #000000">(</span><span style="color: #000000">newPotValue1</span><span style="color: #434f54">,</span> <span style="color: #000000">0</span><span style="color: #434f54">,</span> <span style="color: #000000">1023</span><span style="color: #434f54">,</span> <span style="color: #000000">0</span><span style="color: #434f54">,</span> <span style="color: #000000">180</span><span style="color: #000000">)</span><span style="color: #000000">;</span> <span style="color: #434f54">// Convert the value to 0-180</span>
    <span style="color: #000000">angleValue</span> <span style="color: #434f54">=</span> <span style="color: #000000">angleValue</span> <span style="color: #434f54">+</span> <span style="color: #000000">1000</span><span style="color: #000000">;</span>
    <span style="color: #000000">sendMyData</span><span style="color: #000000">(</span><span style="color: #000000">angleValue</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
    <span style="color: #000000">lastPotValue1</span> <span style="color: #434f54">=</span> <span style="color: #000000">newPotValue1</span><span style="color: #000000">;</span>
  <span style="color: #000000">}</span>

  <span style="color: #5e6d03">if</span><span style="color: #000000">(</span><span style="color: #000000">newPotValue2</span> <span style="color: #434f54">!=</span> <span style="color: #000000">lastPotValue2</span><span style="color: #000000">)</span><span style="color: #000000">{</span>
    <span style="color: #000000">angleValue</span> <span style="color: #434f54">=</span> <span style="color: #d35400">map</span><span style="color: #000000">(</span><span style="color: #000000">newPotValue2</span><span style="color: #434f54">,</span> <span style="color: #000000">0</span><span style="color: #434f54">,</span> <span style="color: #000000">1023</span><span style="color: #434f54">,</span> <span style="color: #000000">0</span><span style="color: #434f54">,</span> <span style="color: #000000">180</span><span style="color: #000000">)</span><span style="color: #000000">;</span> <span style="color: #434f54">// Convert the value to 0-180</span>
    <span style="color: #000000">angleValue</span> <span style="color: #434f54">=</span> <span style="color: #000000">angleValue</span> <span style="color: #434f54">+</span> <span style="color: #000000">2000</span><span style="color: #000000">;</span>
    <span style="color: #000000">sendMyData</span><span style="color: #000000">(</span><span style="color: #000000">angleValue</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
    <span style="color: #000000">lastPotValue2</span> <span style="color: #434f54">=</span> <span style="color: #000000">newPotValue2</span><span style="color: #000000">;</span>
  <span style="color: #000000">}</span>
<span style="color: #000000">}</span>

<span style="color: #00979c">void</span> <span style="color: #000000">sendMyData</span><span style="color: #000000">(</span><span style="color: #00979c">int</span> <span style="color: #000000">angleValue1</span><span style="color: #000000">)</span><span style="color: #000000">{</span>
  <span style="color: #000000">RF24NetworkHeader</span> <span style="color: #000000">header</span><span style="color: #000000">(</span><span style="color: #000000">node01</span><span style="color: #000000">)</span><span style="color: #000000">;</span> <span style="color: #434f54">// (Address where the data is going)</span>
  <span style="color: #00979c">bool</span> <span style="color: #000000">ok</span> <span style="color: #434f54">=</span> <span style="color: #000000">network</span><span style="color: #434f54">.</span><span style="color: #d35400">write</span><span style="color: #000000">(</span><span style="color: #000000">header</span><span style="color: #434f54">,</span> <span style="color: #434f54">&amp;</span><span style="color: #000000">angleValue1</span><span style="color: #434f54">,</span> <span style="color: #00979c">sizeof</span><span style="color: #000000">(</span><span style="color: #000000">angleValue1</span><span style="color: #000000">)</span><span style="color: #000000">)</span><span style="color: #000000">;</span> <span style="color: #434f54">// Send the data</span>
    
  <span style="color: #000000">}</span>

</pre><p>And the following code on the Arduino controlling the Servos.</p><pre><span style="color: #95a5a6">/*</span>
<span style="color: #95a5a6">Arduino Wireless Network - Multiple NRF24L01 Tutorial</span>
<span style="color: #95a5a6">== Example 01 - Servo Control / Node 01 - Servo motor ==</span>
<span style="color: #95a5a6">Adapted for multiple Servos by Pugwash 2019.</span>
<span style="color: #95a5a6">*/</span>
<span style="color: #5e6d03">#include</span> <span style="color: #434f54">&lt;</span><strong><span style="color: #d35400">RF24</span></strong><span style="color: #434f54">.</span><span style="color: #000000">h</span><span style="color: #434f54">&gt;</span>
<span style="color: #5e6d03">#include</span> <span style="color: #434f54">&lt;</span><span style="color: #000000">RF24Network</span><span style="color: #434f54">.</span><span style="color: #000000">h</span><span style="color: #434f54">&gt;</span>
<span style="color: #5e6d03">#include</span> <span style="color: #434f54">&lt;</span><strong><span style="color: #d35400">SPI</span></strong><span style="color: #434f54">.</span><span style="color: #000000">h</span><span style="color: #434f54">&gt;</span>
<span style="color: #5e6d03">#include</span> <span style="color: #434f54">&lt;</span><strong><span style="color: #d35400">Servo</span></strong><span style="color: #434f54">.</span><span style="color: #000000">h</span><span style="color: #434f54">&gt;</span>

<strong><span style="color: #d35400">RF24</span></strong> <span style="color: #000000">radio</span><span style="color: #000000">(</span><span style="color: #000000">8</span><span style="color: #434f54">,</span> <span style="color: #000000">10</span><span style="color: #000000">)</span><span style="color: #000000">;</span> <span style="color: #434f54">// nRF24L01 (CE,CSN)</span>
<span style="color: #000000">RF24Network</span> <span style="color: #000000">network</span><span style="color: #000000">(</span><span style="color: #000000">radio</span><span style="color: #000000">)</span><span style="color: #000000">;</span> <span style="color: #434f54">// Include the radio in the network</span>
<span style="color: #00979c">const</span> <span style="color: #00979c">uint16_t</span> <span style="color: #000000">this_node</span> <span style="color: #434f54">=</span> <span style="color: #000000">01</span><span style="color: #000000">;</span> <span style="color: #434f54">// Address of our node in Octal format ( 04,031, etc)</span>

<span style="color: #434f54">// create six servo objects</span>
<strong><span style="color: #d35400">Servo</span></strong> <span style="color: #000000">myservo0</span><span style="color: #000000">;</span> 
<strong><span style="color: #d35400">Servo</span></strong> <span style="color: #000000">myservo1</span><span style="color: #000000">;</span> 
<strong><span style="color: #d35400">Servo</span></strong> <span style="color: #000000">myservo2</span><span style="color: #000000">;</span> 

<span style="color: #00979c">void</span> <span style="color: #5e6d03">setup</span><span style="color: #000000">(</span><span style="color: #000000">)</span> <span style="color: #000000">{</span>
  
  <strong><span style="color: #d35400">Serial</span></strong><span style="color: #434f54">.</span><span style="color: #d35400">begin</span><span style="color: #000000">(</span><span style="color: #000000">9600</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <strong><span style="color: #d35400">SPI</span></strong><span style="color: #434f54">.</span><span style="color: #d35400">begin</span><span style="color: #000000">(</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">radio</span><span style="color: #434f54">.</span><span style="color: #d35400">begin</span><span style="color: #000000">(</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">network</span><span style="color: #434f54">.</span><span style="color: #d35400">begin</span><span style="color: #000000">(</span><span style="color: #000000">90</span><span style="color: #434f54">,</span> <span style="color: #000000">this_node</span><span style="color: #000000">)</span><span style="color: #000000">;</span> <span style="color: #434f54">//(channel, node address)</span>
  
  <span style="color: #000000">myservo0</span><span style="color: #434f54">.</span><span style="color: #d35400">attach</span><span style="color: #000000">(</span><span style="color: #000000">3</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">myservo1</span><span style="color: #434f54">.</span><span style="color: #d35400">attach</span><span style="color: #000000">(</span><span style="color: #000000">5</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #000000">myservo2</span><span style="color: #434f54">.</span><span style="color: #d35400">attach</span><span style="color: #000000">(</span><span style="color: #000000">6</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  
<span style="color: #000000">}</span>

<span style="color: #00979c">void</span> <span style="color: #5e6d03">loop</span><span style="color: #000000">(</span><span style="color: #000000">)</span> <span style="color: #000000">{</span>
  <span style="color: #000000">network</span><span style="color: #434f54">.</span><span style="color: #d35400">update</span><span style="color: #000000">(</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
  <span style="color: #5e6d03">while</span> <span style="color: #000000">(</span> <span style="color: #000000">network</span><span style="color: #434f54">.</span><span style="color: #d35400">available</span><span style="color: #000000">(</span><span style="color: #000000">)</span> <span style="color: #000000">)</span> <span style="color: #000000">{</span> <span style="color: #434f54">// Is there any incoming data?</span>
    <span style="color: #000000">RF24NetworkHeader</span> <span style="color: #000000">header</span><span style="color: #000000">;</span>
    <span style="color: #00979c">int</span> <span style="color: #000000">incomingData</span><span style="color: #000000">;</span>
    <span style="color: #000000">network</span><span style="color: #434f54">.</span><span style="color: #d35400">read</span><span style="color: #000000">(</span><span style="color: #000000">header</span><span style="color: #434f54">,</span> <span style="color: #434f54">&amp;</span><span style="color: #000000">incomingData</span><span style="color: #434f54">,</span> <span style="color: #00979c">sizeof</span><span style="color: #000000">(</span><span style="color: #000000">incomingData</span><span style="color: #000000">)</span><span style="color: #000000">)</span><span style="color: #000000">;</span> <span style="color: #434f54">// Read the incoming data</span>
    <strong><span style="color: #d35400">Serial</span></strong><span style="color: #434f54">.</span><span style="color: #d35400">println</span><span style="color: #000000">(</span><span style="color: #000000">incomingData</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
    <span style="color: #5e6d03">if</span><span style="color: #000000">(</span><span style="color: #000000">incomingData</span> <span style="color: #434f54">&lt;</span> <span style="color: #000000">181</span><span style="color: #000000">)</span><span style="color: #000000">{</span>
      <span style="color: #000000">myservo0</span><span style="color: #434f54">.</span><span style="color: #d35400">write</span><span style="color: #000000">(</span><span style="color: #000000">incomingData</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
    <span style="color: #000000">}</span>
    <span style="color: #5e6d03">if</span><span style="color: #000000">(</span><span style="color: #000000">incomingData</span> <span style="color: #434f54">&gt;=</span> <span style="color: #000000">1000</span> <span style="color: #434f54">&amp;&amp;</span> <span style="color: #000000">incomingData</span> <span style="color: #434f54">&lt;</span> <span style="color: #000000">1181</span><span style="color: #000000">)</span><span style="color: #000000">{</span>
      <span style="color: #000000">myservo1</span><span style="color: #434f54">.</span><span style="color: #d35400">write</span><span style="color: #000000">(</span><span style="color: #000000">incomingData</span> <span style="color: #434f54">-</span> <span style="color: #000000">1000</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
    <span style="color: #000000">}</span>
    <span style="color: #5e6d03">if</span><span style="color: #000000">(</span><span style="color: #000000">incomingData</span> <span style="color: #434f54">&gt;=</span> <span style="color: #000000">2000</span> <span style="color: #434f54">&amp;&amp;</span> <span style="color: #000000">incomingData</span> <span style="color: #434f54">&lt;</span> <span style="color: #000000">2181</span><span style="color: #000000">)</span><span style="color: #000000">{</span>
      <span style="color: #000000">myservo2</span><span style="color: #434f54">.</span><span style="color: #d35400">write</span><span style="color: #000000">(</span><span style="color: #000000">incomingData</span> <span style="color: #434f54">-</span> <span style="color: #000000">2000</span><span style="color: #000000">)</span><span style="color: #000000">;</span>
      <span style="color: #000000">}</span>  
  <span style="color: #000000">}</span>
<span style="color: #000000">}</span>

</pre><p>The Uno and Nano are limited to three servos because only 3 PWM pins are available, but this code can be easily adapted to more Servos if you use an Arduino Mega instead!</p><p>Have fun adapting this code! ? ? ? </p>]]></content:encoded>
						                            <category domain="https://forum.dronebotworkshop.com/motors/">Motors &amp; Control</category>                        <dc:creator>Pugwash</dc:creator>
                        <guid isPermaLink="true">https://forum.dronebotworkshop.com/motors/remote-control-of-three-servos/#post-5523</guid>
                    </item>
							        </channel>
        </rss>
		