在这个项目中,我们将学习如何制作基于Arduino的DIY自动售货机。我将向您展示构建它的整个过程,从切割并组装MDF板,将所有电子零件连接在一起并编写Arduino代码。
概述
自动售货机采用四个通过四个连续旋转伺服电机控制的排气单元,通过步进电机,LCD,用于选择物品和硬币检测器的四个按钮控制的载体系统。
现在,您可能正在考虑物品运营商对此自动售货机并不是很有用,而且是的,您可能是对的。但是我的想法是让这个项目更有趣或更复杂,所以你可以了解更多的新东西。我认为这个项目的想法对于电子商人或机电一体化学生来说,考虑到建造一个作为他们的最后一年yabo7. com的项目以及任何Arduino爱好者,都可以很好。
建造自动售货机
我开始将8 mm刻度MDF板切割成大小。
我之前做了一个3D模型的机器,从那里我得到了所有的测量。
您可以从下面的链接下载3D模型。
用于切割MDF,我使用了圆锯。实际上这是一个自制工作台采用圆锯,路由器和拼图,由我的伴侣Marija制作,在她的YouTube频道上有一个DIY视频创造力英雄。
在使用圆锯切割所有面板后,我继续使用倒竖锯制作一些面板中的开口。
实际上,拼图甚至可以用于前一步,以防你没有圆锯。我还使用拼图切割有几个切割的较小部分。但请注意,这些是危险机器,因此您需要在使用时非常小心。
一旦我有了所有的MDF部件准备好,我开始组装他们使用一些木胶水和螺丝。为了紧固面板,我使用了90度角夹。使用一个无绳钻,我首先做了试点孔,然后做了水槽,并将3毫米螺钉到位。我使用相同的方法组装所有面板,其中一些我也使用了一些F夹。
铁路系统
在装配的这一点上,我将继续制作铁路系统。为了达到这个目的,我使用了铝管,我用金属手锯把它们切成合适的尺寸。管子的直径为水平轨道是16毫米,而垂直轨道的直径是20毫米。在坚实的18毫米木板上,我用Forstner钻头为管做槽,然后把管连接到他们。
水平轨道是由两个27厘米长的管,而垂直轨道是由三个45厘米长的管。
接下来是滑块,这就是我制作它们的方式。我使用了21次21厘米的木板,我制作了8毫米的孔。
然后我插入8毫米螺纹杆通过这些孔和使用垫圈和螺母我确保22毫米轴承。至于水平滑块,我使用了相同的方法,但较小的轴承的外径为16毫米。
在我在管轨之间插入滑块后,我注意到它有点松动。为了解决这个问题,我必须减少两个轨道之间的距离。所以首先我伸出管槽,然后通过管制成垂直槽,并且最后使用螺纹杆紧固两个管轨彼此更靠近。在此之后,滑块不再松动,他们的工作正常。
但是,此时我必须拆卸铁轨,以便将其他元素添加到它中。首先,我在轨道的左侧添加了5毫米螺栓,我将为水平时序带附接一个滑轮,以及两个将在左侧垂直导轨上滑动的更多轴承。
在另一边的轨道,我必须附加的步进电机的水平运动。首先我将电机固定在一个8mm的MDF板上,然后添加一块支撑的木头到它,并将开槽的部分也固定到它。最后,我用一根木胶和两个螺丝将整个组件固定在垂直滑块上。
接下来,我继续在水平滑块上添加容器。为此目的,我使用了一些小块,我使用木材胶水将它们联合在一起。一旦我完成了这个,我就准备好组装了铁路系统。我在轨道插槽中使用了一些环氧树脂,并将额外的木板添加到轨道的一侧,以使整个轨道系统更硬。
在下一步中,我在垂直导轨之间插入组件并将它们固定到位。滑块的最终结果和轨道系统变成了优异的工作。
我继续安装水平同步带。我测量了我需要的长度,把它切成大小,并把它固定在滑块上使用拉链领带。关于垂直滑块,我用一块MDF和一些螺栓将步进电机安装在机器的顶部。在底部,我附上滑轮,并以类似的方式安装同步带。
排放单位
接下来,我继续进行物品放电单元。我通过围绕直径7厘米的喷漆围绕7厘米缠绕3 mm蜱金属线的螺旋线圈。
之后,使用胶水枪我确保它到一个连续旋转伺服电机。
前面板
接下来是我使用简单的铰链连接到自动售货机的前门面板,以及锁定它我使用磁门捕手。然后我用5毫米蜱丙烯酸来覆盖大前开口,而对于右侧的较小开口,我使用了一个非常锡铝板。在这里,我为按钮制作了4个孔,以及硬币和硬币的开口液晶显示器。我用钻头和一个黑客来制作它们。一旦我将电子部件安装到铝板上,就使用5毫yabo7. com米螺栓连接到前门板。
为定位载体到它的起始位置,我安装了两个微型开关和硬币,我粘了一个指南,这将引导硬币滑到机器的底部。
硬币探测器是一个简单的红外接近传感器,所以当硬币经过它附近时,传感器会给我们一个正反馈。
电路原理图
接下来是有趣的部分,将所有电子组件连接到Arduino板。yabo7. com这是该DIY自动售货机项目的完整电路原理图。
所以我们需要12V电源,至少2安培。我们需要12V的两个步进电机,以及LED带灯,我稍后会在前门上附着。但是,对于我们需要的所有其他组件5V,因此我使用了降压转换器来减压12V至5V。DS04-NFC连续旋转伺服电机用5V供电,并通过来自Arduino板的PWM信号控制,而步进电机通过A4988驱动器进行控制。四个按钮和两个微动开关分别与Ground和Arduino数字引脚相连,所以使用Arduino板内部的拉起电阻,我们可以很容易地检测到它们被按下。
您可以从下面的链接获取此Arduino教程所需的组件:
- 直流-直流LM2596巴克转换器 .................................亚马逊/Banggood/阿里巴巴全球速卖通
- 16×2 LCD .....................................................................亚马逊/Banggood/阿里巴巴全球速卖通
- 360度连续旋转伺服电机......亚马逊/Banggood/阿里巴巴全球速卖通
- 步进电机NEMA 17 ..........................................亚马逊/Banggood/阿里巴巴全球速卖通
- A4988步进电机驱动 .....................................亚马逊/Banggood/阿里巴巴全球速卖通
- IR接近传感器................................................... ..亚马逊/Banggood/阿里巴巴全球速卖通
- 按钮 .........................................................................亚马逊/Banggood/阿里巴巴全球速卖通
- 微限位开关 ......................................................亚马逊/Banggood/阿里巴巴全球速卖通
- Arduino Board ............................................................亚马逊/Banggood/阿里巴巴全球速卖通
yaboAG娱乐城披露:这些是附属链接。作为一名亚马逊助理,我从合格的购买中获得收入。
我使用一些跳线连接电子组件。yabo7. com这与那么多电线变得有点凌乱,但一切正常工作。最后,我在门板上安装了两个LED灯条,以在自动售货机内部照亮。
Arduino代码
剩下的就是对Arduino进行编程这是我为这个项目制作的代码。下面是对代码的描述。
/ * DIY自动售货机 - Arduino基于Mechatronics项目由Dejan Nedelkovski,www.www.kuaixg.com * 亚搏手机版官方下载/ #include//包含液晶图书馆#include 液晶LCD(27,26,25,24,23,22);//创建一个LC对象。参数:( RS,ENABLE,D4,D5,D6,D7)伺服伺服伺服1,伺服2,SERVO3,SERVO4;// DS04-NFC电机//步进电机销#define Dirpinvertical 0 #define SpepInvertical 1 #define DirpinhorizoTaltal 2 #define SepinteTectoral 3 #define Coindetector 9 #Define Button1 13 #define Button2 12 #define Button3 11 #define Button3 11 #define Button4 10 #define microswitchv15 #define microSwitchh 14 int按钮;void setup(){lcd.begin(16,2);//初始化液晶屏幕的接口,并指定显示伺服1.attach(4)的尺寸(宽度和高度);servo2.attach(5);servo3.attach(6); servo4.attach(7); pinMode(dirPinVertical, OUTPUT); pinMode(stepPinVertical, OUTPUT); pinMode(dirPinHorizontal, OUTPUT); pinMode(stepPinHorizontal, OUTPUT); pinMode(coinDetector, INPUT); // Activating the digital pins pull up resistors pinMode(button1, INPUT_PULLUP); pinMode(button2, INPUT_PULLUP); pinMode(button3, INPUT_PULLUP); pinMode(button4, INPUT_PULLUP); pinMode(microSwitchV, INPUT_PULLUP); pinMode(microSwitchH, INPUT_PULLUP); // Vertical starting position digitalWrite(dirPinVertical, HIGH); // Set the stepper to move in a particular direction while (true) { if (digitalRead(microSwitchV) == LOW) { // If the micro switch is pressed, move the platfor a little bit up and exit the while loop moveUp(70); break; } // Move the carrier up until the micro switch is pressed digitalWrite(stepPinVertical, HIGH); delayMicroseconds(300); digitalWrite(stepPinVertical, LOW); delayMicroseconds(300); } // Horizontal starting position digitalWrite(dirPinHorizontal, LOW); while (true) { if (digitalRead(microSwitchH) == LOW) { moveLeft(350); break; } digitalWrite(stepPinHorizontal, HIGH); delayMicroseconds(300); digitalWrite(stepPinHorizontal, LOW); delayMicroseconds(300); } } void loop() { // Print "Insert a coin!" on the LCD lcd.clear(); lcd.setCursor(0, 0); lcd.print("Insert a coin!"); // Wait until a coin is detected while (true) { if (digitalRead(coinDetector) == LOW) { // If a coin is detected, exit the from the while loop break; } } delay(10); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Select your item"); lcd.setCursor(0, 1); lcd.print(" 1, 2, 3 or 4?"); // Wait until a button is pressed while (true) { if (digitalRead(button1) == LOW) { buttonPressed = 1; break; } if (digitalRead(button2) == LOW) { buttonPressed = 2; break; } if (digitalRead(button3) == LOW) { buttonPressed = 3; break; } if (digitalRead(button4) == LOW) { buttonPressed = 4; break; } } // Print "Delivering..." lcd.clear(); lcd.setCursor(0, 0); lcd.print("Delivering..."); // Depending on the pressed button, move the carrier to that position and discharge the selected item switch (buttonPressed) { case 1: // Move the container to location 1 moveUp(4900); // Move up 4900 steps (Note: the stepper motor is set in Quarter set resolution) delay(200); moveLeft(1700); // Move left 1700 steps delay(300); // Rotate the helical coil, discharge the selected item servo1.writeMicroseconds(2000); // rotate delay(950); servo1.writeMicroseconds(1500); // stop delay(500); // Move the container back to starting position moveRight(1700); delay(200); moveDown(4900); break; case 2: // Move the container to location 2 moveUp(4900); delay(200); // Rotate the helix, push the selected item servo2.writeMicroseconds(2000); // rotate delay(950); servo2.writeMicroseconds(1500); // stop delay(500); moveDown(4900); break; case 3: // Move the container to location 3 moveUp(2200); delay(200); moveLeft(1700); delay(300); // Rotate the helix, push the selected item servo3.writeMicroseconds(2000); // rotate delay(950); servo3.writeMicroseconds(1500); // stop delay(500); // Move the container back to starting position moveRight(1700); delay(200); moveDown(2200); break; case 4: // Move the container to location 4 moveUp(2200); // Move verticaly 4800 steps delay(200); // Rotate the helix, push the selected item servo4.writeMicroseconds(2000); // rotate delay(950); servo4.writeMicroseconds(1500); // stop delay(500); moveDown(2200); break; } lcd.clear(); // Clears the display lcd.setCursor(0, 0); lcd.print("Item delivered!"); // Prints on the LCD delay(2000); } // == Custom functions == void moveUp (int steps) { digitalWrite(dirPinVertical, LOW); for (int x = 0; x < steps; x++) { digitalWrite(stepPinVertical, HIGH); delayMicroseconds(300); digitalWrite(stepPinVertical, LOW); delayMicroseconds(300); } } void moveDown (int steps) { digitalWrite(dirPinVertical, HIGH); for (int x = 0; x < steps; x++) { digitalWrite(stepPinVertical, HIGH); delayMicroseconds(300); digitalWrite(stepPinVertical, LOW); delayMicroseconds(300); } } void moveLeft (int steps) { digitalWrite(dirPinHorizontal, HIGH); for (int x = 0; x < steps; x++) { digitalWrite(stepPinHorizontal, HIGH); delayMicroseconds(300); digitalWrite(stepPinHorizontal, LOW); delayMicroseconds(300); } } void moveRight (int steps) { digitalWrite(dirPinHorizontal, LOW); for (int x = 0; x < steps; x++) { digitalWrite(stepPinHorizontal, HIGH); delayMicroseconds(300); digitalWrite(stepPinHorizontal, LOW); delayMicroseconds(300); } }
源代码解释
首先,我们需要包括伺服和液晶图书馆,定义LCD引脚,四个伺服电机,步进电机销,硬币探测器以及四个按钮和两个微开关。
在“设置”部分中,我们为上面提到的每个引脚设置了PIN模式。我们可以注意到,对于按钮和微开关引脚,我们激活了内部拉压电阻。这意味着这些引脚的逻辑电平将一直很高,一旦我们按下它们,逻辑电平将掉到低电平。
在我们进入主回路之前,我们还将载波设置到它的起始位置,这是由两个微动开关定义的。因此,随着while循环,我们不断移动载体到其起始位置,一旦两个微动开关将被按下,电机将停止并移动到所需的起始位置。
//垂直起始位置Digitewrite(DirpInvertical,高);//设置步进器以特定方向移动(真){if(mictimereadvithv)== low){//如果按下微开关,请将platt一点点向上移动并退出循环移动时(70);打破;} //向上移动载体,直到Micro Switch被压彩网上(SpepInverce,High);delayMicroseconds (300);digitalWrite (stepPinVertical、低);delayMicroseconds (300);} //水平起始位置Digitewrite(DirpinhorizoNtal,低);虽然(真实){if(mictimereadh)== low){moveleft(350);打破; } digitalWrite(stepPinHorizontal, HIGH); delayMicroseconds(300); digitalWrite(stepPinHorizontal, LOW); delayMicroseconds(300); }
在主程序中,首先在LCD上打印消息“插入硬币”。然后我们陷入困境时。一旦插入硬币并通过附近的接近传感器,硬币检测器引脚的逻辑状态将下降到低电平,并且在这种情况下,我们将使用Break语句退出WISL循环。
//等待硬币被检测到while (true) {if (digitalRead(coinDetector) == LOW){//如果检测到硬币,退出while循环中断;}}
然后我们打印消息“选择您的项目”,我们在循环时被困在另一个循环中。
//等到按下(TRUE){if(DigitalRead(Button1)== Low){Buttruple = 1;打破;}如果(DigitalRead(Button2)== Low){Buttruction = 2;打破;}如果(DigitalRead(Button3)==低){Buttruction = 3;打破;}如果(DigitalRead(Button4)== Low){Buttruction = 4;打破;}}
这个while循环等待我们按下这四个按钮中的任何一个,一旦我们按下了,我们就退出这个循环并打印消息“deliver”。
现在取决于按下按钮,我们在交换机语句中执行一次案例。如果我们按下第一个按钮,则运营商将开始使用自定义“MoveUp()”功能来移动。
switch (buttonPressed){情况1://移动容器到位置1 moveUp(4900);//上移4900步(注:步进电机设置在四分之一分辨率)延时(200);moveLeft (1700);//移动1700步延迟(300);//旋转螺旋线圈,释放所选项目servo1.writeMicroseconds(2000);/ /旋转延迟(950);servo1.writeMicroseconds (1500);/ /停止拖延(500);//将容器移回起始位置moveRight(1700);延迟(200); moveDown(4900); break; }
如果我们查看此功能,我们可以看到它只是设置步进电机以特定方向移动,并使我们输入的步骤数量为参数。
void moveUp (int steps) {digitalWrite(dirPinVertical, LOW);for(int x = 0; x <步; x ++){digitalwrite(spepInververtical,高);delayMicroseconds (300);digitalWrite (stepPinVertical、低);delayMicroseconds (300);}}
我们可以在这里注意到,我设置了A4988步进驱动器工作在四分之一步进分辨率,并与一些品尝我得出的结论,我需要4900步,以承运人到上的位置。以类似的方式,我们将载波向左移动,直到它到达位置1。
在此之后,我们旋转连续旋转电机950毫秒,使螺旋线圈制作完整的循环。
//旋转螺旋线圈,释放所选项目servo1.writeMicroseconds(2000);/ /旋转延迟(950);servo1.writeMicroseconds (1500);/ /停止
请注意,这些值有时会变化,并取决于电机本身。使用moveRight()和moveDown()自定义函数,我们将载体带回起始位置。用同样的方法,我们可以排除这四项中的任何一项。
最后,我们只打印消息“Item delivered”。
所以这很简单,我希望你喜欢这个视频并学到了新的东西。随意询问以下意见部分中的任何问题,并检查我的Arduino项足彩网女欧洲杯目集合。
所以,我这样做是学校的项目。我无法打开您提供的SolidWorks文件,因为我正在使用2016年教育版本。
如果你能添加一个链接到我能够打开,我真的很欣赏。
谢谢!
尝试.step文件。
你好,我们是学生,我们正在做这个projekt。我们唯一的问题是,我们无法打开Messurees,我们迫切需要他们。我们可以做什么?你能在这里说出来!
我们将是永恒的感谢
嘿,您应该能够使用Fusion 360打开步骤文件并从那里获取尺寸。
你好,我可以借你的学校工作吗?我的意思是,自己根据您的计划创建这台机器并借用Arduino代码?如果是这样,我可以问那种情况的尺寸是什么吗?顺便说一句,这是一个很棒的项目!
嘿,请确保您可以使用代码以获取此类目的。别忘了给我信任。干杯
哦,我看,尺寸在可下载的CAD文件中,因为我不必要的询问
你好!
您使用了什么样的12V电源?
我使用了12V 2A DC适配器。
我喜欢这个网站!多亏了你,我和两个孩子一起造了一台自动贩卖机。愚蠢的问题……你使用的12V 2A DC适配器…那只是一个普通的插在墙上的适配器,然后你切断另一端,把电线直接连接到面包板上,用于12V,降压芯片提供5v ?还是某种适配器芯片?谢谢!
附注:我从你的链接购买了所有的供应品,试图支持你。
谢谢你,谢谢你的支持!是的,12V DC适配器只是正常适配器。您可以简单地切断电缆的末端,并如电路图中所示的适配器的正极和负端子,或者您可以使用母电垫,以便您不必剪切适配器电缆。
在该图中,它需要连接步进电机驱动器和步进电机之间的2个电容器。这些需要哪些电容?
您可以使用大约10-100UF的值。
这个项目我需要多少个红外避让传感器?
如果有人回复,我很欣赏。谢谢
我只使用一名IR Senor来检测在指导下时的硬币。
伟大的项目。我可以在这个项目上使用矩阵键盘而不是按钮吗?
谢谢!当然可以使用Matrix键盘。
我可以使用一个arduino uno太右了吗?
当然,您可以使用Arduino Uno。
伟大的项目德国。与我的8年级学生合作建立同一项目,并在我们去的时候学习。Arduino和编程新的。我们已经拥有了一些硬件组件,并将从建议的链接中获取其余部分。我的问题是:我们在哪里获得所有木材/金属部件的尺寸,您是否有一个示意图将它们放在一起。谢谢,
维度在。step文件中,只要在任何可以打开它的程序中打开它。https://fileinfo.com/extension/step
我在Autodesk Inventor中打开它,并找出尺寸是什么。但是我给你建议:如果你想用MDF做到这一点,那么选择较厚的办公桌,然后选择8毫米,因为螺钉的孔。例如,我开始用16毫米MDF执行此项目。只需重新计算尺寸。
谢谢你的建议!
你好,德扬,我又来问你两个问题。首先是步进电机,我买的是NEMA17,但是1.5A,你用的是2A,这个问题有多大,我可以用我实际的1.5A NEMA17步进电机吗,还是我需要买新的2A?
第二个是你如何将弹簧连接到伺服电机?我很感激你的答案。
你很有创新精神。令人惊奇的项目-我要和我儿子一起在寒假里建造它。
我完成后会给你发一张照片。
一个提示 - 您可以将3D模型转换为3MF - 带Windows 10的每个人都有3DBuiled MS现在预先安装...它是一个非常简单的3D软件,无需成为专家+后转换所有维度。
谢谢你!
谢谢,谢谢你的评论,我会考虑一下。玩得开心。
你能告诉我这项工作中使用的轴承,螺钉,螺栓和滑轮的尺寸和数量吗?3D建模有点难以弄清楚......
轴承是608z,螺钉是3mm,螺栓m8和滑轮是80齿的gt2,你可以使用这个:https://www.thingsiverse.com/thing:339928
我可以用硬币接受器代替红外传感器吗?如果可以的话,代码需要做任何更改。我没有使用步进电机,而是从我的模型中移除它们。解释为什么servon.Microsecond(2000)是在旋转伺服电机时使用的。谢谢,这是一个很棒的项目,看了这个我想学习Arduino
当然,您可以以大量的方式修改项目,但对于您需要调整代码的所有内容。这是连续旋转伺服电机,这就是使用该功能控制的。它们不像常规伺服电机,旋转180度。
必须是microSwitches两个?这还不够?只需稍微修改程序并使用一个微动开关进行操作?或者为什么必须在那里有2个microWitches,是有问题吗?我只需要知道,因为我只是在做这个部分。
如果你要建立一个精确的机制,你需要2个微开关。因为步进电机不知道它的位置在启动。它可以在任何地方,这就是为什么我们要把它移动到初始位置,从那里开始,我们不断计算步数。
好的,非常感谢你的答案。现在我只有两个:
1)我使用了NEMA17 12V 1.5A而不是2A。你认为这是一个大问题吗?
2)通过5V GND在降压模块的输出上通过5V GND电源是什么?你是通过Arduino的力量吗?有一些麻烦吗?
非常感谢。
您可以使用1.5A NEMA17,您不应该出现问题。降压模块使用,因为Arduino本身没有足够的电源来为伺服电量供电。因此,您可以将所有内容附加到降压模块5V,包括Arduino 5V(您通过该5V引脚为Arduino供电)。
德国,非常感谢这个教程。我和我的女儿正在作为项目建造这个自动售货机。我们对电子和机器人有点新。yabo7. com您能否澄清/解释液晶布线?这些电线完全连接到何处?
非常感谢。
液晶显示器的连线如图所示。如果你需要更多的细节,你应该查看我的其他详细教程如何连接和使用液晶与Arduino。
我有一个问题德国。当我转过来时,一些伺服只需点击,而不是正常工作,液晶显示器写废话或没有显示,或者显示我想要的(插入硬币,交付等),但闪耀真的很弱?我完全像你一样。你知道我需要做什么吗?请帮助,我的最后一年考试正在缓慢地接近......
你好。我正在构建类似于您的自动售货机,我购买了相同的连续旋转伺服。当他们转动似乎停止并进行嗡嗡作响的噪音。你能帮助解决这个问题吗?谢谢
嘿,试着为停止调整writeMicroseconds()值。
你好,I actually solved this damn problem! The problem was, because
中国人已经离开了电位器,而不是用两个相等的电阻来替代它,所以电位器被设置到一个特定的位置,因此伺服在一边点击,在另一边正常转动。所以你需要使用delayMicroseconds (x);例如,Dejan有2000毫秒,但我将其更改为大约1580毫秒,1500毫秒被停止。它不是最快的,但它工作得很好。您需要使用delayMicroseconds()命令中的时间;
能不能给这台机器编码,让它需要2或3个硬币来分发,而不是1个?您需要在代码中修改什么才能做到这一点?
当然,这是可能的。你必须修改我们读取红外传感器的部分代码,while循环,添加一些计数器,并为硬币的数量创建一些逻辑。
我已经修好了。Servos必须有一个单独的源,和LCD必须由arduino 5V GND供电,电线必须到达各处。
你好,
我在跟随你的指导,完成今年的一个学校项目。我在努力寻找16mm和20mm厚的铝管。我在哪里可以买到这个,还有哪里可以找到丙烯酸。
谢谢
凯伦
嘿,去你当地的五金店看看,管子不一定是铝的,也可以是其他材料的。
你好,我是来自菲律宾的学生。我可以知道如何在连续旋转中旋转伺服电机,就像你在这里所做的一样?或者我可以在不打开伺服电机的情况下购买它。
嘿,该电机是一种不同的类型,它是连续旋转或360度伺服。有一个链接到上面的零件列表。
你好,你是不是因为电流的原因在A4988上设置了微调器?还是顺其自然?
你好,
我目前正在建设这个项目,看到你使用LED条照亮机器。你用的是什么LED条,如果可能的话,请附上链接,以便我购买。
谢谢
你好,我不是Dejan,但是我用的是25厘米冷白光LED条,是在当地的电子商店购买的,所以我的条上没有一个确切的链接,但是我认为没有关系。
你好!我正在学校在学校开展这个项目,向学生和其他学校介绍学生,但我没有用你用来用测量制作木结构的程序,你可以通过电子邮件给我送到这些措施吗?
谢谢你!
此致
嘿,您可以使用Fusion 360打开步骤文件。
是有意义的伺服电机(DS04-NFC)的类型吗?因为我尝试使用Tower Pro MG995 360度,但它看起来像电机一样不像所需的那样实际上在视频中。
如果你的伺服是360度比它应该工作相同的方式。试着稍微调整一下值来适应你的需要。
用20齿的GT2同步带代替80齿可以吗?这是我目前找到的唯一一个。
谢谢!
好,80齿滑轮的点是降低转速。使用更小的滑轮将增加转速,所以您将不得不在代码中减少它。
我现在正在做一个项目,我想知道你从哪里得到自动售货机的投币指南?
我用完了钣金,你只需要弯曲它几次。
嘿,男人!伟大的项目!
我可以将电机或lcd连接到任何引脚上吗?或者它们必须是一些特定的引脚?
嘿,谢谢!您可以将任何引脚连接,但您必须适当地在代码中定义它们。
感谢您的所有项目!足彩网女欧洲杯我没有SolidWorks但Fusion360,所以我可以通过这个程序打开SolidWorks文件吗?
使用Fusion360打开“STEP”文件。
你好,德詹,我已经完成了
https://youtu.be/fmgzepp-sgs.
嘿,不错的工作。我很高兴看到你能完成这个项目。干杯!
亲爱的院长,我对这个项目的伺服电机有疑问,这很棒
我正在使用这个s3003 360deg。
我的问题是代码的评论
servo1.writeMicroseconds (2000);//这是旋转的速度吗?最大值是多少?
延迟(1539);//这是轮转多久的时间?
servo1.writemicroseconds(1494);//停止为我的一个伺服......对于其他伺服相同的品牌是其他数字,如1500为什么?
延迟(500);
我不能让伺服每次都精确转动360度,在第2或第3转之后,它就转380度。比385度高一会儿就变成360度了。为什么会这样?是代码,是电…顺便说一下,伺服是连接到外部电源5v 1.5A棕色线Arduinoground +电源地,红色线到5v电源,橙色到针9
嘿,问题是这些伺服不是可靠和精确的。writemicroseconds()中使用的值生成特定的PWM信号。这些信号由伺服控制板接收,并根据伺服电机旋转。因此,这些值总是变化,因为就像我说一样,这些伺服电源并不可靠。延迟时间是旋转将持续多长时间的时间,这是真的,如果伺服单位良好并且精确,每次伺服系统应该转动相同的程度。所以我想你没有太多可以做到这一点。
为什么我的lcd是空白的,它只显示16* 2白色的盒子??
嘿,似乎你有液晶显示器的对比问题。尝试通过使用正确的分压器,正确的电阻值调节对比度引脚上的电压。
你好,我在努力做金属线圈?你是怎样弯曲这条金属丝使它保持形状的?
谢谢
嘿,正如视频中所示,我用了一个简单的喷漆罐,并在上面缠绕了一根电线。问题是,钢丝需要稍微软一点,这样它才能弯曲并保持在那个位置。如果你有一根有很强弹性的电线你可能会有问题因为电线会趋向于它原来的形状。
你好,dejan .你是给所有组件5V,如伺服,红外传感器和LCD从DC -DC LM2596或需要一个5V适配器,或我可以给5V从Arduino mega ?
嘿,您应该使用来自DC-DC转换器的5V用于所有5V连接,如伺服,LCD,IR传感器,驱动器5V引脚,以及您可以通过连接到其5V随时随地为Arduino供电5V引脚,而是通过电源插孔为Arduino 12V。
一切正常,但当我给动力时,2个nema电机工作,但它们不像代码那样旋转,它们只向一个方向旋转,载体不能运行,我使用nema 17 1.05A ?你认为他们有什么问题吗?我必须买新的nema 17 1.5A或2A吗