搜索
bottom↓
回复: 9
打印 上一主题 下一主题

上拉式的磁悬浮

[复制链接]

出0入0汤圆

跳转到指定楼层
1
发表于 2013-4-22 11:14:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
还不是很稳定,硬件完全是是仿照gzhuli 前辈的,2路变一路。学单片机的第一个作品,三天的泡面没白吃,献丑了



在此谢谢gzhuli 前辈

















#include<avr/io.h>
#define F_CPU 8000000UL

#define uint unsigned int
#define uchar unsigned char


void Delay_ms(uint i)
{
          uint j;
          while(i--)
          {
                   for(j=0;j<1200;j++);
         }
}

uint get_adc()
{
                 
                 uint a=0,b=0;
            
                                 ADMUX=0X60;
                                 ADCSRA=0X87;
                 Delay_ms(1);
                 ADCSRA|=0X40;
                 while(!(ADCSRA&0X10));
                 a=ADCL;
                 b=ADCH;
                 ADCH=0x00;
                 ADCL=0x00;
                 ADCSRA&=0Xef;
                 
                 return b;
}



int ads,m;
int kp=1,ki=0,kd=1;
int temp=0;

int pid()
{
         
          static int n1,n2,n3,res;
           n1=get_adc();
           res=196+kp*n1*n1/676+(n1-n2)*kd/3;      
           n3=n2;
           n2=n1;
           
           return res;
}

int main(void)
{
          DDRA&=~(1<<0);
        DDRB|=0x30;
         DDRD|=0X30;
        PORTB|=0x10;      
    TCCR1A=0X63;
         TCCR1B=0X1B;
   while(1)
   {

          get_adc();
           Delay_ms(5);
        
         OCR1A=255;
         
         temp=pid();
         if(temp>255)temp=255;
         if(temp<0)temp=0;
         OCR1B=temp;
   }               
   }   




本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。

如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》

出0入0汤圆

2
发表于 2013-4-22 11:38:21 | 只看该作者
晕死,上拉式的根本不用程序。用MCU成本太高啦!

出0入0汤圆

3
发表于 2013-4-22 11:41:09 | 只看该作者
嘿嘿,路过,帮顶一下

出0入0汤圆

4
发表于 2013-4-28 04:04:57 | 只看该作者
看着不错,挺好玩的

出0入0汤圆

5
发表于 2013-4-28 08:23:24 | 只看该作者
   自己觉得好玩就行!!!

出0入0汤圆

6
发表于 2013-4-28 08:27:49 | 只看该作者
chaily 发表于 2013-4-22 11:38
晕死,上拉式的根本不用程序。用MCU成本太高啦!

你意思是用条绳子吗?

出0入0汤圆

7
发表于 2013-4-28 08:44:14 | 只看该作者
绳子,真搞笑!

出0入0汤圆

8
发表于 2014-1-4 20:26:13 | 只看该作者
用绳子。。。。少年好机智

出0入0汤圆

9
发表于 2014-1-4 23:00:00 | 只看该作者
很不错!顶一下。

出0入0汤圆

10
发表于 2019-5-15 09:25:40 | 只看该作者
你好。我也是机械电子工程的研究人员。我最近在调一个上拉式的磁悬浮。没有用到hall传感器,反馈的信号是装有红外灯头的位移信号。MCU用的是stm32f429. PID控制代码如下:
disp_err = SET_disp - Now_disp;
increment_disp = kp * (disp_err - err_pre) + ki * (disp_err) + kd * (disp_err - 2*err_pre + err_pre_pre);  //PID输出增量
Actual_disp += increment_disp;
err_pre_pre =  err_pre;
err_pre = disp_err;

出现的现象当把铁球放在位移传感器的中点附近,PID控制的输出电压不能保持与其位移对应的电压值。会很快降到0。把球网上动一点,就会马上被磁铁吸上去,并且一直吸住,直到掉下来。总的来说,就是不能保持在空中悬浮的状态。想问问你,应该怎么写这个磁悬浮的PID控制程序。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 00:43

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

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