YourESP32 Sketch Servo Pot Position

From ArduinoInfo
Jump to navigation Jump to search


<shtml hash="3e9bf5a5eacf35464bb32025a20d3664bfef40254dff25d6f5993eb561e61273">

<font color="#95a5a6">/* YourDuinoStarter Example: ESP32_ServoPotPosition</font>
<font color="#95a5a6"> - Moves a Servomotor through a range of positions in response </font>
<font color="#95a5a6">   to the position of a Potentiometer attached to an Analog input.</font>
<font color="#95a5a6"> - SEE the comments after "//" on each line below</font>
<font color="#95a5a6"> - CONNECTIONS:ESP32 Analog input 0</font>
<font color="#95a5a6"> - Servo connector plugged on YourDuinoRobo1 port 9</font>
<font color="#95a5a6">   - If separate wires:</font>
<font color="#95a5a6">   - Servo Black to Gnd.</font>
<font color="#95a5a6">   - Servo Red or Orange (Center wire) to +5V</font>
<font color="#95a5a6">   - Servo White or Yellow to Signal (Pin 9)</font>
<font color="#95a5a6"> - V1.00 09/17/12</font>
<font color="#95a5a6"> Questions: terry@yourduino.com */</font>

<font color="#95a5a6">/*-----( Import needed libraries )-----*/</font>
<font color="#5e6d03">#include</font> <font color="#434f54"><</font><font color="#000000">ESP32Servo</font><font color="#434f54">.</font><font color="#000000">h</font><font color="#434f54">></font>  

<font color="#95a5a6">/*-----( Declare Constants and Pin Numbers )-----*/</font>
       
<font color="#00979c">int</font> <font color="#000000">ADC_Max</font> <font color="#434f54">=</font> <font color="#000000">4096</font><font color="#000000">;</font> 

<font color="#5e6d03">#define</font> <font color="#000000">SERVOPIN</font>  <font color="#000000">18</font>   <font color="#434f54">// Can be changed 12-19,21-23,25-27,32-33 </font>
<font color="#5e6d03">#define</font> <font color="#000000">POTPIN</font>    <font color="#000000">34</font>  <font color="#434f54">// Analog input  Can be 12-15,32-39 (recommended)</font>

<font color="#5e6d03">#define</font> <font color="#000000">ServoMIN</font>  <font color="#000000">20</font>  <font color="#434f54">// Don't go to very end of servo travel</font>
<font color="#5e6d03">#define</font> <font color="#000000">ServoMAX</font>  <font color="#000000">160</font> <font color="#434f54">// which may not be all the way from 0 to 180. </font>

<font color="#95a5a6">/*-----( Declare objects )-----*/</font>
<b><font color="#d35400">Servo</font></b> <font color="#000000">myservo</font><font color="#000000">;</font>  <font color="#434f54">// create servo object to control a servo </font>
<font color="#434f54">// a maximum of eight servo objects can be created</font>

<font color="#95a5a6">/*-----( Declare Variables )-----*/</font>
<font color="#00979c">int</font> <font color="#000000">potValue</font><font color="#000000">;</font>         <font color="#434f54">// User moves the pot.</font>
<font color="#00979c">int</font> <font color="#000000">servoPosition</font><font color="#000000">;</font>    <font color="#434f54">// variable to store the servo position </font>


<font color="#00979c">void</font> <font color="#5e6d03">setup</font><font color="#000000">(</font><font color="#000000">)</font>   <font color="#95a5a6">/****** SETUP: RUNS ONCE ******/</font>
<font color="#000000">{</font>
  <font color="#434f54">// Allow allocation of all timers</font>
  <font color="#000000">ESP32PWM</font><font color="#434f54">:</font><font color="#434f54">:</font><font color="#000000">allocateTimer</font><font color="#000000">(</font><font color="#000000">0</font><font color="#000000">)</font><font color="#000000">;</font>
  <font color="#000000">ESP32PWM</font><font color="#434f54">:</font><font color="#434f54">:</font><font color="#000000">allocateTimer</font><font color="#000000">(</font><font color="#000000">1</font><font color="#000000">)</font><font color="#000000">;</font>
  <font color="#000000">ESP32PWM</font><font color="#434f54">:</font><font color="#434f54">:</font><font color="#000000">allocateTimer</font><font color="#000000">(</font><font color="#000000">2</font><font color="#000000">)</font><font color="#000000">;</font>
  <font color="#000000">ESP32PWM</font><font color="#434f54">:</font><font color="#434f54">:</font><font color="#000000">allocateTimer</font><font color="#000000">(</font><font color="#000000">3</font><font color="#000000">)</font><font color="#000000">;</font>
  <font color="#000000">myservo</font><font color="#434f54">.</font><font color="#000000">setPeriodHertz</font><font color="#000000">(</font><font color="#000000">50</font><font color="#000000">)</font><font color="#000000">;</font><font color="#434f54">// Standard 50hz servo</font>
  <font color="#000000">myservo</font><font color="#434f54">.</font><font color="#d35400">attach</font><font color="#000000">(</font><font color="#000000">SERVOPIN</font><font color="#434f54">,</font> <font color="#000000">500</font><font color="#434f54">,</font> <font color="#000000">2400</font><font color="#000000">)</font><font color="#000000">;</font>  
<font color="#000000">}</font><font color="#434f54">//--(end setup )---</font>


<font color="#00979c">void</font> <font color="#5e6d03">loop</font><font color="#000000">(</font><font color="#000000">)</font>   <font color="#95a5a6">/****** LOOP: RUNS CONSTANTLY ******/</font>
<font color="#000000">{</font>
  <font color="#000000">potValue</font> <font color="#434f54">=</font> <font color="#d35400">analogRead</font><font color="#000000">(</font><font color="#000000">POTPIN</font><font color="#000000">)</font><font color="#000000">;</font>        <font color="#434f54">// read the value of the potentiometer (value between 0 and 1023)</font>
  <font color="#000000">servoPosition</font> <font color="#434f54">=</font> <font color="#d35400">map</font><font color="#000000">(</font><font color="#000000">potValue</font><font color="#434f54">,</font> <font color="#000000">0</font><font color="#434f54">,</font> <font color="#000000">ADC_Max</font><font color="#434f54">,</font> <font color="#000000">0</font><font color="#434f54">,</font> <font color="#000000">180</font><font color="#000000">)</font><font color="#000000">;</font>     <font color="#434f54">// scale it to use it with the servo (value between 0 and 180)</font>
  <font color="#000000">myservo</font><font color="#434f54">.</font><font color="#d35400">write</font><font color="#000000">(</font><font color="#000000">servoPosition</font><font color="#000000">)</font><font color="#000000">;</font>         <font color="#434f54">// set the servo position according to the scaled value</font>
  <font color="#d35400">delay</font><font color="#000000">(</font><font color="#000000">200</font><font color="#000000">)</font><font color="#000000">;</font>                           <font color="#434f54">// wait for the servo to reach the position </font>
                     

<font color="#000000">}</font><font color="#434f54">//--(end main loop )---</font>

<font color="#95a5a6">/*-----( Declare User-written Functions )-----*/</font>
<font color="#434f54">//none</font>

<font color="#434f54">//*********( THE END )***********</font>





</shtml>