YourESP32 Sketch Servo Sweep
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>