Arduino Drehteller mit gedruckten Teilen

Benötigte Komponenten

  • Gedruckte Teile (STL Download Drehteller Base mit DC-Buchse )
  • Arduino Nano kompatibles Board + USB-Kabel
  • 28BYJ-48 Schrittmotor
  • ULN2003 Treiber
  • 5V Netzteil
  • Ein-/Ausschalter
  • DC-Einbaubuchse
  • 2 M3 Schrauben
  • 4x 608zz Kugellager (8x22x7mm)

Benötigtes Werkzeug

  • Optional: Doppelseitiges Klebeband oder Heißkleber
  • 3D-Drucker
  • Lötkolben
  • Schraubendreher
  • Abisolierzange

Beschreibung

Dieses Projekt basiert auf diesem Design, welches auf Thingiverse zum Download verfügbar ist. Wir haben das Projekt herausgesucht und gedruckt, weil wir ansprechende Aufnahmen für kleine Bausätze und Artikel erstellen wollten. Hierfür war dieser Drehteller perfekt geeignet und die Dateien wanderten fix an den 3D-Drucker.

Das Design setzt auf einen Arduino Nano mit einem günstigen 28BYJ-48 Schrittmotor, der sich für diesen Zweck perfekt eignet. Durch die ULN2003 Treiberplatine lässt sich der Schrittmotor, wie in diesem Beitrag beschrieben, super einfach ansteuern und programmieren.

Teile

Die Bodenplatte haben wir angepasst und eine Bohrung für eine DC-Einbaubuchse hinzugefügt, damit man sein Netzteil auch für andere Zwecke verwenden kann. Ohne diese Bohrung für die Buchse, müsste man den Stecker vom Netzteil opfern.

Gedruckte-Teile

Druckparameter

  • 3D-Drucker: Ender-5 Plus
  • Filament: yourDroid PLA+ (Weiss)
  • Düsentemperatur: 210°C / 200°C
  • Heizbetttemperatur: 60°C
  • Layerhöhe: 0,24 mm
  • Infill: 15%

Anschlussplan

 Drehteller_Steckplatine

ULN2003 Platine

Arduino

IN1

Pin 8

IN2

Pin 9

IN3

Pin 10

IN4

Pin 11

+

VIN

-

GND

 

Code

 Mit diesem Code dreht sich der Drehteller in moderater Geschwindigkeit und nur in eine Richtung.

 // Quelle: https://github.com/NikodemBartnik/ArduinoTutorials/tree/master/28BYJ-48

 

#define STEPPER_PIN_1 9

#define STEPPER_PIN_2 10

#define STEPPER_PIN_3 11

#define STEPPER_PIN_4 12

int step_number = 0;

void setup() {

pinMode(STEPPER_PIN_1, OUTPUT);

pinMode(STEPPER_PIN_2, OUTPUT);

pinMode(STEPPER_PIN_3, OUTPUT);

pinMode(STEPPER_PIN_4, OUTPUT);

 

}

 

void loop() {

 

  OneStep(false);

  delay(2);

  

 

}

 

 

void OneStep(bool dir){

    if(dir){

switch(step_number){

  case 0:

  digitalWrite(STEPPER_PIN_1, HIGH);

  digitalWrite(STEPPER_PIN_2, LOW);

  digitalWrite(STEPPER_PIN_3, LOW);

  digitalWrite(STEPPER_PIN_4, LOW);

  break;

  case 1:

  digitalWrite(STEPPER_PIN_1, LOW);

  digitalWrite(STEPPER_PIN_2, HIGH);

  digitalWrite(STEPPER_PIN_3, LOW);

  digitalWrite(STEPPER_PIN_4, LOW);

  break;

  case 2:

  digitalWrite(STEPPER_PIN_1, LOW);

  digitalWrite(STEPPER_PIN_2, LOW);

  digitalWrite(STEPPER_PIN_3, HIGH);

  digitalWrite(STEPPER_PIN_4, LOW);

  break;

  case 3:

  digitalWrite(STEPPER_PIN_1, LOW);

  digitalWrite(STEPPER_PIN_2, LOW);

  digitalWrite(STEPPER_PIN_3, LOW);

  digitalWrite(STEPPER_PIN_4, HIGH);

  break;

  }else{

    switch(step_number){

  case 0:

  digitalWrite(STEPPER_PIN_1, LOW);

  digitalWrite(STEPPER_PIN_2, LOW);

  digitalWrite(STEPPER_PIN_3, LOW);

  digitalWrite(STEPPER_PIN_4, HIGH);

  break;

  case 1:

  digitalWrite(STEPPER_PIN_1, LOW);

  digitalWrite(STEPPER_PIN_2, LOW);

  digitalWrite(STEPPER_PIN_3, HIGH);

  digitalWrite(STEPPER_PIN_4, LOW);

  break;

  case 2:

  digitalWrite(STEPPER_PIN_1, LOW);

  digitalWrite(STEPPER_PIN_2, HIGH);

  digitalWrite(STEPPER_PIN_3, LOW);

  digitalWrite(STEPPER_PIN_4, LOW);

  break;

  case 3:

  digitalWrite(STEPPER_PIN_1, HIGH);

  digitalWrite(STEPPER_PIN_2, LOW);

  digitalWrite(STEPPER_PIN_3, LOW);

  digitalWrite(STEPPER_PIN_4, LOW);

 

  

  }

step_number++;

  if(step_number > 3){

    step_number = 0;

  }

}

Schlagworte: arduino, projekt, 3d-druck

Die mit einem * markierten Felder sind Pflichtfelder.

Passende Artikel