履带电机旋转编码器的学习报告(节日快乐)2016-09-10
本帖最后由 wing 于 2016-9-10 22:05 编辑近半年,某宝发现一款成品的履带电机,带编码器,成色一般,不过价格非常低廉。
如果想练手做履带小车的话是个不错的选择,看完下图之后请千万不要误会,我不是卖家。
本帖不是做广告的,本帖是讨论如何使用这种电机编码器的,内容包括:外围电路设计,如何和主控板的链接,测试程序代码,如果成功的话可能还有小车成品
当然目前还在进行中,下面的占位会逐步填满内容,希望大家喜欢
2016-09-07-----------↑↑>>首发
2016-09-08-----------00>>比较器电路设计
2016-09-09-----------01>>写了个最简单的代码,还做了手拨测试
2016-09-09中午-----02>>电池买回来了,现在可以让电机自己转起来测试了
2016-10-10-----------03>>用中断的方法进行测试,并列出一些实际测试得出的数据,最重要的是101闪亮登场
到此本次学习告一段落了,欢迎大家参观指正
要下开展一步工作目前还缺一个关键部件,我仍然还在继续热切期待中...
那么未来如果有新的进展将会另外发帖讨论 本帖最后由 wing 于 2016-9-8 10:36 编辑
占位000000
先介绍下这款电机的接线口
XH2.54-5P插口,分别是白棕蓝黑红。
黑和红是电机的正负极,卖家说是12v的电机,实际测试9v也能转得很好。
白棕蓝三线就是编码器,这款编码器主要元件只有一个发光二极管和一个感光器。
白线接地,棕线接感光器,蓝线接发光二极管。肉眼看不到光,我想可能是红外...
由于没有比较器,所以用LM393做个外围电路,原理图如下
自动布线效果很失败
简直惨不忍睹,好吧,就当是我不会用
好在元件不多,用洞洞板还是焊得出来的
你急着测试吗?
NONONO
让我先研究下Fritzing的自动布线功能在说吧... 本帖最后由 wing 于 2016-9-9 00:20 编辑
占位000001
感谢各位的支持,测试当然会继续的。
上次我已经做好外围电路了,其实这个电路至少需要连接6条线才能正常工作,
其中三条连接履带电机的白棕蓝,另外还要连接5v的电源,地线,和主控的一个数字I/O。
当然由于做了插座,所以可以很方便地把电机插上去 ^v^
我这次测试用的主控板是wemos 标准版D1,其实就是Arduino化的ESP8266。
很般配不是么?廉价电机配廉价主控
首次测试我通过手拨编码器进行,这样就算不开动电机也能进行,说实话眼下我没有电机驱动板,就算连电池也没有,也只能手拨了。
代码如下,其实你把它抄到UNO上编译也能用
//旋转编码器的实验
void setup() {
Serial.begin(9600); //setup serial
delay(10);
pinMode(12, INPUT);
pinMode(2, OUTPUT);
}
void loop()
{
unsigned intr;
unsigned intr_old;
boolean s1;
boolean s2;
digitalWrite(2,LOW);
delay(3000);
Serial.println(1);
Serial.println(2);
Serial.println(3);
r=1;
r_old=0;
s1=digitalRead(12);
Serial.println(s1);
delay(1000);
digitalWrite(2,HIGH);
while (true)
{
s2=digitalRead(12);
delay(1);
if (s1!=s2)
{
s1=s2;
r=r+1;
if (r>60000)
{
r=0;
}
}
if (r!=r_old)
{
r_old=r;
Serial.println(r);
delay(10);
}
}
}
由于是手动拨编码器,速度有限,所以每次都会在串口输出,另外代码还设置了一个输出的gpio2,这个针脚会接一个LED,当长亮的时候就可以转动码盘了。
然后来看看效果视频,虽然拍得不是太清晰,但是至少能看都串口监视器数字在动
http://player.youku.com/player.php/sid/XMTcxNjk3ODc1Mg==/v.swf
不明显对吗?
当然了电机又不是自己转的,手拨还能怎么样呢,当时卖家还宣称这款电机有7千转呢 本帖最后由 wing 于 2016-9-9 12:05 编辑
占位000002
好吧,好吧,我知道大家都不满意手拨测试。
现在电池买回来了,让电机自己转吧。
因为电机的转速比我手拨快很多,那么改下代码,每一千次才在串口显示一次
//旋转编码器的实验
void setup() {
Serial.begin(9600); //setup serial
delay(10);
pinMode(12, INPUT);
pinMode(2, OUTPUT);
}
void loop()
{
unsigned intr;
unsigned intr_old;
boolean s1;
boolean s2;
digitalWrite(2,LOW);
delay(3000);
Serial.println(1);
Serial.println(2);
Serial.println(3);
r=1;
r_old=0;
s1=digitalRead(12);
Serial.println(s1);
delay(1000);
digitalWrite(2,HIGH);
while (true)
{
s2=digitalRead(12);
delay(1);
if (s1!=s2)
{
s1=s2;
r=r+1;
if (r>60000)
{
r=0;
}
}
if ((r!=r_old)&&(r%1000==0))
{
r_old=r;
Serial.println(r);
delay(10);
}
}
}
这次视频看起来会精彩一些
http://player.youku.com/player.php/sid/XMTcxODI4MjkyMA==/v.swf
单路测试基本上就是这样,
下次我会换一个主控,然后尝试用中断的方法写个新程序继续测试
本帖最后由 wing 于 2016-9-10 22:09 编辑
占位000003
有请这次的主角Arduino101闪亮登场
没错,就是intel inside 相信不是每个人都有 :-P
本程序是用中断实现编码器计算的,代码如下
volatile unsigned intr;
volatile unsigned long t;
void setup()
{
Serial.begin(9600); //setup serial
pinMode(12, INPUT_PULLUP);
pinMode(13, OUTPUT);
r=0;
t=0;
attachInterrupt(12, blink, CHANGE);
}
void loop()
{
unsigned intr_old;
r_old=0;
digitalWrite(13,LOW);
delay(1000);
Serial.println(1);
Serial.println(2);
Serial.println(3);
delay(1000);
digitalWrite(13,HIGH);
t = micros();
Serial.println(t);
while(true)
{
if (r!=r_old)
{
r_old=r;
Serial.println(r);
}
delay(1000);
}
}
void blink() {
unsigned long t0;
t0 = micros();
if (t0-t>100)
{
r=r+1;
if (r>60000)
{
r=0;
}
t=t0;
}
}
接线上之前的大同小异
这里顺便讨论一下实际测试所得的数据,卖家宣称这款电机在7千转以上,这个是按分钟算的。
实际测试中使用的是8节非充电的AA电池,电压表测出13v,然后履带是侧放,没有任何负载,这时编码器计算器每秒5千左右。
然后码盘是20格的,也就是说转一圈,计数器增加40(好吧,我承认我的数学是生理卫生老师教的,正确的数字可能是39,40,或者41,有清晰的朋友请告诉我到底应该是哪个)。
(5000/40)*60=7500
很好,卖家还是很诚实的。当然这转数电机轴承的转数,也就是未经减速的,另外卖家也说过减速比是90,不过这个就不知道要怎么测量了。
最后奉上视频
http://player.youku.com/player.php/sid/XMTcyMDUzMDExMg==/v.swf
好了,本学习笔记就到这里了。
奇形怪状的板子也show了不少,算是装13吧,不过最后还是没见小车的影,究其原因...我是不会告诉你这和楼下那位有关的。
那么感谢各位的观看,如果有其他进展我将会另外发帖,当然更多回复的话我会更有动力 lol;lol;lol;lol;lol;lol;lol; 我还说这个履带卖光了。。。。居然还有这么多库存 在哪买呀? 先买10对回来再说撒。 也在想入手这款电机,期待楼主进一步测试。
本帖最后由 wing 于 2016-9-9 00:12 编辑
想看通电测试么?我需要更多回复才有动力哦 快更,lz我用lm358可以吗,或lm324 linoulong 发表于 2016-9-9 09:25
快更,lz我用lm358可以吗,或lm324
LM393是比较器,您上面说那两个是放大器,功能不一样的 我想问一下,这履带可不可以一节一节的拆开? 战戟先锋aa 发表于 2016-9-10 10:30
我想问一下,这履带可不可以一节一节的拆开?
本来履带就是一节节装上去的,当然可以拆啦 战戟先锋aa 发表于 2016-9-10 10:30
我想问一下,这履带可不可以一节一节的拆开?
淘宝上商家展示图片有教你如何拆开。但是谁会去拆呢?都是一个整体使用的东东。
页:
[1]
2