Pages: [1]   Go Down
Print
Author Topic: stepping motor  (Read 6818 times)
0 Members and 4 Guests are viewing this topic.
mold2003226
มาใหม่
*
Offline Offline

Posts: 1


Email
« on: March 03, 2010, 08:09:42 AM »

ผมจะเพิ่ม Sensor เข้าไปนะครับ เมื่อ Sensor on จะส่ง logic 0 ออกมาเข้า พอร์ต b6และ b7
     ถ้า พอร์ต b6 เป็น 0 Stepping motor (left) จะStop ตอนนี้ sensor จะออนค้างอยู่ทำให้ พอร์ต b6 เป็น 0 ตลอด แล้วถ้า
กดปุ่ม right ให้ Stepping motor มันวิ่งออกจาก sensor จะต้องเพิ่มส่วนไหนครับ
     ถ้า พอร์ต b7 เป็น 0 Stepping motor (right) จะStop ตอนนี้ sensor จะออนค้างอยู่ทำให้ พอร์ต b7 เป็น 0 ตลอด แล้วถ้า
กดปุ่ม left ให้ Stepping motor มันวิ่งออกจาก sensor จะต้องเพิ่มส่วนไหนครับ
       ขอบคุณครับ


#include <16F877.h>
#fuses HS,NOWDT,NOPUT,NOPROTECT
#use delay (clock=4000000)

void main()

{ int step[8]={0x01,0x03,0x02,0x06,0x04,0x0C,0x08,0x09};
  signed int ,SL,SR,stop,left,right,stop1,left1,right1,index=0,direct=0,index1=0,direct1=0;
 
  while(TRUE)
   {
     stop = input(pin_B0);
     left  = input(pin_B1);
     right = input(pin_B2);
     stop1 = input(pin_B3);
     left1  = input(pin_B4);
     right1 = input(pin_B5);
     SL = input(pin_B6); \\Sensor 1
     SR = input(pin_B7); \\Sensor 2
     
 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\Stepping ตัวที่1 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\   
       
     if(stop==0)
       direct = 0;
     if(left==0)
       direct = 1;
     if(right==0)
       direct = 2;
     if(direct==0)
       index=index;
     if(direct==1)
       index=index+1;
     if(direct==2)
       index=index-1;
     if(index>7)
       index=0;
     if(index<0)
       index=7;
       output_c(step[index]);
       delay_ms(5);

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\Stepping ตัวที่2 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
     
     if(stop1==0)
       direct1 = 0;
     if(left1==0)
       direct1 = 1;
     if(right1==0)
       direct1 = 2;
     if(direct1==0)
       index1=index1;
     if(direct1==1)
       index1=index1+1;
     if(direct1==2)
       index1=index1-1;
     if(index1>7)
       index1=0;
     if(index1<0)
       index1=7;
       output_d(step[index1]);
       delay_ms(5);
       
}
}
Logged
s_engine
Sr. Member
****
Offline Offline

Posts: 187


« Reply #1 on: March 03, 2010, 02:36:56 PM »

ตอนนี้มันคงจะเดินหน้าถอยหลังได้แล้ว สินะ ครับ
ความหมายที่ถามคือ จะมี เซนเซอร์ ติดด้าน ซ้าย กับ ขวา
เมื่อ เซนเซอร์ซ้าย จับได้ ก็ให้มอเตอร์ซ้ายหยุด
เมื่อ เซนเซอร์ขวา จับได้ ก็ให้มอเตอร์ขวาหยุด

แล้วถ้า
กดปุ่ม right ให้ Stepping motor มันวิ่งออกจาก sensor จะต้องเพิ่มส่วนไหนครับ
if(SL==0&&RIGHT==0){
  ....;  // อยากให้มันวิ่งไปทางไหนก็ป้อนไปตรงนี้เลย
}
Logged
Pages: [1]   Go Up
Print
 
Jump to: