上拉式磁悬浮在实验室大哥们的帮助下终于成功了
材料:霍尔传感器35031个;
MEGA16最小系统一块;
电磁铁 1个;
强磁铁3个;
298驱动 1块;
12V电源1个;
10欧姆10瓦水泥电阻 2个;
说明:
mega16的AD是10位的,但我只用了8位。
电磁铁内阻8欧姆左右。。。。。。我绕了很多圈但内阻还是偏小,应该是线太粗了的原因,建议大家用稍微细一点的漆包线。
298驱动是我们实验室一个师兄画的板子,加了文雅芯片,可以输出5V给单片机供电。
水泥电阻的作用是限流,两个并联的。
程序:
#ifndef ADC_H
#define ADC_H
#define FILMASK 3
#define FILNUM 4
#define WARP(X) X=((X+1)&FILMASK)
uchar FilterBuf;
uchar Dx=0;
uchar AdValue;
uchar Filter(uchar * value);
void delayms(uint i)
{
uint j;
while(i--)
{
for(j=0;j<30;j++);//至少20才能让ADC比较正常
}
}
void ADC_init()
{
ADMUX=0X60;
ADCSRA=0X87;
}
uint get_adc(uchar channel)
{
uint a=0,b=0;
uchar c;
c=0x60+channel;
ADMUX=c;
delayms(1);
while(!(c==ADMUX));
ADCSRA|=0X40;
while(!(ADCSRA&0X10));
a=ADCL;
b=ADCH;
ADCH=0x00;
ADCL=0x00;
ADCSRA&=0Xef;
return b;
}
/*---------------------------------------------------------------------------
---------------------------------------------------------------------------*/
void getdata()
{
AdValue=get_adc(1);
FilterBuf=AdValue;
AdValue=Filter(FilterBuf);
}
uchar Filter(uchar * value)
{
uchar i;
uint tt=0;
for(i=0;i<FILNUM;i++)
{
tt +=value;
}
return tt/FILNUM;
}
#endif
#include<iom16v.h>
#include<macros.h>
#include"12864.h"
#include"INIT.h"
#include"ADC.h"
#define uint unsigned int
#define uchar unsigned char
int ads,m;
int kp=3;ki=0,kd=37;
int temp=0;
int pid(int input)
{
//输入范围:
//输出范围:
static int n1,n2,n3,res;
//int res;
n1=input-159;
//n1=n1*n1;
res=22+kp*n1*n1/153+(n1-n2)*kd;
n3=n2;
n2=n1;
return res;
}
void main(void)
{
ADC_init();
IO_init();
LCD_init();
PORTB&=~0x01;
PORTB|=0x02;
Delay_ms(200);
display_map(QQ);
Delay_ms(20000);
LCD_Clr_All();
while(1)
{
getdata();
//LCD_Num_Str_Disp(6,2,AdValue);
//if(temp>0) LCD_Num_Str_Disp(6,1,temp);
//else LCD_Num_Str_Disp(6,1,-temp);
DDRD|=0X30;
TCCR1A=0X63;
TCCR1B=0X1B;
/*if(AD>140)
{
m=AD-140;
}
else
{
m=0;
}*/
OCR1A=99;
temp=pid(AdValue);
if(temp>99)temp=99;
if(temp<0)temp=0;
OCR1B=temp;
//QF;
}
}
http://cache.amobbs.com/bbs_upload782111/files_52/ourdev_721688VG1R9N.jpg
(原文件名:psb.jpg)
http://cache.amobbs.com/bbs_upload782111/files_52/ourdev_721689V8JWA3.jpg
(原文件名:psb (1).jpg)
http://cache.amobbs.com/bbs_upload782111/files_52/ourdev_721690EB0SUF.jpg
(原文件名:psb (2).jpg)
http://cache.amobbs.com/bbs_upload782111/files_52/ourdev_721691DVHZAD.jpg
(原文件名:psb (3).jpg)
http://cache.amobbs.com/bbs_upload782111/files_52/ourdev_721692J1QFZ1.jpg
(原文件名:psb (4).jpg)
感谢DO实验室的各位大哥们的帮助。
悬浮得不是很稳,还望坛里的大虾们批评指正。
最近在网上看到的一个外国的磁悬浮套件,模拟上拉的,特别惊奇他只用了几个原件
http://cache.amobbs.com/bbs_upload782111/files_52/ourdev_721693V002FG.jpg
网上看到的外国的一个磁悬浮套件 (原文件名:Assembled Board.jpg)
http://cache.amobbs.com/bbs_upload782111/files_52/ourdev_721694WL08VX.jpg
外国的一个磁悬浮套件 (原文件名:Floating_Doll.jpg) 这个不错 楼主nb 悬浮主要是靠上面的那个线圈通电的磁性,下面的那个是传感器对吗?不懂磁悬浮原理。。 应该是这样吧,先把电磁铁的磁力调到最大,然后根据传感器的反馈调节磁力,让铁块从被吸住到悬浮。。。也就是悬挂起来^
老外的那个电位器,或许就是用来手动调节磁力的吧? 如果能做一个小列车模型就更拉风了 学习1下 好神奇啊 真的不错,请讲讲原理,谢谢! 这个 今天白天还想到 磁悬浮会是个学习自控原理的一个很好的项目。 磁悬浮这个技术很有潜力。 原理是:线性霍尔传感器3503采集悬浮物与电磁铁的距离,通过MEGA16的AD转换为数字量,然后通过PWM控制电磁铁 老外的那个应该是用比较器做的,放置比较困难的~ LSZD 发表于 2012-2-24 10:03 static/image/common/back.gif
应该是这样吧,先把电磁铁的磁力调到最大,然后根据传感器的反馈调节磁力,让铁块从被吸住到悬浮。。。也就 ...
头像好像我原来用的那个。。。 好酷噢! 用的什么控制器?PID吗? ju748 发表于 2012-3-25 16:59 static/image/common/back.gif
头像好像我原来用的那个。。。
是么?原来的是一个png格式的文件,传上来就只有咕噜头了,现在我重传一次jpg的呵呵 430504 发表于 2012-3-25 17:01 static/image/common/back.gif
好酷噢! 用的什么控制器?PID吗?
对PID控制! 哈哈我想做一个磁悬浮地球仪~ 这个我也想尝试一下...有意思啊 有没有用模电搭的资料,想学习下 doujiang 发表于 2012-3-25 16:44 static/image/common/back.gif
原理是:线性霍尔传感器3503采集悬浮物与电磁铁的距离,通过MEGA16的AD转换为数字量,然后通过PWM控制电磁 ...
霍尔传感器在图中的哪个地方? 当年也做过,好像用TL494的还有一个运放 number007cool 发表于 2012-4-19 13:14 static/image/common/back.gif
霍尔传感器在图中的哪个地方?
途中悬浮物下方 厉害~ 顶一个! 不错,好东西 不错,好东西 反馈量是什么啊? 正在弄,请教一下我的原理是否正确? “电磁铁放在线圈里面,当强磁铁对电磁铁吸引时通过3503启动模拟电路使线圈产生正比的电流,当靠的越近电流约大”请问弄过的朋友对吗?谢谢
读了楼主的程序有个意外收获,我终于知道单片机中怎么实现FIFO了!!
#define FILMASK 3
#define FILNUM 4
#define WARP(X) X=((X+1)&FILMASK) /*实现0~3的反复计数*/
……
FilterBuf=AdValue;/*通过WARP(Dx) 每次被覆盖的都是数组中最老的一个元素*/
啊,我是个新手,也想做磁悬浮类似的东西,但是身边没啥人做这个,能不能留个QQ,好求教求教? xiaob5809469 发表于 2012-7-29 11:59 static/image/common/back.gif
啊,我是个新手,也想做磁悬浮类似的东西,但是身边没啥人做这个,能不能留个QQ,好求教求教? ...
我的QQ673671751 用的元件多吗?成本不高的话我也想弄一个 学习。。 貌似老外用的是运放昂。模拟的还是简单昂 学习了。。。 外国的那个好像是用反射红外做的检测 jao317 发表于 2012-9-14 13:00 static/image/common/back.gif
外国的那个好像是用反射红外做的检测
反射红外?用的红外测距? doujiang 发表于 2012-9-14 16:39 static/image/common/back.gif
反射红外?用的红外测距?
恩,反射式红外距离不同,电压不同的。。。。。。。我试过。。。 doujiang 发表于 2012-7-29 14:08 static/image/common/back.gif
我的QQ673671751
在这里发现你了·~~ dingwei `~ qj890226 发表于 2012-9-15 01:09 static/image/common/back.gif
在这里发现你了·~~ dingwei `~
杰哥??????{:lol:} jao317 发表于 2012-9-14 23:48 static/image/common/back.gif
恩,反射式红外距离不同,电压不同的。。。。。。。我试过。。。
但是看他那个图片,好像没得红外传感器之类的呢 doujiang 发表于 2012-9-15 10:30 static/image/common/back.gif
杰哥??????
嗯 是的哈。 看着这个图片,背景很熟悉哈。仔细一看果然是我们实验室 doujiang 发表于 2012-9-15 10:32 static/image/common/back.gif
但是看他那个图片,好像没得红外传感器之类的呢
是以前看的一个老外做的,是用的红外 请教下你那个悬浮物有没有磁性的 还是只有电磁铁有磁的(悬浮物只是块铁) 如果悬浮物有磁性 还有电磁铁产生的磁性不是对霍尔传感器也产生影响了吗 你是怎么消除影响的 楼主可否提供一些详细的资料?
只有一个电磁铁产生的磁力如何使得被控物保持垂直? 不错哈,赞一个 如何判断铁块已悬浮在空中? 上拉式磁悬浮 PID控制MARK! 兄弟,可以给一张你焊接的线路的具体图片吗?我不太会焊。。。。。。新人,求帮助 哇。这个很牛。如何做到这么大的吸引力呢?能大概说说原理吗? 工艺品展示用的上了! 学习了。 能做个悬浮椅坐着岂不是没事 mark 有点意思 路过,开眼界。 实现起来容易,是个不错的方案,不过PID的参数调起来应该不容易。 甚牛 是拉非浮吧,电磁铁在上面啊 请问这个应用在什么地方呀 这个只是学校用来做磁力平衡原理性验证的试验装置,派不上什么实际用处。
其实,根本不用搞那么多数字化的采样AD、CPU和软件等。
模拟电路方案就能简单解决这个问题,只要霍尔传感器(测距)、运放(放大+校正网络)和PWM功放即可实现。 {:lol:} 学习了,我也做一个 请问强磁铁有什么用?在图里面貌似没看到强磁铁啊??
还有霍尔传感器采集的是磁场强度吧,那跟中间的铁块距电磁铁的距离有什么关系?? 老外的比较器的实际控制效果并不好 很厉害,学习 想问下,
//n1=n1*n1;
res=22+kp*n1*n1/153+(n1-n2)*kd;
kp后面的n1*n1/153,为什么要这样写?
页:
[1]