欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 紅外遙控程序調(diào)試問題,usb供電可以,獨(dú)立電源不行 [打印本頁]

作者: yuanni5544    時(shí)間: 2019-12-2 10:04
標(biāo)題: 紅外遙控程序調(diào)試問題,usb供電可以,獨(dú)立電源不行
我用紅外遙控寫了一個(gè)簡單程序,連接usb時(shí)調(diào)試用遙控器可以控制小車啟動(dòng)停止,用電源供電時(shí),按遙控器沒反應(yīng),是什么原因造成的,怎么解決
作者: wc86110    時(shí)間: 2019-12-2 15:09
USB 一般為 5V,電源供電電壓為幾伏
作者: pcbboy    時(shí)間: 2019-12-2 16:18
電源部分沒處理好,
作者: wulin    時(shí)間: 2019-12-2 16:57
查這個(gè)電源供電是否能滿足電路需求。
作者: yanguang123    時(shí)間: 2019-12-2 21:03
用兩個(gè)電源,電機(jī)部分單供電與單片機(jī)共地。
作者: yuanni5544    時(shí)間: 2019-12-3 09:27
電源用6/9伏都試過,都不行,而且還有個(gè)問題就是另一個(gè)程序用傳感器檢測啟動(dòng)小車運(yùn)行,用usb連接可以正常運(yùn)行,但是按下電源開關(guān),傳感器檢測到后,小車不動(dòng),且發(fā)出滴滴的聲音,當(dāng)用手撥動(dòng)一下車輪,就會(huì)自己轉(zhuǎn)動(dòng),按程序走。綜上所述不知道什么原因,用電源開關(guān)不能按程序檢測行走。
作者: yuanni5544    時(shí)間: 2019-12-3 09:59
yanguang123 發(fā)表于 2019-12-2 21:03
用兩個(gè)電源,電機(jī)部分單供電與單片機(jī)共地。

兩個(gè)5v電源,要很多空間
作者: cphnkj188    時(shí)間: 2019-12-3 10:39
上圖看看
作者: 適得府君書    時(shí)間: 2019-12-3 12:04
應(yīng)該是硬件設(shè)計(jì)沒處理好。按正常情況,USB電源和主電源是連通的,主電源只是經(jīng)過降壓芯片,可能是電源芯片部分有問題。電機(jī)都有一個(gè)啟動(dòng)電流電壓,用手撥動(dòng)一下車輪。才能啟動(dòng)應(yīng)該是電源轉(zhuǎn)換后不夠力。
作者: yuanni5544    時(shí)間: 2019-12-5 16:53
適得府君書 發(fā)表于 2019-12-3 12:04
應(yīng)該是硬件設(shè)計(jì)沒處理好。按正常情況,USB電源和主電源是連通的,主電源只是經(jīng)過降壓芯片,可能是電源芯片 ...

這兩天學(xué)用pwm控制就沒事了
作者: 老愚童63    時(shí)間: 2019-12-7 08:06
獨(dú)立電源的電流輸出能力是否足夠?有沒有并聯(lián)大電容?如果可能,在獨(dú)立電源上并聯(lián)一只1000UF左右的電容試一試。USB通常電流輸出能力大于1A。
作者: 兩笙山世    時(shí)間: 2019-12-7 12:26
電壓不夠,供電不足,加一個(gè)升壓模塊就行
作者: 老愚童63    時(shí)間: 2019-12-7 16:39
兩笙山世 發(fā)表于 2019-12-7 12:26
電壓不夠,供電不足,加一個(gè)升壓模塊就行

電壓不夠加一個(gè)升壓模塊可以解決問題。供電不知有沒有升壓模塊可解決不了問題!況且樓主已經(jīng)說了,6V,9V電壓試過,顯然,電壓不夠的原因可以排除,應(yīng)該是供電電流不夠的可能性比較大,特別是瞬時(shí)供電電流不夠的可能性比較大,因?yàn)橛檬謸軇?dòng)車輪后可以自己轉(zhuǎn)動(dòng)接頭!顯然,是因?yàn)殡姍C(jī)的啟動(dòng)電流比較大,而供電電流相對不足。增加電源并聯(lián)電容可以提高電源瞬時(shí)電流,也就是降低電源內(nèi)阻。
作者: yuanni5544    時(shí)間: 2019-12-10 16:04
老愚童63 發(fā)表于 2019-12-7 16:39
電壓不夠加一個(gè)升壓模塊可以解決問題。供電不知有沒有升壓模塊可解決不了問題!況且樓主已經(jīng)說了,6V,9V ...

我用電腦連接調(diào)試就可以,用獨(dú)立電源調(diào)試就接收不了紅外信號(hào),程序我用一個(gè)定時(shí)器把PWM和紅外接收寫一起,分開兩個(gè)定時(shí)器寫的話,只能一次接收一個(gè)按鍵信號(hào),要重啟才可以接收另一個(gè),有什么辦法解決。程序如下:
#include<reg52.h>
            sbit P36=P3^6 ;
         sbit P37=P3^7 ;
         sbit P24=P2^4;
         sbit ENA=P1^0;
         sbit P11=P1^1;
         sbit P12=P1^2;
          sbit ENB=P1^3         ;
          sbit P14=P1^4;
          sbit P15=P1^5;
           sbit IR=P3^2;
         
         void fonrt();
         void zuozuan();
            void tingzhi();

   unsigned char irtime;
   bit irpro_ok,irok;
   unsigned char IRcord[4];
   unsigned char irdata[33];
   void Ir_work (void);
   void Ircordpro(void);
       
         unsigned char pwm_val_left =0;
   unsigned char push_val_left =0;
   unsigned char pwm_val_right =0;
unsigned char push_val_right=0;  
   unsigned int time;
                 void         pwm_out_left_moto() ;
                 void pwm_out_right_moto() ;
                 bit Left_moto_stop =1; //右電機(jī)停轉(zhuǎn)
                 bit Right_moto_stop=1;
       
                 
#define Left_moto_Stop    {P1^1=0,P1^2=0;}  
#define Right_moto_Stop   {P1^4=0,P1^5=0;}
sbit Left_moto_pwm= P1^0;       
sbit Right_moto_pwm         = P1^3        ;

/******************************************************************
**                       左電機(jī)調(diào)速
******************************************************************/
void pwm_out_left_moto()
{  
       

            if(pwm_val_left<=push_val_left)
                        {
                        ENA=0;
       
                        }
                else
                    {
                              ENA=1;
                                                                 
                        }
                if(pwm_val_left>=20)
                           ENA=1;
        }



/******************************************************************
**                       右電機(jī)調(diào)速
******************************************************************/
void pwm_out_right_moto(void)
{

            if(pwm_val_right<=push_val_right)
            {
                    Right_moto_pwm=1;
                }
        else
            {
                        Right_moto_pwm=0;
                }
        if(pwm_val_right>=20)
               pwm_val_right=0;
   }


        void tim0_isr(void)interrupt 1 using 1
        {
        irtime++;
         pwm_val_left++;
         pwm_val_right++;
         pwm_out_left_moto();
         pwm_out_right_moto();                  
        }

        void EX0_ISR(void)interrupt 0
        {
        static unsigned char i;
        static bit startflag;
        if (startflag)
        {if(irtime<63&&irtime>=33)
        i=0;
        irdata=irtime;
        irtime=0;
        i++;
        if (i==33)
        {irok=1;
        i=0;
        }
        }
        else
        {irtime=0;
        startflag=1;}
        }

        void TIM0init(void)
        {TMOD=0x02;
                 TH0= 0x00;                  //1ms定時(shí)
        TL0= 0x00;
        ET0=1;
        TR0=1;
        TR1=0;}

        void EX0init(void)
        {IT0=1;
        EX0=1;
        EA=1;}

void Ircordpro (void)
{unsigned char i,j,k;
unsigned char cord,value;
k=1;
for (i=0;i<4;i++)
{for(j=1;j<=8;j++)
{cord=irdata[k];
if(cord>7)
value |=0x80;
if(j<8)
{value>>=1;
}
k++;
}IRcord=value;
value=0;}
irpro_ok=1;
}
  
           void Ir_work(void)
        {switch(IRcord[2])
        {case 0x18:fonrt();break;
         case 0x52:tingzhi( );break;
         case 0x08:zuozuan();break;
         default:break;}
         irpro_ok=0        ;
         }

   void delay (int xms)
   {unsigned int i,j;
   for (i=xms;i>0;i--)
   for (j=112;j>0;j--);}

void  fonrt ()
{ push_val_right=16;  
push_val_left =16;
  P11=1;
P12=0;
P14=1;
P15=0;
delay(200);
  }

   void zuozuan()
   {   
           delay(500);
   push_val_left=8;
         push_val_right=12;
P11=0;
P12=1;
        P14=1;
P15=0;            
}

void tingzhi()
   {P1=0x00;
   }
   
   void main()
   {  IP=0X02;
            EX0init();
   TIM0init();
             while(1)
  {
   if(irok)
   {Ircordpro();
   irok=0;}

  if(irpro_ok)         
   {   
        Ir_work();  
   }
   }
   }
作者: 226    時(shí)間: 2019-12-10 21:49
查這個(gè)電源供電是否能滿足電路需求。 以及電源部分是否處理好




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1