Pages: [1]   Go Down
Author Topic: help me again !!  (Read 479 times)
0 Members and 1 Guest are viewing this topic.
Italy
Offline Offline
Newbie
*
Karma: 0
Posts: 3
quando scruti l'abisso, ne rimani irrimediabilmente affascinato
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

http://www.robot-italy.com/product_info.php?cPath=8_93&products_id=480
 
help me again  tank you together
Logged

Pages: [1]   Go Up
Jump to: