www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Arduino Programm


Autor: tur (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

Ich habe mir seit kurzem ein Arduiono kompatibles Kettenfahrzeug 
gekauft.
Ich habe dann ein Programm geschrieben das mittels PWM Motoren steuern 
sollte aber aus irgendeinem Grund krieg ich es nicht zum Laufen.
Im Anhang könnt ihr euch die Schaltung anschauen, vielleicht habe ich ja 
die falschen Pins verwendet.
Wäre toll wenn mir einer aushelfen könnte....


Hier ist das Programm:

/*-------PWM-Test------*/


int M1 = 5;  //Speed-Control
int M2 = 6;  //Speed-Control
int R1 = 7;  //Direction-Control
int R2 = 8;  //Direction-Control


void setup()
{
  int i;
  for(i=5;i<=8;i++)
  pinMode(i,OUTPUT);
}


void loop()
{
  analogWrite(M1,255);  //Maximum Speed
  analogWrite(M2,255);  //Maximum Speed
  digitalWrite(R1,LOW);  //Forward
  digitalWrite(R2,LOW);  //Forward
}

Danke im Vorraus :)

lg Chris

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Code sieht für mich OK aus, wenn ich mir die Doku im Netz 
betrachte.
http://www.robotshop.com/dfrobotshop-rover-tracked...

Ich habe noch eine Änderung eingefügt, damit das Vorwärts nicht ständig 
sondern nur einmal gegeben wird. Möglicherweise verschluckt sich die 
Ansteuerung, wenn die PWM ständig d.h. bei jedem loop() Durchlauf neu 
initialisiert wird.

int M1 = 5;  // Motor 1 Speed-Control (ENA am L293B)
int M2 = 6;  // Motor 2 Speed-Control (ENB am L293B)
int R1 = 7;  // Motor 1 Direction-Control (IN1/2 am L293B)
int R2 = 8;  // Motor 3 Direction-Control (IN3/4 am L293B)

void setup()
{
  int i;
  for(i=5;i<=8;i++)
    pinMode(i,OUTPUT);
}

void forward()
{
  // Motor 1
  analogWrite(M1,255);  // Speed (255=MAX) über PWM an ENA
  digitalWrite(R1,LOW); // Forward

  // Motor 2
  analogWrite(M2,255);  // Speed (255=MAX) über PWM an ENB
  digitalWrite(R2,LOW); // Forward
}

void loop()
{
  static char laeuft = 0;
  if ( laeuft == 0 )
  {
    laeuft = 1;
    forward();
  }
}


L293 Tutorials
http://robotika.yweb.sk/skola/H-brigde/IC%20L293%2...

74HC00 Quad 2-input NAND gate:
digitalWrite(R1,LOW) => Motor runs anti-clockwise => Forward

Jetzt zur eigentlichen Fehlersuche:

Bei der Aufbauanleitung sind zwei IMPORTANT NOTES angegeben. Hast du die 
beachtet?

Hast du Tools für eine Fehlersuche?

Ein Multimeter zum Messen von Spannungen wäre ganz gut.

Zur Not geht als Spannungsspion auch eine LED. Man könnte die LED_SEL 
Brücke rausnehmen und dort an der Seite bei den LEDs einen Draht 
einstecken.

Wenn die zweite Drahtseite dann mit einer spannungsführenden Stelle 
verbunden ist, leuchten die LEDs 5 bis 10.

Damit kannst du an Pin D5 und D6 auf Jumperleiste J1 die Funktion der 
PWM überprüfen (Spion leuchtet). Bei Änderung des Wertes 255 im Programm 
ändert sich die Intensität der LED (statt 255 z.B. 100 probieren). Die 
Änderung ist u.U. schwer zu sehen, wenn nur geringe Wertänderungen 
gemacht werden (das liegt an der Anpassung des Auges).

Um die Pins D7 und D8 auf Jumperleiste J1 bzw. J2 zu überprüfen, kannst 
du den Rover rückwärts fahren lassen (Spion leuchtet)

  // Motor 1
  analogWrite(M1,255);   // Speed (255=MAX) über PWM an ENA
  digitalWrite(R1,HIGH); // Rückwärts

  // Motor 2
  analogWrite(M2,255);   // Speed (255=MAX) über PWM an ENB
  digitalWrite(R2,HIGH); // Rückwärts

oder bei Vorwärtsfahrt dürfen D7 und D8 die LEDS nicht zum Leuchten 
bringen.

Beide Tests würden zeigen, ob das Programm im µC überhaupt arbeitet. 
Wenn das der Fall ist, geht es im nächsten Schritt an den Test des 
74HC00 und des L293 und der Motoren. Aber melde dich erstmal wieder mit 
dem ersten Ergebnis.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.