صفحه 1 از 4 123 ... آخرینآخرین
نمایش نتایج: از 1 به 10 از 33
Like Tree5 لایک

موضوع: شیلد موتور درایو l293d

  1. #1
    Senior Member
    تاریخ عضویت
    Mar 2013
    محل سکونت
    Iran
    نوشته ها
    138

    Lightbulb شیلد موتور درایو l293d

    شیلد L293D
    شیلد موتور L293D یک شیلد بسیار مفید با قطعات استاندارد است. این شیلد از دو درایور موتور L293D و یک شیفت رجیستر 74HC595 تشکیل شده است.شیفت رجیستر برای کنترل جهت درایورهای موتور 3 پین از آردوینو را به 8 پین توسعه می دهد. خروجی L293D، enable
    مستقیما به خروجی ها PWM آردوینو متصل می شود.

    انواع موتورهای قابل راه اندازی توسط شیلد
    موتورهای DC براشلس
    موتورهای دنده ای DC
    موتورهای استپر
    سرو موتورهای استاندارد RC
    سروهای مدام در چرخش

    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: adafruit-motorshield.jpg
مشاهده: 621
حجم: 51.8 کیلو بایت

    شروع
    تامین تغذیه از طریق برد آردوینو یا هدر تغذیه موتور شیلد انجام می شود.
    اگر برد آردوینو و شیلد از یک منبع تغذیه مجزا استفاده می کنند ، جامپر باید برداشته شود.

    مثال
    نمونه کد ساده برای استفاده از Adafruit Motor Shield
    این کد موتورهای استپر را پشتیبانی نمی کند اما هر خروجی می تواند برای درایو سلنوئید یا رله استفاده شود.
    کد:
    #include <Servo.h> // Arduino pins for the shift register #define MOTORLATCH 12 #define MOTORCLK 4 #define MOTORENABLE 7 #define MOTORDATA 8 // 8-bit bus after the 74HC595 shift register // (not Arduino pins) // These are used to set the direction of the bridge driver. #define MOTOR1_A 2 #define MOTOR1_B 3 #define MOTOR2_A 1 #define MOTOR2_B 4 #define MOTOR3_A 5 #define MOTOR3_B 7 #define MOTOR4_A 0 #define MOTOR4_B 6 // Arduino pins for the PWM signals. #define MOTOR1_PWM 11 #define MOTOR2_PWM 3 #define MOTOR3_PWM 6 #define MOTOR4_PWM 5 #define SERVO1_PWM 10 #define SERVO2_PWM 9 // Codes for the motor function. #define FORWARD 1 #define BACKWARD 2 #define BRAKE 3 #define RELEASE 4 // Declare classes for Servo connectors of the MotorShield. Servo servo_1; Servo servo_2; void setup() { Serial.begin(9600); Serial.println("Simple Adafruit Motor Shield sketch"); // Use the default "Servo" library of Arduino. // Attach the pin number to the servo library. // This might also set the servo in the middle position. servo_1.attach(SERVO1_PWM); servo_2.attach(SERVO2_PWM); } void loop() { // Suppose there are two servo motors connected. // Let them move 180 degrees. servo_1.write(0); delay(1000); servo_1.write(180); delay(2000); servo_2.write(0); delay(1000); servo_2.write(180); delay(2000); // Suppose there is a relay, or light or solenoid // connected to M3_A and GND. // Note that the 'speed' (the PWM, the intensity) // is for both M3_A and M3_B. // The output is a push-pull output (half bridge), // so it can also be used to drive something low. // The 'speed' (the PWM, the intensity) can be set // to zero, that would make the output disabled // and floating. motor_output(MOTOR3_A, HIGH, 255); delay(2000); motor_output(MOTOR3_A, LOW, 255); // Suppose a DC motor is connected to M1_A(+) and M1_B(-) // Let it run full speed forward and half speed backward. // If 'BRAKE' or 'RELEASE' is used, the 'speed' parameter // is ignored. motor(1, FORWARD, 255); delay(2000); // Be friendly to the motor: stop it before reverse. motor(1, RELEASE, 0); delay(500); motor(1, BACKWARD, 128); delay(2000); motor(1, RELEASE, 0); } // Initializing // ------------ // There is no initialization function. // // The shiftWrite() has an automatic initializing. // The PWM outputs are floating during startup, // that's okay for the Adafruit Motor Shield, it stays off. // Using analogWrite() without pinMode() is valid. // // --------------------------------- // motor // // Select the motor (1-4), the command, // and the speed (0-255). // The commands are: FORWARD, BACKWARD, BRAKE, RELEASE. // void motor(int nMotor, int command, int speed) { int motorA, motorB; if (nMotor >= 1 && nMotor <= 4) { switch (nMotor) { case 1: motorA = MOTOR1_A; motorB = MOTOR1_B; break; case 2: motorA = MOTOR2_A; motorB = MOTOR2_B; break; case 3: motorA = MOTOR3_A; motorB = MOTOR3_B; break; case 4: motorA = MOTOR4_A; motorB = MOTOR4_B; break; default: break; } switch (command) { case FORWARD: motor_output (motorA, HIGH, speed); motor_output (motorB, LOW, -1); // -1: no PWM set break; case BACKWARD: motor_output (motorA, LOW, speed); motor_output (motorB, HIGH, -1); // -1: no PWM set break; case BRAKE: // The AdaFruit library didn't implement a brake. // The L293D motor driver ic doesn't have a good // brake anyway. // It uses transistors inside, and not mosfets. // Some use a software break, by using a short // reverse voltage. // This brake will try to brake, by enabling // the output and by pulling both outputs to ground. // But it isn't a good break. motor_output (motorA, LOW, 255); // 255: fully on. motor_output (motorB, LOW, -1); // -1: no PWM set break; case RELEASE: motor_output (motorA, LOW, 0); // 0: output floating. motor_output (motorB, LOW, -1); // -1: no PWM set break; default: break; } } } // --------------------------------- // motor_output // // The function motor_ouput uses the motor driver to // drive normal outputs like lights, relays, solenoids, // DC motors (but not in reverse). // // It is also used as an internal helper function // for the motor() function. // // The high_low variable should be set 'HIGH' // to drive lights, etc. // It can be set 'LOW', to switch it off, // but also a 'speed' of 0 will switch it off. // // The 'speed' sets the PWM for 0...255, and is for // both pins of the motor output. // For example, if motor 3 side 'A' is used to for a // dimmed light at 50% (speed is 128), also the // motor 3 side 'B' output will be dimmed for 50%. // Set to 0 for completelty off (high impedance). // Set to 255 for fully on. // Special settings for the PWM speed: // Set to -1 for not setting the PWM at all. // void motor_output (int output, int high_low, int speed) { int motorPWM; switch (output) { case MOTOR1_A: case MOTOR1_B: motorPWM = MOTOR1_PWM; break; case MOTOR2_A: case MOTOR2_B: motorPWM = MOTOR2_PWM; break; case MOTOR3_A: case MOTOR3_B: motorPWM = MOTOR3_PWM; break; case MOTOR4_A: case MOTOR4_B: motorPWM = MOTOR4_PWM; break; default: // Use speed as error flag, -3333 = invalid output. speed = -3333; break; } if (speed != -3333) { // Set the direction with the shift register // on the MotorShield, even if the speed = -1. // In that case the direction will be set, but // not the PWM. shiftWrite(output, high_low); // set PWM only if it is valid if (speed >= 0 && speed <= 255) { analogWrite(motorPWM, speed); } } } // --------------------------------- // shiftWrite // // The parameters are just like digitalWrite(). // // The output is the pin 0...7 (the pin behind // the shift register). // The second parameter is HIGH or LOW. // // There is no initialization function. // Initialization is automatically done at the first // time it is used. // void shiftWrite(int output, int high_low) { static int latch_copy; static int shift_register_initialized = false; // Do the initialization on the fly, // at the first time it is used. if (!shift_register_initialized) { // Set pins for shift register to output pinMode(MOTORLATCH, OUTPUT); pinMode(MOTORENABLE, OUTPUT); pinMode(MOTORDATA, OUTPUT); pinMode(MOTORCLK, OUTPUT); // Set pins for shift register to default value (low); digitalWrite(MOTORDATA, LOW); digitalWrite(MOTORLATCH, LOW); digitalWrite(MOTORCLK, LOW); // Enable the shift register, set Enable pin Low. digitalWrite(MOTORENABLE, LOW); // start with all outputs (of the shift register) low latch_copy = 0; shift_register_initialized = true; } // The defines HIGH and LOW are 1 and 0. // So this is valid. bitWrite(latch_copy, output, high_low); // Use the default Arduino 'shiftOut()' function to // shift the bits with the MOTORCLK as clock pulse. // The 74HC595 shiftregister wants the MSB first. // After that, generate a latch pulse with MOTORLATCH. shiftOut(MOTORDATA, MOTORCLK, MSBFIRST, latch_copy); delayMicroseconds(5); // For safety, not really needed. digitalWrite(MOTORLATCH, HIGH); delayMicroseconds(5); // For safety, not really needed. digitalWrite(MOTORLATCH, LOW); }
    کد برای راه اندازی استپر موتور
    کد:
    #include <AFMotor.h> AF_Stepper motor(48, 2); void setup() { Serial.begin(9600); // set up Serial library at 9600 bps Serial.println("Stepper test!"); motor.setSpeed(10); // 10 rpm motor.step(100, FORWARD, SINGLE); motor.release(); delay(1000); } void loop() { motor.step(100, FORWARD, SINGLE); motor.step(100, BACKWARD, SINGLE); motor.step(100, FORWARD, DOUBLE); motor.step(100, BACKWARD, DOUBLE); motor.step(100, FORWARD, INTERLEAVE); motor.step(100, BACKWARD, INTERLEAVE); motor.step(100, FORWARD, MICROSTEP); motor.step(100, BACKWARD, MICROSTEP); }
    مرجع:
    Arduino Playground - AdafruitMotorShield
    Using Stepper Motors | Adafruit Motor Shield | Adafruit Learning System

    جهت سفارش این کالا، به این بخش در فروشگاه آفتاب رایانه مراجعه نمایید.
    فایل های پیوست شده فایل های پیوست شده
    ویرایش توسط hesam.time : 10-30-2013 در ساعت 03:55 PM
    لایک کردن

  2. #2
    Junior Member
    تاریخ عضویت
    Mar 2014
    نوشته ها
    6
    با سلام.
    نحوه نصب این شیلد به پایه های آردینو چطوریه؟

  3. #3
    Junior Member
    تاریخ عضویت
    Jun 2014
    نوشته ها
    4
    سلام. ببخشید وقتی این شیلد رو اردوینو نصب شد چطور از پایه های دیگه اردوینو استفاده کنیم؟

  4. #4
    مدیر اصلی
    تاریخ عضویت
    Aug 2012
    محل سکونت
    ایران
    نوشته ها
    440
    با سلام
    این شیلد کل پین ها رو مسدود می کنه متاسفانه

  5. #5
    Junior Member
    تاریخ عضویت
    Jun 2014
    نوشته ها
    4
    یعنی هیچ راهی نیست که بشه از پین های اردوینو استفاده کرد؟

  6. #6
    Junior Member
    تاریخ عضویت
    Jan 2014
    نوشته ها
    2
    زمان اتصال ولتاژ 12 ولت به exit pwr شیلد ؛ روی پایه های m یا همون dc ولتاژی وجود نداره علت چیست ؟؟؟
    خود شیلد با ولتاژ 5 ولت راه اندازی میشه ؟
    اگه امکانش هست نحوه راه اندازی شیلد بدون برد آردوینو رو بگید .
    ویرایش توسط amir228 : 08-17-2014 در ساعت 03:35 PM

  7. #7
    Member
    تاریخ عضویت
    Aug 2014
    نوشته ها
    76
    نقل قول نوشته اصلی توسط amir228 نمایش پست ها
    زمان اتصال ولتاژ 12 ولت به exit pwr شیلد ؛ روی پایه های m یا همون dc ولتاژی وجود نداره علت چیست ؟؟؟
    خود شیلد با ولتاژ 5 ولت راه اندازی میشه ؟
    اگه امکانش هست نحوه راه اندازی شیلد بدون برد آردوینو رو بگید .
    دوست عزیز
    پین ext فقط در مواردی استفاده می شود که شما تغذیه آردوینوی خود را از usb تامین کرده و همچنین موتور های خود را به هیچ منبع خارجی متصل نکرده باشید. در این حالت ولتاژی را به پین ext خواهید داد و شیلد این ولتاژ را به موتور ها منتقل می کند. این یک پیشنهاد برای آسان تر کردن کار شماست!!

    شیلد ولتاژ مورد نیاز خود را از برد آردوینو تامین میکند

    این شیلد مخصوص آردوینو طراحی شده ، و راه اندازی به تنهایی آن ممکن است کمی دردسر داشته باشد! اما اگر به دنبال ماژول برای درایو کردن موتور هستید ، در فروشگاه آفتاب رایانه انواع و اقسام آن موجود است

    یا علی
    موفق باشید

  8. #8
    Member
    تاریخ عضویت
    Aug 2014
    نوشته ها
    76
    دوست عزیز
    شیلد های مبدلی وجود دارن که میتونید با اتصال آنها به آردوینو، از چند شیلد همزمان استفاده کنید و یا از پایه هایی که مورد استفاده قرار نگرفته ، استفاده کنید

  9. #9
    Junior Member
    تاریخ عضویت
    Jan 2014
    نوشته ها
    2
    ممنون از راهنمایی تون امکانش هست یه درایور معرفی کنید مستقل از آردوینو که بشه موتور و 12 ولت dc راه اندازی کرد .

  10. #10
    Member
    تاریخ عضویت
    Aug 2014
    نوشته ها
    76
    نقل قول نوشته اصلی توسط amir228 نمایش پست ها
    ممنون از راهنمایی تون امکانش هست یه درایور معرفی کنید مستقل از آردوینو که بشه موتور و 12 ولت dc راه اندازی کرد .
    درایور Bipolar Stepper Motor - DC Motor دو کاناله L298N Dual H Bridge

    امیر عزیز
    این ماژول رو میتونید مستقل از آردوینو راه اندازی کنید. این ماژول مناسب برای 2 عدد موتور DC و یا یک استپر موتور بایپولار هست.
    از نظر ولتاژ هم میتونه موتور هایی از 5 تا 35 ولت رو درایو کنه
    بقیه اطلاعات فنی رو هم میتونید توی صفحه فروشگاه ملاحظه کنید
    اینم کتابخانه برای آردوینو که مناسب درایو کردن استپر موتور هست
    Arduino - Stepper

    موفق باشید
    یا علی
    لایک کردن

صفحه 1 از 4 123 ... آخرینآخرین

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO