Paso 11: electrónica
Conectar los servos y las luces es explicativas mirando el código de arduino representado a continuación. El altavoz se rasga aparte para poner en la caja.
Nota: cable positivo del altavoz va al pin analógico A0 y el cable de tierra con el conector de tierra. El teléfono/componente de producción de sonido se enchufe en el cable del componente del altavoz.
Nota importante: Los servos para mover la cabeza en la posición hacia arriba todavía no ha sido añadido! Para actualizar.
Barrido de
por BARRAGAN / / este código de ejemplo está en el dominio público.
Nota: UART se desactivará cuando el servo está conectado al pin 0 o 1.
#include
Servo myServo, servo2; crear objeto servo para controlar un servo / puede crear un máximo de ocho objetos de servo flotador lectura = 0.0; Float inputPin = A0; int pos = 0; variable para almacenar la posición servo int pos2 = 0;
establecer números de pin: const int buttonPin = 29; el número de lo pin pulsador const int ledPin = 2; el número de los LED pin const int ledPin2 = 3;
cambiarán las variables: int buttonState = 0; variable para lectura del estado del pulsador
int sensorValue = 0; el sensor valor int sensorMin = 1023; sensor mínimo valor int sensorMax = 0; valor máximo del sensor
void setup() {Serial.begin(9600); myServo.attach(78); servo2.attach(81);
mientras (millis() < 5000) {sensorValue = analogRead(inputPin);
Registre el valor máximo del sensor si (sensorValue > sensorMax) {sensorMax = sensorValue;}
Registre el valor de la sonda de mínima si (sensorValue < sensorMin) {sensorMin = sensorValue;}}
Inicializa el pin LED como salida: pinMode (ledPin, salida); Inicializa el pin LED como salida: pinMode (ledPin2, salida); inicializar el perno pulsador como entrada: pinMode (buttonPin, entrada);
myServo.write(10); servo2.Write(10);
}
void loop() {/ / leer el estado del pulsador valor: buttonState = digitalRead(buttonPin);
Si (buttonState == HIGH) {/ / enciende el LED: digitalWrite (ledPin, HIGH); digitalWrite (ledPin2, HIGH);
lectura del sensor: sensorValue = analogRead(inputPin); new_value = sensorValue; sensorValue = mapa (sensorValue, sensorMin, sensorMax, 0, 255); sensorValue = restringir (sensorValue, 0, 255); if(sensorValue > 238) {pos2 = 10; para (pos = 10; pos < 60; pos += 1) / / va desde 0 grados a 45 grados {myServo.write(pos2); servo2.write(pos); delay(5); pos2-= 1;}} else {myServo.write(10); servo2.write(10);}
} else {}
Apagar LED: digitalWrite (ledPin, LOW); digitalWrite (ledPin2, LOW); myServo.write(10); servo2.Write(10); }
}