Vending prästen (3 / 3 steg)
Steg 3: Tråd upp styrelser, switch och servon och program
Schematiska visar hur man koppla elektriska komponenter.
(Hoppsan! 1 k motstånd bör gå på marken sidan av switch, inte på signal sida.)
Här är koden:
#include servo.h
Servo servo1, servo2, servo3; int potPin = 2; Välj input PIN-koden för potentiometer int servangle = 0; servo vinkel variabel int potPin = 4; Välj input PIN-koden för potentiometer int soundPin = 4; Välj input PIN-koden för potentiometer int ledPin = 13. Välj PIN-koden för LED int val = 0; variabel för att lagra värdet kommer från sensorn int valPot2 = 0;
int valInc = 4; int currAngle = 0; int newAngle = 0; int fördröjningstid = 0; Analog läsa stift const int buttonPin = 2; int buttonState = 0; variabel för att läsa tryckknapp status void myServo (int curAngle int newAngle, int angleInc, int incDelay, int servoNum) {om (curAngle < newAngle) {för (int vinkel = curAngle; vinkel < newAngle; vinkel += angleInc) {om (servoNum == 1) servo1.write(angle), om (servoNum == 2) servo2.write(angle); delay(incDelay);}} else om (curAngle > newAngle) {för (int vinkel = curAngle; vinkel > newAngle; vinkel-= angleInc) {om (servoNum == 1) servo1.write(angle), om (servoNum == 2) servo2.write(angle); delay(incDelay);}}}
void setup() {Serial.begin(9600); pinMode (ledPin, produktionen); / / förklara ledPin som en utgång / / pinMode(buttonPin,INPUT), pinMode (buttonPin, ingång), pinMode (soundPin, produktionen); 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 ("fördröja val ="); Ser buttonState = digitalRead(buttonPin);
om (buttonState == hög) {/ / slå LED på: digitalWrite (ledPin, hög); delay(3000); signOftheCross(); delay(1000);} annat {/ / stänga LED av: digitalWrite (ledPin, låg);}
CLI(); Delay(5000); }