[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 583: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 639: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4516: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3262)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4516: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3262)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4516: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3262)
• Programmierer für Arduino UNO
Seite 1 von 1

Programmierer für Arduino UNO

Verfasst: Di 31. Okt 2017, 14:17
von Lippebahner
Hallo alle miteinander,

bin auf der suche nach einem Programmierer, der mir einen Scetch
Programmieren kann um einen Stepper anzusteuern.

Es handelt sich um einen Stepper 28BYJ-48

Es müsste der scatch nach meinen Wünschen angepasst werden ,

Code: Alles auswählen

const int motorPin1 = 10;  // Blue   - In 1
const int motorPin2 = 11;  // Pink   - In 2
const int motorPin3 = 12; // Yellow - In 3
const int motorPin4 = 13; // Orange - In 4
                          // Red    - pin 5 (VCC)

unsigned int highSpeed =  2000;

void setup() {
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
}

void loop()
{ unsigned long n = millis() / 3000; // 3 Sekunden

  switch(n % 8)
  { case 0: stop();               break;
    case 1: rechtsrum(highSpeed); break;
    case 2: stop();               break;
    case 3: linksrum(highSpeed);  break;
    case 4: stop();               break;
  }
}

void rechtsrum(unsigned int motorSpeed)
{ // 1
  digitalWrite(motorPin4, HIGH);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin1, LOW);
  delayMicroseconds(motorSpeed);

  // 2
  digitalWrite(motorPin4, HIGH);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin1, LOW);
  delayMicroseconds(motorSpeed);

  // 3
  digitalWrite(motorPin4, LOW);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin1, LOW);
  delayMicroseconds(motorSpeed);

  // 4
  digitalWrite(motorPin4, LOW);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin1, LOW);
  delayMicroseconds(motorSpeed);

  // 5
  digitalWrite(motorPin4, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin1, LOW);
  delayMicroseconds(motorSpeed);

  // 6
  digitalWrite(motorPin4, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin1, HIGH);
  delayMicroseconds(motorSpeed);

  // 7
  digitalWrite(motorPin4, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin1, HIGH);
  delayMicroseconds(motorSpeed);

  // 8
  digitalWrite(motorPin4, HIGH);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin1, HIGH);
  delayMicroseconds(motorSpeed);
}

void linksrum(unsigned int motorSpeed)
{ // 1
  digitalWrite(motorPin1, HIGH);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  delayMicroseconds(motorSpeed);

  // 2
  digitalWrite(motorPin1, HIGH);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  delayMicroseconds(motorSpeed);

  // 3
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  delayMicroseconds(motorSpeed);

  // 4
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin4, LOW);
  delayMicroseconds(motorSpeed);

  // 5
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin4, LOW);
  delayMicroseconds(motorSpeed);

  // 6
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin4, HIGH);
  delayMicroseconds(motorSpeed);

  // 7
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, HIGH);
  delayMicroseconds(motorSpeed);

  // 8
  digitalWrite(motorPin1, HIGH);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, HIGH);
  delayMicroseconds(motorSpeed);
}

void stop()
{ digitalWrite(motorPin4, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin1, LOW);
}
das ganze muss auch nicht umsonst passieren, da ich soviel English nicht kann.
Eine Logo zu programmieren schaffe ich noch, nur habe ich momentan nicht die lust
Tag und nacht daran zu verbringen.

Mit freundlichen Grüßen

Marcel.

Re: Programmiere für Arduino UNO

Verfasst: Di 31. Okt 2017, 16:12
von Nobody
Morgens,

Was willst DU den genau, beziehungsweise was soll das ganze machen, oder ist der Sketch fertig und muss nur in den Aduino geladen werden.

Grüsse

Re: Programmiere für Arduino UNO

Verfasst: Di 31. Okt 2017, 18:33
von Lippebahner
Der sketch in den Arduino laden funktioniert,

es sollen an den Eingängen 2,3,4 Taster angeschlossen werden ,
an Eingang 1 ein Schalter ( Öffner ) als Not Halt die ein HIGH signal generiern und entprellt sind
Taster 2 --> Tor auf ( Rechtslauf z.B.) Schritte Zählen ( vorher eingegeben )
Taster 3 --> Tor zu ( linkslauf z.B.) Schritte Zählen
Taster 4 --> Referenzpunk zu
Microschalter -->5 Referenzpunkt zu
Schalter -->6 Not Halt
Ausgänge 10-13 wie im Scatch

Beim Einschalten ( Spannung am Arduino ) soll Referenzpunkt angefahren werden.
Bei betätigung Taster 2 sollen die Schritte abgefahren werden die ich Individuell engeben kann.
Bei betätigung Taster 3 soll die Schritte rückwärts gezählt werden
Bei betätigung vom Schalter soll nach widerkehr des HIGH signals der Referenzpunkt angefahren werden.