יום שישי, 19 ביולי 2013

Motor Control Guide



עשינו דרך ארוכה עם Arduino ועדיין יש בו אינסוף אפשרויות, הפעם נראה כיצד ניתן לשלוט במנועים בעזרת H Bridge , נפתח לנו עולם חדש שמאפשר לבצע תנועה מהירה ומדוייקת בעזרת מנועי DC פשוטים שנמצאים כמעט בכל מקום, עם הזמן המנועים האלה קיבלו שמות מפוצצים כמו Servo, Steeper Motor, Robot Motor ועוד.

L293D

במנועי ה DC יש סה"כ 2 כניסות עבור ה Voltage וה Ground ואין לנו אפשרות לקבוע את כיוון הסיבוב של המנוע אלא אם אנחנו מחליפים בן החיבורים ושלא נדבר על לשלוט במהירות, בעזרת H Bridge ניתן לקבוע את כיוון סיבוב המנוע ובעזרת PWM לקבוע את המהירות שלו, נשתמש בג'וק L293D שמאפשר לחבר אליו 2 מנועים ולשלוט על אופן הסיבוב בעזרת ה Arduino.

חיבור מנוע DC בודד


PWM - Pulse Width Modulation

גרסת Arduino UNO מגיעה עם 6 כניסות המוגדרות כ PWM  (הסימון ~ על הלוח) , ניתן לקבוע את כמות ה Voltage שיעבור ביציאה ע"פ הרעיון של Duty Cycle, בעזרת שינוי המתח ניתן לשלוט במהירות המנוע, לקבוע את חוזק תאורת ה LED ובכלל להעביר מידע לפי עוצמת המתח, אם עד עכשיו הגדרנו יציאות פשוטות כ HIGH ו LOW כעת יש לנו טווח פעולה מ 0 עד 255 שמאפשר לנו לשחק עם עוצמת המתח.



דרישות

  • Arduino Uno
  • L293 H Bridge
  • DC Motor 5V
  • LED
  •  Resistors 330 Ohm
  • Wires




מבנה סופי




קוד

//input of the L293D for left DC motor
int input_left[] = {5, 6};
int led = 3;

void setup()
{
  pinMode(input_left[0], OUTPUT);
   pinMode(input_left[1], OUTPUT);
   pinMode(led, OUTPUT);
}

void loop()
{
  for(int i =0; i< 255; i++)
  {
      analogWrite (led,i);
      analogWrite (input_left[0],i);
       digitalWrite(input_left[1], LOW); 
       delay(15);
  }
  
    for(int i =255; i> 0; i--)
  {
      analogWrite (led,i);
      analogWrite (input_left[0],i);
       digitalWrite(input_left[1], LOW); 
       delay(15);
  }
  delay(100);
  
  //change motor direction
  for(int i =0; i< 255; i++)
  {
      analogWrite (led,i);
      analogWrite (input_left[1],i);
       digitalWrite(input_left[0], LOW); 
       delay(15);
  }
  
    for(int i =255; i> 0; i--)
  {
      analogWrite (led,i);
      analogWrite (input_left[1],i);
       digitalWrite(input_left[0], LOW); 
       delay(15);
  }
  

  delay(100);
}

סרט דוגמה




סיכום

מנועים מאפשרים לנו להסתובב במרחב ובעזרת המאמרים הקודמים בנושא אפשר להתחיל לבנות את הרובוט הראשון שלנו.

ההמשך יבוא!

אין תגובות:

הוסף רשומת תגובה