ist ein normaler NE555P allerdings ohne die beiden 82ohm Widerstände in der Gate Leitung wie bei deiner Schaltung !? HV habe ich auf 180V eingestellt und als HV Gleichrichter eine BYT52J verwendet weil ich die gerade noch liegen hatte. Bozo verwendet einen LM555C, macht das den Unterschied ?
05.05.2023, 12:14 PM (Dieser Beitrag wurde zuletzt bearbeitet: 05.05.2023, 12:19 PM von kahlo.)
Noch was: Die Betriebsspannung von 12V ist harte Arbeit für den Stepup-Wandler. Du könntest es der Schaltung leichter machen, wenn du die Eingangsspannung erhöhst. Schon ein paar Volt können Wunder wirken. Das sollte auch ohne Schaltungsänderung möglich sein.
Vorschlag: Irgendein altes Laptopnetzteil. Ich habe eins mit 16V benutzt, bis 20V sollten keine Probleme auftauchen.
--
Die Diode ist ok.
Keine Widerstände in der Gateleitung ist auch ok, der 555 schafft das.
05.05.2023, 03:17 PM (Dieser Beitrag wurde zuletzt bearbeitet: 05.05.2023, 04:53 PM von Snapper.)
Bozo verwendet die gleiche HV Schaltung auch in seinen Nixie Uhren (wohlgemerkt auch mit 12V) die er z.T. auch verkauft.
ich kann mir nicht vorstellen das seine Schaltung die gleichen Probleme macht !? noch irgend eine Idee was bei mir schieflaufen könnte ?
Man glaubt kaum, was auch gekaufte Sachen an Problemen machen .
Wenn du der Schaltung sonst vertraust: Vielleicht ein Mosfetwechsel? IRF840, IRF 740, IRF730. Sie alle haben einen deutlich geringeren RDSon als der 2SK1808.
Es besteht noch die Möglichkeit, dass der Schaltvorgang zu langsam ist, da entstehen weitere Verluste. Das kann ich aber nicht "einfach so" beurteilen.
05.05.2023, 05:30 PM (Dieser Beitrag wurde zuletzt bearbeitet: 05.05.2023, 05:31 PM von kahlo.)
So, ich hab die 555-Schaltung durch den Simulator gejagt. Sie ist gut. Das Problem ist tatsächlich der RDSon des Mosfet. Die 3 Ohm des 2SK1808 limitieren die Effizienz der ganzen Schaltung. Man bekommt geradeso 15mA bei 180V heraus, wobei der Mosfet ordentlich warm wird (1W Verlustleistung).
Mit dem IRF740 werden die 180V spielend und mit Reserven erreicht, wobei er nur unter gleicher Last 100mW verbrennt. Also: Anderen Mosfet einsetzen.
06.05.2023, 06:45 AM (Dieser Beitrag wurde zuletzt bearbeitet: 06.05.2023, 06:50 AM von Snapper.)
habe gestern in meinem Bestand noch div. IRF840 gefunden, 0,85Ω sind immer noch besser als 3Ω dann frage ich mich nur warum Du in Deinem Projekt damals den 2SK1808 verwendet hast, den habe ich nämlich daraus übernommen !?
Danke für Deine Unterstützung, werde ich nachher mal ausprobieren
(06.05.2023, 11:31 AM)kahlo schrieb: Das Projekt ist von 2005. Da war ich 18 Jahre jünger, bedeutend hübscher und unerfahrener. Und ich hatte den Mosfet in der Kramkiste.
2005 war ich nicht ganz so hübsch und jung wie Du, aber auch nicht ganz so unerfahren in Elektronik
(06.05.2023, 04:31 PM)voltwide schrieb: 2005 war ich nicht ganz so hübsch und jung wie Du, aber auch nicht ganz so unerfahren in Elektronik
Das ist hübsch gesagt! 2005 kannte ich dieses Forum noch nicht, hatte also die harte Schule durch die geehrten Mitglieder dieses Clubs noch vor mir . Und auch Induktivitäten waren nicht unbedingt meine Lieblingsbauteile.
Hello, I am from Ukraine and it is difficult to find PBG-12201 manufacturer VISHAY/DALE.
but we have indicators IN-33 and IN-36. Produced by the USSR plant "Gazotron" in Ukraine.
Will this display work instead of PBG-12201?
Thank you
(05.11.2023, 01:19 PM)leoloel schrieb: Hello, I am from Ukraine and it is difficult to find PBG-12201 manufacturer VISHAY/DALE.
but we have indicators IN-33 and IN-36. Produced by the USSR plant "Gazotron" in Ukraine.
Will this display work instead of PBG-12201? Thank you
(05.11.2023, 01:19 PM)leoloel schrieb: Hello, I am from Ukraine and it is difficult to find PBG-12201 manufacturer VISHAY/DALE.
but we have indicators IN-33 and IN-36. Produced by the USSR plant "Gazotron" in Ukraine.
Will this display work instead of PBG-12201? Thank you
Thank you. but there will be such a question, the circuit uses PIC16F876 but I don’t have one
but there is another PIC16F826A and also PIC16F690
is this useless?
Das Posting von leoloel und auch ein paar PN's haben mir gezeigt, dass die Displaysteuerung mit den Informationen aus diesem Thread nicht "einfach so" nachbaubar ist. Es fehlt irgendwie eine Zusammenfassung aller wichtigen Sachen. Ob das im Posting 155+ des Threads überhaupt was bringt? Aber wohin sonst?
(05.05.2023, 12:10 PM)Snapper schrieb: ist ein normaler NE555P allerdings ohne die beiden 82ohm Widerstände in der Gate Leitung wie bei deiner Schaltung !? HV habe ich auf 180V eingestellt und als HV Gleichrichter eine BYT52J verwendet weil ich die gerade noch liegen hatte. Bozo verwendet einen LM555C, macht das den Unterschied ?
Damals überlesen, aber vielleicht die Ursache für deine Probleme: Das Display braucht nicht 180V, sondern 245V +/-5V.
10.11.2023, 04:18 PM (Dieser Beitrag wurde zuletzt bearbeitet: 10.11.2023, 04:55 PM von kahlo.)
So, diese Schaltung sollte allgemein nachbaubar sein.
Geeignet zur Ansteuerung jeder Plasma-Balkenanzeige (Russisch, amerikanisch, englisch, was auch immer) mit 3 oder 5 Phasen.
3-phasiger Aufbau. Für 5 Phasen sind die Pins 5 und 6 (3 und 4 ) am Prozessor freigehalten. Dort kann einfach die Schaltung wie für die Phasen 1 bis 3 dupliziert werden.
Geeignet ist jeder Arduino oder jedes kompatible Bord. Theoretisch auch jeder µC mit genug Beinen, der mit der Arduino-IDE programmiert werden kann. Falls ein Arduino mit 3,3V Betriebsspannung verwendet werden soll, muss die Spannungsversorgung angepasst werden und die beiden Analogeingänge auf 3,3V geklammert werden (siehe den Hinweis für die LED's).
Der Step-Up-Wandler wurde von Bozo übernommen (billig, gut, einfach nachzubauen).
Die LED's sind so zu selektieren, dass die Spannung nicht nennenswert über 5V steigen kann. Sie dienen als Inputbegrenzer an den Analogpins des Arduino.
D4, D8 und U3 dürfen NICHT gegen "irgendwas anderes" getauscht werden.
Der Vollständigkeit halber noch einmal der Code (Arduino):
volatile int Actual_Phase; // Zähler für die Phasensteuerung
volatile int Old_Phase; // Zähler für die Phasensteuerung
volatile int Actual_Segment = 1; // Zähler für die Phasensteuerung
int Input_1 = 0; // Analogspeichervariable
int Input_2 = 0; // Analogspeichervariable
int Input_3 = 0; // Analogspeichervariable
int Input_4 = 0; // Analogspeichervariable
int InputScaler; // Faktor zur Skalierung der ADC-Werte auf die Segmentzahl (lineare Anzeige)
int Balken_1 = 0; // Variable für die aktuelle Balkenlänge
int Balken_2 = 0; // Variable für die aktuelle Balkenlänge
int Balken_3 = 0; // Variable für die aktuelle Balkenlänge
int Balken_4 = 0; // Variable für die aktuelle Balkenlänge
double dBV; // dBV log
int LogTab[1024]; // LogTabelle ADC-Werte - Segmente
void flush() { // Interrupt service routine zur Phasensteuerung
switch (Actual_Segment) {
case Segments: // Das letzte Segment erreicht?
digitalWrite(Actual_Phase, LOW); // Das letzte Segment abschalten
digitalWrite(ResetPin, HIGH); // Reset des Displays
Actual_Segment = 1; // Rücksetzen der Zähler
Actual_Phase = Phases; // Rücksetzen der Zähler
digitalWrite(AnodePin_1, LOW); // Anoden wieder einschalten
digitalWrite(AnodePin_2, LOW); // Anoden wieder einschalten
digitalWrite(AnodePin_3, LOW); // Anoden wieder einschalten
digitalWrite(AnodePin_4, LOW); // Anoden wieder einschalten
break;
default: // Kern der Displaysteuerung
Actual_Segment++; // Zeiger auf das aktuelle Segment erhöhen
if (Balken_1 < Actual_Segment) digitalWrite(AnodePin_1, HIGH); // Bei Solllänge des Balkens wird die Anode abgeschaltet
if (Balken_2 < Actual_Segment) digitalWrite(AnodePin_2, HIGH); // Bei Solllänge des Balkens wird die Anode abgeschaltet
if (Balken_3 < Actual_Segment) digitalWrite(AnodePin_3, HIGH); // Bei Solllänge des Balkens wird die Anode abgeschaltet
if (Balken_4 < Actual_Segment) digitalWrite(AnodePin_4, HIGH); // Bei Solllänge des Balkens wird die Anode abgeschaltet
Old_Phase = Actual_Phase++; // Zeiger auf die aktuelle Phase erhöhen und den alten Wert sichern
if (Actual_Phase > Phases - 1) Actual_Phase = 0; // Phase overflow auf Null
digitalWrite(Actual_Phase, HIGH); // Das nächste Segment anschalten
digitalWrite(Old_Phase, LOW); // Das alte Segment ausschalten
digitalWrite(ResetPin, LOW); // Reset deaktivieren, falls aktiv
break;
}
}
void setup() {
pinMode(0, OUTPUT); // Die Pins für maximal 5 Phasen werden als Output-Pins definiert
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(ResetPin, OUTPUT); // Resetpin wird als Output-Pin definiert
pinMode(LinLogPin, INPUT_PULLUP); // Pin offen: linear, Pin mit GROUND verbunden: logarithmisch
pinMode(AnodePin_1, OUTPUT);
pinMode(AnodePin_2, OUTPUT);
pinMode(AnodePin_3, OUTPUT);
pinMode(AnodePin_4, OUTPUT);
Actual_Phase = Phases;
InputScaler = 1024/Segments; // Faktor zur Skalierung der ADC-Werte auf die Segmentzahl (lineare Anzeige)
// Logtabelle schreiben
LogTab[0] = 1; // Fade out unter -45dBV, relativ zum Maximalpegel
LogTab[1] = 2;
LogTab[2] = 3;
LogTab[3] = 3;
LogTab[4] = 4;
LogTab[5] = 4;
for(int x = 6; x < 1024; x++) { // Berechnung der Log-Tabelle
dBV = 20.0 * log10(x * Ustep / Umax);
LogTab[x] = 4.4 * dBV + Segments;
}
digitalWrite(ResetPin, HIGH); // Reset des Displays
FlexiTimer2::set(1, 1.0/(Frequency*Segments), flush); // Definition des Timerinterrupts
FlexiTimer2::start(); // Aktivierung des Interrupts
}
switch (digitalRead(LinLogPin)) {
case HIGH: // Default linear, interner Pullup-Widerstand ist aktiviert
Balken_1 = Input_1/InputScaler; // lineare Skalierung der ADC-Werte auf die Segmentzahl
Balken_2 = Input_2/InputScaler; // lineare Skalierung der ADC-Werte auf die Segmentzahl
Balken_3 = Input_3/InputScaler; // lineare Skalierung der ADC-Werte auf die Segmentzahl
Balken_4 = Input_4/InputScaler; // lineare Skalierung der ADC-Werte auf die Segmentzahl
break;
case LOW: // Logarithmisch
Balken_1 = LogTab[Input_1]; // Lesen der Log-Tabelle
Balken_2 = LogTab[Input_2];
Balken_3 = LogTab[Input_3];
Balken_4 = LogTab[Input_4];
break;
}