Bevezetés a mikrovezérlők programozásába: DC motorok vezérlése

Hasonló dokumentumok
Bevezetés a mikrovezérlők programozásába: Léptetőmotorok vezérlése

Bevezetés a mikrovezérlők programozásába: MAX6958: Hétszegmenses LED kijelző vezérlő

Vegyes témakörök. 11. Robotvezérlés WiFi kapcsolaton keresztül 2. rész. Hobbielektronika csoport 2018/2019. Debreceni Megtestesülés Plébánia

MSP430 programozás Energia környezetben. Szervó motorok vezérlése

Vegyes témakörök. A KAT120B kijelző vezérlése Arduinoval

Alapvető információk a vezetékezéssel kapcsolatban

MSP430 programozás Energia környezetben. LED kijelzok második rész

Megjegyzés: A leírás abszolút kezdők számára készült elnézést azoktól, akik ezen a szinten már túlvannak!

A LEGO Mindstorms EV3 programozása

DC motor= egyenáramú motor, villanymotor vezérlése micro:bittel:

LPT_4DM_2a. Bekötési utasítás

Az MSP430 mikrovezérlők digitális I/O programozása

MSP430 programozás Energia környezetben. Analóg jelek mérése

Érzékelők és beavatkozók

MSP430 programozás Energia környezetben. LED kijelzok második rész

Versenyző kódja: 29 27/2012. (VIII. 27.) NGM rendelet MAGYAR KERESKEDELMI ÉS IPARKAMARA. Országos Szakmai Tanulmányi Verseny.

Programozás és Digitális technika I. Pógár István eng.unideb.hu/pogari

MSP430 programozás Energia környezetben. Az első lépések

Többfunkciós hobbirobot építése és vezérlése Arduino UNO mikrovezérlő kártya segítségével

Mintavételes szabályozás mikrovezérlő segítségével

Bevezetés a mikrovezérlők programozásába: Fényérzékelés, fénymérés

Bevezetés az Arduino mikrovezérlők programozásába

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek

UH-zongora - zenélés mikrokontrollerrel

C. Szerelési és beállítási útmutató

Led - mátrix vezérlés

T2-CNCUSB vezérlő család hardver segédlet

Bekötési rajz a Wheels WRS6 típusú ugrókódú távirányítós relémodulhoz

MSP430 programozás Energia környezetben. Az I/O portok kezelése

IRC beüzemelése Mach3-hoz IRC Frekvenciaváltó vezérlő áramkör Inverter Remote Controller

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA

A robot összeszerelése:

ZL180 Kétmotoros vezérlés 24V-os mototokhoz

Nyomtatóport szintillesztő 4V2

Bevezetés a mikrovezérlők programozásába: WS2812 RGB LED-ek vezérlése

Bevezetés az elektronikába

Mérési útmutató. A/D konverteres mérés. // Első lépésként tanulmányozzuk a digitális jelfeldolgozás előnyeit és határait.

Kimenetek száma Kimenet Szoftveres beállítás Bank funkció Típus. Nincs Nincs H8PS-8BP 16 H8PS-16BP 32 H8PS-32BP. Felbontás Kábelhossz Típus

Bevezetés a mikrovezérlők programozásába: I/O portok kezelése, számrendszerek, bitműveletek

MSP430 programozás Energia környezetben. Hétszegmenses LED kijelzok

A MINI SZATELLITTŐL A SUMO-ROBOTIG

Kezelési útmutató. Egyfázisú 230V-os 50Hz hálózatról üzemelő háromfázisú motor hajtására alkalmas. AC Automatavezérlésű Mézpörgető készülékhez

CS Lilin. Kültéri ház PIH-510 H/L

WRS 27CS TÁVIRÁNYÍTÓS RELÉMODUL. U0E0a

MSP430 programozás Energia környezetben. Nem élhetek muzsikaszó nélkül

Egyszabadságfokú mechanikai rendszer irányítása nyílt hurkú vezérlés

1 csűrő 1 csűrő 2 magassági 2 magassági 3 gáz 3 gáz 4 oldalkormány 4 oldalkormány 5 Robot üzemmód 5 csűrő

MSP430 programozás Energia környezetben. LED mátrix vezérlése MAX7219 IC-vel

FL-11R kézikönyv Viczai design FL-11R kézikönyv. (Útmutató az FL-11R jelű LED-es villogó modell-leszállófény áramkör használatához)

Helyiséghőmérséklet szabályozók. Fűtési és hűtési rendszerekhez

Nyomtatóport szintillesztő 3V3

1. ábra A PWM-áramkör mérőpanel kapcsolási rajza

Bevezetés a mikrovezérlők programozásába: Ismerkedés az Arduino fejlesztői környezettel

Ütem Lámpafázisok A számláló értéke ütemmerker 1 P 0 M1 2 P 1 M2 3 P S 2 M3 4 Z 3 M4 5 Z 4 M5 6 Z 5 M6 7 Z 6 M7 8 S 7 M8

88-as sorozat - Többfunkciós dugaszolható időrelék 8 A

Hőmérséklet-szabályozás

Szereljük fel mind a két motort! (jobban szerettem a két csavaros rögzítést, de..)

1. ábra. Forrás: AUTODATA

Bevezetés a mikrovezérlők programozásába: LCD kijelzők

Digitális szivattyúvezérlő vízszivattyúhoz Beépítési és használati útmutató

HSS60 ( ) típusú léptetőmotor meghajtó

U9600. Motor leírás. MotorLeírás U9600. KLING Kft ÁLTALÁNOS LEÍRÁS

Bevezetés az elektronikába

DIGITÁLIS TECHNIKA feladatgyűjtemény

TM Fékezés és állomás vezérlő modul

MSP430 programozás Energia környezetben. Digitális szenzorok

10. EGYSZERŰ HÁLÓZATOK TERVEZÉSE A FEJLESZTŐLAPON Ennél a tervezésnél egy olyan hardvert hozunk létre, amely a Basys2 fejlesztőlap két bemeneti

ZE5. 230V-os egyfázisú vezérlés. Általános leírás:

icontrall Intelligens Otthonok Telepítői oktatás II.rész

SZENZORMODUL ILLESZTÉSE LEGO NXT PLATFORMHOZ. Készítette: Horváth András MSc Önálló laboratórium 2 Konzulens: Orosz György

Megszólal a Kütyü. Arduino bevezető hangszóró vezérlése 1 / 5 oldal

Bevezetés a mikrovezérlők programozásába: Az Arduino, mint logikai analizátor

eco1 egymotoros vezérlés

1. Kombinációs hálózatok mérési gyakorlatai

HSS86 ( ) típusú léptetőmotor meghajtó

Felhasználói kézikönyv. TB6560HQV3-T3 (V type) 3 tengelyes léptetőmotor vezérlő

Programozható Vezérlő Rendszerek. Hardver

Versenyző kódja: 38 27/2012. (VIII. 27.) NGM rendelet MAGYAR KERESKEDELMI ÉS IPARKAMARA. Országos Szakmai Tanulmányi Verseny.

Hobbi Elektronika. 1. Témakörök, célkitűzés, hozzávalók

CORPORATION Hungary SUPER ELECTRONICS RADIO CONTROL SYSTEMS

Egyszerű kísérletek próbapanelen

Elektronikai technikus Elektronikai technikus

Műveleti erősítők. 1. Felépítése. a. Rajzjele. b. Belső felépítés (tömbvázlat) c. Differenciálerősítő

BSD2010 BSD4010. Bipoláris léptetőmotor meghajtó modulok felhasználói kézikönyve

TM Szervó vezérlő

MSP430 programozás Energia környezetben

MSP430 programozás Energia környezetben. Digitális szenzorok I2C kommunikációval

Kiegészítés az üzemeltetési utasításhoz

ELEKTRONIKAI ALAPISMERETEK

Földzaj. Földzaj problémák a nagy meghajtó képességű IC-knél

Tisztelt Felhasználó! Köszönjük, hogy az NZ 2000 frekvenciaváltót választotta.

Kombinációs hálózatok és sorrendi hálózatok realizálása félvezető kapuáramkörökkel

Bevezetés az elektronikába

Vegyes témakörök. 5. Gagyiszkóp házilag hangfrekvenciás jelek vizsgálata. Hobbielektronika csoport 2018/2019. Debreceni Megtestesülés Plébánia

A/D és D/A konverterek vezérlése számítógéppel

LPT illesztőkártya. Beüzemelési útmutató

80 mm min. Fűtésvezérlés: Forrasztástechnika Műanyag ipar Galvanazilás Csomagolás Gumi ipar

Kezelési útmutató AS 100 kapuvezérlés

OMRON FOTOELEKTROMOS KAPCSOLÓK E3NT

ZL 90 Vezérlés Amiko és FrogJ motorokhoz

Átírás:

Bevezetés a mikrovezérlők programozásába: DC motorok vezérlése 1

Lab 18 projektek L293D_test_1M.ino tesztprogram egy motor vezérléséhez L293D_test_2M.ino tesztprogram két motor vezérléséhez L293D_test2_2M.ino tesztprogram két motor egyszerűsített vezérléséhez 2

Kisteljesítményű DC motorok Feszültség: 3 V 6V Áram: 0.4 A 0.6 A Forgásirány váltás: polaritásváltással 3

Motorvezérlés: H-híd Ha a motor forgásirányát meg akarjuk változtatni, fel kell cserélni a polaritást. Ezt négy kapcsolóval tudjuk megoldani. Az elrendezést H-hídnak nevezzük. Fél híd Fél híd Forrás és leírás: hobbirobot.hu/content/vonalkoveto-i-robotika-kezdoknek K1 és K4 zárásakor a motor az egyik irányba forog. K2 és K3 zárásakor az ellenkező irányba forog. Elektronikus vezérlés: tranzisztorokkal Mivel K1 és K2, s hasonlóan K3 és K4 sohasem lehet egyidejűleg zárva, elegendő félhidanként egyegy vezérlőjel, mely a kapcsolókat ellenütemben zárja. 4

L293D 4db félhíd, vagy 2db H-híd Félhíd: egyirányú forgás vezérlésére (pl. ventillátorok) H-híd: polaritásváltást igénylő vezérlésekhez V CC = 4,5 36 V V A, V EN = 2.3 7 V I max = 0,6 A I peak = 1,2 A (100 µs) 5

Egy motor vezérlése Enable1,2 IN1 IN2 Motor H 0 0 Stop H 1 0 Előremenet H 0 1 Hátramenet H 1 1 Stop L X X Stop E1,2: Letiltja vagy engedélyezi az 1. H-hidat In1 és In2 a forgás irányát adja meg. Csak az 1,0 illetve 0,1 kombináció esetén van forgás. Egyszerűsítési lehetőségek: (ha sokalljuk a kivezetéseket) 1. Ha E1,2 állandóan magas szintet kap, In1 és In2 önmagában elég a vezérléshez. 2. Ha In2 = In1 (inverter, IC-vel vagy tranzisztorral) akkor E1,2 és In1 elegendő a vezérléshez. 6

Egy motor vezérlése Arduinoval Bekötési vázlat: D2 = In1 (sárga) D3 = Enable1,2 (kék) D4 = In2 (zöld) Megjegyzések: 1. Az IC-t 180 fokkal elforgattuk a kedvezőbb vezetékezéshez! 2. Ha PWM jellel vezéreljük az E1,2 bemenetet, akkor szabályozhatjuk a motor teljesítményét Az Arduino itt az USB csatlakozón keresztül kap tápfeszültséget! 7

L293D_test_1M.ino Egy motor vezérlése. A végtelen ciklusban 5s várakozás után 2s előremenet, 1s várakozás, majd 2s hátramenet ismétlődik. Az előre- és hátramenet 75 %-os teljesítménnyel történik. #define PWMA 3 //L293D pin1 #define D1A 2 //L293D pin2 #define D2A 4 //L293D pin7 void setmotor(int speed, boolean reverse) { analogwrite(pwma, speed); digitalwrite(d1a,!reverse); digitalwrite(d2a, reverse); void setup() { Serial.begin(9600); pinmode(pwma, OUTPUT); pinmode(d1a, OUTPUT); pinmode(d2a, OUTPUT); Serial.println("L293D test program"); void loop() { delay(5000); Serial.println("move forward 75%"); setmotor(196, 0); // Forward 75% delay(2000); setmotor(0, 0); // Stop motor delay(1000); Serial.println("move reverse 75%"); setmotor(196, 1); // Reverse 75% delay(2000); setmotor(0, 0); // Stop motor 8

Két motor vezérlése Arduinoval Megjegyzés: A rajzon látható kapcsolásban azonos vezérlés mellett a két motor azonos irányba forog. A fényképen látható független jobb és bal kerék meghajtású kocsihoz azonban az egyik motor polaritását fel kell cserélni! Egyenesvonalú mozgásnál a két motor forgása ellentétes irányú! A kapcsolás pazarlóan bánik az Arduino kimenetekkel. Ez a feladat kevesebb kivezetéssel is megoldható volna. Az Arduino itt az USB csatlakozón keresztül kap tápfeszültséget! 9

#define PWMA 3 //L293D pin1 #define D1A 2 //L293D pin2 #define D2A 4 //L293D pin7 #define PWMB 6 //L293D pin9 #define D3B 5 //L293D pin10 #define D4B 7 //L293D pin15 L293D_test_2M.ino Két motor vezérlése. A végtelen ciklusban 5s várakozás után 2s előremenet, 1s várakozás, majd 2s hátramenet ismétlődik. Az előre- és hátramenet 75 %-os teljesítménnyel történik. void setup() { Serial.begin(9600); pinmode(pwma, OUTPUT); pinmode(d1a, OUTPUT); pinmode(d2a, OUTPUT); pinmode(pwmb, OUTPUT); pinmode(d3b, OUTPUT); pinmode(d4b, OUTPUT); Serial.println("L293D test program"); void setmotor(int speed, boolean reverse) { analogwrite(pwma, speed); analogwrite(pwmb, speed); digitalwrite(d1a,!reverse); digitalwrite(d2a, reverse); digitalwrite(d3b,!reverse); digitalwrite(d4b, reverse); void loop() { delay(5000); Serial.println("move forward 75%"); setmotor(196, 0); // Forward 75% delay(2000); setmotor(0, 0); // Stop motor delay(1000); Serial.println("move reverse 75%"); setmotor(196, 1); // Reverse 75% delay(2000); setmotor(0, 0); // Stop motor 10

Egyszerűbb forgásirány-váltás Vegyük észre, hogy In2 mindig In1 inverze (az előző programban D2A =!D1A)! Hasonlóan In4 is mindig In3 inverze (az előző programban D4B =!D3B). Ezeket az összefüggéseket elektronikusan is megvalósíthatjuk (logikai kapukkal, vagy tranzisztorokkal), s akkor kevesebb Arduino kivezetésre lesz szükségünk. DirA In2 0 1 1 0 DirB In4 0 1 1 0 11

Egyszerűbb forgásirány-váltás Megjegyzés: Ebben a példában a motorok teljesítményét nem lehet függetlenül szabályozni (PWMA = PWMB), de ez nem mindig jó döntés! Általában motoronként egy irányváltó és egy teljesítményszabályozó bemenetet szokás használni. Az Arduino itt még az USB csatlakozón keresztül kap tápfeszültséget, de kipróbáláskor a Vin bemenetén kell táplálni (vagy a motor +6V-járól, vagy egy 9 V-os elemről) 12

L293D_test2_2M.ino Két motor egyszerűsített vezérlése. A végtelen ciklusban 5s várakozás után 2s előremenet, 1s várakozás, majd 2s hátramenet ismétlődik. Az előre- és hátramenet 75 %-os teljesítménynyel történik. #define PWMA 3 //L293D pin1,pin9 #define DIRA 2 //L293D pin2 #define DIRB 4 //L293D pin10 void setmotor(int speed, boolean reverse) { analogwrite(pwma, speed); digitalwrite(dira,!reverse); digitalwrite(dirb, reverse); Itt szoftveresen fordítottuk meg az egyik motor forgásirányát! void setup() { Serial.begin(9600); pinmode(pwma, OUTPUT); pinmode(dira, OUTPUT); pinmode(dirb, OUTPUT); Serial.println("L293D test program"); void loop() { delay(5000); Serial.println("move forward 75%"); setmotor(196, 0); // Forward 75% delay(2000); setmotor(0, 0); // Stop motor delay(1000); Serial.println("move reverse 75%"); setmotor(196, 1); // Reverse 75% delay(2000); setmotor(0, 0); // Stop motor Megjegyzés: Vegyük észre, hogy a kivezetések önkényes átnevezésétől eltekintve ez a program teljes mértékben megegyezik a L293D_test_1M.ino programmal! 13

Tervek, tapasztalatok Azonos vezérlés esetén a motorok nem egyformán húznak Ez a motoronkénti független teljesítmény-szabályozást indokolja A jármű nem tartja az irányt Szenzorok (giroszkóp, iránytű, forgásérzékelők) beépítése szükséges Algoritmust kell kidolgozni a szenzorok által ellenőrzött mozgáskoordinációhoz Mozgásvezérlés lehetőségei Távvezérlés (infra, Bluetoth vagy WiFi) Vonalkövető robot (optoszenzorok) Akadálykikerülő robot (ultrahangos vagy optikai távolságérzékelő) Egy távvezérlésre kidolgozott példa: Do it Yourself WiFi car Instructables User manual Termék honlapja 14

15

Emlékeztető: Arduino nano v3.0 16