Paso 14: Sketch de Arduino
El dibujo es muy sencillo. El paso en el bloque cuando el detector de movimiento es alto, determinar la secuencia de eventos que el ojo va a hacer en respuesta a la detección de movimiento. Podría utilizar algunos TLC, ya que es el primer programa en C que he escrito.
Bosquejo a parpadear prop ojos cuando alguien se acerca.
Comportamiento se puede modificar dependiendo de cuánto tiempo permanecen
Versión de prueba parpadea LED
#include
void Open_Eyes();
void Close_Eyes();
void Blink_Eyes();
Servo myservo; crear objeto servo para controlar un servo
int motionPin = 3; pin analógico utilizado para conectar el detector de movimiento
int motionVal; variable para leer el valor del pin analógico
Servo es conectado en el pin 9
int ServoPin = 9;
Perno de 13 tiene un LED conectado en la mayoría de placas Arduino.
darle un nombre:
int led = 13;
Bandera de estado anterior
Boolean wasHIGH = false;
void setup() {}
Serial.Begin(9600);
inicializar el servo en 'ServoPin'
myservo.Attach(ServoPin); se fija el servo en el pin definido en el objeto servo
Inicializa el pin digital como salida.
pinMode (led, salida);
digitalWrite (led, baja); Apagar el LED por lo que la tensión baja
Permitir que el detector de movimiento calentar.
Delay(20000);
Empezar con los ojos cerrados
Close_Eyes();
}
void loop() {}
motionVal=digitalRead(motionPin);
movimiento booleano = (motionVal == 1);
Si {} (movimiento)
Open_Eyes();
Delay(2000);
Blink_Eyes();
Blink_Eyes();
Delay(3000);
Blink_Eyes();
Delay(15000);
Blink_Eyes();
Delay(15000);
wasHIGH = true;
digitalWrite(led,HIGH);
}
motionVal=digitalRead(motionPin);
Si (! movimiento) {}
Si (wasHIGH) {}
Close_Eyes();
wasHIGH = false;
}
digitalWrite(led,LOW);
}
Delay(200);
}
void Close_Eyes() {}
para (int pos = 179; pos > = 1; pos-= 2) {/ / va de 180 grados a 0 grados
myservo.Write(POS); Dile el servo a la posición en la variable 'pos'
Delay(3);
}
}
void Open_Eyes() {}
para (int pos = 0; pos < 180; pos += 2) {/ / va desde 0 grados a 179 grados
myservo.Write(POS); Dile el servo a la posición en la variable 'pos'
Delay(3); espera 1 ms para el servo a la posición
}
}
void Blink_Eyes() {}
Close_Eyes();
Open_Eyes();
Delay(10);
}