Forum: Mikrocontroller und Digitale Elektronik Arduino Duemillanove problem.


von (unknown) (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Liebes Micorcontroller Forum!
Ich hab ein  kleines Problem und zwar sitze ich 2 Tage lang an dem code 
der aber leider nicht funken will nur der linke reifen dreht sich der 
andere macht garnichts hab diesesn Code hier verwendet

//motor A connected between A01 and A02
//motor B connected between B01 and B02

int STBY = 10; //standby

//Motor A
int PWMA = 3; //Speed control
int AIN1 = 9; //Direction
int AIN2 = 8; //Direction

//Motor B
int PWMB = 5; //Speed control
int BIN1 = 11; //Direction
int BIN2 = 12; //Direction

void setup(){
  pinMode(STBY, OUTPUT);

  pinMode(PWMA, OUTPUT);
  pinMode(AIN1, OUTPUT);
  pinMode(AIN2, OUTPUT);

  pinMode(PWMB, OUTPUT);
  pinMode(BIN1, OUTPUT);
  pinMode(BIN2, OUTPUT);
}

void loop(){
  move(1, 255, 1); //motor 1, full speed, left
  move(2, 255, 1); //motor 2, full speed, left

  delay(1000); //go for 1 second
  stop(); //stop
  delay(250); //hold for 250ms until move again

  move(1, 128, 0); //motor 1, half speed, right
  move(2, 128, 0); //motor 2, half speed, right

  delay(1000);
  stop();
  delay(250);
}


void move(int motor, int speed, int direction){
//Move specific motor at speed and direction
//motor: 0 for B 1 for A
//speed: 0 is off, and 255 is full speed
//direction: 0 clockwise, 1 counter-clockwise

  digitalWrite(STBY, HIGH); //disable standby

  boolean inPin1 = LOW;
  boolean inPin2 = HIGH;

  if(direction == 1){
    inPin1 = HIGH;
    inPin2 = LOW;
  }

  if(motor == 1){
    digitalWrite(AIN1, inPin1);
    digitalWrite(AIN2, inPin2);
    analogWrite(PWMA, speed);
  }else{
    digitalWrite(BIN1, inPin1);
    digitalWrite(BIN2, inPin2);
    analogWrite(PWMB, speed);
  }
}

void stop(){
//enable standby
  digitalWrite(STBY, LOW);
}




Und ein bild von meiner Platine wurde angehängt... kan mir einer helfen? 
Liegt das am Code oder an der Platine/ gelöteten Kontakte

von Wolfgang (Gast)


Lesenswert?

jan mart schrieb:

jan mart schrieb:
> der linke reifen dreht sich der andere macht garnichts
Liegt das am Code oder an deiner Hardware, i.e. hast du mal versucht, 
den rechten einzeln anzusteuern oder an Stelle des linken anzuschließen. 
Vielleicht dreht sich auch der Motor richtig und der Reifen kann mit den 
Steuersignalen nichts anfangen oder hat zu viel Schlupf ;-)

> Und ein bild von meiner Platine wurde angehängt...

Ein Schaltplan wäre da nützlicher.

von Helmut H. (helmuth)


Lesenswert?

Rechts oben auf deinem Bild ist noch etwas, was ist das?
Ist der linke Motor A oder B?

Mach doch mal einen Schaltplan oder mindestens eine Liste
1
Pin  Name   Farbe   geht zu
2
 3   PWMA   grün     ?
3
 4          gelb     gelötet aber nicht verwendet?
4
 5   PWMB   orange

von Ernst O. (ernstj)


Lesenswert?

Der Drahtverhau sieht ja gruselig aus. Bist du sicher dass nirgends ein 
Kurzschluss zwischen benachbarten Pins vorliegt? Cu-Litze ist da sehr 
problematisch, die Enden fleddern auseinander und machen Kontakte wo sie 
nicht sollen. Ich würde den Arduino mit Buchsenleisten bestücken und die 
Litzenenden verzinnen, bevor sie eingesteckt werden.

von (unknown) (Gast)


Lesenswert?

Also ein Kurzschluss gab es nicht. Schuldigung hab leider kein 
Schaltplan das sollten wir in der Schule so löten...

von Ernst O. (ernstj)


Lesenswert?

Kommst du mit einem Papierstreifen zwischen den Lötstellen auf der 
linken Stiftseite durch? Dem Bild nach zu urteilen nämlich nicht.

von (unknown) (Gast)


Lesenswert?

Also durch komm ich wenn ich den kleber abkratze hab vorher bevor das 
geklebt wurde noch nachgeguckt ( ja mit nem papierstreifen) ob ich da 
durchkomme damit ich später kein kurzschluss habe. Soweit kann ich auch 
denken ^^

von Ernst O. (ernstj)


Lesenswert?

Kleber?  ***autsch*** damit habe ich nicht gerechnet.

sehe ich das richtig, dass du in dem Sketch den Motor B erst mit 2 und 
dann mit 0 ansprichst Motor A aber beide Male mit 1?

von (unknown) (Gast)


Lesenswert?

hab mal das zweite auch zu einsen gemacht jetzt stop der Linke Motor 
nicht mehr (im code B01 & 02 )der andere macht immernoch nichts :
Oder wie meinst du das ? :(

von Ernst O. (ernstj)


Lesenswert?

dann löte den "toten" Motor mal ab und verbinde ihn direkt mit der 
Batterie, vielleicht ist er ja wirklich einfach nur tot?

von (unknown) (Gast)


Lesenswert?

Oki werd ich testen

von (unknown) (Gast)


Lesenswert?

beide funktionieren :/ liegt dan wohl and der software
werde dan am montag die standart software von der schule testen -.- die 
ich leider vergessen  hab aufn stick zu kopieren

von Ernst O. (ernstj)


Lesenswert?

Ist der Motortreiber auch heile? Die kleine Platine oben rechts auf dem 
Bild? vertausche doch einfach mal die Steuerleitungen für die beiden 
Motore (nicht die Motoranschlüsse!). Wenn dann immer noch der gleiche 
Motor sich tot stellt, dann ist der Motortreiber hin. Wenn dann 
allerdings der andere Motor nicht mehr will ist es die Software.

von Barney G. (fuzzel)


Lesenswert?

Auweia. Abloeten, umloeten, ausprobieren, Kleber abkratzen, 
Papiertricks, wie waere es denn mit messen ?

Multimeter an den AVR-Pin und schon weiss man woran es liegt.

von Ernst O. (ernstj)


Lesenswert?

Ich rate mal: ein Multimeter ist nicht in Reichweite.
Arduino user arbeiten normalerweise mit Steckverbindungen, bis das 
Projekt steht. Da hat man keine Last mit Lötzinn und Klebstoff.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.