user4638: I have an AtTiny85 that I would like to move a servo on I/O "4" for this project.
I can't seem to get it to work, no matter what I do. I had tons of issues getting it to program, but I've gotten it to a place where it will program a blink, and it will also blink the LED in the circuit diagram in the link provided. I have the servo wired, and I'm pretty darn sure the wiring is correct (when are we 100% sure?). I've tried these programs to no success:
// Trinket Servo Monster sketch
// Hardware: Adafruit Trinket (3V or 5V), micro servo, LED + resistor
// Libraries: uses Adafruit_TiCoServo library to manage servo pulses,
// even though NeoPixels are NOT being used here.

#if !defined(__AVR_ATtiny85__)
 #error "This code is for ATtiny boards"
#endif
//#include <Adafruit_TiCoServo.h>
#include <ServoManager.h>
#include <avr/power.h>

// Servo parameters.  Pin MUST be 1 or 4 on a Trinket.  Servo position
// is specified in raw timer/counter ticks (1 tick = 0.128 milliseconds).
// Servo pulse timing is typically 1-2 ms, but can vary slightly among
// servos, so you may need to tweak these limits to match your reality.
#define SERVO_PIN  4 // Pins 1 or 4 are supported on Trinket
#define SERVO_MIN  4 // ~1 ms pulse
#define SERVO_MAX 26 // ~2 ms pulse

#define LED_PIN    0 // "Eye" LED is connected here

PrecisionServo* servo;

void setup(void) {
  ServoManager::setup(1);
  servo = ServoManager::createServo(4);
  //servo->setSetting(SERVO_MEDIUM_ENDPOINT);

//#if (F_CPU == 16000000L)
  // 16 MHz Trinket requires setting prescale for correct timing.
  // This MUST be done BEFORE servo.attach()!
//  clock_prescale_set(clock_div_1);
//#endif
  //servo.attach(SERVO_PIN);
  pinMode(LED_PIN, OUTPUT);
  digitalWrite(LED_PIN, HIGH);
}

uint32_t lastLookTime = 0; // Time of last head-turn

void loop(void) {

  //unsigned long t = millis(); // Current time

  // If more than 1/2 second has passed since last head turn...
  servo->setTarget(0);
  ServoManager::waitUntilFinished();

  servo->setTarget(180);
  ServoManager::waitUntilFinished();

  // Unrelated to head-turn check,
  if(random(10) == 0) { // there's a 1-in-10 chance...
    // ...of an "eye blink":
    digitalWrite(LED_PIN, LOW);  // The LED turns OFF
    delay(random(50, 250));      // for just a short random moment
    digitalWrite(LED_PIN, HIGH); // then back ON
  }

  //delay(1000); // Repeat loop() about 10 times/second
}

SO I scaled back and just tried to write a high out as follows:
void setup() {
  pinMode(4, OUTPUT);
}

void loop() {
  digitalWrite(4, HIGH);
  delayMicroseconds(1000);
  // 1 millisecond determines the servo going forwards
  digitalWrite(4, LOW);
  delay(19);
}

But this didn't work either.
Shouldn't the servo move with just a write to 'high' and 'low'?

user82692: The servo requires a PWM signal to the control lead to move.
This datasheet kind of bears that out...
http://www.datasheetcafe.com/sg90-datasheet-pdf-9-g-micro-servo/

4638: <p>I have an AtTiny85 that I would like to move a servo on I/O &quot;4&quot; for <a href="https://learn.adafruit.com/guardian-robot-zelda-botw" rel="nofollow noreferrer">this</a> project.</p>
<p>I can't seem to get it to work, no matter what I do. I had tons of issues getting it to program, but I've gotten it to a place where it will program a blink, and it will also blink the LED in the circuit diagram in the link provided. I have the servo wired, and I'm pretty darn sure the wiring is correct (when are we 100% sure?). I've tried these programs to no success:</p>
<pre><code>// Trinket Servo Monster sketch
// Hardware: Adafruit Trinket (3V or 5V), micro servo, LED + resistor
// Libraries: uses Adafruit_TiCoServo library to manage servo pulses,
// even though NeoPixels are NOT being used here.

#if !defined(__AVR_ATtiny85__)
 #error &quot;This code is for ATtiny boards&quot;
#endif
//#include &lt;Adafruit_TiCoServo.h&gt;
#include &lt;ServoManager.h&gt;
#include &lt;avr/power.h&gt;

// Servo parameters.  Pin MUST be 1 or 4 on a Trinket.  Servo position
// is specified in raw timer/counter ticks (1 tick = 0.128 milliseconds).
// Servo pulse timing is typically 1-2 ms, but can vary slightly among
// servos, so you may need to tweak these limits to match your reality.
#define SERVO_PIN  4 // Pins 1 or 4 are supported on Trinket
#define SERVO_MIN  4 // ~1 ms pulse
#define SERVO_MAX 26 // ~2 ms pulse

#define LED_PIN    0 // &quot;Eye&quot; LED is connected here

PrecisionServo* servo;

void setup(void) {
  ServoManager::setup(1);
  servo = ServoManager::createServo(4);
  //servo-&gt;setSetting(SERVO_MEDIUM_ENDPOINT);

//#if (F_CPU == 16000000L)
  // 16 MHz Trinket requires setting prescale for correct timing.
  // This MUST be done BEFORE servo.attach()!
//  clock_prescale_set(clock_div_1);
//#endif
  //servo.attach(SERVO_PIN);
  pinMode(LED_PIN, OUTPUT);
  digitalWrite(LED_PIN, HIGH);
}

uint32_t lastLookTime = 0; // Time of last head-turn

void loop(void) {

  //unsigned long t = millis(); // Current time

  // If more than 1/2 second has passed since last head turn...
  servo-&gt;setTarget(0);
  ServoManager::waitUntilFinished();

  servo-&gt;setTarget(180);
  ServoManager::waitUntilFinished();

  // Unrelated to head-turn check,
  if(random(10) == 0) { // there's a 1-in-10 chance...
    // ...of an &quot;eye blink&quot;:
    digitalWrite(LED_PIN, LOW);  // The LED turns OFF
    delay(random(50, 250));      // for just a short random moment
    digitalWrite(LED_PIN, HIGH); // then back ON
  }

  //delay(1000); // Repeat loop() about 10 times/second
}
</code></pre>
<p>SO I scaled back and just tried to write a high out as follows:</p>
<pre><code>void setup() {
  pinMode(4, OUTPUT);
}

void loop() {
  digitalWrite(4, HIGH);
  delayMicroseconds(1000);
  // 1 millisecond determines the servo going forwards
  digitalWrite(4, LOW);
  delay(19);
}
</code></pre>
<p>But this didn't work either.</p>
<p>Shouldn't the servo move with just a write to 'high' and 'low'?</p>
 82692: <p>The servo requires a PWM signal to the control lead to move.</p>
<p>This datasheet kind of bears that out...</p>
<p><a href="http://www.datasheetcafe.com/sg90-datasheet-pdf-9-g-micro-servo/" rel="nofollow noreferrer">http://www.datasheetcafe.com/sg90-datasheet-pdf-9-g-micro-servo/</a></p>
