YourESP32 Sketch Servo Sweep

From ArduinoInfo
Jump to navigation Jump to search


<shtml hash="c7ab580e7ab6dd4c7be68176b4c266a242df513ab9c72c372502c97eb3c95bb5">

<font color="#95a5a6">/* YourDuinoStarter Example: ESP32 Servo Test Sweep</font>
<font color="#95a5a6"> - WHAT IT DOES Uses ESP32 to run a servo</font>
<font color="#95a5a6"> - SEE the comments after "//" on each line below</font>
<font color="#95a5a6"> - CONNECTIONS:</font>
<font color="#95a5a6">   - Servo to Pin 13</font>
<font color="#95a5a6">   - </font>
<font color="#95a5a6">    modified for the ESP32 on March 2017  by John Bennett</font>
<font color="#95a5a6"> - V1.00 03/30/2021</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="#5e6d03">#define</font> <font color="#000000">servoPin</font> <font color="#000000">13</font>

<font color="#5e6d03">#define</font> <font color="#000000">ServoMIN</font>  <font color="#000000">30</font> <font color="#434f54">// Don't go to ends of servo travel</font>
<font color="#5e6d03">#define</font> <font color="#000000">ServoMAX</font>  <font color="#000000">150</font> <font color="#434f54">// which may be 0 to 180. Experiment later for your servo.</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">// 16 servo objects can be created on the ESP32</font>
<font color="#95a5a6">/*-----( Declare Variables )-----*/</font>
<font color="#00979c">int</font> <font color="#000000">servoPosition</font><font color="#000000">;</font>  <font color="#434f54">// Hold the current servo angle</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 50 hz 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="#434f54">// attaches the servo on pin 18 to the servo object</font>
  <font color="#434f54">// using default min/max of 1000us and 2000us</font>
  <font color="#434f54">// different servos may require different min/max settings</font>
  <font color="#434f54">// for an accurate 0 to 180 sweep</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="#5e6d03">for</font><font color="#000000">(</font><font color="#000000">servoPosition</font> <font color="#434f54">=</font> <font color="#000000">ServoMIN</font><font color="#000000">;</font> <font color="#000000">servoPosition</font> <font color="#434f54"><</font> <font color="#000000">ServoMAX</font><font color="#000000">;</font> <font color="#000000">servoPosition</font> <font color="#434f54">+=</font> <font color="#000000">1</font><font color="#000000">)</font>  <font color="#434f54">// goes from near 0 degrees to near 180 degrees </font>
  <font color="#000000">{</font>                                  <font color="#434f54">// in steps of 1 degree </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">// tell servo to go to position in variable 'pos' </font>
    <font color="#d35400">delay</font><font color="#000000">(</font><font color="#000000">10</font><font color="#000000">)</font><font color="#000000">;</font>                       <font color="#434f54">// waits 10ms for the servo to reach the position </font>
  <font color="#000000">}</font> 
  <font color="#d35400">delay</font><font color="#000000">(</font><font color="#000000">1000</font><font color="#000000">)</font><font color="#000000">;</font>
  <font color="#5e6d03">for</font><font color="#000000">(</font><font color="#000000">servoPosition</font> <font color="#434f54">=</font> <font color="#000000">ServoMAX</font><font color="#000000">;</font> <font color="#000000">servoPosition</font><font color="#434f54">>=</font><font color="#000000">ServoMIN</font><font color="#000000">;</font> <font color="#000000">servoPosition</font><font color="#434f54">-=</font><font color="#000000">1</font><font color="#000000">)</font>     <font color="#434f54">// goes from near 180 degrees to near 0 degrees </font>
  <font color="#000000">{</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">// tell servo to go to position in variable 'pos' </font>
    <font color="#d35400">delay</font><font color="#000000">(</font><font color="#000000">10</font><font color="#000000">)</font><font color="#000000">;</font>                       <font color="#434f54">// waits 10ms for the servo to reach the position </font>
  <font color="#000000">}</font>
  <font color="#d35400">delay</font><font color="#000000">(</font><font color="#000000">2500</font><font color="#000000">)</font><font color="#000000">;</font>                       <font color="#434f54">// Wait, then cycle again.</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>