PUPPET CONTROLLER (1 / 7 steg)
Steg 1: Servo koden för Arduino
Delar:
2 servomotorer
Arduino ombord (jag har en skruv sköld på det, men det är inte kritisk)
Potentiometer (detta är 0 till 100Kohm)
Hoppare ledningar
Piprensare (för show).
1 - tråd servomotorer. Dessa är specialmotorer, du kan mata in en vinkel och motorn kommer att göra det. Servon har tre sladdar: Power (röd, 5V) - marken (svart) - gul (kommunikation - vinkel info går här).
I denna setup: röd går Arduino 5V, svart går till Arduino marken, gul kommer att gå till särskilda ingång/utgång stift på Arduino.
Servo 1: Gul---Pin 9
Servo 2: Gul---stift 10
2 - tråd potentiometern
Detta har tre leder.
Bly 1---5V
Leda 2---Pin 0
Leda 3---marken
3 - kod-
Koden nedan är från Arduino exemplet för servo motorstyrning. Den innehåller biblioteket, servo, som gör det enkelt att kommunicera till servo.
Detta också kartor (skalor) input från potten i en vinkel (i radianer) för servomotor. Vi vill ha två motorerna gå i motsatt riktning. Att göra detta jag har översatt den låga potten värdena till värdena som hög vinkel.
Du kommer lnotice det finns några referenser till "serial" - det här kan du skicka data från Arduino över USB till datorn. Du kan visa värdena, detta är användbart.
Obs: Instructables redaktören tappar den lina till omfatta servomotor.
Det ska bli så här:
#include < Servo.h >; använda servo bibliotek
Marionett munnen kontroller
-två servon
-mittemot vinklar
-Pot input
Arduino kod / / /
Detta är från ett exempel inluded Arduino IDE att ladda ner.
Kontrollera en servo position med en potentiometer (variabelt motstånd)
av Michal Rinott
MPC - lagt till serial output 'n stuff
/*
Här är ledningarna:
Kablage-
|---Arduino Gnd
Encoder |---Analog 0
|---Arduino 5V
| Gul---Digi 9 (PWM)
Översta servo | Röd---5V
| Brun---Gnd
| Gul---Digi 10 (PWM)
Botten servo | Röd---5V
| Brown---
*/
#include < Servo.h >; använda servo bibliotek
Servo myservo; skapa objekt för att styra en servo servo
Servo otherServo;
int potpin = 0; analoga pin används för att ansluta potentiometern
int val; variabel att läsa värdet från det analoga stiftet
int valComp;
void setup()
{
myservo.attach(9); tillmäter objektet servo servo på pin 9
otherServo.attach(10);
Serial.BEGIN(9600);
}
void loop()
{
Val = analogRead(potpin); läser värdet i potentiometern (värde mellan 0 och 1023)
valComp = analogRead(potpin);
Serial.println(val);
Val = karta (val, 0, 1023, 90, 179); skala den att använda den med servo (värde mellan 0 och 180)
valComp = karta (valComp, 1023, 0, 0, 90);
myservo.write(val); anger servo skalad värde
Delay(15);
otherServo.write(valComp);
Delay(25); väntar på servo att komma dit
}