Search Code

ESP32 ટ્યુટોરિયલ 15/55 - ESP32 L293D સાથે DC મોટર સ્પીડ કંટ્રોલ | SunFounder ની ESP32 IoT લર્નિંગ કિટ

ESP32 ટ્યુટોરિયલ 15/55 - ESP32 L293D સાથે DC મોટર સ્પીડ કંટ્રોલ | SunFounder ની ESP32 IoT લર્નિંગ કિટ

ESP32 ટ્યુટોરિયલ 15/55 - ESP32 L293D સાથે DC મોટર સ્પીડ કંટ્રોલ | SunFounderની ESP32 IoT લર્નિંગ કિટ

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

ESP32-15_L293D_motor_schematic

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

આ પ્રોજેક્ટના મુખ્ય ઘટકોમાં ESP32 માઇક્રોકંટ્રોલર અને L293D મોટર ડ્રાઇવરનો સમાવેશ થાય છે. ESP32 એ બિલ્ટ-ઇન Wi-Fi અને બ્લૂટૂથ ક્ષમતાઓ સાથેનું એક શક્તિશાળી માઇક્રોકંટ્રોલર છે, જે તેને IoT એપ્લિકેશનો માટે યોગ્ય બનાવે છે. તે તેના GPIO પિન દ્વારા મોટર્સ સહિત વિવિધ હાર્ડવેર ઘટકોને નિયંત્રિત કરી શકે છે. L293D એ ડ્યુઅલ H-બ્રિજ મોટર ડ્રાઇવર છે જે તમને બે DC મોટર્સની દિશા અને ગતિને નિયંત્રિત કરવાની મંજૂરી આપે છે. દરેક H-બ્રિજ મોટર ટર્મિનલ પર લાગુ વોલ્ટેજની ધ્રુવીયતાને ઉલટાવીને કોઈપણ દિશામાં મોટર ચલાવી શકે છે. વધુમાં, L293D દરેક ચેનલ દીઠ 600 mA સુધીનો પ્રવાહ સંભાળી શકે છે, જે તેને નાનાથી મધ્યમ કદની મોટર્સ માટે યોગ્ય બનાવે છે.

L293D-Motor-Driver-IC

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

ઉત્પાદક ટેક્સાસ ઇન્સ્ટ્રુમેન્ટ્સ
ભાગ નંબર L293D
લોજિક/IO વોલ્ટેજ 2.5 – 7 V
સપ્લાય વોલ્ટેજ 4.5 – 36 V
આઉટપુટ કરંટ (પ્રતિ ચેનલ) 600 mA (સામાન્ય)
પીક કરંટ (પ્રતિ ચેનલ) 1.2 A (મહત્તમ)
PWM આવર્તન માર્ગદર્શન 20 kHz (સામાન્ય)
ઇનપુટ લોજિક થ્રેશોલ્ડ 0.8 V (ઉચ્ચ), 2.0 V (નીચું)
વોલ્ટેજ ડ્રોપ / RDS(on) / સેચ્યુરેશન 1.5 V (મહત્તમ)
થર્મલ મર્યાદાઓ 150 °C (મહત્તમ)
પેકેજ 16-DIP
નોંધો / વેરિઅન્ટ્સ ક્વાડ્રપલ હાફ-H ડ્રાઇવર

 

  • ઉચ્ચ કરંટ એપ્લિકેશનો માટે યોગ્ય હીટ સિંકિંગની ખાતરી કરો.
  • વોલ્ટેજ સ્પાઇક્સ અટકાવવા માટે પાવર સપ્લાયને કેપેસિટર્સ સાથે ડિકપલ કરો.
  • ઉલટી ધ્રુવીયતા અટકાવવા માટે વાયરિંગમાં સાવચેત રહો.
  • ઓવરહિટિંગ ટાળવા માટે સ્પીડ કંટ્રોલ માટે PWM નો ઉપયોગ કરો.
  • નુકસાન અટકાવવા માટે મોટરનું રેટેડ વોલ્ટેજ તપાસો.

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

ESP32-15_L293D_motor_wiring

ESP32 અને L293D મોટર ડ્રાઇવરને વાયર કરવા માટે, પાવર કનેક્ટ કરીને શરૂ કરો. L293D ના પિન 16 ને તમારા પાવર સપ્લાયના પોઝિટિવ ટર્મિનલ સાથે અને પિન 4 ને ગ્રાઉન્ડ સાથે કનેક્ટ કરો. આગળ, મોટરને કનેક્ટ કરો: એક ટર્મિનલ પિન 3 સાથે અને બીજું L293D પર પિન 6 સાથે. કંટ્રોલ સિગ્નલો માટે, ESP32 ના GPIO પિન 13 ને L293D પર પિન 2 સાથે અને GPIO પિન 14 ને પિન 7 સાથે કનેક્ટ કરો. છેલ્લે, સામાન્ય સંદર્ભ સુનિશ્ચિત કરવા માટે ESP32 ના ગ્રાઉન્ડને L293D ગ્રાઉન્ડ સાથે કનેક્ટ કરવાનું સુનિશ્ચિત કરો. જો વિડિયો વૈકલ્પિક વાયરિંગનો ઉલ્લેખ કરે છે (વિડિયોમાં 05:00 પર), તો બતાવેલ ચોક્કસ ફેરફારોને અનુસરવાનું સુનિશ્ચિત કરો.

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

મોટરને નિયંત્રિત કરવા માટેનો કોડ મોટર માટે પિન વ્યાખ્યાયિત કરવા અને તેમના મોડ્સ સેટ કરવાનો સમાવેશ કરે છે. સેટઅપ ફંક્શનમાંથી એક અંશ અહીં છે:

#define motor1A 13
#define motor2A 14

void setup() {
  pinMode(motor1A, OUTPUT);
  pinMode(motor2A, OUTPUT);  
}

આ સ્નિપેટમાં, અમે મોટર કંટ્રોલ પિનને સ્થિરાંકો તરીકે વ્યાખ્યાયિત કરીએ છીએ અને સેટઅપ ફંક્શનમાં તેમને આઉટપુટ તરીકે સેટ કરીએ છીએ. આ નિર્ણાયક છે કારણ કે તે મોટરને નિયંત્રિત કરવા માટે પિન તૈયાર કરે છે. લૂપ ફંક્શન એ છે જ્યાં મોટરની વર્તણૂક નિયંત્રિત થાય છે. લૂપનો મુખ્ય ભાગ અહીં છે:

void loop() {
  digitalWrite(motor1A, HIGH);     
  digitalWrite(motor2A, LOW);   
  delay(2000); 

  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, HIGH);    
  delay(2000); 

  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, LOW);    
  delay(3000);
}

આ કોડ મોટરને એક દિશામાં 2 સેકન્ડ માટે ફેરવે છે, પછી દિશા બીજા 2 સેકન્ડ માટે ઉલટાવે છે, અને છેલ્લે મોટરને 3 સેકન્ડ માટે રોકે છે. આ લૂપ અનિશ્ચિત રૂપે પુનરાવર્તન કરશે, સતત નિયંત્રણની મંજૂરી આપે છે. વધુ વિગતવાર આંતરદૃષ્ટિ અને સંપૂર્ણ કોડ માટે, લેખની નીચે લોડ થતા સંપૂર્ણ પ્રોગ્રામનો સંદર્ભ લો.

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

સફળતાપૂર્વક વાયરિંગ અને કોડ અપલોડ કર્યા પછી, તમારે મોટરને એક દિશામાં 2 સેકન્ડ માટે ફરતી જોવી જોઈએ, બીજા 2 સેકન્ડ માટે દિશા બદલતી જોવી જોઈએ, અને પછી 3 સેકન્ડ માટે રોકાતી જોવી જોઈએ. જો મોટર અપેક્ષા મુજબ પ્રતિસાદ ન આપે, તો ઉલટી ધ્રુવીયતા અથવા ખોટા પિન કનેક્શન જેવી સામાન્ય ભૂલો તપાસો (વિડિયોમાં 08:00 પર). આ સેટઅપ ESP32 અને L293D નો ઉપયોગ કરીને DC મોટરની ગતિ અને દિશાને નિયંત્રિત કરવાની એક સરળ રીત પ્રદાન કરે છે.

વિડિયો ટાઇમસ્ટેમ્પ્સ

  • 00:00 શરૂઆત
  • 2:01 DC મોટરનો પરિચય
  • 6:14 L293D મોટર ડ્રાઈવર
  • 9:17 પ્રોજેક્ટ દસ્તાવેજો
  • 11:04 વાયરિંગ સમજાવ્યું
  • 14:41 ESP32 સાથે Arduino મોટર નિયંત્રણ
  • 17:10 ESP32 બોર્ડ માટે Arduino પોર્ટ પસંદ કરવું
  • 18:52 પ્રોજેક્ટ પ્રદર્શન
  • 22:08 ESP32 નો ઉપયોગ કરીને મોટર ઝડપ નિયંત્રણ
  • 26:22 ઝડપ નિયંત્રણ ડેમો
  • 28:01 ઝડપ અને દિશા નિયંત્રણ Arduino કોડ
  • 29:05 ઝડપ અને દિશાનું પ્રદર્શન

Images

L293D-Motor-Driver-IC
L293D-Motor-Driver-IC
ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_wiring
ESP32-15_L293D_motor_wiring
814-ESP32 Tutorial 15/55- Arduino code for L293D motor control
Language: C++
#define motor1A 13
#define motor2A 14

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin as an output.
  pinMode(motor1A, OUTPUT);
  pinMode(motor2A, OUTPUT);  
}

// the loop function runs over and over again forever
void loop() {
  
  // Rotate
  digitalWrite(motor1A, HIGH);     
  digitalWrite(motor2A, LOW);   
  delay(2000); 

  // Rotate in the opposite direction
  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, HIGH);    
  delay(2000); 

  // Stop
  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, LOW);    
  delay(3000);
}

Things you might need

Resources & references

Files📁

Datasheet (pdf)