Étape 3: Connectez planches, interrupteur et servos et programme
Schéma montre comment connecter des composants électriques.
(Oups ! La résistance de 1 k devrait aller sur le côté terre de commutateur, pas sur le côté de signal).
Voici le code :
#include servo.h
Servo servo1, servo2, servo3 ; int potPin = 2 ; Sélectionnez l’entrée pin pour le potentiomètre int servangle = 0 ; servo angle variable int potPin = 4 ; Sélectionnez l’entrée pin pour le potentiomètre int soundPin = 4 ; Sélectionnez l’entrée pin pour le potentiomètre int ledPin = 13 ; Sélectionnez le code pin de la LED int val = 0 ; variable pour stocker la valeur provenant de la sonde int valPot2 = 0 ;
valInc int = 4 ; int currAngle = 0 ; int newAngle = 0 ; int delayTime = 0 ; Analog lire épingles const int buttonPin = 2 ; buttonState int = 0 ; variable pour la lecture de la myServo Sub statut bouton-poussoir (int curAngle, int newAngle, int angleInc, int incDelay, int servoNum) {si (curAngle < newAngle) {pour (angle int = curAngle ; angle < newAngle ; angle += angleInc) {si (servoNum == 1) servo1.write(angle) ; if (servoNum == 2) servo2.write(angle) ; delay(incDelay);}} ElseIf (curAngle > newAngle) {pour (angle int = curAngle ; angle > newAngle; = angleInc d’angle) {si (servoNum == 1) servo1.write(angle) ; if (servoNum == 2) servo2.write(angle) ; delay(incDelay);}}}
void setup() {Serial.begin(9600) ; pinMode (ledPin, sortie); / / declare la ledPin en tant que sortie / / pinMode(buttonPin,INPUT) ; pinMode (buttonPin, INPUT); pinMode (soundPin, sortie); 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 ("retarder val =") ; ButtonState ser = digitalRead(buttonPin) ;
Si (buttonState == HIGH) {/ / allumer la LED: digitalWrite (ledPin, HIGH); delay(3000) ; signOftheCross() ; delay(1000);} else {/ / éteindre la LED: digitalWrite (ledPin, basse);}
CLI() ; Delay(5000) ; }