Optokoppler und ULN2003

OP #3042503
Lesenswert?

Für die Ansteuerung einer Druckerpatrone muss ich mit einem ULN2003 die 
Pins für 5us auf 20V legen. Meine Beispielschaltung hat ein PC Netzteil 
für die TTL Logik und die Schrittmotoren, und ein zweites Netzteil für 
die 20V.

Ich will aber ein sparsamer Mensch sein und denke mir, das PC Netzteil 
hat +12V und -12V, also 24V Differenz. Spannungsregler dran, und hurra 
20V. Jetzt muss aber der ULN2003, der vorher so schön Masse mit dem 
ATMega geteilt hat, auf -12V geerdet werden.

Wie steuere ich mit dem ATMega (GND, 5V) meinen ULN2003 (-12V, +12V)? 
Gibt's da einen Trick (oder einen anderen ULN), oder muss ich mit 
Optokopplern arbeiten? Wenn ja, wie setze ich auf der Optokopplerseite 
die Widerstände und wie berechne ich die?

Für jede Hilfe dankbar.

 - Matthias

PS: sorry, kriege das dritte Bild nicht gelöscht... .
Angehängte Dateien:
#3042521
Lesenswert?

Matthias M. schrieb:
> oder muss ich mit
> Optokopplern arbeiten?

in dem von dir beschrieben Fall musst du das natürlich tun.
.. ob das aber nun sparsam ist ist eine andere Frage.
... zudem ist ja die -12V Schiene nicht besonders belastbar.

demnach gibt das bestimmt Probleme.

evt. ist es sparsamer einen Stepup Schaltnetzteil zusammenzubasteln um
von den 5V oder 12V auf die 20V zu kommen.

.. ich weiss aber nicht wieviel Strom deine Druckköpfe ziehen wollen.

Gruss Klaus
OP #3042605
Lesenswert?

@spontan: richtig, da fehlt noch die Leitung zum Druckkopf.

@Klaus: genau. Step-up ist auch ne gute Idee. Habe ich allerdings keine 
Erfahrungen mit. Ich bleibe sonst immer im 0..5V Bereich ;-)

@Anja: oha, daran habe ich nicht gedacht. Danke.

Ich denke, ich nehme erst einmal das zweite Netzteil, und ersetze es 
dann später durch einen Step-Up Regler. Allein schon wegen des Timings, 
wie Anja erwähnte.
Gast #3043442
Lesenswert?

>@spontan: richtig, da fehlt noch die Leitung zum Druckkopf.

Fast richtig. Du legst Pin 9 des ULN auf GND, das ist "BIG Mist".
Es sei denn, Du willst das Ding grillen. Schau Dir mal die 
Innenbeschaltung an.
OP #3043855
Lesenswert?

Oha, falscher Fehler! Das ist mein Referenzschaltplan nach dem ich bauen 
will, und dann so was. Aber ich glaube, ich weiss was los ist: der 
Stecker für die Tintenpatrone wurde später eingezeichnet. Die Leitung 
von 9/9/Druckerpatrone müsste rechts am Kondensator vorbei direkt an den 
Ausgang vom Spannungsregler gehen.

Danke! Gut dass ich das noch nicht gebaut habe.
OP #3093513
Lesenswert?

Nachtrag und Auflösung:

Ihr habt's Euch vielleicht gedacht, ich habe den Schaltplan komplett 
verworfen und etwas eigenes gebaut. Statt dem ULN werkelt jetzt ein 
A6821 von Allegro. Der hat alles was ich im Schaltplan vermisst habe.

Im Chip ist ein Schieberegister mit Strobe und Enable. Die Darlingtons 
sind in der Sapnnung komplett unabhängig von der Logikspannung. So habe 
ich jetzt Pins am Mikrocontroller gespart und aknn direkt die -12 auf 
12V einsetzen um die 20V an der Druckerpatrone zu nutzen.

Funktioniert perfekt!

Danke,

 Matthias
OP #3093653
Lesenswert?

Klaus De lisson schrieb:
> klingt ja gut, das es eine Lösung gab.
> Schaltplan ?
>
> Gruss Klaus

Ach, ich Dummerchen, natürlich.

Also zuerst der Schaltplan, dann die Platine,und dann noch einmal alles 
zusammengesteckt. Auf dem Papier kann man ein wenig die Schrift erahnen, 
die die Schaltung eben noch gedruckt hat, indem ich mit dem Kopf über 
das Papier gefahren bin.
OP #3093656
Lesenswert?

Ja, ich bin mit dem Webinterface nicht zurecht gekommen. Und jetzt soll 
ich auch noch einen längeren Text eingeben, obwohl mir nichts mehr 
einfällt.

Na gut, also, die Platine hat Header um damit Stepper Boards 
anzusteuern. Damit werden X, Y, Z1, und Z2 Achsen im 3D Drucker 
gesteuert. Ein Header ist i2c für's Display und die Tasten, und die 
kleinen 3-pin Header sind für die Endstops.

Der Druckkopf fährt dann über dünne Lagen au Gips und bindet den Gips 
dann ab (hoffentlich).

So, länger kann ich nicht. Fragen beantworte ich trotzdem gern.
Angehängte Dateien:
OP #3094027
Lesenswert?

Noe, da gibt es kein Geheimnis. Die Technologie wurde vor über 20 Jahren 
am MIT erfunden. Ich bau es mir halt als Hobbymaschine nach.

Der Druckkopf muss so viel Wasser rausdrücken, bis der Gips merkt, dass 
er abbinden soll, aber das Wasser soll auch nicht durch Kapilarkräfte 
durch die Gegend gesaugt werden, denn dann gibt's keine scharfen Kanten, 
sondern nur nen Klumpen.

Die Tropfen aus dem Druckkopf sind 16 Picoliter gross, also so ungefähr 
0.13mm im Durchmesser (für heutige Drucker ist das riesengross - die 
habe 4 Picoliter und weniger). Es muss also alles recht genau werden.

Wichtigster Faktor ist die Art des Gipses. Normalerweise soll Gips beim 
Umrühren nicht Klumpen und sich gut voll Wasser saugen. Hier ist's genau 
umgekehrt. Er soll eben nicht saugen. Wenn also jemand klebrigen 
klumpigen Gips kennt... .

 Matthias
OP #3094029
Lesenswert?

So feuert man dann auf Düse n.
1
void inkFire(int n)
2
{
3
  static unsigned char lut[] = { 3, 10, 2, 9, 0, 8, 1, 5, 6, 7, 4, 11, 15, 15, 15, 15 };
4
  int i;
5
  n = lut[n&15];
6
  // shift the value in
7
  for (i=15; i>=0; i--) {
8
    if (i==n) {
9
      digitalWrite(inkData, 1);
10
    } else {
11
      digitalWrite(inkData, 0);
12
    }
13
    digitalWrite(inkClock, 1);
14
    digitalWrite(inkClock, 0);
15
  }
16
  // fire what we shifted in
17
  digitalWrite(inkStrobe, 0);
18
  digitalWrite(inkStrobe, 1);
19
  noInterrupts();
20
  digitalWrite(inkEnable, 0);
21
  delayMicroseconds(2);
22
  digitalWrite(inkEnable, 1);  
23
  interrupts();
24
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren