1+ #include < Servo.h> // Corrected: Include the library first
2+
3+ /* * --------------------------------------------------------------------------
4+ * writeMicroseconds_Example
5+ * --------------------------------------------------------------------------
6+ * The writeMicroseconds() function is part of the Servo Library.
7+ * It sets the servo's angle by accepting a pulse width duration measured in microseconds (µs).
8+ * * CORE TIMING VALUES (Note: Values can vary slightly by servo model):
9+ * * 1. Minimum Position (0 degrees):
10+ * - Value: 544 microseconds (us)
11+ * - Result: Servo moves to its extreme counter-clockwise limit (0°).
12+ * * 2. Center Position (90 degrees):
13+ * - Value: 1500 microseconds (us)
14+ * - Result: Servo moves to its neutral, center position (90°).
15+ * * 3. Maximum Position (180 degrees):
16+ * - Value: 2400 microseconds (us)
17+ * - Result: Servo moves to its extreme clockwise limit (180°).
18+ *
19+ * * BASIC WORKING PRINCIPLE:
20+ * Servo motors use Pulse Width Modulation (PWM). The duration (width) that the
21+ * control wave is held HIGH directly determines the commanded angle. This function
22+ * allows for precise, non-standard movement by letting the user specify the exact time duration.
23+ */
24+
25+ // Create a servo Object. We'll use myservo for standardization.
26+ Servo myservo; // Correction: Added standard name and semicolon
27+
28+ void setup () {
29+ // 1. Attach the servo object to a PWM pin (e.g., Digital Pin 9).
30+ myservo.attach (9 );
31+
32+ // 2. Initialize Serial Monitor to explain the timing values.
33+ Serial.begin (9600 );
34+ Serial.println (" --- Servo Microseconds Example Running ---" );
35+ }
36+
37+ void loop () {
38+ // 1. Write CENTER position (Standard 90 degrees)
39+ myservo.writeMicroseconds (1500 );
40+ Serial.println (" Position: Center (1500 us)" );
41+ delay (1500 ); // Wait 1.5 seconds
42+
43+ // 2. Write MINIMUM position (Standard 0 degrees)
44+ myservo.writeMicroseconds (544 );
45+ Serial.println (" Position: Min (544 us)" );
46+ delay (1500 );
47+
48+ // 3. Write MAXIMUM position (Standard 180 degrees)
49+ myservo.writeMicroseconds (2400 );
50+ Serial.println (" Position: Max (2400 us)" );
51+ delay (1500 );
52+ }
0 commit comments