搜索
bottom↓
回复: 64

上拉式磁悬浮在实验室大哥们的帮助下终于成功了

  [复制链接]
(273149836)

出0入0汤圆

发表于 2012-2-24 08:49:42 | 显示全部楼层 |阅读模式
材料:
霍尔传感器3503  1个;
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[FILNUM];
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[WARP(Dx)]=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[1]>140)
        {
                 m=AD[1]-140;
        }
        else
        {
                 m=0;
        }*/
        OCR1A=99;
       
        temp=pid(AdValue);
        if(temp>99)temp=99;
        if(temp<0)temp=0;
       
        OCR1B=temp;
       
        //QF;
  }
}







(原文件名:psb.jpg)


(原文件名:psb (1).jpg)


(原文件名:psb (2).jpg)


(原文件名:psb (3).jpg)


(原文件名:psb (4).jpg)

感谢DO实验室的各位大哥们的帮助。
悬浮得不是很稳,还望坛里的大虾们批评指正。


最近在网上看到的一个外国的磁悬浮套件,模拟上拉的,特别惊奇他只用了几个原件

网上看到的外国的一个磁悬浮套件 (原文件名:Assembled Board.jpg)


外国的一个磁悬浮套件 (原文件名:Floating_Doll.jpg)
(273149365)

出0入0汤圆

发表于 2012-2-24 08:57:33 | 显示全部楼层
这个不错 楼主nb
(273148906)

出0入0汤圆

发表于 2012-2-24 09:05:12 | 显示全部楼层
悬浮主要是靠上面的那个线圈通电的磁性,下面的那个是传感器对吗?不懂磁悬浮原理。。
(273145424)

出0入0汤圆

发表于 2012-2-24 10:03:14 | 显示全部楼层
应该是这样吧,先把电磁铁的磁力调到最大,然后根据传感器的反馈调节磁力,让铁块从被吸住到悬浮。。。也就是悬挂起来^

老外的那个电位器,或许就是用来手动调节磁力的吧?
(273144342)

出0入0汤圆

发表于 2012-2-24 10:21:16 | 显示全部楼层
如果能做一个小列车模型就更拉风了
(273143446)

出0入0汤圆

发表于 2012-2-24 10:36:12 | 显示全部楼层
学习1下
(270642272)

出0入0汤圆

发表于 2012-3-24 09:22:26 | 显示全部楼层
好神奇啊
(270637461)

出0入0汤圆

发表于 2012-3-24 10:42:37 | 显示全部楼层
真的不错,请讲讲原理,谢谢!
(270583713)

出0入0汤圆

发表于 2012-3-25 01:38:25 | 显示全部楼层
这个 今天白天还想到 磁悬浮会是个学习自控原理的一个很好的项目。
(270549308)

出0入0汤圆

发表于 2012-3-25 11:11:50 | 显示全部楼层
磁悬浮这个技术很有潜力。
(270529365)

出0入0汤圆

 楼主| 发表于 2012-3-25 16:44:13 | 显示全部楼层
原理是:线性霍尔传感器3503采集悬浮物与电磁铁的距离,通过MEGA16的AD转换为数字量,然后通过PWM控制电磁铁
(270528458)

出0入0汤圆

发表于 2012-3-25 16:59:20 | 显示全部楼层
老外的那个应该是用比较器做的,放置比较困难的~
(270528433)

出0入0汤圆

发表于 2012-3-25 16:59:45 | 显示全部楼层
LSZD 发表于 2012-2-24 10:03
应该是这样吧,先把电磁铁的磁力调到最大,然后根据传感器的反馈调节磁力,让铁块从被吸住到悬浮。。。也就 ...


头像好像我原来用的那个。。。
(270528319)

出0入0汤圆

发表于 2012-3-25 17:01:39 | 显示全部楼层
好酷噢! 用的什么控制器?PID吗?
(270515062)

出0入0汤圆

发表于 2012-3-25 20:42:36 | 显示全部楼层
ju748 发表于 2012-3-25 16:59
头像好像我原来用的那个。。。

     是么?原来的是一个png格式的文件  ,传上来就只有咕噜头了,现在我重传一次jpg的  呵呵   

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(270282712)

出0入0汤圆

 楼主| 发表于 2012-3-28 13:15:06 | 显示全部楼层
430504 发表于 2012-3-25 17:01
好酷噢! 用的什么控制器?PID吗?

对PID控制!
(270185792)

出0入0汤圆

发表于 2012-3-29 16:10:26 | 显示全部楼层
哈哈  我想做一个磁悬浮地球仪~
(270184778)

出0入0汤圆

发表于 2012-3-29 16:27:20 | 显示全部楼层
这个我也想尝试一下...有意思啊
(268984321)

出0入0汤圆

发表于 2012-4-12 13:54:57 | 显示全部楼层
有没有用模电搭的资料,想学习下
(268381944)

出0入0汤圆

发表于 2012-4-19 13:14:34 | 显示全部楼层
doujiang 发表于 2012-3-25 16:44
原理是:线性霍尔传感器3503采集悬浮物与电磁铁的距离,通过MEGA16的AD转换为数字量,然后通过PWM控制电磁 ...

霍尔传感器在图中的哪个地方?
(268381345)

出0入0汤圆

发表于 2012-4-19 13:24:33 | 显示全部楼层
当年也做过,好像用TL494的还有一个运放
(267422954)

出0入0汤圆

 楼主| 发表于 2012-4-30 15:37:44 | 显示全部楼层
number007cool 发表于 2012-4-19 13:14
霍尔传感器在图中的哪个地方?

途中悬浮物下方
(266051342)

出0入0汤圆

发表于 2012-5-16 12:37:56 | 显示全部楼层
厉害~    顶一个!
(266048341)

出0入0汤圆

发表于 2012-5-16 13:27:57 | 显示全部楼层
不错,好东西
(266048315)

出0入0汤圆

发表于 2012-5-16 13:28:23 | 显示全部楼层
不错,好东西
(265230501)

出0入0汤圆

发表于 2012-5-26 00:38:37 | 显示全部楼层
反馈量是什么啊?
(265187424)

出0入0汤圆

发表于 2012-5-26 12:36:34 | 显示全部楼层
正在弄,请教一下我的原理是否正确? “电磁铁放在线圈里面,当强磁铁对电磁铁吸引时通过3503启动模拟电路使线圈产生正比的电流,当靠的越近电流约大”请问弄过的朋友对吗?谢谢
(264129108)

出0入0汤圆

发表于 2012-6-7 18:35:10 | 显示全部楼层
读了楼主的程序有个意外收获,我终于知道单片机中怎么实现FIFO了!!

#define        FILMASK                 3
#define        FILNUM                 4
#define        WARP(X)                X=((X+1)&FILMASK)    /*实现0~3的反复计数*/
……
FilterBuf[WARP(Dx)]=AdValue;  /*通过WARP(Dx) 每次被覆盖的都是数组中最老的一个元素*/




(259660039)

出0入0汤圆

发表于 2012-7-29 11:59:39 | 显示全部楼层
啊,我是个新手,也想做磁悬浮类似的东西,但是身边没啥人做这个,能不能留个QQ,好求教求教?
(259652331)

出0入0汤圆

 楼主| 发表于 2012-7-29 14:08:07 | 显示全部楼层
xiaob5809469 发表于 2012-7-29 11:59
啊,我是个新手,也想做磁悬浮类似的东西,但是身边没啥人做这个,能不能留个QQ,好求教求教? ...

我的QQ673671751
(259568832)

出0入0汤圆

发表于 2012-7-30 13:19:46 | 显示全部楼层
用的元件多吗?成本不高的话我也想弄一个
(259567770)

出0入0汤圆

发表于 2012-7-30 13:37:28 | 显示全部楼层
学习。。
(258274805)

出0入0汤圆

发表于 2012-8-14 12:46:53 | 显示全部楼层
貌似老外用的是运放昂。模拟的还是简单昂
(258010648)

出0入0汤圆

发表于 2012-8-17 14:09:30 | 显示全部楼层
学习了。。。
(255595618)

出0入0汤圆

发表于 2012-9-14 13:00:00 | 显示全部楼层
外国的那个好像是用反射红外做的检测
(255582430)

出0入0汤圆

 楼主| 发表于 2012-9-14 16:39:48 | 显示全部楼层
jao317 发表于 2012-9-14 13:00
外国的那个好像是用反射红外做的检测

反射红外?用的红外测距?
(255556722)

出0入0汤圆

发表于 2012-9-14 23:48:16 | 显示全部楼层
doujiang 发表于 2012-9-14 16:39
反射红外?用的红外测距?

恩,反射式红外距离不同,电压不同的。。。。。。。我试过。。。
(255551829)

出0入0汤圆

发表于 2012-9-15 01:09:49 | 显示全部楼层
doujiang 发表于 2012-7-29 14:08
我的QQ673671751

在这里发现你了·~~    dingwei `~
(255518171)

出0入0汤圆

 楼主| 发表于 2012-9-15 10:30:47 | 显示全部楼层
qj890226 发表于 2012-9-15 01:09
在这里发现你了·~~    dingwei `~

杰哥??????
(255518073)

出0入0汤圆

 楼主| 发表于 2012-9-15 10:32:25 | 显示全部楼层
jao317 发表于 2012-9-14 23:48
恩,反射式红外距离不同,电压不同的。。。。。。。我试过。。。

但是看他那个图片,好像没得红外传感器之类的呢
(255508613)

出0入0汤圆

发表于 2012-9-15 13:10:05 | 显示全部楼层
doujiang 发表于 2012-9-15 10:30
杰哥??????

嗯   是的哈。   看着这个图片,背景很熟悉哈。  仔细一看果然是我们实验室
(255506451)

出0入0汤圆

发表于 2012-9-15 13:46:07 | 显示全部楼层
doujiang 发表于 2012-9-15 10:32
但是看他那个图片,好像没得红外传感器之类的呢

是以前看的一个老外做的,是用的红外
(251668624)

出0入0汤圆

发表于 2012-10-29 23:49:54 | 显示全部楼层
请教下你那个悬浮物有没有磁性的   还是只有电磁铁有磁的(悬浮物只是块铁)     如果悬浮物有磁性 还有电磁铁产生的磁性不是对霍尔传感器也产生影响了吗   你是怎么消除影响的  
(251636959)

出0入0汤圆

发表于 2012-10-30 08:37:39 | 显示全部楼层
楼主可否提供一些详细的资料?
只有一个电磁铁产生的磁力如何使得被控物保持垂直?
(192490800)

出0入0汤圆

发表于 2014-9-14 22:06:58 | 显示全部楼层
不错哈,赞一个
(192488736)

出0入0汤圆

发表于 2014-9-14 22:41:22 | 显示全部楼层
如何判断铁块已悬浮在空中?
(192488444)

出0入0汤圆

发表于 2014-9-14 22:46:14 | 显示全部楼层
上拉式磁悬浮 PID控制MARK!
(190847460)

出0入0汤圆

发表于 2014-10-3 22:35:58 | 显示全部楼层
兄弟,可以给一张你焊接的线路的具体图片吗?我不太会焊。。。。。。新人,求帮助
(190845513)

出0入0汤圆

发表于 2014-10-3 23:08:25 | 显示全部楼层
哇。这个很牛。如何做到这么大的吸引力呢?能大概说说原理吗?
(189631589)

出0入0汤圆

发表于 2014-10-18 00:20:29 | 显示全部楼层
工艺品展示用的上了!
(189601079)

出0入0汤圆

发表于 2014-10-18 08:48:59 | 显示全部楼层
学习了。
(189595723)

出0入0汤圆

发表于 2014-10-18 10:18:15 | 显示全部楼层
能做个悬浮椅坐着岂不是没事
(189595321)

出0入0汤圆

发表于 2014-10-18 10:24:57 | 显示全部楼层
mark      
(189585506)

出0入0汤圆

发表于 2014-10-18 13:08:32 | 显示全部楼层
有点意思
(189576043)

出0入0汤圆

发表于 2014-10-18 15:46:15 | 显示全部楼层
路过,开眼界。
(170312225)

出0入0汤圆

发表于 2015-5-29 14:49:53 | 显示全部楼层
实现起来容易,是个不错的方案,不过PID的参数调起来应该不容易。
(170303853)

出0入0汤圆

发表于 2015-5-29 17:09:25 | 显示全部楼层
甚牛                        
(170285482)

出0入0汤圆

发表于 2015-5-29 22:15:36 | 显示全部楼层
是拉非浮吧,电磁铁在上面啊
(170242975)

出0入0汤圆

发表于 2015-5-30 10:04:03 | 显示全部楼层
请问这个应用在什么地方呀
(170237963)

出0入0汤圆

发表于 2015-5-30 11:27:35 | 显示全部楼层
这个只是学校用来做磁力平衡原理性验证的试验装置,派不上什么实际用处。
其实,根本不用搞那么多数字化的采样AD、CPU和软件等。
模拟电路方案就能简单解决这个问题,只要霍尔传感器(测距)、运放(放大+校正网络)和PWM功放即可实现。
(170221935)

出0入0汤圆

发表于 2015-5-30 15:54:43 | 显示全部楼层
学习了,我也做一个
(164080422)

出0入0汤圆

发表于 2015-8-9 17:53:16 | 显示全部楼层
请问强磁铁有什么用?在图里面貌似没看到强磁铁啊??
还有霍尔传感器采集的是磁场强度吧,那跟中间的铁块距电磁铁的距离有什么关系??
(144395282)

出0入0汤圆

发表于 2016-3-24 13:58:56 | 显示全部楼层
老外的比较器的实际控制效果并不好
(124013812)

出0入0汤圆

发表于 2016-11-15 11:30:06 | 显示全部楼层
很厉害,学习
(45009284)

出0入0汤圆

发表于 2019-5-18 21:12:14 | 显示全部楼层
想问下,
//n1=n1*n1;
res=22+kp*n1*n1/153+(n1-n2)*kd;
kp后面的n1*n1/153,为什么要这样写?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号-1 )

GMT+8, 2020-10-20 19:46

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表