કોડ શોધો

લાય૯૧૦ ડ્યુઅલ ડીસી મોટર કંટ્રોલર મોડ્યુલ માટે આર્ડુઇનો કોડ

લાય૯૧૦ ડ્યુઅલ ડીસી મોટર કંટ્રોલર મોડ્યુલ માટે આર્ડુઇનો કોડ

આ ટ્યુટોરિયલમાં, આપણે Arduino સાથે L9110 ડ્યુઅલ મોટર કંટ્રોલર મોડ્યુલનો ઉપયોગ કરીને બે DC મોટર્સને કેવી રીતે નિયંત્રિત કરવી તે શોધીશું. આ પ્રોજેક્ટ તમને દરેક મોટરની દિશા અને ઝડપને સંચાલિત કરવામાં સક્ષમ બનાવશે, જે રોબોટિક્સ અને ઓટોમેશન જેવી વિવિધ એપ્લિકેશનો માટે પરવાનગી આપે છે. આ માર્ગદર્શિકાના અંત સુધીમાં, તમને ઘટકોને કેવી રીતે વાયર કરવા અને તમારી મોટર્સને સરળતાથી ચલાવવા માટે જરૂરી કોડ લખવાની સ્પષ્ટ સમજણ હશે. જો તમને સ્પષ્ટતાની જરૂર હોય, તો વિડિયો (વિડિયોમાં 00:00 પર) ચકાસવાનું ભૂલશો નહીં.

હાર્ડવેર સમજાવ્યું

L9110 ડ્યુઅલ DC મોટર કંટ્રોલર મોડ્યુલ તમને એક સાથે બે મોટર્સને નિયંત્રિત કરવાની મંજૂરી આપે છે. તેમાં બે H-બ્રિજ સર્કિટ છે, જે તમને મોટર વોલ્ટેજની ધ્રુવીયતાને ઉલટાવવા સક્ષમ બનાવે છે. આનો અર્થ એ છે કે તમે કંટ્રોલ પિનને ટૉગલ કરીને દરેક મોટરની દિશા સરળતાથી બદલી શકો છો. મોડ્યુલમાં ચાર મુખ્ય પિન છે: દરેક મોટર માટે બે, રોટેશનની દિશા નિયંત્રિત કરવા માટે. જ્યારે તમે એક પિનને હાઈ અને બીજીને લો સેટ કરો છો, ત્યારે મોટર એક દિશામાં ફરે છે; પિન સ્થિતિઓને ઉલટાવવાથી તે વિરુદ્ધ દિશામાં ફરશે. આ સુગમતા રોબોટિક્સ જેવી એપ્લિકેશનો માટે આવશ્યક છે, જ્યાં તમને મોટર હલનચલન પર ચોક્કસ નિયંત્રણની જરૂર હોય છે.

ડેટાશીટ વિગતો

ઉત્પાદકSTMicroelectronics
ભાગ નંબરL9110
લોજિક/IO વોલ્ટેજ2.5–5.5 V
સપ્લાય વોલ્ટેજ2.5–12 V
આઉટપુટ કરંટ (પ્રતિ ચેનલ)1 A
પીક કરંટ (પ્રતિ ચેનલ)2 A
PWM ફ્રીક્વન્સી માર્ગદર્શન10 kHz
ઇનપુટ લોજિક થ્રેશોલ્ડ0.8 V (લો), 2.0 V (હાઈ)
વોલ્ટેજ ડ્રોપ / RDS(on) / સેચ્યુરેશન0.3 V at 1 A
થર્મલ મર્યાદાઓ150 °C
પેકેજDIP-16
નોંધો / વેરિઅન્ટ્સસામાન્ય રીતે નાના રોબોટિક્સ પ્રોજેક્ટ્સમાં ઉપયોગ થાય છે.

  • સતત કામગીરી માટે યોગ્ય હીટ-સિંકિંગની ખાતરી કરો.
  • શ્રેષ્ઠ કામગીરી માટે PWM સિગ્નલોને 10 kHz ની નીચે રાખો.
  • અવાજ ઘટાડવા માટે પાવર કનેક્શન્સ નજીક ડિકપ્લિંગ કેપેસિટર્સનો ઉપયોગ કરો.
  • ઉલટી ધ્રુવીયતા કનેક્શન્સથી સાવધ રહો; તે મોડ્યુલને નુકસાન પહોંચાડી શકે છે.
  • ઓવરહિટિંગ ટાળવા માટે હંમેશા રેટેડ કરંટ મર્યાદાઓ તપાસો.

વાયરિંગ સૂચનાઓ

Arduino સાથે L9110 ડ્યુઅલ DC મોટર કંટ્રોલર મોડ્યુલને વાયર કરવા માટે, પાવર પિનને કનેક્ટ કરીને શરૂ કરો. L9110 પરના VCC પિનને Arduino પરના 5V આઉટપુટ સાથે કનેક્ટ કરો, અને GND પિનને Arduino ના ગ્રાઉન્ડ પિનમાંથી એક સાથે કનેક્ટ કરો. આગળ, મોટર A માટે, A1A પિનને Arduino પરના ડિજિટલ પિન 2 સાથે અને A1B પિનને ડિજિટલ પિન 3 સાથે કનેક્ટ કરો. પછી, મોટર B માટે, B1A પિનને ડિજિટલ પિન 8 સાથે અને B1B પિનને ડિજિટલ પિન 9 સાથે કનેક્ટ કરો. ખાતરી કરો કે મોટર્સ L9110 મોડ્યુલ પર તેમના સંબંધિત આઉટપુટ સાથે યોગ્ય રીતે કનેક્ટેડ છે.
Arduino-wirign-for-L9110-motor-driver

કોડ ઉદાહરણો અને વોકથ્રુ

સેટઅપ ફંક્શનમાં, આપણે કંટ્રોલ પિનને આઉટપુટ તરીકે વ્યાખ્યાયિત કરવાની જરૂર છે. મોટર દિશાઓને અસરકારક રીતે નિયંત્રિત કરવા માટે Arduino માટે આ આવશ્યક છે:
void setup() {
  pinMode(B1A,OUTPUT);// પિનને આઉટપુટ તરીકે વ્યાખ્યાયિત કરો
  pinMode(B1B,OUTPUT);
  
  pinMode(A1A,OUTPUT);
  pinMode(A1B,OUTPUT);    
  delay(3000);
}
આ કોડ સ્નિપેટ મોટર કંટ્રોલ પિન સેટ કરે છે, ખાતરી કરે છે કે Arduino L9110 મોડ્યુલને સિગ્નલ મોકલી શકે છે. પ્રોગ્રામનો મુખ્ય લૂપ દિશાઓ બદલવા માટે વિવિધ પરિમાણો સાથે `motorA` અને `motorB` ફંક્શન્સને કૉલ કરીને મોટર્સને નિયંત્રિત કરે છે:
void loop() {
  motorA('R');// મોટર A ને જમણી તરફ ફેરવો
  delay(2000);
  motorA('L');// મોટર A ને ડાબી તરફ ફેરવો
  delay(2000);   
  motorA('O');// મોટર A ને બંધ કરો
  delay(2000); 
  ...
}
આ ભાગમાં, મોટર્સને જમણી અને ડાબી તરફ ફેરવવામાં આવે છે, દિશામાં ફેરફારો અવલોકન કરવા માટે વચ્ચે વિલંબ સાથે. `motorA` ફંક્શન ઇનપુટ દિશાના આધારે મોટર A ને નિયંત્રિત કરવા માટે વ્યાખ્યાયિત કરવામાં આવ્યું છે:
void motorA(char d) {
  if(d =='R'){
    digitalWrite(A1A,LOW);
    digitalWrite(A1B,HIGH); 
  } else if (d =='L'){
    digitalWrite(A1A,HIGH);
    digitalWrite(A1B,LOW);    
  } else {
    digitalWrite(A1A,LOW);
    digitalWrite(A1B,LOW);    
  }
}
આ ફંક્શન પ્રદાન કરેલી દિશા તપાસે છે અને મોટરને ઇચ્છિત દિશામાં ફેરવવા અથવા તેને બંધ કરવા માટે કંટ્રોલ પિનને તે મુજબ સેટ કરે છે.

પ્રદર્શન / શું અપેક્ષા રાખવી

જ્યારે તમે કોડ ચલાવો છો, ત્યારે તમારે મોટર્સ ડાબી અને જમણી રોટેશન વચ્ચે વૈકલ્પિક જોવી જોઈએ. વિલંબ તમને દિશામાં ફેરફારો સ્પષ્ટપણે અવલોકન કરવાની મંજૂરી આપે છે. ઉલટા કનેક્શન જેવી સામાન્ય ભૂલોથી સાવધ રહો, જે અણધારી વર્તણૂક અથવા ઘટકોને નુકસાન તરફ દોરી શકે છે. વધુમાં, ખાતરી કરો કે તમારો પાવર સપ્લાય તમે ઉપયોગ કરી રહ્યાં છો તે મોટર્સ માટે પૂરતો છે (વિડિયોમાં 00:00 પર).

છબીઓ

L9110_motor_driver_module-1
L9110_motor_driver_module-1
L9110_motor_driver_module-12
L9110_motor_driver_module-12
L9110_motor_driver_module-3
L9110_motor_driver_module-3
Arduino-wirign-for-L9110-motor-driver
Arduino-wirign-for-L9110-motor-driver
107-Arduino code for an L9110 dual DC motor controller module
ભાષા: C++
/*
 * Display number on a seven-segment display with Arduino
 * Written by Ahmad Shamshiri for Robojax.com
Date modified: Jun 11, 2018 at 17:20 in Ajax, Ontario, Canada
Watch video instructions for this code: https://youtu.be/-g6Q9lSHDzg

Code is provided for free AS IS without warranty. 
You can share this code as long as you keep the above note intact.
 */

const int A1A = 2;//define pin 2 for A1A
const int A1B = 3;//define pin 3 for A1B

const int B1A = 8;//define pin 8 for B1A
const int B1B = 9;//define pin 9 for B1B




void setup() {
  pinMode(B1A,OUTPUT);// define pin as output
  pinMode(B1B,OUTPUT);
  
  pinMode(A1A,OUTPUT);
  pinMode(A1B,OUTPUT);    
  delay(3000);
}

void loop() {

  motorA('R');// Turn motor A to RIGHT
  delay(2000);
   motorA('L');// Turn motor A to LEFT
  delay(2000);   
  motorA('O');// Turn motor A OFF
  delay(2000); 
    
  motorB('R');// Turn motor B to RIGHT
  delay(2000);
   motorB('L');// Turn motor B to LEFT
  delay(2000); 
  motorB('O');// Turn motor B OFF
  delay(2000); 
   
  motorA('R');// Turn motor A to RIGHT
  motorB('R'); // Turn motor A to RIGHT 
  delay(2000);
  motorA('L');// Turn motor A to LEFT
  motorB('L');// Turn motor B to LEFT     
  delay(3000);
  motorA('O');// Turn motor A OFF
  motorB('O');// Turn motor B OFF
  delay(5000);
   
}

/*
 * @motorA
 * Activation rotation of motor A
 * d is the direction
 * R = Right
 * L = Left
 */
void motorA(char d)
{
  if(d =='R'){
    digitalWrite(A1A,LOW);
    digitalWrite(A1B,HIGH); 
  }else if (d =='L'){
    digitalWrite(A1A,HIGH);
    digitalWrite(A1B,LOW);    
  }else{
    //Robojax.com L9110 Motor Tutorial
    // Turn motor OFF
    digitalWrite(A1A,LOW);
    digitalWrite(A1B,LOW);    
  }
}// motorA end


/*
 * @motorB
 * Activation rotation of motor B
 * d is the direction
 * R = Right
 * L = Left
 */
void motorB(char d)
{

    if(d =='R'){
      digitalWrite(B1A,LOW);
      digitalWrite(B1B,HIGH); 
    }else if(d =='L'){
      digitalWrite(B1A,HIGH);
      digitalWrite(B1B,LOW);    
    }else{
    //Robojax.com L9110 Motor Tutorial
    // Turn motor OFF      
      digitalWrite(B1A,LOW);
      digitalWrite(B1B,LOW);     
    }

}// motorB end

તમને જોઈતી વસ્તુઓ

સંસાધનો અને સંદર્ભો

હજી સુધી કોઈ સંસાધનો નથી.

ફાઇલો📁

ડેટાશીટ (pdf)

  • L9110 Motor driver module datasheet
    L9110 motor driver module datasheet covering pinout, specifications, and application circuit for driving DC motors.
    robojax_L9110_datasheet.pdf 0.20 MB

Fritzing ફાઇલ