Projekt: Drahtführung für Wickelautomat (Teil 6)

Der nächste Button hängt an Pin 8 des NANO. Er simuliert den Endanschlag an der linken und rechten Seite der Spulenbreite. Hier muss aus aktueller Sicht auch nicht zwischen links und rechts unterschieden werden, weil einfach nur ein sofortiger Stop und ein Wechsel der Bewegungsrichtung notwendig ist. Die beiden Endschalter sind also später parallel zu schalten. Zur Simulation reicht jetzt einer.

Der Button an Pin 9 setzt den Motor wie schon vorher in Gang. Der Button an Pin 8 leitet einen sofortigen Stop ein und ändert die Drehrichtung. Damit man das sieht muss die Bewegung aber mit dem „Bewegungs“-Button eingeleitet werden. Das Programm dazu:

// step and 2 buttons
// -*- mode: C++ -*-
//
// Ein Button um den Motor zu bewegen, zweiter Button um die Drehrichung zu ändern
//
// Thomas Sturm mit diversen Quellen

#include <AccelStepper.h>

// Define a stepper and the pins it will use
AccelStepper stepper(AccelStepper::DRIVER, 2, 5); // pin 2 = step, pin 5 = direction

// The button definition
const int buttonTurn = 9;     // the number of the buttonTurn pin, btn to Vcc, pin via resistor to ground
const int buttonEnd = 8;     // the number of the buttonEnd pin, btn to Vcc, pin via resistor to ground

// variables will change:
int btnTurnState = 0;         // variable for reading the pushbutton status
int btnEndState = 0;         // variable for reading the pushbutton status
int weg = 200;                // variable for Länge der Bewegung

void setup()
{
  // Anpassungen an Stepper
  stepper.setMaxSpeed(20);   // max steps per second
  stepper.setAcceleration(10);  // Beschleunigung in Steps per second per second

  // Die Pins an denen die Buttons hängen als Eingang definieren
  pinMode(buttonTurn, INPUT);     
  pinMode(buttonEnd, INPUT);     

}

void loop()
{
  // Auslesen der Button-Zustände
  btnTurnState = digitalRead(buttonTurn);
  btnEndState = digitalRead(buttonEnd);
 
  // beide Buttons auswerten

  if (btnTurnState == HIGH) {     
    stepper.move(weg);
  }

  if (btnEndState == HIGH) {
    weg = – weg;    // Drehrichtung ändern
    stepper.stop();  // sofortigen Stop einleiten, siehe AccelStepper Classes
  }

stepper.run();   // run immer ausführen um Bewegung zu vollenden, siehe AccelStepper Classes
}

Beim Ablauf des Programms gibt es jetzt aber schon ein Problem. Beim Drücken des Endstop-Buttons (Pin 8) wird zwar immer ein Stop ausgeführt. Leider scheint sich die Drehrichtung nicht immer zu ändern. Ich würde mal schätzen, dass entweder der Button prellt, oder aber die loop-Schleife während eines Buttondrucks mehrfach durchläuft. Das habe ich abgesichert. Dann stellte sich aber heraus, dass das natürlich auch für den „Bewegungs“-Button gilt, was vorher nicht auffiel. Ich habe eine neue Variable int lock (in die Variablen-Deklarationen aufnehmen !!) eingeführt und die loop folgendermaßen geändert:

void loop()
{
  // Auslesen der Button-Zustände
  btnTurnState = digitalRead(buttonTurn);
  btnEndState = digitalRead(buttonEnd);
 
  // beide Buttons auswerten

  if (btnTurnState == HIGH && stepper.distanceToGo() == 0) {     
    stepper.move(weg);
    lock–;
  }

  if (btnEndState == HIGH && lock < 1) {
    weg = – weg;    // Drehrichtung ändern
    lock = 5;        // mindestens 5 Bewegungstrigger muss gewartet werden, bis wieder ein Richtungtrigger möglich ist
    stepper.stop();  // sofortigen Stop einleiten, siehe AccelStepper Classes
  }

stepper.run();   // run immer ausführen um Bewegung zu vollenden, siehe AccelStepper Classes
}

Es steht ja schon im Kommentar: Bevor ein Stop und eine Richtungsänderung erneut möglich ist, müssen erst 5 Bewegungstrigger kommen. Nur dieser Anteil allein brachte aber nicht die notwendige Wirkung, weil eben auch der andere Button nicht kurz genug gedrückt werden kann. Also musste auch hier eine Sicherheit gegen Mehrfachbetätigung eingeführt werden. Über stepper.distanceToGo() == 0 lässt sich das einfach bewerkstelligen. Erst wenn eine Bewegung beendet ist, kann eine neue erfolgen.

Projekt: Drahtführung für Wickelautomat (Teil 5)

Ein relativ einfacher nächster Schritt:

An Pin 9 des NANO wird ein Button gegen Vcc angeschlossen.  Das ist wieder der 5V-Anschluss am NANO, den ich schon zum Treiber „FAULT“ verbunden hatte. Gleichzeitig liegt am NANO-Pin 9 über einen 10k-Widerstand GND.
Die ganzen Grundlagen zu AVR, – nichts anderes ist der Arduino -, kann man sich auf Mikrocontroller.net erarbeiten.
Das Ziel dieser Aktion ist, dass der Motor losläuft, wenn der Button gedrückt wird.  Bei mir lief das problemlos. Der Motor macht eine volle Umdrehung, da 200 relative Schritte vorgegeben sind. Drückt man nochmal, wird wieder in die gleiche Richtung gedreht.

Hier das entsprechende Programm:

// step and button
// -*- mode: C++ -*-
//
// Make a single stepper turn on button press
//
// Thomas Sturm mit diversen Quellen

#include <AccelStepper.h>

// Define a stepper and the pins it will use
AccelStepper stepper(AccelStepper::DRIVER, 2, 5); // pin 2 = step, pin 5 = direction

// The button definition
const int buttonPin = 9;     // the number of the pushbutton pin, btn to Vcc, pin via resistor to ground
// only for test purpose
const int ledPin =  13;      // the number of the LED pin onboard

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup()
{
  // Change these to suit your stepper if you want
  stepper.setMaxSpeed(10);   // max 10 steps per second
  stepper.setAcceleration(5);
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);      
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);     

}

void loop()
{
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState == HIGH) {     
    // turn LED on:    
    digitalWrite(ledPin, HIGH);
    stepper.move(200);
  }
  else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
  }
stepper.run();   // run immer ausführen um Bewegung zu vollenden, siehe AccelStepper Classes
}

 

Der jetzt eingebaute Button ist praktisch der Umdrehungssensor an der Drahtspule. Das Signal wird am Filawinder durch einen Magneten erzeugt, der an einem Hall-Sensor vorbeiläuft. Pro Umlauf der Spule muss sich später die Drahtführung um einen Drahtdurchmesser weiterbewegen.
Ein weiterer Button wird jetzt eingefügt. Er simuliert die Endpositionen, – die linke und rechte Seite der Spule.

Meine Testkonstruktion ist auch schon fertig. Sämtliche Halter, der Reiter und die Verbindungsmuffe sind gedruckte Teile. Die Files werde ich später zur Verfügung stellen.

Drahtführung Testaufbau Antrieb und Verbindung Drahtführung Testaufbau linker Halter Drahtführung Testaufbau Reiter Drahtführung Testaufbau Gesamtansicht

Projekt: Drahtführung für Wickelautomat (Teil 4)

Das kleine Testprogramm hilft auf Dauer natürlich nicht weiter. Es war ja auch nur zum Test gedacht. Sowohl dieses kleine Testprogramm als auch die in den Arduino-Bibliotheken vorhandenen Programmmteile haben den Nachteil, dass jegliche Motorbewegungen immer das Programm solange aufhalten, bis der Motor die Zielposition erreicht hat. Da beim Wickelautomat aber andere Programmteile auch in Echtzeit laufen müssen, wäre das fatal.

Ich habe eine andere Programmbibliothek gefunden: AccelStepper

Der Vorteil dieser Bibliothek ist, dass eine Bewegung initiiert wird und bei jedem Durchlauf der loop()-Funktion ein Stück weit vorwärtsgetrieben wird. Das Programm muss also nicht an der entsprechenden Stelle warten.

Zunächst muss die neue Bibliothek in die Arduino Entwicklungsumgebung integriert werden. Dazu wird die aktuelle Version von der AccelStepper-Projektseite geladen. Der entpackte Ordner AccelStepper wird nach Arduino/libraries kopiert. Kleine Kontrolle: In diesem Ordner muss die AccelStepper.h enthalten sein.

Von den Beispielen probiere ich als Erstes „Bounce.pde“

// Bounce.pde
// -*- mode: C++ -*-
//
// Make a single stepper bounce from one limit to another
//
// Copyright (C) 2012 Mike McCauley
// $Id: Random.pde,v 1.1 2011/01/05 01:51:01 mikem Exp mikem $
#include <AccelStepper.h>
// Define a stepper and the pins it will use
AccelStepper stepper; // Defaults to AccelStepper::FULL4WIRE (4 pins) on 2, 3, 4, 5
void setup()
{
// Change these to suit your stepper if you want
stepper.setMaxSpeed(100);
stepper.setAcceleration(20);
stepper.moveTo(500);
}
void loop()
{
// If at the end of travel go to the other end
if (stepper.distanceToGo() == 0)
stepper.moveTo(-stepper.currentPosition());
stepper.run();
}

Das ist aber noch nicht ganz das, was ich brauche. Die Anschlussart passt noch nicht. Sie wird definiert über AccelStepper::
Im Beispiel wird über eine H-Bridge gearbeitet. 4 Steuerleitungen werden gebraucht. Ich arbeite aber mit einem Treiber, der nur Step und Dir kennt. Der Constructor wir also geändert in:

AccelStepper::DRIVER
… und da ich STEP auf Pin 2 und DIR auf Pin5 gelegt habe, muss auch das dem Construktor bekannt gegeben werden. Der gesamte Constructor lautet also auf:

AccelStepper stepper(AccelStepper::DRIVER, 2, 5);

„stepper“ ist übrigens ganz einfach der Name meines Motors. Alle Funktionen werden mit diesem Namen aufgerufen: stepper.xxxx();

Das ist das fertige Programm in der Entwicklungsumgebung. Erfolgreich kompiliert ist es auch schon.

Bounce

Das Programm habe ich dann übertragen und dann läuft es auch schon. Aber der Treiber wird sehr schnell heiß und nach kurzer Zeit bleibt der Motor stehen. Also Speed runter. Poti auf Treiber einstellen?

Die Referenzspannung lag tatsächlich bei 1,5V. Das ist erheblich zu viel. Nach der üblichen Formel berechnet benötige ich 0,875V. Ich habe das Poti im Uhrzeigersinn gedreht, so dass ich jetzt etwas über 0,6V habe. Jetzt scheint es zu passen. Wenn noch Last draufkommt, werde ich vielleicht höher drehen müssen. Komischerweise ist im Schaltbild von Pololu die Drehrichtung zur Reduzierung der Spannung genau andersherum ausgewiesen. Seltsam.

Ich habe auch mal den Befehl moveTo auf 200 gesetzt. Der Motor hat schließlich 200 Schritte pro Umdrehung. Erst habe ich gestaunt, dass in jedem Zyklus die Fahne 2 Runden dreht. Aber klar. Von 200 bis -200 sind es ja auch 2 volle Umdrehungen. Also passt alles.

Ich spiele jetzt noch ein wenig mit setMaxSpeed und SetAcceleration.
Der erste Wert sagt aus, wieviele Schritte pro Sekunde maximal ausgeführt werden dürfen. Der zweite Wert sagt aus wie stark die Beschleunigung sein soll in Schritten pro Sekunde².

 

 

Projekt: Drahtführung für Wickelautomat (Teil 3)

Jetzt werde ich die ersten Gehversuche mit einem Schrittmotor wagen. Ich verwende dazu den schon aus dem letzten Teil bekannten Arduino Nano, einen Treiberbaustein Pololu DRV8825 und natürlich einen Schrittmotor. Der Schrittmotor hat die Typbezeichnung 17HS5425. Wichtig ist daran eigentlich nur, dass es ein bipolarer Schrittmotor ist. Daher hat er 2 Paare Anschlussdrähte, die jeweils eine Motorwicklung ansteuern.

Die Schaltung ist eigentlich zwischen DRV8825 und dem etwas bekannteren Typ A4988 gleich. Besser gesagt, in eine Schaltung für einen A4988 kann man auch einen DRV8825 einsetzen. Andersrum ist das nicht sichergestellt. Ich verwende deshalb diese Schaltung:Pololu DRV8825 Beschaltung

In dieser Schaltung kann sowohl der A4988 als auch der DRV8825 verwendet werden, auch wenn eine Pinbezeichnung verändert ist. Beim DRV8825 gibt es einen FAULT-Eingang. Der gleiche Pin ist am A4988 mit VDD bezeichnet. Und tatsächlich wird dieser Pin auch mit der Ausgangsspannung des Nano beschaltet. Am Nano  ist das der PIN „+5V“. Der liefert beim Anschluss an USB (oder andere) Strom. Zum Vergleich die A4988-Schaltung.Pololu A4988 Beschaltung

In dieser Schaltung bleibt bei mir „logic power supply“ unbeschaltet, da ich den Nano mit USB-Strom versorge. Am Arduino Nano gibt es übrigens für GND zwei Pins, die zu verbinden sind.

Kleine Hintergrundinfo:
Am DRV8825 ist FAULT intern über einen Widerstand mit SLEEP verbunden. Somit macht dann auch die Brücke zu RESET Sinn.

VMOT und GND werden mit der Stromversorgung für den Schrittmotor versorgt. Ja, da benötigt man extra Strom. Deshalb ja auch der Treiberbaustein. Denn der stellt den Motorwicklungen gezielt Strom zur Verfügung. Die läppischen Milliampere über USB reichen da bei Weitem nicht. Die Stromversorgung sollte unbedingt mit dem 100 µF (Mikrofarad) -Elko geglättet werden. Jetzt noch den Schrittmotor selbst anschließen und die Schaltung ist fertig. Die Verbindung zum Schrittmotor sollte unbedingt sehr sicher angelegt werden. Sollte auch nur ein Pin während des Betriebs keinen Kontakt haben löst sich der Treiberbaustein per Rauchwolke in wertlosen Schrott auf.

Zuletzt darf natürlich die Datenverbindung zwischen Nano und Treiberbaustein nicht fehlen. Welche Pins am Nano genommen werden ist egal, solange es digitale Pins sind. Die analogen sollten hier nicht genommen werden. Ich habe Pin D2 und D5 genommen.

Hier (Youtube) noch ein kleines Video zur Schaltungserklärung auf dem Breadboard.

Nachdem alles verdrahtet ist, kontrolliert wurde und die 12V-Stromversorgung für den Schrittmotor eingeschaltet ist lade ich ein erstes extrem simples Testprogramm auf den Arduino Nano. Einziges Ziel ist die Funktionskontrolle der Schaltung.Stepper ansteuern

Zum leichteren Kopieren nochmal als Text …

/*
Schrittmotor
alle 200ms ein Schritt in eine Richtung.

This example code is in the public domain.
*/

void setup() { 
// setzen der Digitalpins 1 und 2 als Ausgang.
pinMode(5, OUTPUT);
pinMode(2, OUTPUT); 
}

void loop() {
digitalWrite(5, HIGH); // DIR an Pin D5
digitalWrite(2, HIGH); // STEP an Pin D2
delay(100); // warte eine zehntel Sekunde
digitalWrite(2, LOW); // Gnd an Pin D2
delay(100); // warte eine zehntel Sekunde
}

Das Programm habe ich vor einiger Zeit in einem Forum entdeckt und gleich kopiert. Leider finde ich die Quelle nicht wieder. Auch wenn es als PD gekennzeichnet ist: Wenn jemand die Quelle weiß, wäre ich für den Hinweis dankbar.

Wenn das Programm übertragen wurde, sollte sich der Schrittmotor im Zehntelsekundentakt in Bewegung setzen. Bei mir hat es auf Anhieb funktioniert.

Projekt: Drahtführung für Wickelautomat (Teil 2)

Ich hatte ja schon erwähnt, dass ich mit dem Filawinder nicht ganz glücklich bin, weil die Führung des Drahtes auf der Spule nicht so gut funktioniert. Das liegt aber nicht etwa an einer schlechten Konstruktion des Gerätes, sondern daran, dass ich wesentlich größere Spulen verwende und 3mm-Draht produziere. Das Gerät ist aber wohl eher für 1,75mm-Draht und kleine Spulen ausgelegt.

Ich habe mir überlegt, dass ich die Konstruktion mit einem Schrittmotor antreiben will. Die Steuerung soll letztendlich von dem bereits im Gerät verbauten Arduino Nano erledigt werden. Das vorhandene Programm werde ich erweitern und die Anteile der Servosteuerung entfernen.

Zur Entwicklung in den ersten Schritten fange ich mit einem Breadboard an. Wer es nicht kennen sollte: Ein Steckbrett für elektrische Komponenten.

Ich fange mal klein an: Arduino Nano soll blinken.

Also den Nano per USB an den Rechner anschließen. Das kann problemlos bei laufendem Rechner passieren. Die Arduinos brauchen keinen zusätzlichen Strom. USB reicht.

Neben dem Arduino Nano wird die Entwicklungsumgebung gebraucht. Etwas Programmiersprache C sollte man beherschen dafür.  Nach der Installation findet man sich auf der Oberfläche wieder. Die sieht dann so aus:Arduino EntwicklungsoberflächeZuerst muss das Board ausgewählt werdenBoardauswahl in Arduino

… und jetzt noch das erste Testprogramm: BLINK…Blink auswählen in ArduinoDann sieht es so aus:

Arduino BlinkJetzt den Upload-Button Upload-Button drücken und dann wird diese Software, auch Sketch genannt, auf den Nano geladen. Danach blinkt die rote LED im Sekundentakt.Blink ErfolgDie grüne LED darunter zeigt an, dass der Nano mit Strom versorgt ist.

Heated Chamber – Umzug Teil 2

Die kleinen Crimpkontakte sind endlich gekommen. Somit konnte ich endlich anfangen die dicken Anschlüsse an den Schrittmotoren durch schlanke AWG-Anschlüsse zu ersetzen. Hier ein Bild alter weißer Anschluss und der bereits fertig konfektionierte neue schwarze Anschluss:

Schrittmotoranschluss alt und neu

Mein erster Ansatz diese Crimkontakte zu löten funktionierte allerdings überhaupt nicht. Die Kontakte waren nach dem Löten nicht mehr zu gebrauchen, weil sich auch das Lötzinn in die Steckbuchse hochzog. Also musste eine Crimpzange her. Zwei Probleme: Welche Crimpzange? Und der Umgang will gelernt sein. Beides ließ sich lösen. Die Crimpzange habe ich vom vermutlich weltweit größten Versandhaus. Nachdem ich raus hatte, wie die Norm heißt (AWG) hatte ich die Zange schnell gefunden. Nachdem die Zange da war, hieß es Üben. Die ersten 5 Anläufe waren nicht zu gebrauchen. Gute Hilfe waren dabei die unzähligen Youtube-Videos.

20140921_113057 gecrimpter Anschluss

Das eigentliche Problem waren die extrem dicht gesetzten Pinheader auf dem RAMPS für die Z-Motoren. In dem folgenden Bild ist meine vorübergehende Lösung zu sehen. Ich hatte einfach einen der Anschlüsse etwas herausgeführt. So ging es, – schön war es allerdings nicht. Sollte jemand Interesse an diesem „alten“ RAMPS haben, könnte ich mir vorstellen es gegen kleines Geld abzugeben. Einfach Kontakt aufnehmen. Funktionieren tut es ja und die Anschlusskabel sind auch schnell wieder zurückgebaut.

Leider habe ich keine Bilder vom meinem neuen RAMPS 1.4 mit den neuen Steckern gemacht. Ich habe aber keine Lust alles wieder zu zerlegen. Wenn ich es mal wieder öffne, liefere ich es nach.

RAMPS Z-Treiber

Die Elektronik war damit in Ordnung, wobei ich immer noch nicht wirklich glücklich mit der Lösung bin. Dazu aber mehr in einem anderen Beitrag.

Die Rahmenkonstruktion hat mittlerweile Scheiben. Die waren zwar schon eine Weile da, aber ich wollte sie noch nicht einbauen, da die Elektronik noch überarbeitet werden sollte. Ich habe Macrolon-Glas genommen, das ich gleich beim Kunststoffhändler auf Maß schneiden ließ. Macrolon soll ganz gut verarbeitbar sein. Zumindest habe ich ein Loch mit 6mm gebohrt um das Filament von oben zuzuführen. Das ging ohne Risse und völlig problemlos auch ohne Vorbohren. Bei Plexiglas ist das schon schwieriger. Macrolon hat noch den Vorteil, dass es die Wärmebelastung ganz gut aushält.

Aus diversen Überlegungen heraus wollte ich die Scheiben nicht direkt in die Profile einsetzen. Das geht gründsätzlich schon. Ich habe mich entschieden außen Aluwinkel aufzusetzen und die Scheiben dann zwischen Winkel und Aluprofil zu führen.Heated Chamber Ecke oben

Den Abstand zwischen Profil und Aluwinkel habe ich simplerweise mit Unterlegscheiben realisiert.Heated Chamber AbstandNoch ein paar Ansichten zur Verdeutlichung …Heated Chamber Ecke unten Heated Chamber unterhalb Heated Chamber Schrauben untenIm letzten Bild sieht man noch einen kleinen Schönheitsfehler. Da die unteren Winkel von unten direkt und ohne Abstand auf die Profile geschraubt werden, wird eine kürzere Schraube gebraucht. Die war aber leider nicht zur Hand. Bei Gelegenheit …

Hier noch die Gesamtansicht:Heated Chamber ÜbersichtDie Filamentzuführung erfolgt von oben durch ein 6mm-Loch. Der Halter für die Rolle wir noch passend neu erstellt.

Natürlich sollen die fehlenden Winkel noch angebracht werden. Oben fehlt der Abschluß noch komplett. Somit kann auch warme Luft noch entweichen. Trotzdem werden jetzt schon im Druck Temperaturen bis zu 37 °C in Höhe des Druckbettes erreicht. Ziel ist es da noch höher zu kommen. Aber allein diese Maßnahme hat schon zu Erfolgen geführt. Ein bis zum Rand bedrucktes Druckbett zeigte keinerlei Ablösungen. Das ist doch schon mal was.Heated Chamber Erfolg

Spam nervt – deshalb jetzt Captchas

Nachdem ww.hoganoutlet.it offensichtlich unendlich viel Spaß am Zuspammen meines Blog hatte, habe ich mich heute entschlossen ein Captcha in das Kommentarfeld einzubauen. Dieser Spammer war in der Lage den 3. und 4. Block seiner ip-Adresse völlig frei zu wählen. Da half dann auch kein Blockieren der IP mehr. Ich kann ja nicht die halbe Welt ausschließen.
Ich hoffe es hilft und schreckt die ehrlichen User nicht ab. Sorry, es ging nicht mehr anders.

Netzteile entdeckt

Ich habe beim Elektronikversand meines Vertrauens ein paar alte Server entdeckt, die für billiges Geld ausrangiert wurden. Als ich hinkam, standen die Dinger vor dem Laden auf einer Palette.

Klar, dass man als Bastler ja eigentlich alles gebrauchen könnte. Die Server waren aber sehr schwer. Und eigentlich brauchte ich nur ein paar Teile davon. Der Deal ließ sich mit den Angestellten machen.

Ich habe neben ein paar Lüftern und Speicher zwei Netzteile ergattert: Compaq PS-5551-2

Compaq PS-5551-2 Front Compaq PS-5551-2 Anschlüsse Compaq PS-5551-2 Übersicht Compaq PS-5551-2 Label

Die Netzteile sollen auf der 12V-Leitung 30A bringen.
Das übliche Problem der Beschaltung war per Internet auch gleich gelöst. Die Netzteile geben ihren Saft beim Kurzschließen per Jumper von je zwei PINs her:

* * * * *
*-* * * *
* * * * *
* *-* * *
… und dann kommt auf den Anschlußzungen links und rechts auch schon die Energie:
||    ||    ||    ||    ||    ||       ##     ||    ||    ||    ||
3.3V     5V      12V    5x4p   —-GND—-

Mittlerweile habe ich das auch getestet und kann das oben Genannte bestätigen. Die Spannungen kommen wie erwartet. Beim Verbinden von 230V laufen die Lüfter kurz hoch und werden dann sofort wieder leise. Ich habe auch mal eines der Netzteile aufgeschraubt. Erstens war ich neugierig, wie es innen aussieht (-> keine wirkliche Überraschung, eher üppig dimensioniert) und zweitens hätte ich eventuell eine andere Anschlussleiste angebracht. Die Serversteckleiste habe ich nämlich nicht und will ich auch nicht unbedingt kaufen. Die Leiste auszulöten habe ich nach zwei Pins abgebrochen. Das würde zu aufwendig werden. Jede einzelne Zunge in der Leiste ist mit 4 recht dicken Kontakten in die Platine eingelötet. Selbst mit Entlötvorrichtung bei 400°C war da kaum was auszurichten. Ich lass mir was einfallen.

Das Lob für das Herausfinden der Beschaltung gebührt übrigens dem Forum Tech Support Guy . Danke dafür !

Extruderantrieb defekt

Am frühen morgen sah ich mir das Ergebnis des Nachtdruckes an. Katastrophal!

Alle Layer ab ca. 1cm aufwärts waren nicht vollständig. Mein erster Tipp war, dass die Düse verstopft wäre. Das war es aber nicht. Hätte ich in den vergangenen Tagen mal genauer hingesehen, hätte ich das sich anbahnende Unheil erkennen können.Karies am Extruderantrieb 2Die schwarzen Partikel waren mir schon vorher aufgefallen. Ich habe mir allerdings nichts dabei gedacht. Das sich da ein Teil so langsam auflöst kam mir nicht in den Sinn. Und hier ist es …Karies am Extruderantrieb 1Das ist das Antriebsrad vom Extruder, was direkt auf der Schrittmotorachse befestigt ist. Ich meine, dass das noch aus meiner PLA-Zeit stammt. Heute mache ich ja alles aus ABS.

Gut, dass ich noch Ersatzteile habe!

Projekt: Drahtführung für Wickelautomat (Teil 1)

Aller Anfang …

Wie schon in einem früheren Artikel beschrieben, erzeuge ich mein Filament selbst. Dazu benutze ich den Filastruder. Um dann auch gleich den erzeugten Filamentdraht zu wickeln habe ich auch den Filawinder. Der ist bei mir mittlerweile schon ziemlich modifiziert, was größtenteils dem Umstand meiner großen Spulen (bis 5kg) zu verdanken ist.

Der Filawinder hat eine Vorrichtung, die den erzeugten Draht auf der Spule führen soll, so dass Wicklung neben Wicklung sauber auf die Spule kommt. Das ist mit einem Servomotor aus dem Modellbausektor umgesetzt. IMAG0049Ich denke, dass diese Lösung bei 1,75mm-Drähten auch ganz gut funktioniert. Bei meinem recht steifen 3mm-Draht und zudem meinen breiten Spulen tut sich diese Führung aber sehr schwer und schafft es nicht mehr sauber.

Mein Gedanke ist es, die Führung per Servo durch eine Führung per Schrittmotor und Gewindestange zu ersetzen. Was haben wir:

  1. Von einem Hallsensor am Spulenzahnrad kommt ein Signal pro Umdrehung der Spule.
  2. Der Durchmesser des Drahtes wird schon heute mit einem Jumper auf der Elektronik eingestellt.
  3. Der steuernde kleine Arduino kann auch noch den Schrittmotor steuern, – zumal der Servo ja wegfällt.
  4. Die Firmware der aktuellen Elektronik ist bekannt und liegt in bearbeitbarer Form vor. Servoanteil raus und Schrittmotorsteuerung rein sollte kein Thema sein.
  5. Stromversorgung ist mit 12V passend vorhanden.

Jetzt muss ich mich erstmal in das Thema reinarbeiten. Alles für erste Versuchsaufbauten ist vorhanden:

  • Platinen oder Breadboard
  • Schrittmotor NEMA17
  • Treiberbaustein Pololu DRV8825
  • Arduino
  • Stepperbibliothek habe ich gefunden: AccelStepper
  • Schaltungsentwürfe von Pololu und RAMPS 1.4
  • Draht, Kabel, Bauteile, Strom
  • Mut zum Anfang

Die Schaltungsentwürfe:
Treiberbeschaltung DRV8825-Beschaltung

Auf geht’s …

Alles rund um das Hobby Materialbearbeitung