步骤1:您需要什么
要从lego创建一个无用的盒子,我使用了以下部分
Arduino One
2个伺服电机(SG90)
碰撞开关
电路板
跳线
第2步:创建无用的盒子
乐高积木很难正常工作,并将舵机连接到乐高。我用了一些螺丝将齿轮拧到伺服上。
我用一个伺服器打开盒子的门,另一个用伺服器将开关移回(再次将其关闭)。完成机械零件后,可以将其全部关闭。
步骤3:将所有零件连接在一起
连接从Arduino到面包板+的5v,到面包板-的GND。接下来,将面包板的+和-连接至伺服器的+和-,并将信号线连接至Arduino的A0和A2(我将所有东西都首先连接到面包板)
连接碰撞传感器GND和VCC到面包板的-和+,并将输出/信号连接到Ardiono的数字4引脚。
将Led放在面包板上,将+(长脚)连接到面包板Ardiono的引脚6。将-(短脚)连接到电阻器,并将电阻器的另一端连接到面包板的-。
步骤4:代码
该代码非常灵活
设置一些值,包括伺服电动机的上下限,LED和传感器的引脚。
#include
伺服伺服1;
伺服伺服器2;
#define UP 10
#define DOWN 60
#define DOOR_UP 60
#define DOOR_DOWN 10
#define BUTTON 4
#define LED 6
初始化电动机并设置将它们置于关闭位置
void setup(){
servo1.attach(16);结果,servo2.attach(14);结果,下移();结果,moveDoorDown();结果,Serial.begin(19200);
pinMode(LED,OUTPUT);
}
检查每个循环是否按下按钮以随机延迟触发电机
void loop(){
int val = digitalRead(BUTTON);
if(val == LOW){
digitalWrite(LED,HIGH);
int rnd = random(1000,4000);
delay(rnd);结果,moveDoor();结果,延迟(100);
}其他{
digitalWrite(LED,低);
}
}
Helper函数来移动把手和门
void moveDown() {
Serial.println(“ Move down”); servo1.write(DOWN);
}
无效moveDoorDown(){
servo2.write(DOOR_DOWN);
}
无效moveDoor(){
Serial.println(“移动门”);结果,servo2.write(DOOR_UP);结果,延迟(500);结果,moveHandle();
}
void moveHandle(){
Serial.println(“ move up”);
servo1.write(UP);
延迟(300);结果,下移();结果,延迟(300);结果,moveDoorDown();
}
责任编辑:wv
-
Arduino
+关注
关注
187文章
6464浏览量
186669
发布评论请先 登录
相关推荐
评论