昨天的介绍不知道大家消化的怎么样了,是不是已经跃跃欲试了呢,很抱歉不能给大家讲解的非常详细,如果有看不懂的回帖询问吧,我会补充,今天更新控制器和电路部分的制作
首先先看一堆脑袋疼的东西,IO接口。
这个是我设计的接口,也是了解MCU的第一步,接口设计。不用理解只需记下即可(后面要用到)
//========== 定义I/O功能==========
sbit CP = P1^0; //步进脉冲
sbit DR = P1^1; //方向控制
sbit EN = P1^2; //电机释放
sbit DJ = P2^1; //对焦
sbit KM = P2^0; //快门释放
sbit LED = P2^2; //灯
sbit BELL = P2^3; //无源蜂鸣器 - 脉冲有效
sbit BOX1 = P2^4; //细分开关1
sbit BOX2 = P2^5; //细分开关2
sbit BOX3 = P2^6; //细分开关3
sbit Ver = P2^7; //垂直输出
sbit SET = P1^3; //设置键
sbit INC = P1^5; //加1键
sbit DEC = P1^4; //减1键
sbit MLOCK = P1^6; //电机锁键
sbit Start_Pause = P1^7; //启动暂停键
#define LCD12864_DA_PORT P0 //数据口
sbit LCD12864_RS_PORT = P3^5; //寄存器选择输入LCD12864引脚定义
sbit LCD12864_RW_PORT = P3^6; //液晶读/写控制
sbit LCD12864_E_PORT = P3^4; //液晶使能控制
sbit LCD_PSB = P3^7; //串/并方式控制
sbit T_CLK = P3^2; /*实时时钟时钟线引脚 */
sbit T_IO = P2^4; /*实时时钟数据线引脚 */
sbit T_RST = P3^3; /*实时时钟复位线引脚 */
//========== 定义I/O功能==========
先说电路,什么焊接什么的了对于某些DIY新手有点难,好吧,今天我给出模块化的材料单,依旧是淘宝自己找图吧,以免有做广告之嫌疑
首先是MCU系统版的选择,我之间用过5种板子(记得让商家焊接好接线柱,方向最好都朝上)但是给同学们的建议是这块,使用这个原因很简单,自带USB烧录组件,又有电压转换,节省了2个模块(如果你是高手,请随意选择)
如果方便的话,建议再多个STC15F2K60S2因为后面的3轴讲解中,需要更高性能的这个来代替
DC-DC 转5V模块,这个是我认为比较安全的,个人推荐
永诺603 无线快门触发器一对。为何不用电路模块,因为你做不了这么漂亮的外壳,好吧依旧是小改造美观又节约成本的解决方案,只需改造即可。而且这个东西还可以用闪光灯,赞一个。(这个模块的改造需要一定层次的电子焊接技术基础,如果身边没有这样的朋友,后面会介绍如何改造成有线的来控制)
LCD12864-st7920,这东西对老年人来说很清晰字儿大,中文带字库,节省MCU资源,哈哈。
驱动器,如果你想节能那么使用THB7128(这个图是随便找的,我用的是第二个,让商家焊接好并更换了接线柱)
这里推荐一个TC8640因为这个可以尽量减小控制盒的大小,
当然,这个看说明貌似只能用42电机,不知道57电机是否经得住使用,但是这种方案是3轴类的最佳解决方案,可以大幅度缩小控制器的体积,我设计的3轴滑轨用的是3 个42电机
蜂鸣器,这个很重要,相当于对操作的回馈声音信号,建议有这个,如果你不喜欢也可以不用
最后一个元器件非常关键了(光耦板)我比较喜欢的是低电位触发电路图如下
使用光耦的目的主要是隔离电路,相当于一个开关,
按键开关 樱桃键盘轴 青轴,ABS 无刻字 键帽,自己刻字吧
还有工控盒金属机壳铝壳仪表外壳电子外壳铝型材壳体6083号:155*120*49
我用的是特制的见图纸
到目前为止,所有的元器件都已经准备好了,下面开始焊接
1.航空头的焊接
电源头 和 电机头,航空头上的1234分别于电机的 1红2绿3黄4蓝 来对应
2.按键的焊接
先把5个开关的 5V触点短接,并留出一条5V的输入线,其他的5跟线就是每一个按键的输入IO
查询上面的IO设定
sbit SET = P1^3; //设置键
sbit INC = P1^5; //加1键
sbit DEC = P1^4; //减1键
sbit MLOCK = P1^6; //电机锁键
sbit Start_Pause = P1^7; //启动暂停键
用杜邦线 从左往右 与单片机上的 P1^3;P1^4;P1^5;P1^6;P1^7;相连
(什么?焊接好麻烦?你不懂焊接??%¥#%¥@%好吧,下面的可以不用焊接,用杜邦线来完成连接。)
剩下的接口全部与IO设计的口相连,见本文一开始的IO口设计
//========== 定义I/O功能==========
sbit CP = P1^0; //步进脉冲
sbit DR = P1^1; //方向控制
sbit EN = P1^2; //电机释放
sbit LED = P2^2; //灯
sbit BELL = P2^3; //无源蜂鸣器 - 脉冲有效
#define LCD12864_DA_PORT P0 //数据口
sbit LCD12864_RS_PORT = P3^5; //寄存器选择输入LCD12864引脚定义
sbit LCD12864_RW_PORT = P3^6; //液晶读/写控制
sbit LCD12864_E_PORT = P3^4; //液晶使能控制
sbit LCD_PSB = P3^7; //串/并方式控制
sbit T_CLK = P3^2; /*实时时钟时钟线引脚 */
sbit T_IO = P2^4; /*实时时钟数据线引脚 */
sbit T_RST = P3^3; /*实时时钟复位线引脚 */
//========== 定义I/O功能==========
用杜邦线,吧所有的插头对应接起来
sbit DJ = P2^1; //对焦
sbit KM = P2^0; //快门释放
sbit BOX1 = P2^4; //细分开关1
sbit BOX2 = P2^5; //细分开关2
sbit BOX3 = P2^6; //细分开关3
sbit Ver = P2^7; //垂直输出
这些要用光耦板隔离,避免烧坏部分元器件。好了这样一块电路板就链接好了
如图