CRANE spelet (1 / 34 steg)
Steg 1: Kontrollera en DC-motor med variabel resistor
Det första vi kommer att göra är att få varje motor som arbetar med en handkontroll.
Använda en joystick med potentiameter till controll hastighet och riktning av en DC-motor.
Detta kommer att användas till:
-höja och sänka klo
-öppna och stänga clow
Maskinvarukedjan:
Joystick (potentiameter) -> Arduino med kod -> DC motor driver V1.1 (make.rrf.org\dcmd-1.1) - > motor
Beroende av: http://www.reprap.org/bin/view/Main/DC_Motor_Driver_1_1#Wire_up_test_devices
Här är arduino koden:
Obs: detta går bara en DC-motor
********************ARDUINO*****************
POTTEN för att styra en DC motor hastighet och riktning *** / /
definiera PIN-koder och variabler
int potPin = 2; Välj input PIN-koden för potentiometer
int val = 0; variabel för att lagra värdet kommer från sensorn
int j = 0;
int Dir_A = 4;
int Speed_A = 5;
void setup() {
pinMode (Dir_A, OUTPUT);
pinMode (Speed_A, OUTPUT);
Serial.BEGIN(9600);
}
void loop() {
Läs placeringen av joystick och beräkna avstånd och från center
Val = analogRead(potPin); läsa värdet från sensorn
j = val - 517; 517 är center positioner - hur långt från centrum
j = abs(j); absolut värde
sätta några gränser för j att hålla PWM värden användbara
under 100 motorn kommer inte att flytta och PWM max är 255
om (j > = 510) {
j = 510; det mesta PWM stift kan göra är 255
}
om (j < = 200 & & j > = 10) {
j = 200. under 100 PWM motorn gör en hög pich låter och rör sig inte
}
om (j < = 10) {
j = 0; under 10 är joysticken mycket nära till centrum
}
Kör DC-motor A baserat på analog insignal från joystick
om (val > = 520) {
digitalWrite (Dir_A, hög); andra hållet
analogWrite (Speed_A, j/2); PWM ut (delar med 2 eftersom max är 255)
}
om (val < = 510) {
digitalWrite (Dir_A, låg); //
analogWrite (Speed_A, j/2); //
}
om (val < = 520 & & val > = 510) {
analogWrite (Speed_A, 0); Stäng av om joysticken är i centrum
}
skriva ut värden för felsökning
Serial.Print(val); Skicka nummer till PC så du kan se vad det händer
Serial.Print(",");
Serial.println(j);
}