Paso 3: Wire tableros, interruptor y servos y programa
Esquema muestra cómo conectar los componentes eléctricos.
(Gritos de! La resistencia de 1 k debe ir en el lado de tierra del interruptor, no en el lado de la señal).
Aquí está el código:
servo.h #include
Servo servo1 servo2, servo3; int potPin = 2; Seleccione la entrada de pin para el potenciómetro int servangle = 0; servo ángulo variable int potPin = 4; Seleccione la entrada de pin para el potenciómetro int soundPin = 4; Seleccione la entrada de pin para el potenciómetro int ledPin = 13; selecciona el pin para el LED int val = 0; variable para almacenar el valor del sensor int valPot2 = 0;
int valInc = 4; int currAngle = 0; int newAngle = 0; int delayTime = 0; Análogo Lee pernos const int buttonPin = 2; int buttonState = 0; variable para leer el estado del pulsador void myServo (int curAngle, int newAngle, int angleInc, int incDelay, int servoNum) {si (curAngle < newAngle) {para (ángulo int = curAngle; ángulo < newAngle; ángulo += angleInc) {si (servoNum == 1) servo1.write(angle); si (servoNum == 2) servo2.write(angle); delay(incDelay);}} else if (curAngle > newAngle) {para (ángulo int = curAngle; ángulo > newAngle; ángulo = angleInc) {si (servoNum == 1) servo1.write(angle); si (servoNum == 2) servo2.write(angle); delay(incDelay);}}}
void setup() {Serial.begin(9600); pinMode (ledPin, salida); / / declara el ledPin como salida / / pinMode(buttonPin,INPUT); pinMode (buttonPin, entrada); pinMode (soundPin, salida); servo1.attach(9); delay(10); myServo(90,75,1,10,1); servo2.attach(11); delay(10); myServo(90,90,1,10,2); delay(2000);}
void signOftheCross() {digitalWrite(soundPin,HIGH); delay(2000); digitalWrite(soundPin,LOW); / / myServo(50,75,1,15,1); myServo(90,75,1,10,1); delay(500); myServo(90,120,1,15,2); delay(1000); myServo(120,70,1,15,2); delay(1000); myServo(70,90,1,15,2); / / delay(500); myServo(80,40,1,15,1); delay(100); myServo(50,105,1,15,1);} void loop() {/ / Serial.print ("buttonpin ="); Serial.println(digitalRead(buttonPin)); Val = 1000; Serial.Print ("retrasar val ="); Ser buttonState = digitalRead(buttonPin);
Si (buttonState == HIGH) {/ / enciende el LED: digitalWrite (ledPin, HIGH); delay(3000); signOftheCross(); delay(1000);} else {/ / apagar LED: digitalWrite (ledPin, LOW);}
CLI(); Delay(5000); }