YourESP32 Sketch Servo Pot Position
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>