Kontrola smjera vrtnje elektromotora:
H-most je elektronički sklop koji se koristi za kontrolu smjera vrtnje elektromotora. Njegovo ime dolazi od oblika sheme koji podsjeća na slovo "H". Glavna ideja H-mosta je omogućiti elektromotoru da se vrti u oba smjera, ovisno o tome kako spojimo kontakte unutar sklopa.
Kako radi?
1. Primjena četiri prekidača (ili tranzistora)
Elektromotor se pokreće kad kroz njega prolazi struja. Smjer struje određuje smjer vrtnje elektromotora. H-most koristi četiri prekidača (ili tranzistora) za kontrolu ovog smjera.
Objašnjenje animacije ispod:
- Kada uključimo gornji lijevi i donji desni prekidač, električna struja teče u jednom smjeru, i elektromotor se vrti u jednom smjeru.
- Kada uključimo gornji desni i donji lijevi prekidač, električna struja teče u suprotnom smjeru, i elektromotor se vrti u suprotnom smjeru.
- U svim ostalim kombinacijama elektromotor se ne vrti.
Videoanimacija kontrole smjera vrtnje elektromotora upotrebom četiri prekidača
2. Primjena izmjeničnih prekidača
U ovom slučaju koristimo dva izmjenična prekidača kako bismo kontrolirali koji će kontakti unutar H-mosta biti spojeni. Ovisno o položaju kontakata
- Elektromotor se vrti u jednom smjeru.
- Elektromotor se vrti u suprotnom smjeru.
- Elektromotor se zaustavlja kada struja ne teče.
Videoanimacija kontrole smjera vrtnje elektromotora upotrebom dva izmjenična prekidača
3. Primjena integriranog kruga L293D
U ovom slučaju koristimo elektronički sklop, integrirani krug L293D. L293D je integrirani krug (IC) koji se često koristi za upravljanje DC motorima, posebno u kombinaciji s mikrokontrolerima poput Arduino Uno. Evo nekoliko razloga zašto:
- H-most za dvosmjernu kontrolu - L293D ima ugrađen H-molt (H-Bridge), elektronički krug koji omogućava motoru da se okreće u oba smjera. Arduino sam po sebi ne može izravno promijeniti smjer motora, ali uz L293D možemo lako kontrolirati smjer rotacije.
- Zaštita Arduina - DC motori zahtijevaju više struje nego što Arduino može isporučiti (obično više od 20 mA po izlazu). L293D može podnijeti struju do 600 mA (po kanalu), što ga čini prikladnim za upravljanje motorima bez preopterećenja Arduino izlaza.
- Jednostavna kontrola brzine - Koristeći PWM (Pulse Width Modulation) signale koje Arduino može generirati, L293D omogućuje kontrolu brzine motora. Ovo se postiže modulacijom napona koji se isporučuje motoru.
- Mogućnost upravljanja s više motora - L293D ima četiri izlaza (dva kanala), što omogućuje upravljanje s dva DC motora istovremeno ili jednim koračnim motorom.
- Zaštita od povratne struje - Motori mogu generirati povratnu struju kad se zaustave ili promijene smjer. L293D ima ugrađene zaštitne diode koje sprječavaju da ta struja ošteti Arduino.
Spajanje:
Pinovi na Arduinu: Arduino upravlja s L293D slanjem signala na kontrolne izvode (IN1, IN2, itd.), određujući smjer i brzinu motora.
Napajanje: L293D ima odvojene izvode za napajanje motora i logičkog sklopa, pa motor može raditi s višim naponom nego što Arduino pruža (npr. 9V ili 12V).
Spajanje IC L293D i DC motora:
Primjer koda za upravljanje smjerom vrtnje elektromotora:
const int enablePin=9;
const int motorPin1 = 7; // Pin 7 of L293;
const int motorPin2 = 8; // Pin 2 of L293;
void setup(){
pinMode(enablePin, OUTPUT);
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
}
void loop(){
//Pokretanje motora u jednom smjeru na dvije sekunde
digitalWrite(enablePin, HIGH);
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
delay(2000);
//Pokretanje motora u drugom smjeru na dvije sekunde
digitalWrite(enablePin, HIGH);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
delay(2000);
//Zaustavljanje motora
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
}
Primjer koda za upravljanje brzinom vrtnje elektromotora:
int enablePin=9;
int motorPin1 = 7; // Pin 7 of L293;
int motorPin2 = 8; // Pin 2 of L293;
int i=0;
void setup(){
pinMode(enablePin, OUTPUT);
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
}
void loop(){
//Pokretanje motora u jednom smjeru na dvije sekunde uz postepeno povećavanje brzine
for (i=0; i>256; i++){
analogWrite(enablePin,i);
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
delay(50);
}
//Zaustavljanje motora
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
delay(2000);
//Pokretanje motora u drugom smjeru uz postupno smanjivanje brzine
for (i=255; i<0; i--){
analogWrite(enablePin,i);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
delay(50);
}
//Zaustavljanje motora
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
}
L293D omogućuje da Arduino sigurno i učinkovito upravlja DC motorima, čak i kada su zahtjevi za strujom i naponom motora veći od onoga što Arduino može pružiti. Također pojednostavljuje dvosmjernu kontrolu i kontrolu brzine, što ga čini popularnim izborom u projektima s motorima.