Milllllle grazie ad Uwe che e' stato cosi' solerte nel rispondermi 
MI sono espresso male...ho un motoriduttore con spazzole ed encoder a bordo che vorrei pilotare contando i giri tramite l'effetto Hall di cui dispone
manca ancora tutta la parte dell'encoder....ma quello e' un passo successivo...devo prima capire se serve uno shield o cos'altro....
Dunque, ti elenco lo schema delle connessioni:
Arduino pin 2 = connesso ad un cavo del pulsante, l'altro cavo a GND
Arduino pin 4 = connesso ad un cavo del sensore porta, l'altro cavo a GND
Arduino pin 6 = connesso al pin DIR della Tank 3A HP
Arduino pin 7 = connesso ad un piedino di un LED verde, l'altro piedino a GND
Arduino pin 9 = connesso al pin PWM della Tank
Arduino pin 13 = connesso ad un piedino di un LED rosso, l'altro piedino a GND
il codice e' questo:
//attribuzione dei pin
int pulsante = 2;
int sensore_porta = 4;
int dirPin = 6;
int led_verde = 7;
int motorPin = 9;
int led_rosso = 13;
//dichiarazioni delle variabili
int status_porta = 0;
void setup() {
//partendo da porta chiusa
pinMode(sensore_porta, INPUT);
pinMode(pulsante, INPUT);
pinMode(led_verde, OUTPUT);
pinMode(led_rosso, OUTPUT);
digitalWrite(led_rosso, HIGH);
pinMode(dirPin, OUTPUT);
//attivo la seriale per monitorare il tutto
Serial.begin(9600);
}
void loop() {
if (status_porta == 0){
if (digitalRead(sensore_porta) == HIGH && digitalRead(pulsante) == HIGH) {
Serial.print(" apro la porta ");
digitalWrite(dirPin, LOW);
delay(1000);
Serial.print(" apro primo DX ");
analogWrite(motorPin, 255);
delay(1000);
Serial.print(" apro secondo DX ");
analogWrite(motorPin, 255);
delay(1000);
//segnalo la porta aperta
Serial.print(" ....fermo a porta aperta.... ");
digitalWrite(led_verde, HIGH);
digitalWrite(led_rosso, LOW);
//spengo il motore
analogWrite(motorPin, 0);
//inverto la direzione del motore
digitalWrite(dirPin, HIGH);
//comunico che la porta e' aperta e gli do' 10 secondi..
status_porta = 1;
delay(10000);
}
}
/////////////////////////////////////////
//ciclo di chiusura
///////////////////////////////////////
if (status_porta == 1){
if (digitalRead(sensore_porta) == HIGH && digitalRead(led_verde) == HIGH)
{
Serial.print(" chiudo primo SX ");
analogWrite(motorPin, 255);
delay(1000);
Serial.print(" chiudo secondo SX ");
analogWrite(motorPin, 255);
delay(1000);
//spengo il motore
analogWrite(motorPin, 0);
delay(1000);
//segnalo porta chiusa
Serial.print(" ....fermo a porta chiusa.... ");
digitalWrite(led_verde, LOW);
digitalWrite(led_rosso, HIGH);
}
}
}
spero che sia abbastanza chiaro....
di fatto alla fine non funziona niente....non credo sia il codice, piuttosto l'hardware mal configurato....magari mancano delle resistenze/condensatori su qualche pin....sono una frana in elettronica.....
il link del datasheet del tank e'
http://www.droids.it/cmsvb4/content.php?174-990.009-Tank-3A-HP-Motor-controller-Guida-Utente
quello del motoriduttore
help me again
tank you together