Beiträge von Hans Glueck

    Bei einem Wirkungsgrad > 90% dürfte er ja bis zu 10% der zugeführten Leistung selbst verbrauchen.

    Hilft Dir auch nicht viel weiter, aber wenn du den Ladestrom und Spannung messen kannst, dann muss die daraus errechnete Leistung mindestens 90% der Eingangsleistung betragen. Also entspricht der Verbrauch des Reglers höchstens 1/9 der errechneten Ladeleistung. (1/9 von 90% = 10%)

    Hans

    Vielen Dank Daniel.

    Hab gestern noch ein Wenig zu den LiPo-Akkus im Web gestöbert.

    So eine schöne Tabelle wie Du habe ich nicht gefunden.

    2 Akkus zum Wechseln und ein Kabel zum Ladestrom messen habe ich bestellt.

    Enelope-Akkus für den Sender kommen heute.

    Danke nochmals

    Hans

    Nach vielen Jahren Abstinenz habe ich wieder mit Modellbau angefangen.

    Mein Modell wird aus einem LiPo-Akku 7,4V, 300mA, 2x2,2Wh versorgt. Damit soll es theoretisch bis zu 20min laufen.

    Über Lipos weis ich nur, dass sie langlebig sein sollen, und erst nach ein paar Ladezyklen ihre volle Kapazität erhalten. Vorsichtshalber sollte man sie auf einer feuerfesten Unterlage und nie ohne Aufsicht laden.

    Zu dem Akku habe ich ein unbekanntes Ladegerät erhalten, dass eine grüne LED für Netzspannung, und eine rote LED für die "Ladung" hat, was auch immer das heißen mag. Stecke ich den Akku an das eingeschaltete Ladegerät, geht die rote LED nach kurzer Zeit (Minuten) wieder aus. So habe ich den neuen Akku 2h geladen (rote LED nach Ladebeginn (? 10Min ?) schnell aus). Der Erfolg war, dass meine Fernsteuerung nach 2min nicht mehr funktionierte, der Motor am gleichen Akku aber noch lief.

    Deshalb habe ich jetzt den LiPo 6h mit diesem Gerät geladen, und habe nach der Ladung eine Akkuspannung von 8,4V am abgeklemmten Akku.

    Mit geladenem Akku funktioniert die Steuerung wieder.

    Zum nächsten Testflug nehme ich ein Voltmeter und eine Uhr mit, um die Spannung nach Flugzeit zu messen, um daraus Rückschlüsse ziehen zu können.

    Nach meinem Wissensstand über Akkus sollte ich diesen Akkutyp wenn leer wohl 10h mit 22mA aufladen.

    Einen Ladestrom konnte ich bisher nicht messen, weil ich mir dafür erst ein Adapterkabel anfertigen musss, die originalen, neuen Kabel wollte ich nicht beschädigen.


    Hans

    Dein Vorschlag erinnert mich an eine Aufgabe im SPS-Seminar. Da sollte eine 3-stufige Lüftung im Tunnel, je nach Verkehrsaufkommen, mit 3 Lüftern gesteuert werden.


    Meine Idee mit dem Lüfter hat sich inzwischen erübrigt.

    Ob der Gefrierschrank (GS) in der Schrankwand eingebaut. oder freistehend läuft, macht gemessen nur 3,9% Unterschied im Energiebedarf. Gleiches setze ich für den Kühlschrank (KS) vorraus. Die Einsparung macht bei den aktuell laufenden Energiefressern und Preisen 9,37€ aus.

    Bei einem neuen GS und KS mit aktuellem Verbrauch bringen die 4% Einsparungen nur 2,61€.

    Den Strombedarf für die Lüftersteuerung habe ich mit 2 Watt gerechnet und der Lüfter hat 40Watt. Wenn der Lüfter nur 6min /h läuft komme ich auf einen Stromkosten von etwa 15,31€/Jahr. Selbst wenn ich den/die Lüfter auf 20W reduziere, und statt ext. Steuerung die Lüfter direkt vom Thermostat steuere, lohnt sich der Einbau bei neuen Geräten nicht.

    Den neuen GS habe ich schon angeschafft, ein neuer KS folgt in Kürze. Dabei habe ich die Luftzirkulation hinter den Geräten "mit der Säge" verbessert.


    Gefrierschrank alt: 669,675 KW/Jahr; Gefrierschrank neu 132 KW/Jahr;

    Kühlschrank alt: 215,630 KW/Jahr; Kühlschrank neu 92 KW/Jahr;

    Die Angaben "neu" beziehen sich aus den Angaben der Hersteller. "Alt" sind gemessen und hochgerechnet.

    Bei uns steht der Kühlschrank über dem Gefrierschrank in der Einbauküche. Das führt zu einem Wärmestau hinter den Geräten und erhöht den Stromverbrauch.

    Jetzt möchte ich mit einer Master-Slave-Schaltung (M-S-S) einen Lüfter ansteuern, der wenn Kühl- oder Gefrierschrank läuft, für bessere Luftzirkulation sorgt. An liebsten wären mir noch 2min Verzögerung beim Ein- und ausschalten des Lüfters.

    Das ist kein Problem mit einer (M-S-S) und einem Zeitrelais.

    Das kann aber auch ein Microcontroller mit einer Spannungsabfallmessung und einem Ausgangsrelais.

    Die Spannungsabfallmessung an Netzspannung ist nicht ganz einfach und sicher zu bauen. Man würde den Kühlgeräten 3V Spannung klauen, und müsste mit 3 verschiedenen Stromstärken (K, G, K+G) rechnen. Außerdem würde immer das Netzteil des Microcontrollers laufen müssen, und der Microcontroller darf nicht abstürzen.

    Die Baukosten wären für mich mit den Schaltelementen etwas niedriger, da Alles vorhanden ist, für den µC müsste ich noch ein paar Bauelemente + Netzteil beschaffen.

    Die Stromkosten für die Schaltelemente würde ich mit 2Watt x 8832h/Jahr x 0,29€ = 5,2€ und für den Lüfter mit 883h/Jahr x 30,8W * ,29€ = 9€ veranschlagen.

    Wie würdet Ihr die Aufgabe lösen?


    Es kann sein. dass ich das nur experimentell und vorübergehend betreibe, wenn sich unter dem Strich keine Stromersparnis feststellen lässt.


    Andere Frage:

    Mache ich einen Fehler, wenn ich den Verbrauch mit Spannung und Strommessung , bzw. mit einem Logilink EnergieKostenMessgerät (EM0003) ermittele? Die Messungen sollten doch den gleichen wert ergeben, wie die Messung des EVU-Stromzähler. Den Stromzähler interessiert der Leistungsfaktor doch auch nicht.

    Inzwischen ist es mit dem Laden der AA-Zellen weitergegangen.

    So habe ich mir ein besseres Testgerät für die Batterien und Akkuzellen zugelegt.

    Das Kraftmax XT1 Revolution kann ich wirklich empfehlen. Es macht eine Spannungsmessung mit angemessener Last und errechnet auch gleich den Innenwiderstand der Zellen.

    Ob sich die Investition von 25€ rechnet habe ich mich nicht gefragt.:/


    Mehr aus Neugier als aus Bedarf habe ich ein 4x AA/4xAAA-Zellen für für NiMH/NiCD-Akkus und Alkaline Batterien billig gekauft und gestern erhalten. Das Gerät gibt es unter dem Namen re/volt zB bei Pearl. Das ist so ein 230V-Steckdosengerät mit 4 Ladeschächten und 4 rot/grün-LEDs. Ich habe ein neues Gerät OVP für einen Zehner bekommen.

    Es läd die Batterien einzeln mit 1,65V und 100mA auf, wobei der Ladestrom aber schnell abnimmt. Mit der Ladespannung von 1,65V werden die Batterien nicht so voll, wie mit meiner handgeregelten Ladeschaltung, aber man bekommt Ladung in die Zellen.

    Das Gerät erkennt defekte Zellen (LED blinkt) und schaltet bei geladenen Zellen die LED auf grün um. Allerdings genügt mir der Ladezustand bei grüner LED noch nicht. Die Batterien haben dann 1,51 - 1,52V. Nach Weiterladung über Nacht erreichen die Zellen aber noch 1,59 - 1,61Volt.

    Ist aber logisch, da die Consumer-Geräte auf der sicheren Seite bleiben müssen. Am Scope habe ich die Ladespannung noch nicht angesehen, wird aber nachgeholt.


    Meine Ladestation hat inzwischen einen Arduino Nano mit einem Shield mit Schraubklemmen bekommen. Den Uno hatte ich inzwischen an anderer Stelle gebraucht, und dem rumliegenden Nano das praktische Shield verpasst. Die erwähnte V/A-Kombianzeige ist auch längst installiert, so dass meine Multimeter samt Messleitungen entfallen. Aus einer anderen Lieferung habe ich das Mini-Breadboard übrig, so dass ich das 80x55mm Breadboard auch "befreien" konnte. Das Breadboard dient nur als Verteiler für die +/- 5V, Klemme für den Pin13 zur Relaisspule und zum Anschluss für die 6-7V Ladespannung (2x Batterie-Minus = Plus Amperemeter unten links).

    Hans


    Batterieladung-2x4-AA.jpg

    Nachdem sich die Elster mit Goulasch und Nudeln satt gefressen hat, nimmt sie noch ein Lunchpaket mit Nudeln mit.

    Elster Abflug.jpg

    Das Problem ist, das die errechneten Abstände der Korrekturzähne auch wieder Nachkommastellen haben. Also muss man wieder auf- oder abrunden.

    Dadurch entsteht rechnerisch auch mal ein K-Zahn zu viel oder zu wenig. Praktisch will das Programm einen K-Zahn ausgeben, um auf die auf gerundete Anzahl zu kommen. der letzte Filter verhindert in meinem Programm den K-Zahn, wenn die noch nicht gemachten Stepps mit Regelzähnen genau passend ausgeführt werden können. So erhält man am Ende einen Regelzahn mehr, der aber immer noch in den 2 möglichen Abständen liegt. Also kein Ausreißer aus den vorgegebenen Regeln.

    Gestern habe ich das Programm mit bis zu 500 Zähnen getestet. Dabei habe ich plötzlich 9 Abstandsfehler erhalten, die nicht auftreten durften. Ich habe aber schnell festgestellt, dass es nur bei Zahnrädern war, wo der Zähnezahlen ohne Korrektur aufgingen. und die Zähnezahlen über 250 waren.

    Daraufhin habe ich meine Min-Max-Zähler für den Abstand von int auf double umgestellt. Da gab es einen Überlauf, der nicht vorkommen sollte.

    Das Programm hatte ich schon mal bis 360 Zähne getestet, aber da gab es diese Min-Max-Zähler noch nicht.


    Hans

    Hallo Kai,

    es war klar, dass Du es kannst.

    Dein neues Programm habe ich mal laufen lassen, und auf den ersten Blick keinen Fehler erkannt.

    Deine Beschreibung: "Es gibt nie mehr als einen Stepp-Differenz zwischen zwei aufeinanderfolgenden Zähnen." ist etwas vage.

    Deshalb habe ich hier nochmal die "Bilanz" von meinem Programm bei Zahnrad = 10 -140 Zähne hineinkopiert:

    Die oberste Zeile ist noch vom 140er Zahnrad, SpaceMax= 2 und SpaceMin= 1 gibt die Max und Min Abstände der Korrekturzähne wieder. Die Differenz darf nie mehr als 1 Zahn betragen, sonst wird für die Bilanz ein Abstandsfehler registriert. Ich kann nicht sehen, ob dein Programm pro Zahnrad auch immer nur eine Größe Korrekturzahn verwendet.

    Um das nicht im Ausgabetext genau suchen zu müssen, habe ich in mein Programm die Bilanz eingebaut.

    Der Zähler-Überlauf tritt ein, wenn vom Rhythmus her ein Korrekturzahn folgen soll, aber von den restlichen Stepps zur vollen Drehung kein Stepp mehr berichtigt werden muss/darf. Das darf auch nur beim letzten Zahn vorkommen, weil sonst der Abstand "SpaceMax : SpaceMin" > 1 wird.

    Der verhinderte Korrekturzahn wird natürlich auch als Regelzahn ausgegeben und so in der Bilanz erfasst. Der Überlauf hat also keinen negativen Einfluss auf die Berechnung, sondern erfasst nur, wie oft ein Korrekturzahn zu viel verhindert wurde.

    Wie schon gesagt, es ist nur ein Prüfprogramm für alle möglichen Zahnräder, damit sicher ist, dass nachher im Programm für einzeln ausgewählte Zahnräder kein Fehler vorkommen kann. Dann ist es immer noch nicht für die Tonne, denn man kann damit auch andere "Hardware (Motorsteppzahlen und Getriebeübersetzungen testen.


    Hans

    Mit meinem Arduino Uno und einem Arduino Mega experimentiere ich ja schon ein paar Tage.

    Den Uno hatte ich ja in meiner Batterieladeschaltung verbaut, und zum Programmtest aus der Ladeschaltung entnommen. Soweit noch Alles im Lot.

    Jetzt wollte ich wieder Batterien Laden, und dazu die Ladeschaltung wieder anwerfen. Dafür wollte ich "schnell" meinen Arduino Nano einsetzen. Der Nano ist auch nicht steinalt und hat eine SMD-Chips verbaut. Weil der Plan nicht so ganz überraschend aufkam, habe ich vorher ein Shield besorgt, dass den Nano mit Schraubklemmen adaptiert. Auch gut.

    Als ich den Nano dann anschließen wollte, hat der kleine Kerl natürlich eine USB-Mini-Buchse. Der USB-B und der USB Micro vom Ladegerät sowie der normale USB-A passen alle nicht. Ein USB-Mini Kabel hatte ich auch nicht im Fundus, und musste erst ein Mini-Kabel von einem Kartenleser aufspüren und ausleihen. einmal Erfolg gehabt.

    Auf dem Nano war natürlich nicht der Blink-Sketch, und es Blinkte nichts, und würde auch kein Relais ansteuern. Also schließe ich den Nano an den PC an, suche den Blinker und will ihn installieren.

    Dazu habe ich das Nano Board in der IDE ausgewählt und den Sketch hochgeladen. Der Sketch war OK, aber der Nano hat aber beim Ladevorgang nur einmal kurz geblinkt. Die IDE zeigte mir den verbrauchten Speicher und das angeschlossene Board an COM4 richtig an, aber der Ladevorgang dauerte ewig und schlug nach Fehlermeldung fehl. Den Nano hatte ich schon mal benutzt, und wusste, dass er, wenn nicht gekillt, auch funktioniert, Irgendwo in meinen Notizen habe ich habe ich den Treiber "USBtinyISP" vermerkt, und auf diesen Treiber umgestellt. Leider erfolglos. Da ich den Nano ja schon mal benutzt hatte, die rote LED immer leuchtet und er bei der Übertragung nur einmal blinkte, konnte es nur an der Datenübertragung liegen. Das Kabel war aber auch OK, denn es funktionierte ja mit dem Kartenleser. Also habe ich die IDE wieder auf den Uno umgestellt, und hier mit dem USBtinyISP und dem AVRISPmkkl-Treiber versucht den Nano anzusprechen.

    Nach etwas über einer Stunde hatte ich dann die Verbindung mit dem Nano herstellen, den Blink-Sketch installieren können ,und die Batterien laden auch schon mit dem Nano.

    Ratet mal, wo der Fehler lag.

    Inzwischen weis ich auch, dass die IDE unten rechts nicht die Verbindung anzeigt, sondern nur die Einstellung wiedergibt.


    Hans

    Vielen Dank für eure Tipps.

    Da ich schon lange Rentner bin, möchte ich nicht mehr groß in C++ einsteigen, zumal nicht alle Befehle mit der Arduino IDE funktionieren, oder eine Library benötigen. Für mich waren die beiden C++-Bücher fast ein Fehlkauf, damit habe ich nur zufällig festgestellt, dass in der Arduino IDE auch Anweisungen funktionieren, die nicht in der Referenz aufgelistet sind. Sonst ist es blöd, nach C++ zu programmieren, was hinterher nicht läuft. Darum möchte ich mich auf die Arduino-Literatur beschränken. Da gibt es sogar noch ein Buch, dass ich mir vielleicht noch zulegen werde.

    Momentan habe ich ein Problem mit der Zusammenfassung von Zeichenketten und Variablen für die Monitorausgabe. Aber das ist ein Einzelfall, und die Zusammenfassung von Zeichenketten und Variablen funktioniert, zumindest auf dem Arduino Mega 2560 gut.

    Mit dem Problem mache ich noch Tests und und berichte später darüber.


    Hans

    Vielen Dank für eure Tipps und Hinweise.

    Daraufhin habe ich erst einmal die Strings in die Funktion Setup verschoben und die Datenfelder in der Länge angepasst und mit \0 abgeschlossen.

    Das kleine Testprogramm läuft ja und ich habe es in das Zahnradprogramm hineinkopiert.

    Da hat der Arduino die Ausgaben aus dem eingebauten Programmteil ignoriert, und die Serial.print(ln) Befehle ganz ohne Inhalt ausgeführt, sowie da mehr als ein Text oder eine Variable in den Klammern stand.


    Heute habe ich dann die Lektion von René mehrfach angesehen, und die Sketches ausprobiert. Mein kleines Testprogramm habe ich ebenfalls mal in die Memory-Tests eingebaut, und ergründet, wie viel Speicher mein Testprogramm verschlingt. Dabei bin ich auf 516 Bytes gekommen.


    Da es sich wohl um ein Speichergrößenproblem handelt, habe ich das Programm mal auf einem Arduino Mega 2560 ausprobiert. Siehe da, der Mega kann das Zahnradprogramm mit dem eingefügten Zeilen des Zeichenkettenprogramms ausführen.

    Als nächstes werde ich das Zeichenkettenprogramm so ändern, dass die "kurzen Strings " in einem neuen String Ausgabe gesammelt werden, und diese String Ausgabe dann von Serial.print(ln) an den Monitor gesendet wird. vielleicht bekommt die Ausgabe auch reservierten Speicher.

    Danach werde ich die alten Textmeldungen im Programm durch die neuen, zusammengeführten Ausgaben ersetzen. Dadurch sollte auch wieder Speicher frei werden, was ja mein Anliegen war.


    Hans

    Diese Formatierung

    Zitat

    char TextA[7] = {'H', 'a', 'l', 'l','o', '!'};

    habe ich aus dem Buch entnommen, und nur den Inhalt und die Länge geändert. mit passender Länge wollte der Compiler den Code nicht fressen.

    Ich verwende aber "char TextA[7]" nicht sondern bastele meine Textmeldungen mit

    Code
    1. // A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
    2. String BezA[11] = {" ab", " auf", "gerundet", " minus ", "Max", "Min", " negativ ", " plus"," positiv ", " ", ""};
    3. // B0 B1 B2 B3 B4 B5 B6 B7 B8 B9
    4. String BezB[10] = {"Abstand", " Anzahl", "Fehler", " Korrektur", " Regel", "Stepp", "Zahl", "Zahn"};

    zusammen. Dabei füge ich auch weitere Zeichenketten ein, die nur einmal im Code vorkommen. Dabei versuche ich gleich zu erfassen, wie oft die Meldungen so im Programmcode stehen. Wieviel Speicher eine Zeichenkette direkt in den Serial.print-Klammern verbraucht, weis ich auch nicht, Sicherlich aber nicht mehr als in einer anderen Speicherzelle. Im Entwurf habe ich noch überzählige Speicherstellen um weiter Variablen einzufügen. Im fertigen Code wird die Anzahl angepasst. Mit dem "ß" im "char TextA[7] hatte die IDE auch Probleme.

    der Code ist noch in Bearbeitung.

    Neue-Zeichenketten2.ino

    Hans

    Das Arduino Kompendium als gebundene Ausgabe. Bin mit einem Buchhändler befreundet, der auch mal Umsatz braucht.

    Außerdem habe ich das C/C++ Kompendium und Der C++ Programmierer als dicke Wälzer.

    C++ ist aber nicht 1:1 auf die Arduino IDE umsetzbar, und man sucht sich einen Wolf nach den Bugs. Allerdings findet man da auch funktionierende Befehle, die der Arduino-Referenz nicht dokumentiert sind.

    Auf dem PC habe ich etwa 10 Arduino Anfängerbücher als PDF.


    Im Kompendium habe ich die Zeichenkettenvariablen auf Anhieb in den verwendeten Variationen gefunden und umsetzen können.

    Die "Schokolade" ist ein Witz, den ich ohne Vorlage "programmiert" habe.


    Mein Teilerprogramm rechnet optimal. Das habe ich auch schon mit krummen Zahlen als Motorstepps und Getriebeübersetzung herausgefordert. Es kommen dann zwar auch krumme Werte für die ganze Umdrehung raus, aber das Programm kann auch damit plus oder minus jeweils 1 Stepp die Zähne verteilen.

    Die Ausgaben habe ich inzwischen besser Formatiert, die Variablen als Block deklariert, und jetzt möchte ich die 31 verschiedenen Meldungen, die mehrfach vorkommen, aus Einzelteilen zusammenfügen.


    Hans

    Hi Kai,

    das erste Beispiel gefällt mir gut.

    Mit variablen in Array speichern hat René schon mal in seinen YT-Videos erklärt. Das werde ich wieder hinbekommen.

    Das möchte ich für die Ausgabetexte in meinem Zahnradprogramm einsetzen. Für das LCD-Display 1602 mit I2CBus wird es auch brauchbar sein.


    Hans

    Hallo,

    Ich habe ein Verständnisproblem mit Textmeldungen und dem Speicherbedarf.

    Wenn ich eine Textmeldung mit Serial.print("Hallo Arduino") eingebe, dann verwendet der ASCII-Text einmal diesen Speicherplatz, auch wenn Programmzeile 100 Mal angesprungen wird.

    Wenn ich aber eine Variable "String Msg" deklariere, und der Variablen mehrfach im Programm einen Text zuweise Msg=("bitte warten"); ... Msg("bitte eintreten") ; .... Msg=("Bitte nicht stören"), und solche Zuweisungen 4 Mal im Programm benutze, ist es dann nicht sparsamer, diesen Text gleich einmal in drei Variablen abzulegen, und dann nur Msg1, Msg2 oder Msg3 4 Mal aufzurufen, damit ich nicht 4 Mal die Zuweisung Msg=("bitte warten"); im Code stehen habe?


    Hans

    Hallo Arduinofreunde,

    Mit dem Berechnungsprogramm für definierte Teilschritte von einer Drehbewegung bin ich soweit fertig und das mathematische Ergebnis kann sich mit der Hardware nicht mehr verbessern. Der Programmcode ich nach meinem Wissensstand recht einfach gestrickt, und es gibt noch Routinen, die mehrfach im Code stehen, weil ich noch nie Funktionen programmiert habe. Außerdem ist die Ausgabe schlecht formatiert.

    Jetzt habe ich noch ein paar Ereigniszähler eingebaut, damit ich am Ende eine Bilanz habe. Dur Änderungen der Bilanz erkennt man schnell, wenn eine Änderung nicht alle möglichen Eventualitäten berücksichtigt.

    Das Programm teilt die Stepps einer Umdrehung gleichmäßig auf den Umfang eines zu fertigenden Zahnrads auf. Da es kein halben oder andere Teilzähne gibt, muss man überzählige oder unverbrauchte Stepps so gleichmäßig wie möglich auf den ganzen Zahnkranz verteilen. Mein Programm kommt mit 2 Schrittweiten für die Zähne aus, und die Verteilung der korrigierenden Zähne ist auch sehr gleichmäßig, wenn auch nicht absolut symmetrisch.

    Für die Zähler habe ich im Verhältnis zu eigentlichen Programm viel Code gebraucht. Ich hatte auch länger gebraucht, um den Zähler für die minimalen Abstände zu realisieren. Es gibt ja Zahnräder, wo die Stepps in den Zähnen glatt aufgehen, dann bekommt man einen minimalen Abstand von 0 Zähnen heraus. die Differenz zwischen der maximalen Zähneanzahl und Null ergibt dann einen sehr großen Fehler.

    Hier nun der aktuelle, funktionierende Stand.

    Hans

    Teilungsberechnung-zahnrad12.ino.ino

    Alles richtig, was Du schreibst, von deinem Programm bin ich begeistert und kann sicherlich viel daraus lernen.

    Ein Regelzahn ist ein normaler, berechneter Zahn mit auf ganze Stepps gerundeter SteppAnzahl. Ein Korrekturzahn ist ein Zahn mit einem Stepp mehr oder weniger als ein Regelzahn. Alle Korrekturzähne sind gleich und sollen so gleichmäßig wie möglich auf dem Umfang des Zahnrads verteilt werden. Da die Anzahl der Korrekturzähne sich nicht immer ganz gleichmäßig zwischen den Regelzähnen verteilen lässt, versuche ich, die Abstände auf 2 Schrittweiten einzuhalten, die ebenfalls nur um einen Zahn differieren. Trotzdem sollen die notwendigen Stepps immer auf 2048000 Stepps enden. Bisher habe ich in meiner letzten Version keine größeren Abweichungen in der Verteilung festgestellt. Letztendlich werde ich die größten und kleinsten Abstände der Korrekturzähne vom Programm selbst erfassen und vergleichen lassen. An der Bilanz arbeite ich bereits mit 7 Zählern.


    Ein Zahnrad ist doch rund, und die letzten Zähne schließen doch in der Praxis an die ersten Zähne wieder an. Wenn man jetzt vorne zB. 5 Regelzähne hat, und hinten ebenfalls 5 Regelzähne bekommt man am Umfang eine Strecke von 10 Regelzähnen, die weit von den berechneten Abständen der Korrekturzähne abweicht.


    Meine Konstruktion ist ein Teilapparat mit Getriebe 40:1, Handkurbelantrieb und wird normalerweise mit festen Lochscheiben positioniert. Genauer geht es mechanisch, wenn man zusätzlich die Lochscheiben mit einem weiteren Getriebe feinverstellen kann. Professionelle Teilapparate haben Getriebe mit Übersetzungen von 90:1 oder 120:1. Mein Teilapparat sieht so aus: Bild Teilapparat Es ist nicht der Gleiche, aber auf diesem Bild sieht man den Aufbau gut und kann sich die Funktion leicht vorstellen. Mit der Kurbel verdreht man über das 40:1 Getriebe das Futter und kann mit der Kurbel ebenfalls eine Stift in der fest montierten Lochscheibe einrasten. Drei Lochscheiben mit insgesamt 21 Lochkreisen habe ich auch. Dazu verwendet man eine Exeltabelle, die für jede Winkelteilung die beste Lochscheibe, die Schrittweite und die Abweichung anzeigt.


    Angeblich kann man mit Hobbyelektronik die Genauigkeit wie mit einem mechanischen Zusatzgetriebe, dass die Lochscheibe feinjustiert nicht erreichen. Genau Das möchte ich mit meinem Close-Loop Steppermotor NEMA23, einem preiswerten Steppertreiber und dem Arduino erreichen. Mit dem Steppermotor statt der Handkurbel macht ein Stepp etwa eine halbe Winkelsekunde aus. Das ist auch der Bereich, den man mit der Mechanik einstellen kann. Nur wird die Mechanik mehr aufsummierte mechanische Toleranzen haben als die Elektronik.

    Falls mir die Auflösung noch nicht ausreicht, kann ich ein weiteres Getriebe an den Nema23 bauen. Die bezahlbaren Getriebe gibt es von 3:1 bis 100:1. Damit kann ich dann den Zahlenbereich des Arduinos sprengen.


    Schönen Abend und nochmals vielen Dank für deine Hilfe


    Hans

    Nachtrag:

    Hallo Kai,

    deine Ausgabe sieht auf den ersten Blick s u p e r aus.

    Mr. Monk wäre aber mit der Berechnung nicht zufrieden.

    Du hast den gleichen Fehler wie ich anfangs gemacht.

    Wenn Korrekturzähne erforderlich sind, dann musst Du mit einem Korrekturzahn beginnen. Wenn Du das nicht machst, summieren sich die Regelzähne am Anfang und am Ende zu einer übergroßen Lücke zwischen den Korrekturzähnen.

    Deswegen habe ich in meinen Code 2x eine "erster Zahn Behandlung" eingebaut. :-)


    Hans

    Danke Kai.

    Den Code werde ich sicher ausprobieren und versuchen zu verstehen. Toll, dass Du sogar ein ganzes Brogramm geschrieben hast. Ich habe dazu fast 3 Wochen gebraucht.

    Gestern Abend habe ich das Auf und Abrunden gedanklich durchgespielt. In der Nacht konnte ich nicht schlafen und habe den Code geschrieben. Das Programm hat aber noch gehumpelt.

    Heute Morgen habe ich dann gesehen, dass ich den neuen Code nicht an allen notwendigen Stellen eingefügt hatte.

    Jetzt läuft die Aufteilung so gleichmäßig dass sogar Mr. Monk zufrieden wäre. Ich habe es sogar bis 360 Zähne getestet. Es juckt mir in den Fingern, noch ein paar Zähler für die besonderen Ereignisse zu installieren und am Ende eine Statistik auszugeben.

    Den jeweiligen Datensatz am Kopf möchte ich noch etwas formatieren und unnötige Ausgaben entfernen.

    Die K+ und V+ werde ich nur auskommentieren, damit sie bei Bedarf wieder aktiviert werden können.

    Die Zahn-Nrs. möchte ich auch gleich lang machen und die Nachkommanullen bei den Stepps sollen auch weg. Die Stepps passen aber nur in double. und da muss ich wohl einen String draus machen und kürzen.

    Danke nochmals für deine tatkräftige Unterstützung.


    Hans

    Teilungsberechnung-zahnrad10.ino