Arduino ponte h

chiedo aiuto per controlare un ponte H con arduino, mi serve per controllaere la marcia di un motorino e da quanto so i bastano 2 pin, o buttato giu uno sketch veloce potrebbe funzionare?

void setup()
{
pinMode(2, OUTPUT); //imposta il pin digitale come OUTPUT
pinMode(3, OUTPUT); //imposta il pin digitale come OUTPUT
}
void loop() {
digitalWrite(2, HIGH);
digitalWrite(3, LOW); //marcia avanti
delay(4000);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH); //STOP
delay(500);
digitalWrite(2, LOW);
digitalWrite(3, HIGH); //marcia indietro
delay(4000);
digitalWrite(2, LOW);
digitalWrite(3, LOW); //STOP
delay(500);
}

o sennò in alternativa con un solo pin posso controlare la rotazione a destra e sinistra di un servo, dando alimentazione al servo esterna e nno da arduino

tutto questo mi serve pe l'apertura di una porta dopo aver digitato un codice segreto
per ora mi attiva un led per 3 secondi e sto diventando matto per inserire il moviemnto di un servo

Non siamo veggenti; Serve anche il tipo di Ponte H e come é collegato a Arduino.
Ciao Uwe

pensavo all uso di un servoanziche a un ponte h il mio problema è che non so se ho fatto giusto lo sketch, dovrebbe fare una rotazione quando il circuito si avvia e va in "lock" e chiude il chiavistello, e una inversa quando il codice digitato sul keypad è giusto e mi apre il chiavistello

#include <Servo.h>
#include <EEPROM.h>
#include <Keypad.h>

Servo myservo;
char* secretCode = "0000";
int position = 0;
boolean locked = true;

const byte rows = 4;
const byte cols = 3;
char keys[rows][cols] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};

byte rowPins[rows] = {4, 9, 8, 6};
byte colPins[cols] = {5, 3, 7};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, rows, cols);

int redPin = 12;
int greenPin = 11;
int angle = 0;

void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
myservo.attach(10);
loadCode();
flash();
updateOutputs();
}

void loop()
{
for(angle = 0; angle < 180; angle += 1);
for(angle = 180; angle >= 1; angle -= 1);
char key = keypad.getKey();
if (key == '*' && ! locked)
{
// unlocked and # pressed so change code
position = 0;
getNewCode();
updateOutputs();
}
if (key == '#')
{
locked = true;
position = 0;
updateOutputs();
}
if (key == secretCode[position])
{
position ++;
}
if (position == 4)
{
locked = false;
updateOutputs();
}
delay(100);
}

void updateOutputs()
{
if (locked)
{
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, LOW);
myservo.write(20);
delay(1000);
}
else
{
digitalWrite(redPin, LOW);
digitalWrite(greenPin, HIGH);
myservo.write(80);
delay(1000);
}
}
void getNewCode()
{
flash();
for (int i = 0; i < 4; i++ )
{
char key;
key = keypad.getKey();
while (key == 0)
{
key = keypad.getKey();
}
flash();
secretCode = key;
}
saveCode();
flash();flash();
}
void loadCode()
{
if (EEPROM.read(0) == 1)
{
secretCode[0] = EEPROM.read(1);
secretCode[1] = EEPROM.read(2);
secretCode[2] = EEPROM.read(3);
secretCode[3] = EEPROM.read(4);
}
}
void saveCode()
{
EEPROM.write(1, secretCode[0]);
EEPROM.write(2, secretCode[1]);
EEPROM.write(3, secretCode[2]);
EEPROM.write(4, secretCode[3]);
EEPROM.write(0, 1);
}
void flash()
{
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, HIGH);
delay(500);
digitalWrite(redPin, LOW);
digitalWrite(greenPin, LOW);
}

per cos servono questi 2 for nel loop()?

for(angle = 0; angle < 180; angle += 1);
for(angle = 180; angle >= 1; angle -= 1);

pensavo all uso di un servoanziche a un ponte h il mio problema è che non so se ho fatto giusto lo sketch, dovrebbe fare una rotazione quando il circuito si avvia e va in "lock" e chiude il chiavistello, e una inversa quando il codice digitato sul keypad è giusto e mi apre il chiavistello

Hai provato con un servo? lo fa o non lo fa?
Ciao Uwe

il servo purtroppo mi deve ancora arivare volevo solo sapere se il servo cosi funziona o cosa devo inserire perchè quando si blocca il circuito mi faccia una rotazione da una parte e quando sbollo una rotazione dall'altra

Allora aspetta il Servo, provi il codice e se non va ci sentiemo.
Ciao Uwe

provato il servo non si muove di una virgola se non rieco a capire come fare,risolvo con il servo modificato che aveo da parte solo motore senza scheda di controllo e due minirele a 5 volt

smanettando forse ho bruciato il servo perchè alla fine andava ma solo in un verso e nno si fermaza era come se non riconoscesse il fondoscala, vabbe tanto lo ho pagato 6 euro, ne ordinerò un altro e starò piu attento