SN754410 quadruple half H-bridge driver31. Oct '13

Sissejuhatus

SN754410 on oma olemuselt kaks H-silda kombineeritud ühte mikroskeemi:

img/sn754410.jpg

SN754410 mikroskeem

SN754410 datasheet annab ka väljaviikude tähistused:

        +---\__/---+
1,2EN --| 1     16 |-- VCC1
   1A --| 2     15 |-- 4A
   1Y --| 3     14 |-- 4Y
  GND --| 4     13 |-- GND
  GND --| 5     12 |-- GND
   2Y --| 6     11 |-- 3Y
   2A --| 7     10 |-- 3A
 VCC2 --| 8      9 |-- 3,4EN
        +----------+

Näidatud 16-ne väljaviigu hulgas on sisendeid kokku kuus. Tähele tuleks panna seda, et mikoskeemi loogika vajab toidet 5V sõltumata sellest, kas sisenditel kasutatakse TTL pingenivoosid (3.3V) või CMOS pingenivoosid (5V).

  • 1,2EN - Lülita sisse väljundid 1Y ning 2Y

  • 1A - Muuda väljundi 1Y polaarsust

  • 2A - Muuda väljundi 2Y polaarsust

  • 3,4EN - Lülita sisse väljundid 3Y ning 4Y

  • 3A - Muuda väljundi 3Y polaarsust

  • 4A - Muuda väljundi 4Y polaarsust

Väljundeid on käesoleval mikroskeemil neli:

  • 1Y - Esimene väljund kuni 1A

  • 2Y - Teine väljund kuni 1A

  • 3Y - Kolmas väljund kuni 1A

  • 4Y - Neljas väljund kuni 1A

Täiendavad väljaviigud:

  • GND - Maa

  • VCC1 - Loogika toide (5V)

  • VCC2 - Väljundite toide (4.5V kuni 36V)

Nimetatud mikroskeemi võib kasutada mitmes erinevas konfiguratsioonis sõltuvalt saadaolevate jalgade arvust:

  • Kahe alalisvoolumootori (DC motor) juhtimiseks mõlemas suunas

  • Ühe kolmefaasilise mootori (brushless DC electric motor, BLDC motor) juhtimiseks

  • Ühe steppermootori (stepper motor) juhtimiseks

Kõige lihtsamas näites ühendame SN75510 mikroskeemi Arduino ning kahe mikromootoriga:

layer 21text:MADE INtext:ITALYtext:Prototypetext:Limitedtext:Edition1312111098765432element:C1package:C0603-ROUNDelement:C2package:C0603-ROUNDelement:C3package:C0603-ROUNDelement:C4package:C0603-ROUNDelement:C5package:C0603-ROUNDelement:C6package:C0603-ROUNDelement:C7package:C0603-ROUNDelement:C8package:C0603-ROUNDelement:C9package:C0603-ROUNDelement:C11package:C0603-ROUNDelement:F1package:L1812element:FD1package:FIDUCIA-MOUNTelement:FD2package:FIDUCIA-MOUNTelement:FD3package:FIDUCIA-MOUNTelement:GROUNDpackage:SJelement:Ltext:LLelement:R1package:R0603-ROUNDelement:R2package:R0603-ROUNDelement:RN1package:CAY16element:RN2package:CAY16element:RN3package:CAY16element:RN4package:CAY16element:Z1package:CT/CN0603element:Z2package:CT/CN0603layer 255Vtext:A0A0ANALOG INAREFtext:11GNDtext:M.Banzitext:D.Cuartiellestext:D.Mellistext:TXTXtext:RXRXtext:G.Martinotext:T.IgoeRESET3V3text:A1A1text:A2A2text:A3A3text:A4A4text:A5A5VINGNDGNDtext:[#=PWM]DIGITAL (PWM=)text:#text:ArduinoArduinotext:TMTMIOREFtext:SDAtext:SCLelement:ADpackage:1X06element:C1package:C0603-ROUNDelement:C2package:C0603-ROUNDelement:C3package:C0603-ROUNDelement:C4package:C0603-ROUNDelement:C5package:C0603-ROUNDelement:C6package:C0603-ROUNDelement:C7package:C0603-ROUNDelement:C8package:C0603-ROUNDelement:C9package:C0603-ROUNDelement:C11package:C0603-ROUNDelement:D1package:SMBelement:D2package:MINIMELFelement:D3package:MINIMELFelement:F1package:L1812element:FD1package:FIDUCIA-MOUNTelement:FD2package:FIDUCIA-MOUNTelement:FD3package:FIDUCIA-MOUNTelement:GROUNDpackage:SJelement:ICSPtext:ICSPICSPpackage:2X03element:ICSPtext:ICSPICSP2package:2X03element:ICSP1package:2X03element:IOHpackage:1X10@1element:IOLpackage:1X08element:JP2package:2X02element:Lpackage:CHIP-LED0805element:L1package:0805element:ONtext:ONONpackage:CHIP-LED0805element:PC1package:PANASONIC_Delement:PC2package:PANASONIC_Delement:R1package:R0603-ROUNDelement:R2package:R0603-ROUNDelement:RESETpackage:TS42element:RESET-ENpackage:SJelement:RN1package:CAY16element:RN2package:CAY16element:RN3package:CAY16element:RN4package:CAY16element:RXpackage:CHIP-LED0805element:T1package:SOT-23element:TXpackage:CHIP-LED0805element:U1package:SOT223element:U2package:SOT23-DBVelement:U3package:MLF32element:U5package:MSOP08element:X1package:POWERSUPPLY_DC-21MMelement:X2package:PN61729element:Y1package:QSelement:Y2package:RESONATORelement:Z1package:CT/CN0603element:Z2package:CT/CN0603element:ZU4package:DIL28-3POWER01TX0RX0text:RESETRESET

SN754410 abil kahe alalisvoolumootori juhtimine

Arduino koodis seadistame violetsete kaablitega ühendatud väljaviigud pulsilaiusmodulatsiooni režiimi ning oranžide kaablitega ühendatud väljaviigud digitaalväljundi režiimi:

int leftMotorEnablePin = 9;
int leftMotorForwardPin = 8;
int leftMotorReversePin = 7;

int rightMotorEnablePin = 5;
int rightMotorForwardPin = 4;
int rightMotorReversePin = 3;

void setup() {
    // Sea kõik pesad väljunditeks
    pinMode(leftMotorEnablePin, OUTPUT);
    pinMode(leftMotorForwardPin, OUTPUT);
    pinMode(leftMotorReversePin, OUTPUT);
    pinMode(rightMotorEnablePin, OUTPUT);
    pinMode(rightMotorForwardPin, OUTPUT);
    pinMode(rightMotorReversePin, OUTPUT);

    // Vasak mootor 33% võimsusega edaspidi käima
    digitalWrite(leftMotorForwardPin, HIGH);
    digitalWrite(leftMotorReversePin, LOW);
    analogWrite(leftMotorEnablePin, 85);

    // Pidurda parema mootoriga
    digitalWrite(rightMotorForwardPin, LOW);
    digitalWrite(rightMotorReversePin, LOW);
    digitalWrite(rightMotorEnablePin, HIGH);
}

Järgnevalt võime tuletada ka käesoleva skeemi jaoks SN754410 sisendite tõeväärtustabeli ühe mootori kohta:

enable

forward

reverse

mis juhtub?

LOW

LOW

LOW

Vabajooks

LOW

LOW

HIGH

Vabajooks

LOW

HIGH

LOW

Vabajooks

LOW

HIGH

HIGH

Vabajooks

HIGH

LOW

LOW

Mootor pidurdab

HIGH

LOW

HIGH

Mootor pöörleb tagurpidi

HIGH

HIGH

LOW

Mootor pöörleb edaspidi

HIGH

HIGH

HIGH

Mootor pidurdab

Viited:

Arduino Tiigriülikool Estonian IT College