Arduino展示转台

ChangeCode
原创
发布时间: 2025-06-14 15:01:20 | 阅读数 0收藏数 0评论数 0
封面
水平方向360°展示,可放置自己制作的小成品在上面,不用再手拿着拍照了。😄😄😄

准备工作:

材料:


名称

数量

型号/说明/备注

arduino nano

1

Tmega328(NANO 3.0)

步进电机

1

28byj-48

步进电机驱动板

1

ULN2003

轻触开关

1

8mm以上

数据线

1

mini-B USB

轴承

4

8x22x7mm

螺丝

2

M3X任意长度

开关

1

(可不用)

工具:


名称

数量

型号/说明/备注

3D打印机

1

长宽大于220mm,否则无法打印

3D耗材

1

自行挑选颜色

电烙铁

1

/

焊锡

1

/

螺丝刀

1

根据自己的螺丝选择

热胶枪

1

固定

刀/剪刀

1

/

热胶棒

/

看自己使用程度,一般1根就够

1

3D零部件展示

Base为底座,大小不可以更改,需要长宽大于220mm的打印机才可以打印,否则超过打印区域无法打印了;

Top_plate是展示台,也就是上盖,根Base一样,大小不可以更改......;

Motor_Gear齿轮,需要固定到步进电机上的;

Pin就是轴承的支撑。

2

STL文件

由图所示,各个部分和组合样式就是这样,现在需要进行的是先切片打印,下载好文件,注意打印区域和打印数量,


文件名

打印数量

Base.STL

1

Top_plate.STL

1

Motor_Gear.STL

1

Pin.STL

3

STL
Base.stl
479.77KB
STL
Top_plate_.stl
699.50KB
STL
Motor_Gear.stl
240.32KB
STL
Pin_.stl
90.32KB
3

外壳打印


4

零件打印


5

展台装饰

我从网上下载了一张星空的背景图,放置展台用的时间长了会遭受污染,粘贴了张纸上去;但是,我的打印机又有问题,本来图片是蓝色的主题,但是我的打印机打印出来的效果泛红,无语~~~

6

粘贴注意事项

如果你跟我一样,要粘一张A4纸上去,请注意了

粘的时候,要用PVP材质的固体胶,不要用PVA材质的固体胶,就像我图中展示的黄色固体胶一样,不要用别的材质的,也不要用胶水等别的东西去粘。

PVA材质的固体胶也不能用在3D打印机上,这玩意用起来干了之后就是一层膜,完全没有粘性,粘不住任何东西,如果3D打印机用到这东西,会在台面形成一层白色的膜,而且还比涂固体胶之前更容易翘边。

7

中心轴承装配

取一个8x22x7mm的轴承,按压进上盖的圆柱孔中。

8

边缘轴承装配

边缘的齿轮需要用名为Pin.STL的文件,打印3份再装配。

如果你打印了3个圆柱体,或紧了装不进去,你就在切片软件中,选择缩放,取消等比缩放选项,把圆柱体的直径一点一点的调小,慢慢测试;或松了,那就慢慢的把直径放大,慢慢测试;再或者,打印了松的,不想再重新调整了,那就用热熔胶给它固定了就行了。

9

壳体装配演示

简单了解一下装配的位置即可。

10

步进电机位置


11

电机齿轮装配

用手或锤子等其他工具,把齿轮插到电机上就行了,勿用大力,小心损坏电机。

12

固定电机

取两颗M3大小的螺丝,长度自定,根据M3的孔来就行,把刚才装好的电机放进第10步演示的位置,拧好螺丝固定好就行了,别使大力,非得让它死死的卡住,小心两侧的柱体受不了压力断裂,你还得重新打印或者焊接。

13

主板引脚设计

arduino nano焊接好引脚后,它的整理高度来到了将近14mm,还没算走线接线,索性将它的引脚尽数剪短,并打磨光滑,用热熔胶把他粘到底座上面

14

线路部分设计

电机部分,准备飞线,直接接到步进电机驱动板的底部,接好线后,在使用热熔胶固定就好了,对于步进电机和arduino nano的连接,也使用线材直接进行焊接,保证高度不出上限,再把数据线从该有的孔位穿过来,并直接插到arduino nano的USB口上,免去了后续的其他步骤!

15

按键部分设计

另,使用按键,增加了按键调整转速的选择,

//单四拍驱动 顺时针转动
void SFT_Phase(int ms) {
Phase_D();
delay(ms);
Phase_C();
delay(ms);
Phase_B();
delay(ms);
Phase_A();
delay(ms);
}


void button() {
switch (butttonNums) {
case 1:
SFT_Phase(10);
Serial.println("Speed:10");
break;
case 2:
SFT_Phase(6);
Serial.println("Speed:6");
break;
case 3:
SFT_Phase(2);
Serial.println("Speed:2");
break;
}
}


16

焊接

焊接部分也是非常简单,步进电机驱动板的IN1-IN4分别接到arduino nano的D3-D6

按键接GND和D2,也不用接电阻,使用arduino中的上拉电阻“INPUT_PULLUP”即可;

电源部分,直接采用数据线供电!

17

代码

#define A1 3 //引脚命名
#define B1 4
#define C1 5
#define D1 6

int BUTTON = 2;
int val = 0;//变量val 存储按钮的状态
int old_val = 0;//暂存val变量的上一个时间状态
int butttonNums = 0;

void setup(){
pinMode(A1,OUTPUT); //设置引脚为输出引脚
pinMode(B1,OUTPUT);
pinMode(C1,OUTPUT);
pinMode(D1,OUTPUT);

pinMode(BUTTON, INPUT_PULLUP);
Serial.begin(9600);//用于串口输出
}


void loop(){
val = digitalRead(BUTTON);//读取输入数值并且存储
if((val==HIGH)&&(old_val==LOW))//检查按钮的变化情况
{
butttonNums+=1;
delay(20);//只添加了这一行
}

old_val=val;//存旧值

if(butttonNums > 3){
butttonNums = 1;
}

button();
}

void button() {
switch (butttonNums) {
case 1:
SFT_Phase(10);
Serial.println("Speed:10");
break;
case 2:
SFT_Phase(6);
Serial.println("Speed:6");
break;
case 3:
SFT_Phase(2);
Serial.println("Speed:2");
break;
}
}


void Phase_A()
{
digitalWrite(A1,HIGH); //A1引脚高电平
digitalWrite(B1,LOW);
digitalWrite(C1,LOW);
digitalWrite(D1,LOW);
}

void Phase_AB()
{
digitalWrite(A1,HIGH); //A1引脚高电平
digitalWrite(B1,HIGH); //B1引脚高电平
digitalWrite(C1,LOW);
digitalWrite(D1,LOW);
}

void Phase_B()
{
digitalWrite(A1,LOW);
digitalWrite(B1,HIGH); //B1引脚高电平
digitalWrite(C1,LOW);
digitalWrite(D1,LOW);
}

void Phase_BC()
{
digitalWrite(A1,LOW);
digitalWrite(B1,HIGH); //B1引脚高电平
digitalWrite(C1,HIGH); //C1引脚高电平
digitalWrite(D1,LOW);
}

void Phase_C()
{
digitalWrite(A1,LOW);
digitalWrite(B1,LOW);
digitalWrite(C1,HIGH); //C1引脚高电平
digitalWrite(D1,LOW);
}

void Phase_CD()
{
digitalWrite(A1,LOW);
digitalWrite(B1,LOW);
digitalWrite(C1,HIGH); //C1引脚高电平
digitalWrite(D1,HIGH); //D1引脚高电平
}

void Phase_D()
{
digitalWrite(A1,LOW);
digitalWrite(B1,LOW);
digitalWrite(C1,LOW);
digitalWrite(D1,HIGH); //D1引脚高电平
}

void Phase_DA()
{
digitalWrite(A1,HIGH); //A1引脚高电平
digitalWrite(B1,LOW);
digitalWrite(C1,LOW);
digitalWrite(D1,HIGH); //D1引脚高电平
}

//单四拍驱动 顺时针转动
void SFT_Phase(int ms) {
Phase_D();
delay(ms);
Phase_C();
delay(ms);
Phase_B();
delay(ms);
Phase_A();
delay(ms);
}
INO
DisplayCircularPlatform.ino
2.27KB
18

成品


19

展示台使用


阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载