V tomto příspěvku se budeme učit o L298N duálním H-můstku s ovladačem stejnosměrného motoru, který lze použít k pohonu kartáčovaných stejnosměrných motorů a krokových motorů s mikrokontroléry a integrovanými obvody.
Přehled
Modulární desky s obvody jsou nejlepším šetřičem času pro návrháře elektroniky, což také snižuje chyby prototypování. To je většinou preferováno programátory, kteří píší kód pro mikroprocesory tráví většinu času psaním kódů před počítačem a mají méně času na pájení diskrétních elektronických součástek.
Proto můžeme najít spoustu a spoustu různých modulárních obvodů vyrobených právě pro desky Arduino, je snadné rozhraní a při navrhování našeho prototypu mají výhodu nejméně hardwarových chyb.
Ilustrace modulu L298N:
Modul je postaven na IC L298N a je běžně dostupný na webových stránkách elektronického obchodu.
Používáme Ovladače stejnosměrného motoru protože integrované obvody a mikrokontroléry nejsou schopny dodávat proud obecně ne více než 100 miliampérů. Mikrokontroléry jsou chytré, ale nejsou silné. Tento modul přidá Arduinu, integrovaným obvodům a dalším mikrokontrolérům nějaké svaly k řízení vysoce výkonných stejnosměrných motorů.
Může řídit 2 stejnosměrné motory současně až do 2 A každý nebo jeden krokový motor. Můžeme ovládat rychlost pomocí PWM a také jeho směru otáčení motorů.
Tento modul je ideální pro stavební roboty a pozemní projekty, jako jsou autíčka.
Podívejme se na technické podrobnosti modulu L298N.
Popis kolíku:
· Na levé straně jsou porty OUT1 a OUT2, které slouží k připojení stejnosměrného motoru. Podobně OUT3 a OUT4 pro jiný stejnosměrný motor.
· ENA a ENB jsou aktivační piny, připojením ENA k vysoké nebo + 5V umožňuje porty OUT1 a OUT2. Pokud připojíte kolík ENA k nízkému nebo uzemnění, deaktivuje se OUT1 a OUT2. Podobně pro ENB a OUT3 a OUT4.
· IN1 až IN4 jsou vstupní piny, které budou připojeny k Arduinu. Pokud zadáte IN1 + Ve a IN2 –Ve z mikrokontroléru nebo ručně, OUT1 se zvýší a OUT2 se sníží, takže můžeme řídit motor.
· Pokud zadáte IN3 high, OUT4 se změní na vysokou a pokud zadáte IN4 low, OUT3 se změní na nízkou, nyní můžeme řídit jiný motor.
· Pokud chcete obrátit směr otáčení motoru, stačí změnit polaritu IN1 a IN2, obdobně pro IN3 a IN4.
· Použitím signálu PWM na ENA a ENB můžete ovládat rychlost motorů na dvou různých výstupních portech.
· Deska může přijímat nominálně od 7 do 12V. Můžete dodávat energii na +12 V terminálu a uzemnit na 0 V.
· Terminál + 5V je VÝSTUP, který lze v případě potřeby použít k napájení Arduina nebo jiného modulu.
Propojky:
Existují tři propojovací kolíky, které můžete posouvat nahoru, viz ilustrovaný obrázek.
Všechny propojky budou nejprve spojeny, podle potřeby je odpojte nebo ponechejte.
Jumper 1 (viz obrázek):
· Pokud potřebujete motor napájet více než 12V, musíte odpojit propojku 1 a přivést požadované napětí (maximálně 35V) na svorku 12v. Přineste další 5V napájení a vstup na svorce + 5V. Ano, musíte zadat 5V, pokud potřebujete použít více než 12V (když je odstraněna propojka 1).
· 5V vstup je pro správnou funkci IC, protože odpojení můstku deaktivuje vestavěný 5V regulátor a chrání před vyšším vstupním napětím ze svorky 12v.
· Svorka + 5V funguje jako výstup, pokud je váš zdroj mezi 7 až 12V a funguje jako vstup, pokud použijete více než 12V a propojka je odstraněna.
· Většina projektů potřebuje pouze napětí motoru pod 12 V, takže ponechejte propojku tak, jak je, a jako výstup použijte svorku + 5 V.
Jumper 2 a Jumper 3 (viz obrázek):
· Pokud odstraníte tyto dvě propojky, musíte zadat signál povolení a zakázání z mikrokontroléru, většina uživatelů dává přednost odstranění těchto dvou propojek a použití signálu z mikrokontroléru.
· Ponecháte-li tyto dva propojky, výstupy OUT1 až OUT4 budou vždy povoleny. Pamatujte na propojku ENA pro OUT1 a OUT2. Propojka ENB pro OUT3 a OUT4.
Nyní se podívejme na praktický obvod, jak můžeme motory rozhraní, Arduino a napájení modulu ovladače.
Schéma:
Výše uvedený okruh lze použít pro autíčka, pokud odpovídajícím způsobem změníte kód a přidáte joystick.
Musíte pouze napájet modul L289N a modul napájí Arduino přes terminál Vin.
Výše uvedený obvod bude otáčet oba motory po dobu 3 sekund ve směru hodinových ručiček a zastaví se na 3 sekundy. Poté se motor bude otáčet po dobu 3 sekund proti směru hodinových ručiček a po dobu 3 sekund se zastaví. To ukazuje H-můstek v akci.
Poté se oba motory začnou pomalu točit proti směru hodinových ručiček a postupně zvyšují rychlost na maximum a postupně snižují otáčky na nulu. To ukazuje řízení otáček motorů pomocí PWM.
Program:
//----------------Program developed by R.GIRISH--------------//
const int Enable_A = 9
const int Enable_B = 10
const int inputA1 = 2
const int inputA2 = 3
const int inputB1 = 4
const int inputB2 = 5
void setup()
{
pinMode(Enable_A, OUTPUT)
pinMode(Enable_B, OUTPUT)
pinMode(inputA1, OUTPUT)
pinMode(inputA2, OUTPUT)
pinMode(inputB1, OUTPUT)
pinMode(inputB2, OUTPUT)
}
void loop()
{
//----Enable output A and B------//
digitalWrite(Enable_A, HIGH)
digitalWrite(Enable_B, HIGH)
//----------Run motors-----------//
digitalWrite(inputA1, HIGH)
digitalWrite(inputA2, LOW)
digitalWrite(inputB1 , HIGH)
digitalWrite(inputB2, LOW)
delay(3000)
//-------Disable Motors----------//
digitalWrite(Enable_A, LOW)
digitalWrite(Enable_B, LOW)
delay(3000)
//-------Reverse Motors----------//
digitalWrite(Enable_A, HIGH)
digitalWrite(Enable_B, HIGH)
digitalWrite(inputA1, LOW)
digitalWrite(inputA2, HIGH)
digitalWrite(inputB1 , LOW)
digitalWrite(inputB2, HIGH)
delay(3000)
//-------Disable Motors----------//
digitalWrite(Enable_A, LOW)
digitalWrite(Enable_B, LOW)
delay(3000)
//----------Speed rise----------//
for(int i = 0 i < 256 i++)
{
analogWrite(Enable_A, i)
analogWrite(Enable_B, i)
delay(40)
}
//----------Speed fall----------//
for(int j = 256 j > 0 j--)
{
analogWrite(Enable_A, j)
analogWrite(Enable_B, j)
delay(40)
}
//-------Disable Motors----------//
digitalWrite(Enable_A, LOW)
digitalWrite(Enable_B, LOW)
delay(3000)
}
//----------------Program developed by R.GIRISH--------------//
Autorův prototyp:
Máte-li jakékoli dotazy týkající se tohoto projektu budiče stejnosměrného motoru L298N, neváhejte vyjádřit v sekci komentáře, můžete obdržet rychlou odpověď.
Předchozí: Více obvodů nabíječky baterií pomocí kondenzátoru Dump Další: Joystickem řízené 2,4 GHz RC auto pomocí Arduina