CRANE spelet (15 / 34 steg)
Steg 15: Klo koden och testa
Jag hittade en annan tumme joystick, så vi kommer att använda som för att kontrollera öppna och stänga av jordluckraren.
Detta är samma kod används för att styra spindle motor (för att höja och sänka klon), den har bara olika Stifttilldelningar och variabelnamn.
Om jag gräver upp en gammal PS2 controller jag hacka som och använda den som den huvudsakliga styrenheten.
Efter att ha testat detta kommer den vikas in med resten av koden.
Här är en video. Koden är nedan.
Arduino kod / / /
Klo kontroll / / /
deklarera stift för DC-motor B / / klo öppna/stäng
int potPin_B = 3; Välj input PIN-koden för potten
int val_B = 0; variabel för att lagra värdet kommer från sensorn
Deklarera variabler för DC-motor B
int k = 0;
int Dir_B = 7.
int Speed_B = 6; PWM
void setup() {
setup DC motor B pins
pinMode (Dir_B, OUTPUT);
pinMode (Speed_B, OUTPUT);
}
void loop() {
DC MOTOR B - LÄS OCH KONTROLL / / /
Läs placeringen av joystick och beräkna avstånd och från center
val_B = analogRead(potPin_B); läsa värdet från sensorn
k = val_B - 517; 517 är center positioner - hur långt från centrum
k = abs(k); 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 (k > = 510) {
k = 510; det mesta PWM stift kan göra är 255
}
om (k < = 200 & & k > = 10) {
k = 200. under 100 PWM motorn gör en hög pich låter och rör sig inte
}
om (k < = 10) {
k = 0; under 10 är joysticken mycket nära till centrum
}
Kör DC-motor B baserat på analog insignal från joystick
om (val_B > = 530) {
digitalWrite (Dir_B, hög); andra hållet
analogWrite (Speed_B, k/2); PWM ut (delar med 2 eftersom max är 255)
}
om (val_B < = 500) {
digitalWrite (Dir_B, låg); //
analogWrite (Speed_B, k/2); //
}
om (val_B < = 530 & & val_B > = 500) {
analogWrite (Speed_B, 0); Stäng av om joysticken är i centrum
}
}