Smart telefon gränssnitt (11 / 12 steg)
Steg 11: elektronik
Upphakning av servon, och ljus är egen förklarande tittar på arduino koden representerade nedan. Talaren slits isär för att sättas i rutan.
Obs: den positiva högtalarkabeln går till den analoga pin A0 och jordledaren till marken stift. Telefon/komponenten producera ljud kommer ansluts via komponentkabel från högtalaren.
VIKTIGT: Servon att flytta huvudet i den uppåtgående ståndpunkten har inte lagts ännu! Kommer att uppdatera.
Sopa
av BARRAGAN / / denna exempelkod är offentlig.
Obs: UART kommer att inaktiveras när servo kopplas till pin 0 eller 1.
#include
Servo myServo, servo2; skapa objekt för att styra en servo servo / / maximalt åtta servo objekt kan skapas float läsning = 0,0; flyta inputPin = A0; int pos = 0; variabel att lagra servo position int pos2 = 0;
Ange pin-koder: const int buttonPin = 29. numrera av tryckknapp pin const int ledPin = 2; antal LED stift const int ledPin2 = 3;
variabler som ändras: int buttonState = 0; variabel för att läsa tryckknapp status
int sensorValue = 0; sensor värdet int sensorMin = 1023; minsta sensorn värdet int sensorMax = 0; maximal sensor värde
void setup() {Serial.begin(9600); myServo.attach(78); servo2.attach(81);
samtidigt (millis() < 5000) {sensorValue = analogRead(inputPin);
spela in maximal sensor värdet om (sensorValue > sensorMax) {sensorMax = sensorValue;}
spela in minsta sensorn värdet om (sensorValue < sensorMin) {sensorMin = sensorValue;}}
initiera LED stift som en utgång: pinMode (ledPin, produktionen); initiera LED stift som en utgång: pinMode (ledPin2, produktionen); initiera tryckknapp stiftet som indata: pinMode (buttonPin, ingång);
myServo.write(10); servo2.write(10);
}
void loop() {/ / läsa statligt av tryckknapp värdet: buttonState = digitalRead(buttonPin);
om (buttonState == hög) {/ / slå LED på: digitalWrite (ledPin, hög), digitalWrite (ledPin2, hög);
läsa från sensorn: sensorValue = analogRead(inputPin); new_value = sensorValue; sensorValue = karta (sensorValue, sensorMin, sensorMax, 0, 255); sensorValue = begränsa (sensorValue, 0, 255); IF(sensorValue > 238) {pos2 = 10; för (pos = 10; pos < 60; pos + = 1) / / går från 0 grader till 45 grader {myServo.write(pos2); servo2.write(pos); delay(5); pos2-= 1;}} annat {myServo.write(10); servo2.write(10);}
} annat {
Inaktivera LED: digitalWrite (ledPin, låg); digitalWrite (ledPin2, låg); myServo.write(10); servo2.write(10); }
}