Stap 11: elektronica
Aansluiten van de servo's, en de lichten zijn zelf verklarend de arduino code bekijkt vertegenwoordigd hieronder. De spreker is gescheurd uit elkaar worden gebracht in het vak.
Opmerking: de spreker positieve draad gaat naar de analoge pin A0 en de grond-draad aan op de grond pin. De telefoon/component geluid produceert zal aansluiten op de component-kabel uit de luidspreker.
BELANGRIJKE opmerking: De servo's om te gaan met dat het hoofd in de opwaartse positie is nog niet toegevoegd! Wordt bijgewerkt.
Vegen
door BARRAGAN / / deze voorbeeldcode is in het publieke domein.
Opmerking: UART wordt uitgeschakeld wanneer servo is aangesloten op de pin 0 of 1.
#include
Servo myServo, servo2; servo-object om te bepalen van een servo maken / / maximaal acht servo-objecten kan worden gemaakt van float lezing = 0,0; zweven inputPin = A0; int pos = 0; variabele op te slaan van de servo positie int pos2 = 0;
pin-codes instellen: const int buttonPin = 29; het nummer van de drukknop pin const int ledPin = 2; het nummer van de LED pin const int ledPin2 = 3;
variabelen zal veranderen: int buttonState = 0; variabele voor het lezen van de drukknop status
int sensorValue = 0; de sensor waarde int sensorMin = 1023; minimale sensor waarde int sensorMax = 0; maximale sensor waarde
void setup {Serial.begin(9600); myServo.attach(78); servo2.attach(81);
terwijl (millis() < 5000) {sensorValue = analogRead(inputPin);
de maximale sensor-waarde opnemen als (sensorValue > sensorMax) {sensorMax = sensorValue;}
de waarde van de minimale sensor opnemen als (sensorValue < sensorMin) {sensorMin = sensorValue;}}
initialiseren van de LED-pin als uitgang: pinMode (ledPin, OUTPUT); initialiseren van de LED-pin als uitgang: pinMode (ledPin2, OUTPUT); initialiseren van de drukknop pin als input: pinMode (buttonPin, INPUT);
myServo.write(10); servo2.write(10);
}
void loop {/ / Lees de stand van de drukknop waarde: buttonState = digitalRead(buttonPin);
Als (buttonState == HIGH) {/ / LED inschakelen: digitalWrite (ledPin, hoge); digitalWrite (ledPin2, hoge);
lezen van de sensor: sensorValue = analogRead(inputPin); nieuwe_waarde = sensorValue; sensorValue = kaart (sensorValue, sensorMin, sensorMax, 0, 255); sensorValue = beperken (sensorValue, 0, 255); if(sensorValue > 238) {pos2 = 10; voor (pos = 10; pos < 60; pos += 1) / / gaat van 0 graden tot 45 graden {myServo.write(pos2); servo2.write(pos); delay(5); pos2-= 1;}} else {myServo.write(10); servo2.write(10);}
} else {}
LED uitschakelen: digitalWrite (ledPin, laag); digitalWrite (ledPin2, laag); myServo.write(10); servo2.write(10); }
}