Electoday 2025

ไมโครคอนโทรลเลอร์ => Other MCUs => Topic started by: sronrham on December 18, 2015, 05:23:50 PM

Title: ต้องการให้มอเตอร์หมุน เป็น Dute Cycle 100% 75% 50% ต้องใช้ Delay เท่าไหร่ครับ
Post by: sronrham on December 18, 2015, 05:23:50 PM
#include <reg52.h>

sbit SW_L=P3^0;
sbit SW_STOP=P3^1;
sbit SW_R=P3^2;


sbit SW_SLOW=P3^3;
sbit SW_MEDIUM=P3^4;
sbit SW_FAST=P3^5;


void RIGHT();
void LEFT();

void delay(int z)
{
int x;
for(x=0;x<z;x++);

}

void main()
{
        P1=0;

      if(SW_R==0)
         { 
            RIGHT();
         }
      if(SW_L==0)
         {
            LEFT();
         }
}

void RIGHT()
{
   int l = 1000;
   int m = 9000;

   while(SW_STOP==1)
      {
      if(SW_SLOW==0)
         {
            l=2000;
            m=3000;
         }
      if(SW_MEDIUM==0)
         {
            l= 4500;
            m= 500;
         }
      if(SW_FAST==0)
         {
            l= 1000;
            m= 50000; 
         }

      P1=0xFD;
      delay(l);
      P1=0xFF;
      delay(m);
   }
}

void LEFT()
{
   int l = 1000;
   int m = 0000;

   while(SW_STOP==1)
      {
      if(SW_SLOW==0)
         {
            l=2000;
            m=3000;
         }
      if(SW_MEDIUM==0)
         {
            l= 4500;
            m= 500;
         }
      if(SW_FAST==0)
         {
            l= 1000;
            m= 50000; 
         }

      P1=0xFE;
      delay(l);
      P1=0xFF;
      delay(m);
   }
}
(http://s15.postimg.org/njplqi293/2015_12_17_20_43_11.jpg) (http://postimg.org/image/njplqi293/)

(http://s22.postimg.org/6r8121y25/2015_12_17_20_43_11.jpg) (http://postimg.org/image/6r8121y25/)
Title: Re: ต้องการให้มอเตอร์หมุน เป็น Dute Cycle 100% 75% 50% ต้องใช้ Delay เท่าไหร่ครับ
Post by: JENG on December 18, 2015, 08:13:25 PM
1/Frequency จะได้ค่า Period ครับ ค่อยเอามาหาค่า duty กับ delay