找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1863|回复: 3
打印 上一主题 下一主题
收起左侧

关于单片机ADC检测控制L9110S驱动电机的问题

[复制链接]
跳转到指定楼层
楼主

实物如上图,STC8H108
原先P1.1悬空,飞了一条线到前面驱动芯片输出脚上。做ADC检测
下面是电机,12V的,现在用5V驱动。
电机驱动芯片是L9110S 电流在800MA左右。正反转(以下情况只考滤反转)
之前产品老是电机堵停烧芯片
ADC参考电压在5.04V
电机接5V负载是4.3V
ADC检测电压在低于4.1左右,停止输出。现在问题是电机正常运行,在不堵转。也会停止输出,时间不定。有时间一两秒就自动停了,有时十几秒
请教大家,是硬件问题,还是软件问题。谢谢
以下是部分代码
#define        DC_SOTP 0x033E        //停止输出参考电压
#define ADCTIM (*(unsigned char volatile xdata *)0xfea8)
extern void ADC_Init();

sfr ADC_CONTR = 0xbc;
sfr ADC_RES = 0xbd;
sfr ADC_RESL = 0xbe;
sfr ADCCFG = 0xde;
sbit EADC = IE^5;


void ADC_Init()
{

ADCTIM = 0x3f;                                      
ADCCFG = 0x2f;                                       
ADC_CONTR = 0x81;                              
EADC = 1;                                                
EA = 1;                    

}

void ADC_Isr() interrupt 5                              
{
        unsigned int ADC_sum=0x00;
        ADC_CONTR &= ~0x20;                              
        
        ADC_sum        =ADC_RES;
        ADC_sum       =(ADC_sum<<8)|ADC_RESL;              


        
        if(ADC_sum <= DC_SOTP)
                                
                {
                        
                        ADC_CONTR &= ~0x40;                   //停止ADC               
                        back = 0;                                         //反转IO口
                        forward = 0;                                    //正转IO口
                        ADC_RES=0;
                        ADC_RESL=0;        
                        
                }
        else
                {

                        ADC_RES=0;
                        ADC_RESL=0;        
                        ADC_CONTR |= 0x40;                                                
        
}以下函数在大循环里
if(!forward_key)


{                 KeySec = 0;
                                open_Gear1=0;
                                forward = 0;
                                Delay500ms();
                                back = 1;
                                Delay500ms();
                                ADC_CONTR |= 0x40;        
                        
                }





实物板上没有0.1u


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:298123 发表于 2021-7-1 08:29 | 只看该作者
堵转检测,应该在8脚到GND之间加一小的检测电阻0.1-0.5欧,检测这个电流
回复

使用道具 举报

板凳
ID:734017 发表于 2021-7-1 10:40 | 只看该作者
hz_dyg 发表于 2021-7-1 08:29
堵转检测,应该在8脚到GND之间加一小的检测电阻0.1-0.5欧,检测这个电流

并联?求指导
回复

使用道具 举报

地板
ID:161164 发表于 2021-7-1 11:41 | 只看该作者
本帖最后由 lkc8210 于 2021-7-1 13:40 编辑

串联再加讯号放大电路

參考

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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