Stap 3: Het creëren van een H-brug met Relais
Deze relais kunnen worden gebruikt voor het maken van een H-brug om motoren en actuatoren die tot 30V te controleren en teken 10A.
Zie de foto voor een bedradingsschema.
Als het Relais worden gedeactiveerd, vervolgens beide zijden van de motor verbonden met GND, waardoor een remmende werking. Als beide actief zijn, dan beide kanten van de motor zijn verbonden met 12V (of een PWM-signaal), waardoor ook een remmende werking. Wanneer een estafette actief is, verbindt die slechts één kant van de motor 12V, één richting draaien. Het activeren van de andere estafette zorgt ervoor dat de motor naar de andere richting.
Als je gewoon 12V als de bovenste verbinding gebruiken, vervolgens gaan de motor altijd op volle snelheid (ervan uitgaande dat ze zijn 12V motoren). Als u een PWM-signaal, dan kunt u de snelheid waarmee de motor wordt verplaatst op kunt variëren.
Vergeet niet dat het Relais kunt slechts om de 2 seconden. Dit beperkt hoe snel u kunt starten, stoppen of wijzigen van de richting van de motor
Hieronder is een screenshot van de code van de steekproef opgenomen.
In de volgende stap gaan we over deze brug H met een MegaMoto-controller om de controle van de snelheid van 2 motoren interfacing.
/* Sample code to use a relay board as an H bridge to control * an actuator. * * Progressive Automations, July 2015 * * This example code is in the public domain */ const int forwards = 7; const int backwards = 6;//assign relay INx pin to arduino pin void setup() { pinMode(forwards, OUTPUT);//set relay as an output pinMode(backwards, OUTPUT);//set relay as an output } void loop() { digitalWrite(forwards, LOW); digitalWrite(backwards, HIGH);//Activate the relay one direction, they must be different to move the motor delay(2000); // wait 2 seconds digitalWrite(forwards, HIGH); digitalWrite(backwards, HIGH);//Deactivate both relays to brake the motor delay(2000);// wait 2 seconds digitalWrite(forwards, HIGH); digitalWrite(backwards, LOW);//Activate the relay the other direction, they must be different to move the motor delay(2000);// wait 2 seconds digitalWrite(forwards, HIGH); digitalWrite(backwards, HIGH);//Deactivate both relays to brake the motor delay(2000);// wait 2 seconds }