Hur man bygger en robotarm (7 / 9 steg)
Steg 7: programmering med avstånd sensor
den har en avstånd sensor, och kan reagera som
Jag wil sår du hur du ska kunna programmera att du äger.
Det är skrivet i c ++
det första du ser är detta
#define trigPin 7 //toevoegen aan kod
#define echoPin 6
#define ledde 13
#include < Servo.h >
nu vi är även servo är, ledde, och avståndet sensorn till koden. du behöver inte ändra något här.
efter att du ser detta.
Servo myservo1; Naam gifva
Servo myservo2;
Servo myservo3;
Servo myservo4;
Servo myservo5;
nu har vi namnge al 5 signaler (6 servo) (kan vara vad du vill)
Nästa.
void setup() {
Serial.BEGIN (9600);
pinMode (trigPin, produktionen); aanstluiting op arduino
pinMode (echoPin, ingång);
pinMode ledde (, OUTPUT);
myservo1.attach(3);
myservo2.attach(5);
myservo3.attach(9);
myservo4.attach(10);
myservo5.attach(11);
}
nu säger vi till arduino till vilket stift de servo s och avstånd sensor är sammankopplade, igen du behöver inte röra detta
Nästa.
void position1() {/ / positie 1
digitalWrite (ledde, högt); LED går på
myservo2.writeMicroseconds(1300);
myservo3.writeMicroseconds(1300);
myservo4.writeMicroseconds(800);
myservo5.writeMicroseconds(1000);
}
Detta är något du kan ändra gjorde jag en ställning och kallar denna STÅNDPUNKTEN1. nu kan jag använda denna ståndpunkt senare i min kod.
Om du vill ha en annan rörelse, ändra talen mellan () till något mellan 0 och 3000.
efter;
void position2() {//positie 2
digitalWrite(led,LOW); LED går ut
myservo2.writeMicroseconds(1200);
myservo3.writeMicroseconds(1300);
myservo4.writeMicroseconds(1400);
myservo5.writeMicroseconds(2200);
}
Detta är samma som tidigare endast detta är min position2, nu du kan modifierade ståndpunkten och lägga till fler om du vill.
då kan du se detta.
void loop() {
lång varaktighet, avstånd;
digitalWrite (trigPin, låg);
delayMicroseconds(2);
digitalWrite (trigPin, hög);
delayMicroseconds(10);
digitalWrite (trigPin, låg);
längd = pulseIn (echoPin, hög);
avståndet = (längd/2) / 29,1;
nu den verkliga koden börja arbeta, inte rör denna del är detta bara något att inrätta avstånd sensorn.
och sedan;
om (avstånd < = 30) {//do positie 1
position1();
}
annat {
position2(); göra positie 2
}
om (avstånd < 10) {
myservo5.writeMicroseconds(2200); Öppna klauw
}
annat {
myservo5.writeMicroseconds(1000); sluit klauw
}
-------------------------------------------------------------------------------------
nu kan du lägga till en rörelse till ett avstånd. du göra det här sättet.
om (avstånd < = 30) {//you säger nu, om avståndet är mindre eller är 30 cm. han går till STÅNDPUNKTEN1
position1(); arm mow gör allt du sätter mellan dessa brakeds {}
}
annat {/ / om avståndet är större än 30 cm det gör position2
Placera (2) / / det gör nu allt du sätter mellan tose brakeds {}
}
nu kan du ad här whit varje distans du vill, och låt honom göra vad du vill.
den så att en del av koden.
om (avstånd > 30 || avstånd < = 0) {
Serial.println ("out of range"); Buiten berijk, als het groter dan 30 kleiner Dan 0 är
}
annat {
Serial.Print(Distance);
Serial.println ("cm"); avståndet i cm
}
Delay(500); Wacht 0,5 seconde
}
du behöver inte ändra något här, det enda som skulle kunna vara att du ändrar "cm" i "tum" men jag har inte provat det ännu. så jag inte nu eller kommer det att fungera bra.
Jag hoppas du nu al förstår hur du kan göra din en rörelse till ett avstånd.
ha kul med dig robotarm