የ Arduino ኮድ ለ L9110 ባለሁለት የዲሲ ሞተር መቆጣጠሪያ ሞጁል
በዚህ ትምህርት ውስጥ፣ L9110 ባለሁለት ሞተር መቆጣጠሪያ ሞጁል ከአርዱኖ ጋር በመጠቀም ሁለት የዲሲ ሞተሮችን እንዴት መቆጣጠር እንደምንችል እንመረምራለን። ይህ ፕሮጀክት የእ প্রতিটি ሞተርን አቅጣጫ እና ፍጥነት እንዲያስተዳድሩ ያስችልዎታል፣ ይህም እንደ ሮቦቲክስ እና አውቶሜሽን ላሉ ሁለገብ አፕሊኬሽኖች ያገለግላል። በዚህ መመሪያ መጨረሻ ላይ፣ ክፍሎቹን እንዴት ማገናኘት እና ሞተሮችዎን በተቀላጠፈ ሁኔታ እንዲሰሩ ለማድረግ አስፈላጊውን ኮድ እንዴት መጻፍ እንደሚችሉ ግልጽ ግንዛቤ ይኖርዎታል። ማብራሪያ ከፈለጉ፣ ቪዲዮውን (በቪዲዮው 00:00 ላይ) መመልከትዎን ያረጋግጡ።
ሃርድዌር ተብራርቷል
የL9110 ባለሁለት የዲሲ ሞተር መቆጣጠሪያ ሞጁል ሁለት ሞተሮችን በአንድ ጊዜ እንዲቆጣጠሩ ያስችልዎታል። የሞተር ቮልቴጅን ፖላሪቲ እንዲቀይሩ የሚያስችሉዎት ሁለት የH-ብሪጅ ወረዳዎች አሉት። ይህ ማለት የመቆጣጠሪያ ፒኖቹን በመቀያየር የእያንዳንዱን ሞተር አቅጣጫ በቀላሉ መቀየር ይችላሉ ማለት ነው። ሞጁሉ አራት ቁልፍ ፒኖች አሉት፡ ለእያንዳንዱ ሞተር ሁለት የመዞሪያ አቅጣጫን ለመቆጣጠር። አንዱን ፒን ከፍ አድርገው ሌላውን ዝቅ ሲያደርጉ፣ ሞተሩ በአንድ አቅጣጫ ይሽከረከራል፤ የፒን ሁኔታዎችን መቀልበስ በተቃራኒ አቅጣጫ እንዲሽከረከር ያደርገዋል። ይህ ተለዋዋጭነት ትክክለኛ የሞተር እንቅስቃሴ ቁጥጥር ለሚያስፈልግዎት እንደ ሮቦቲክስ ላሉ አፕሊኬሽኖች አስፈላጊ ነው።የዳታሼት ዝርዝሮች
| አምራች | STMicroelectronics |
|---|---|
| የክፍል ቁጥር | L9110 |
| የሎጂክ/IO ቮልቴጅ | 2.5–5.5 ቮ |
| የአቅርቦት ቮልቴጅ | 2.5–12 ቮ |
| የውጤት ኤሌክትሪክ (በአንድ ቻናል) | 1 ኤ |
| ከፍተኛ ኤሌክትሪክ (በአንድ ቻናል) | 2 ኤ |
| የPWM ድግግሞሽ መመሪያ | 10 kHz |
| የግቤት ሎጂክ ገደቦች | 0.8 ቮ (ዝቅተኛ)፣ 2.0 ቮ (ከፍተኛ) |
| የቮልቴጅ ጠብታ / RDS(on) / ሳቹሬሽን | 0.3 ቮ በ1 ኤ |
| የሙቀት ገደቦች | 150 °C |
| ፓኬጅ | DIP-16 |
| ማስታወሻዎች / ልዩነቶች | በትንሽ የሮቦቲክስ ፕሮጀክቶች ውስጥ በብዛት ጥቅም ላይ ይውላል። |
- ለቀጣይ አሠራር ትክክለኛ የሙቀት መስጫ (ሒትሲንክ) ያረጋግጡ።
- ለተሻለ አፈጻጸም የPWM ሲግናሎችን ከ10 kHz በታች ያቆዩ።
- ጫጫታን ለመቀነስ በኃይል ግንኙነቶች አጠገብ የዲኮፕሊንግ ካፓሲተሮችን ይጠቀሙ።
- የተገላቢጦሽ ፖላሪቲ ግንኙነቶችን ይጠንቀቁ፤ ሞጁሉን ሊጎዱ ይችላሉ።
- ከመጠን በላይ ሙቀትን ለማስቀረት ሁልጊዜ የተመዘገበውን የኤሌክትሪክ ገደብ ያረጋግጡ።
የሽቦ ግንኙነት መመሪያዎች
የL9110 ባለሁለት የዲሲ ሞተር መቆጣጠሪያ ሞጁልን ከአርዱኖ ጋር ለማገናኘት፣ የኃይል ፒኖቹን በማገናኘት ይጀምሩ። በL9110 ላይ ያለውን የVCC ፒን ከአርዱኖው 5V ውጤት ጋር ያገናኙ፣ እና የGND ፒንን ከአርዱኖው የመሬት (ግራውንድ) ፒኖች አንዱ ጋር ያገናኙ። በመቀጠል፣ ለሞተር A፣ የA1A ፒንን ከአርዱኖው ዲጂታል ፒን 2 ጋር እና የA1B ፒንን ከዲጂታል ፒን 3 ጋር ያገናኙ። ከዚያም፣ ለሞተር B፣ የB1A ፒንን ከዲጂታል ፒን 8 እና የB1B ፒንን ከዲጂታል ፒን 9 ጋር ያገናኙ። ሞተሮቹ በL9110 ሞጁል ላይ ካሉት የየራሳቸው ውጤቶች ጋር በትክክል መገናኘታቸውን ያረጋግጡ።
የኮድ ምሳሌዎች እና ማብራሪያ
በሴትአፕ (setup) ተግባር ውስጥ፣ የመቆጣጠሪያ ፒኖቹን እንደ ውጤት (output) መግለጽ አለብን። ይህ አርዱኖ የሞተር አቅጣጫዎችን በብቃት እንዲቆጣጠር አስፈላጊ ነው፡void setup() {
pinMode(B1A,OUTPUT);// ፒንን እንደ ውጤት ይግለጹ
pinMode(B1B,OUTPUT);
pinMode(A1A,OUTPUT);
pinMode(A1B,OUTPUT);
delay(3000);
}
ይህ የኮድ ቁራጭ የሞተር መቆጣጠሪያ ፒኖቹን ያዘጋጃል፣ አርዱኖ ለL9110 ሞጁል ሲግናሎችን መላክ እንዲችል ያረጋግጣል።
የፕሮግራሙ ዋና ሉፕ (loop) ሞተሮቹን የሚቆጣጠረው `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 ላይ)።
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
እንደሚያስፈልግዎት ይችላል
-
አማዞን
-
ኢቤይ
-
አሊኤክስፕሬስPurchase L9110 motor driver from AliExpress-2s.click.aliexpress.com
ምንጮች እና ምንጮች
አሁን ምንም ምንጮች የለም።
ፋይሎች📁
የዳታ ማዕከል (pdf)
-
L9110 Motor driver module datasheetL9110 motor driver module datasheet covering pinout, specifications, and application circuit for driving DC motors.
robojax_L9110_datasheet.pdf0.20 MB
ፍሪትዚንግ ፋይል
-
L9110 H-bridge Motor driver module
L9110 H-bridge module.fzpz0.04 MB