Řídicí obvod motoru s vysokým proudem pomocí Arduina

Řídicí obvod motoru s vysokým proudem pomocí Arduina

V tomto projektu diskutujeme o tom, jak na to řídit otáčky motoru pomocí obvodu Arduino PWM a jak implementovat ovládání zpětného chodu vpřed nebo směru u stejnosměrného motoru pomocí Arduina pomocí několika tlačítkových spínačů. Pomocí tohoto nastavení lze ovládat jakýkoli silnoproudý motor až do 30 ampérů

PodleAnkit Negi



Motor je velmi důležitou součástí v elektrických a elektronických zařízeních, protože se používají jako akční členy v mnoha oblastech.



Potřebujeme motory pro malé aplikace, jako je robotika, a také v oblastech, kde se používají těžké motory (průmyslová odvětví atd.).

Nyní lze motory, které se používají pro malé aplikace, snadno ovládat, protože nemají velký proud (méně než 2amp).



A tyto motory lze snadno ovládat pomocí mikrokontroléru jako arduino s ic ovladače motoru jsou jako L298 nebo L293D .

Ale motory, které se používají pro těžké účely (větší než 10amp), nelze ovládat pomocí těchto IC protože mohou dodávat omezený proud (max. 2amp). Jak jsou tedy tyto motory řízeny?

Odpověď je jednoduchá: pomocí relé , který funguje jako spínač, tj. spíná velký proud pomocí malého proudu. Tímto způsobem lze dosáhnout dvou věcí:



1. Spuštění samotného silnoproudého motoru.

2. Odpojte obvod a zabraňte tak otřesům.

Nyní lze k přepínání těchto relé použít jakýkoli mikrokontrolér. Budeme zde používat Arduino UNO.

KOMPONENTY POŽADOVANÉ PRO TENTO PROJEKT:

1. ARDUINO UNO: dát vstupní logiku na primární stranu relé.

2. SPDT RELÉ -2: pro otáčení v obou směrech jsou zapotřebí dvě relé. Kontakty musí být dimenzovány tak, aby vyhovovaly specifikacím motoru s vysokým proudem

Přenos obrazu modré barvy relé zobrazující N / O N / C a podrobnosti pólu3. Power Mosfet: Můžete použít IRF1010 mosfet tlačítkový mikrospínač

4. BATERIE (12 V): pro napájení motoru.

5. DVA TLAČÍTKA: dávají vstupy arduinu (tj. Když jsou stisknuty a když nejsou stisknuty)

10k 1/4 wattový rezistor

6. DVA 10K ODPORY: pro odskakování (vysvětleno níže)

Řídicí obvod motoru s vysokým proudem pomocí Arduina

7. PŘIPOJOVACÍ DRÁTY: pro připojení.

SCHÉMA:

Řídicí obvod motoru PWM Arduino

Proveďte připojení podle obrázku.

1. Připojte normálně otevřenou svorku obou relé na kladnou svorku baterie a normálně zavřenou svorku na zápornou svorku baterie.

2. Připojte motor mezi zbývající svorku (ze tří) každého relé.

3. Připojte jednu svorku na primární straně relé k výstupním pinům arduina, jak je uvedeno v kódu, a druhou svorku k zemi.

4. Připojte jednu svorku obou tlačítek k 5v pinu Arduina a druhou svorku ke vstupním pinům, jak je uvedeno v kódu.

4. ** Nezapomeňte připojit rezistory, protože jsou velmi důležité pro správnou funkci tohoto obvodu, jak je vysvětleno níže:

PROČ JSOU SPOJENY ODPORY?

Možná zjistíte, že na vstupní piny Arduina není vůbec nic připojeno, ale to neznamená, že tyto pinouty mohou být logickou nulou, když je označený spínač otevřený

Spíše to znamená, že když je přepínač otevřený, arduino může mít libovolnou náhodnou hodnotu mezi logikou 0 a logikou 1, což není vůbec dobré (tomu se říká skákací).

To, co zde chceme, je, že když není nic připojeno ke vstupnímu kolíku, tj. Tlačítko je otevřené, arduino vezme 0 vstupu z kolíku.

Aby toho bylo dosaženo, je pin přímo připojen k zemi před tlačítkem pomocí rezistoru. Pokud je přímo připojen k zemi bez odporu, existuje velká šance, že vyhoří, protože kolík bude zkratován k zemi a protéká obrovské množství proudu. Aby se tomu zabránilo, je mezi nimi připojen odpor.

Tento rezistor se nazývá pulldown rezistor, protože táhne logiku na pin na 0. A tento proces se nazývá debouncing.

KÓD:

Vypalte tento kód do svého arduina.

int x// initialise variables
int y
int z
int w
void setup() {
pinMode(6,OUTPUT)//initialise pin 6 as output to RL1
pinMode(9,OUTPUT)//initialise pin 9 as output to RL2
pinMode(3,INPUT)//initialise pin 3 as input
pinMode(4,INPUT)//initialise pin 4 as input
pinMode(10,OUTPUT)//initialise PWM pin 8 as output to gate of mosfet
pinMode(A0,INPUT)//initialise pin A0 as input from pot.
Serial.begin(9600)
}
void loop() {
z=analogRead(A0)// read values from potentiometer in terms of voltage
w= map(z,0,1023,0,255)// map those values from 0 to 255
analogWrite(10,w)// write the mapped value to 10thpin as output
delay(1)//on time period of mosfet
analogWrite(10,w)
delay(1)//off time period of ,mosfet
Serial.println(z)//print value from pot to serial monitor
Serial.println(w)//print mapped value to serial monitor
x= digitalRead(3)
y= digitalRead(4)
if(x==0 && y==0){digitalWrite(6,LOW)//hault motor
digitalWrite(9,LOW)}
if(x==1 && y==0){digitalWrite(6,HIGH)// clockwise rotation of motor
digitalWrite(9,LOW)}
if(x==0 && y==1){digitalWrite(6,LOW)// anticlockwise rotation of motor
digitalWrite(9,HIGH)}
if(x==1 && y==1){digitalWrite(6,LOW)//hault motor
digitalWrite(9,LOW)
}
}

Pracovní (porozumění kódu):

• SMĚROVÁ KONTROLA:

A. Pokud nejsou stisknuta obě tlačítka:

V tomto stavu bere arduino 0 vstupů z obou pinů. Jak je uvedeno v kódu v této podmínce, oba výstupní piny dávají 0 logiku (LOW):

if (x == 0 && y == 0) {digitalWrite (6, LOW)

digitalWrite (9, LOW)}

Vzhledem k tomu, že vstupní napětí na primární straně obou relé je nulová sekundární svorka obou zůstává v normálně uzavřené poloze. Na obou svorkách motoru je tedy nulové napětí, což nezpůsobuje žádnou rotaci.

B. Když je stisknuto tlačítko X, ale není stisknuto Y:

V tomto stavu bere arduino 0 vstupů z pinu 4, ale vstup 1 z pinu3. Jak je uvedeno v kódu v této podmínce, pin 6 by měl být na logice 1 (HIGH), zatímco pin 9 na logice 0 (LOW):

if (x == 1 && y == 0) {digitalWrite (6, HIGH)

digitalWrite (9, LOW)}

Jelikož je vstupní napětí na relé č. 1 vysoké, spínač tohoto relé je vržen do normálně otevřeného stavu, zatímco vstupní napětí na relé 2 je nízké, spínač tohoto relé zůstává v normálně sepnutém stavu, což způsobuje napětí 12v a 0v na svorkách motoru, což způsobuje otáčení motoru v jednom směru.

C. Když je stisknuto tlačítko Y, ale není stisknuto X:

V tomto stavu bere arduino 1 vstup z pinu 4, ale vstup0 z pinu3. Jak je uvedeno v kódu v této podmínce, pin 6 by měl být na logice 0 (LOW), zatímco pin 9 na logice 1 (HIGH):

if (x == 1 && y == 0) {digitalWrite (6, LOW)

digitalWrite (9, HIGH)}

Protože vstupní napětí do relé č. 2 je tentokrát vysoké, spínač tohoto relé je vhozen do normálně otevřeného stavu, zatímco vstupní napětí do relé č. 1 je nízké, spínač tohoto relé zůstává v normálně sepnutém stavu, což způsobuje napětí 12v a 0v na motoru svorky, což způsobuje otáčení motoru jiným směrem.

D. Když jsou stisknuta obě tlačítka:

V tomto stavu bere arduino 1 vstup z obou pinů. Jak je uvedeno v kódu v této podmínce, oba výstupní piny dávají 0 logiku (LOW):

if (x == 0 && y == 0) {digitalWrite (6, LOW)

digitalWrite (9, LOW)}

Vzhledem k tomu, že vstupní napětí na primární straně obou relé je nulová sekundární svorka obou zůstává v normálně uzavřené poloze. Na obou svorkách motoru je tedy nulové napětí, které nezpůsobuje žádnou rotaci.

• KONTROLA RYCHLOSTI:

Řekněme, že potenciometr je v takové poloze, když dává 0 voltů jako vstup na pin A0 arduina. Z tohoto důvodu arduino mapuje tuto hodnotu jako 0 a dává tedy 0 jako výstupní PWM na pinu # 10, tj.

analogWrite (10,0) // zapíše namapovanou hodnotu na 10. pin jako výstup

Proto brána mosfetu dostane 0 proudu, kvůli kterému zůstane vypnutá a motor je v poloze vypnuto.

Jak se však hrnec otáčí a jeho hodnota se mění, mění se také napětí na kolíku A0 a tato hodnota se mapuje na kolíku # 10 s proporcionálně rostoucí šířkou PWM, což způsobuje, že motorem a mosfetem protéká více proudu odtok, který zase umožňuje motoru proporcionálně získat větší rychlost, a totéž se děje naopak.

Z výše uvedené diskuse tedy vidíme, jak lze Arduino použít k řízení rychlosti i směru (zpětného chodu) silnoproudého stejnosměrného motoru jednoduše nastavením specifikovaného potu a pomocí několika tlačítek.

Aktualizace : U silnoproudých motorů používejte k ovládání těchto vysoce výkonných relé relé 12V / 30 A a stupně budiče BJT, jak je uvedeno v následujícím upraveném schématu:




Předchozí: Obvod parkovacího senzoru zpětného chodu s alarmem Další: Okruh generátoru signálu Arduino PWM