Old Fidelity - HiFi Klassiker Forum

Normale Version: Digitales Zählwerk (universal, Arduino nano, OLED) für Bandmaschinen und Tapedecks
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

DIYLAB

Hi,

die beta 5 ist online.
Wie immer per Download in Posting #1 zu haben.
Es hat sich eine Menge getan, bitte beachtet das Changelog in diesem Posting.

Desweiteren habe ich das Posting #2 überarbeitet, dort sind nun alle aktuellen Einstellungen erklärt und auch der Abschnitt 'Begrüßungstext" ist dazugekommen. Und im Posting #2 ist auch der Download des neuen Fonts enthalten (21x32).

Gern Feedback jeder Art dazu erwünscht Thumbsup .
Ich hoffe, wir können bal in die Release-Phase gehen.

LG
Bruno

PS: heute habe ich auch mal einen Sch*** Tag. Meine A700 war seit letzten Dienstag schon in Rüdersdorf (ist nicht weit von mir) und heute steht im Status, dass sie nach Hagen unterwegs ist Flenne .
So ein Mist! Seit Monaten bekomme ich PillePalle DHL-Pakete ohne Probleme und wenn es mal etwas wirklich wichtiges und empfindliches ist, spielen die damit PingPong Tease .
Ich könnte gut ein paar gedrückte Daumen von euch gebrauchen, denn ich habe ein ganz blödes Gefühl dabei ...
Ich bin da mal ganz positiv. Eine B77, die ich kurz vor vorletzten Weihnachten verschickt hatte, bewegte sich 2 Wochen lang nicht, und nach Stellen des Nachforschungantrags wurde sie einige Zeit später zugestellt, als wäre nichts gewesen.
Das Tracking- System von DHL war übrigens vorhin abgestürzt...

***Daumendrück ***
Super. Soeben die Version 5 auf meine Teststation aufgespielt.

Soweit alles gut.

Was aber irgendwie keine Auswirkung mehr zeigt, ist der Set Letter Spacing in Zeile 501 für Digi = 4
Egal was ich da einstelle, der Abstand der Zeichen bleibt immer gleich. Das war bei der Version 4 anders.


Code:
#if DIGITS_COUNTER == 4
    // Char buffer.
    char buf[5];

    // Formatting the output.
#if UNSIGN
    sprintf(buf, " %04ld", (0 > val) ? 10000 + val : val);
#else
    sprintf(buf, (val < 0) ? "-%04ld" : " %04ld", (val > 0) ? val : -val);
#endif

    // Increase space between letters.
    oled.setLetterSpacing(6);
    // Set cursor (col, row).
    oled.setCursor(0, 1);


Im Code sind schon meine Einstellungen zu sehen, die ich bei der Version 4 auch angewendet hatte. 
Bin ich da falsch?
Bei FontSize 2 funktioniert es, bei FontSize 1 leider nicht mehr.


Edit: Es sollte genau andersherum sein, als wie ich geschrieben habe. Hat sich aber aufgelöst. Ich war in den falschen Zeilen.

DIYLAB

(22.05.2020, 22:43)hyberman schrieb: [ -> ]Bei FontSize 2 funktioniert es, bei FontSize 1 leider nicht mehr.

Das kann ich leider nicht nachvollziehen, bei mir geht es bei FONTSIZE 1.

[Bild: space.png]

Wenn testweise den Abstand (1) auf 8 erhöhe, wird es brav breiter.
Und dann den Cursor (2) noch ein bisschen versetzen, dann ist es chic.
Ich mach mal Fotos, verstehe nicht, warum es bei Dir nicht gehen soll? 

LG
Kommando zurück.
Ich war in den falschen Zeilen für FontSize 1. Wollte ja FontSize 2 bearbeiten.

Alles gut jetzt, Sorry für die Verwirrungen.

DIYLAB

(22.05.2020, 22:53)hyberman schrieb: [ -> ]Alles gut jetzt, Sorry für die Verwirrungen.

Kein Problem, besser Verwirrung als Fehler Thumbsup .

DIYLAB

Nächster Halt, Geschwindigkeitserkennung ...
Ich bin mir nicht sicher, ob die nächsten Gedankengänge in diesem Thread richtig aufgehoben sind, da sie sich eigentlich auf die A700 beziehen, aber trotzdem ist die Geschwindigkeitsinformation für gogoschs Meter- und Echtzeitauswertungen ja allgemeingültig - man muss sie ja nicht benutzen!
Ich rede von 3 Informationen, die der Controller bekommen könnte, damit die Anzeigen bei den unterschiedlichen Geschwindigkeiten stimmen.

Also 3 Eingänge am Arduino für 3 Geschwindigkeiten.
Das könnte man billig mit Optokopplern abgreifen und gefahrlos mit dem richtigen Pegel einspeisen.
So etwas in der Art (da sind gleich 4 Stück drin): https://www.reichelt.de/4-fach-optokoppl...os_1&nbc=1

Wenn ich das richtig sehe, könnten hier alle Informationen abgegriffen werden (die Pfeile zeigen natürlich nur auf die Geschwindigkeiten - das sind doch Geschwindigkeiten - oder?):

[Bild: a700-speedselect.png]

Oder täusche ich mich da?

Ich spinne den Faden mal weiter, denn die A700 gibt uns alles, was das Herz begehrt!
Auch 5V sind vorhanden, was will man mehr?
Und der Zählimpuls ist ja auch schon vorhanden und liegt auf der gleichen Platine und kommt von dem induktiven Sensor an der Segmentscheibe.
Fehlt nur noch die Richtungsinformation, aber die sollte doch wohl auch irgendwo verfügbar sein - muss ich mal in Ruhe die Pläne durchsehen.

Das wäre doch der Knaller - kein Step-Down Wandler mehr nötig, keine Lichtschranken nötig ...

LG
die markierten Werte sind Geschwindigkeiten, korrekt
(23.05.2020, 03:37)Svennibenni schrieb: [ -> ]die markierten Werte sind Geschwindigkeiten, korrekt

aus dem bett gefallen ?    Lol1

gogosch

AtDIYLAB: Die Gschwindigkeiten kann man als TTL-Pegel direkt am J1 abgreifen. Einzig die Richtung der Bandbewegung muss mit Lichtschranken ermittelt werden, da man ja auch das Band manuell auf eine bestimmt Stelle justieren kann.
So funktioniert auch eine käufliche "professionelle Version" des digitalen Zählers welche +5V, Masse und die TTL-Pegel der 3 Bandgeschwindigkeiten mittels eines Zwischensteckers am J1 abgreift. Dieser Zähler zeigt auch "Capstan Off" wenn keine Geschwindgkeitstaste gedrückt ist.
Step-Down-Wandler benötige ich bei der A700 jetzt schon nicht (mehr). Stepdown-Converter (+5V) wird nur für A77 und B77 benötigt.
Guten Morgen Freunde,

sagt mal, meine Lichtschranke nimmt ja Impulse von meiner modifizierten Riemenscheibe ( 50% Schwarz, 50% weiss) ab, diese ist mit dem linken Wickelmotor verbunden.

Würde es mit meiner Konstallation in Bezug auf die Echtzeitanzeige auch klappen?

LG

Ingo

gogosch

(23.05.2020, 08:14)Rüsselfant schrieb: [ -> ]Guten Morgen Freunde,

sagt mal, meine Lichtschranke nimmt ja Impulse von meiner modifizierten Riemenscheibe ( 50% Schwarz, 50% weiss) ab, diese ist mit dem linken Wickelmotor verbunden.

Würde es mit meiner Konstallation in Bezug auf die Echtzeitanzeige auch klappen?

LG

Ingo
Bei der A77 gibt es keine (vernünftige) Real-Time-Anzeige (Sekunden und Meter), da Umdrehungen des Wickelmotors von der Größe des Bandwickels abhängig sind. Bei der A77 sind (derzeit) nur rudimentäre Zählfunktionen möglich.

DIYLAB

Moin,

(23.05.2020, 08:14)gogosch schrieb: [ -> ]Die Geschwindigkeiten kann man als TTL-Pegel direkt am J1  abgreifen.
So funktioniert auch eine käufliche "professionelle Version" des digitalen Zählers welche +5V, Masse und die TTL-Pegel der 3 Bandgeschwindigkeiten mittels eines Zwischensteckers am J1 abgreift.

Cool, dann können wir das ja auch so machen.
Magst Du Parametersätze für die Bandgeschwindigkeiten erstellen und ich kümmere mich um die Eingänge und die Auswertung im Programm? 

(23.05.2020, 08:14)gogosch schrieb: [ -> ]Dieser Zähler zeigt auch "Capstan Off" wenn keine Geschwindgkeitstaste  gedrückt ist.

Ich dachte, das geht nicht?
Der Kollege schreibt: "Die interne Verschaltung der Geschwindigkeitsschalter auf die Steckerleiste verhindert das Anzeigen von "C-OFF"."
Quelle: https://www.revox-online.de/counter_700_revox-online

(23.05.2020, 08:14)gogosch schrieb: [ -> ]Step-Down-Wandler benötige ich bei der A700 jetzt schon nicht (mehr).

Genau  Thumbsup .

LG
Bruno

PS: Wer wissen will, wie der Revox-Kollege die Lichtschranken angeordnet hat, hier seine Version:
Bildquelle und Copyright: https://www.revox-online.de/counter_700_revox-online
[Bild: counter-sensoren.png]

Versetzt angeordnet!
Der Rest ist simpel, eine IR-Diode lauchtet vor sich hin und zwei Fotodioden/Fototransistoren dienen als Empfänger. 
Bei der Impulsformung wird ein bisschen mehr Aufwand getrieben als bei uns, da geht das Signal der Sensoren nicht direkt in den Controller, sondern auf einen externen Koparator (z.B. LM393). Kann man machen, muss man aber nicht. Ist nur mehr Hüherfutter auf der Platine. Die Interrupteingänge die wir benutzen, haben bereits Komparatoren



(23.05.2020, 08:28)gogosch schrieb: [ -> ]Bei der A77 gibt es keine (vernünftige) Real-Time-Anzeige (Sekunden und Meter), da Umdrehungen des Wickelmotors von der Größe des Bandwickels abhängig sind. Bei der A77 sind (derzeit) nur rudimentäre Zählfunktionen möglich.

Wenn der Kollege aus dem OFF-Zähler-Ursprungsthread seinen Quellcode offenlegen würde, könnten wir daraus lernen Floet

gogosch

Hmm! Wie kommt dann das Bild mit "C-OFF" zustande? Hab mich nur an den Bildern orientiert.
Wenn man das Geschwindigkeitssignal direkt am Geschwindigkeits-Schalter (nicht am J1) abzapft sollte "C-OFF" funktionieren.
1 Eingang == "LOW" ->Entsprechende Geschwindigkeit aktiv. Alle Eingänge == HIGH -> C-OFF. Alle anderen Kombinationen -> "ERROR".
Beim Wechsel der Bandgeschwindigkeit könnte man selbige für 2 Sekunden anzeigen.

DIYLAB

(23.05.2020, 09:03)gogosch schrieb: [ -> ]Hmm! Wie kommt dann das Bild mit "C-OFF" zustande? Hab mich nur an den Bildern orientiert.

Keine Ahnung  Denker .
Er schreibt es geht nicht und zeigt ein Bild, dass es geht.
Frag ihn doch mal  Raucher .
LG

gogosch

Sodale hier 2 CodeSnippets:
Code:
// ~~~ meter and realtime preferences by gogosch ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define MACHINE             700     // Machine type (700 = Revox A700, 77 = Revox A77/B77 and other)
#define SPEEDHIGH           381     // Highest belt speed A700 15" in mm
#define SPEEDMIDDLE         190.5   // Middle  belt speed A700 7,5" in mm
#define SPEEDLOW            95.25   // Lowest  belt speed A700 3,75" in mm.
#define NUMSEGS             5       // Segments of the tape reel A700.
#define SCOPE               122     // Circumference of the tape roll in mm.
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.
.
.
.
Code:
//////////// COUNTER VARS ////////////
volatile long counter = 0;
volatile long pastCounter = 0;
volatile float counterMeters = 0;
volatile float pastCounterMeters = 0;
volatile float counterSeconds = 0;
volatile float pastCounterSeconds = 0;
volatile float secsPerPulse = 0;
volatile float mmPerPulse = 0;
volatile float speedLow = SPEEDLOW;
volatile float speedMiddle = SPEEDMIDDLE;
volatile float speedHigh = SPEEDHIGH;
volatile float numSegs = NUMSEGS;
volatile float scope = SCOPE;
volatile float speedActual = 0;
//////////////////////////////////////
Die aktuelle Geschwindigkeit (speedActual) sollte dann entsprechend der Zustände an den Eingängen (wie oben angeführt) ermittelt und
für die Echtzeitberechnungen verwendet werden.


Code:
    // Calculation of the display parameters for realtime and counter.
    secsPerPulse = scope / (speedActual * numSegs);  // seconds
    mmPerPulse = secsPerPulse * speedActual / 1000;  // conversion to meters per pulse

Obiger Code sollte einerseits im Setup (Eingang abfragen) und bei jedem Event (Eingang Änderung) exekutiert erden.
Hoffe ich hab es einigermaßen verständlich ausgeführt. Die 3 Eingänge sind mit den entsprechenden Punkten am Gschwindigkeitswahlschalter zu verbinden Achtung "LOW" = Geschwindigkeit ausgewählt.
Die angewählte Geschwindigkeit sollte für 2 Sekunden im Display angezeigt werden.

DIYLAB

Hey, das geht hier wie´s Brezelbacken LOL .
Geht heute Abend online, Du kannst schon mal die Strippen ziehen Thumbsup .
Brauchen wir (Software)PullUps an den Eingängen?

LG

PS: und den Zeichensatz für FONTSIZE 1 habe ich auch überarbeitet, jetzt homogener, auch heute Abend online.

PPS: vergessen - die Eingänge am Arduino werden sein A1, A2, A3 Drinks

gogosch

(23.05.2020, 09:51)gogosch schrieb: [ -> ]Sodale hier 2 CodeSnippets:
Code:
// ~~~ meter and realtime preferences by gogosch ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define MACHINE             700     // Machine type (700 = Revox A700, 77 = Revox A77/B77 and other)
#define SPEEDHIGH           381     // Highest belt speed A700 15" in mm
#define SPEEDMIDDLE         190.5   // Middle  belt speed A700 7,5" in mm
#define SPEEDLOW            95.25   // Lowest  belt speed A700 3,75" in mm.
#define NUMSEGS             5       // Segments of the tape reel A700.
#define SCOPE               122     // Circumference of the tape roll in mm.
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.
.
.
.
Code:
//////////// COUNTER VARS ////////////
volatile long counter = 0;
volatile long pastCounter = 0;
volatile float counterMeters = 0;
volatile float pastCounterMeters = 0;
volatile float counterSeconds = 0;
volatile float pastCounterSeconds = 0;
volatile float secsPerPulse = 0;
volatile float mmPerPulse = 0;
volatile float speedLow = SPEEDLOW;
volatile float speedMiddle = SPEEDMIDDLE;
volatile float speedHigh = SPEEDHIGH;
volatile float numSegs = NUMSEGS;
volatile float scope = SCOPE;
volatile float speedActual = 0;
//////////////////////////////////////
Die aktuelle Geschwindigkeit (speedActual) sollte dann entsprechend der Zustände an den Eingängen (wie oben angeführt) ermittelt und
für die Echtzeitberechnungen verwendet werden.


Code:
    // Calculation of the display parameters for realtime and counter.
    secsPerPulse = scope / (speedActual * numSegs);  // seconds
    mmPerPulse = secsPerPulse * speedActual / 1000;  // conversion to meters per pulse

Obiger Code sollte einerseits im Setup (Eingang abfragen) und bei jedem Event (Eingang Änderung) exekutiert und der Variable actualSpeed, entsprechend den Zuständen am jweilige Eingang, die dazu entsprechende Geschwindigkeit zugewiesen werden.
Hoffe ich hab es einigermaßen verständlich ausgeführt. Die 3 Eingänge sind mit den entsprechenden Punkten am Gschwindigkeitswahlschalter zu verbinden Achtung "LOW" = Geschwindigkeit ausgewählt. Alle 3 Eingänge auf "HIGH" dann ist der Capstan abgeschaltet. Die angewählte Geschwindigkeit sollte für 1-2 Sekunden im Display angezeigt werden (wäre ganz nett)

DIYLAB

(23.05.2020, 09:59)gogosch schrieb: [ -> ]Obiger Code sollte einerseits im Setup (Eingang abfragen) und bei jedem Event (Eingang Änderung) exekutiert erden.

check Thumbsup

(23.05.2020, 09:59)gogosch schrieb: [ -> ]Hoffe ich hab es einigermaßen verständlich ausgeführt.

jopp Thumbsup

(23.05.2020, 09:59)gogosch schrieb: [ -> ]"LOW" = Geschwindigkeit ausgewählt. Alle 3 Eingänge auf "HIGH" dann ist der Capstan abgeschaltet.

geht klar Thumbsup

Falls überlesen, die Eingänge werden A1 (9) A2 (19) A3 (38) sein.

LG

gogosch

"pullUp" brauchen wir glaube ich nicht. Der dürfte im TDA1000 bereits inkludiert sein. Schaun mer mal.

DIYLAB

(23.05.2020, 10:07)gogosch schrieb: [ -> ]"pullUp" brauchen wir glaube ich nicht. Der dürfte im TDA1000 bereits inkludiert sein. Schaun mer mal.

Vielleicht sollten wir darauf hinweisen - wer aus irgenwelchen Gründen seinen Arduino grillt (warum auch immer, ist mir noch nicht passiert), grillt möglicherweise auch seinen TDA1000 gleich mit Floet .
Immerhin verlassen wir ja mit der Einspeisung der Signal die dedizierte Arduino-Umgebung.
Aber ich habe ja einen Disclaimer im Programm LOL .

LG

gogosch

(23.05.2020, 10:27)DIYLAB schrieb: [ -> ]
(23.05.2020, 10:07)gogosch schrieb: [ -> ]"pullUp" brauchen wir glaube ich nicht. Der dürfte im TDA1000 bereits inkludiert sein. Schaun mer mal.

Vielleicht sollten wir darauf hinweisen - wer aus irgenwelchen Gründen seinen Arduino grillt (warum auch immer, ist mir noch nicht passiert), grillt möglicherweise auch seinen TDA1000 gleich mit Floet .
Immerhin verlassen wir ja mit der Einspeisung der Signal die dedizierte Arduino-Umgebung.
Aber ich habe ja einen Disclaimer im Programm LOL .

LG
Ja, das ist dann ein teurer Spass! Ab 25,-- aufwärts (ohne Versand) ist man dann dabei!  LOL Raucher

DIYLAB

(23.05.2020, 10:35)gogosch schrieb: [ -> ]Ja, das ist dann ein teurer Spass! Ab 25,-- aufwärts (ohne Versand) ist man dann dabei!  LOL Raucher

Das schreit ja förmlich nach einem Field Programmable Gate Array oder PAL Projekt Lol1 .
Irgendwann mal Lipsrsealed2 .

gogosch

(23.05.2020, 10:38)DIYLAB schrieb: [ -> ]
(23.05.2020, 10:35)gogosch schrieb: [ -> ]Ja, das ist dann ein teurer Spass! Ab 25,-- aufwärts (ohne Versand) ist man dann dabei!  LOL Raucher

Das schreit ja förmlich nach einem Field Programmable Gate Array Projekt Lol1 .
Irgendwann mal Lipsrsealed2 .
Es gibt ja für die Capstan-Control auch eine (spätere) TTL-Version die ohne dieses TDA1000 auskommt.
Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18