![Arduino机器人手臂 - Valgfag AMT Arduino机器人手臂 - Valgfag AMT](https://img.gwsigeps.com/img/img/blank.jpg)
目录:
Vi fik til opgave at lave en styring til en robot arm,vedhjælpafarduino。 Jeg valgte i min opbygning at bruge en Arduino UNO samt et gammelt joystick til at styre armen med。 Desuden skulle robotarmen有一个enktuator / sensor,她的har je jeg valgt at bruge en HC-SR04 Ultralydssensor。 Denne传感器målerhvorlangt robotarmen er fra en overflade,og dette kan ses som centimeter i Arduino programmet。
供应:
第1步:Opggning Og Koden
/ *使用电位计(可变电阻)控制伺服位置由Michal Rinott于2013年11月8日由Scott Fitzgerald修改http://www.arduino.cc/en/Tutorial/Knob * /
#包括 //你可以选择任何数字引脚用于触发和echo const int trigger = 12; const int echo = 13;
int距离;持续时间长; #包括 //一开始,触发器必须设置为低电平数字(触发,低电平); delayMicroseconds(2);
digitalWrite(触发器,HIGH); delayMicroseconds(10); digitalWrite(触发器,LOW);
// pulseIn函数读取引脚是高电平还是低电平//回波引脚输出波形击中物体所需的时间并以微秒(us)持续时间= pulseIn(echo,HIGH)返回;
//声速= 340m / s或0.034cm / us //距离以cm为单位=持续时间* 0.034 / 2;
Serial.println(“距离”); Serial.println(距离);延迟(500);
} if(val> 600 && val <1200){myservo.write(valop = valop +3);延迟(10); } if(val <300 && val> 1){myservo.write(valop = valop -3);延迟(10); } val1 = analogRead(potpin1); //读取电位计的值(0到1023之间的值)// val = map(val,0,1023,0,1023); if(val1 <600 && val1> 400){myservo1.write(valop1 = valop1);延迟(20); //Serial.print("val1_“); //Serial.println(val1);延迟(10); } if(val1> 600 && val1 <1200){myservo1.write(valop1 = valop1 +3);延迟(10); } if(val1 <300 && val1> 1){myservo1.write(valop1 = valop1 -3);延迟(10); } //Serial.print("valop1_“); //Serial.println(valop1); val2 = analogRead(potpin2); //读取电位计的值(0到1023之间的值)// val = map(val,0,1023,0,1023); if(val2 <600 && val2> 400){myservo2.write(valop2 = valop2);延迟(20); //Serial.print("val2_“); // Serial.println(val2); } if(val2> 600 && val2 <1200){myservo2.write(valop2 = valop2 +3);延迟(10); } if(val2 <300 && val2> 1){myservo2.write(valop2 = valop2 -3);延迟(10); } //Serial.print("valop2_“); //Serial.println(valop2); val3 = analogRead(potpin3); //读取电位计的值(0到1023之间的值)// val = map(val,0,1023,0,1023); if(val3 <600 && val3> 400){myservo3.write(valop3 = valop3);延迟(20); Serial.print( “val3_”); Serial.println(VAL3); } if(val3> 600 && val3 <1200){myservo3.write(valop3 = valop3 +3);延迟(10); } if(val3 <300 && val3> 1){myservo3.write(valop3 = valop3 -3);延迟(10); } Serial.print(“valop3_”); Serial.println(valop3);持续时间长,距离远; digitalWrite(trigPin,LOW); //添加了这行delayMicroseconds(2); //添加了这行digitalWrite(trigPin,HIGH); // delayMicroseconds(1000); - 删除了这行delayMicroseconds(10); //添加了这行digitalWrite(trigPin,LOW); duration = pulseIn(echoPin,HIGH);距离=(持续时间/ 2)/ 29.1; if(distance <4){//这是LED开/关发生的地方digitalWrite(led,HIGH); //当满足红色条件时,绿色LED应关闭digitalWrite(led2,LOW); } else {digitalWrite(led,LOW); digitalWrite(LED2,HIGH); } if(distance> = 200 || distance <= 0){Serial.println(“超出范围”); } else {Serial.print(distance); Serial.println(“cm”); } delay(500); }
第2步:视频Og下载