Themabewertung:
  • 4 Bewertung(en) - 3 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Digitales Zählwerk (universal, Arduino nano, OLED) für Bandmaschinen und Tapedecks
#1
Lightbulb 
[Bild: logo.png]

Projektbeschreibung
Kommt noch  Floet

Relevante Threads im Zusammenhang mit diesem Projekt
Digitales Zählwerk ( Realtime, Meter, Counter ) reVox A700
Digitales Zählwerk (nur Counter) Revox A77
Digitales Zählwerk ( nur Counter ) reVox B77
Digitales Zählwerk ( nur Counter ) AKAI GX 620
Digitales Zählwerk ( nur Counter ) Sony TC 788-4
Tandberg TD-20A mit Digi Counter

Bedienung über den Taster
1x kurz = Reset aller Counter.
2x kurz hintereinander = Umschalten auf Normalzähler, Meteranzeige und Echtzeitanzeige.
langer Druck = Helligkeit einstellen in 16 Schritten (gespeichert wird nach dem loslassen der Taste).
Taste festhalten beim Einschalten der Maschine = Anzeige des Betriebsstundenzählers.

Changelog:
Code:
07.06.2020 - Version v1.00 (Release) veröffentlicht;

29.05.2020 - Version v0.99 (rc1) veröffentlicht;
            Neue Features:
            + Betriebsstundenzähler integriert (erreicht man, wenn man die Taste gedrückt hält und dann die Maschine einschaltet).
            + Konfigurierbare Stellenanzahl bei den Minuten des Echtzeitzählers (2 oder 3 - bei 3 entfallen die Stunden).
            + Die Funktionen bei Klick und bei Doppelklick können in der Config vertauscht werden.
            + Für die Zeitberechnungen wurden Konstanten und Macros eingeführt, dadurch wird die Software übersichtlicher und flexibler.
            Fixes:
            * Änderung der Umrechnung und Anzeige der verschiedenen Geschwindigkeiten (danke gogosch).
            * Precompiler Direktive '#if MACHINE == NONE || !SHOWSPEED' überarbeitet.
            * Formatierungsfehler in der Echtzeitanzeige bei allen Schriftgrößen korrigiert.
            * Beim Normalcounter war bei allen Schriftgrößen und Stellenzahlen ein Leerzeichen zu viel (im Modus ohne Vorzeichen).
            * Überlauferkennung beim Einschalten, falls die Anzahl der Digits geändert wurde und der Counterstand nicht in die Stellenanzahl passt.

24.05.2020 - Version v0.99 (beta 6) veröffentlicht;
            * Beide Zeichensätze überarbeitet, bei FONTSIZE 1 ist die Ansicht nu nauch homogener (bitte darauf achten, dass ihr unbedingt die neuen Dateien benutzt!).
            * Drei Eingänge am Arduino für die Bandgeschwindigkeiten einprogrammiert (A1 für 9,5cm/s, A2 für 19cm/s und A3 für 38cm/s).
            * Die Geschwindigkeiten lassen sich in der USER-CONFIG-SECTION konfigurieren.
            * Der Maschinentyp lässt sich auch konfigurieren (derzeit nur 700 für Revox A700 und NONE für keine Maschine).
            * Es lässt sich konfigurieren, ob die Bandgeschwindigkeit angezeigt werden soll.
            * Liegen and den Eingängen keine Geschwindigkeitsinformationen an, zeigt das Display 'C-OFF' für 'Capstan OFF'.
            * Die Eventverarbeitung wurde im Programm komplett geändert! Statt Arbeitszählern und Zeitscheiben nun mit retriggerbaren Monoflops.
            * Die Ausgabe des Nullpunkt-Impulses wurde komplett überarbeitet und arbeitet nun exakt. Steht der Zähler beim Einschalten auf Null, gibt es keinen Impuls, da dies unnötig ist.
              Ebenso beim Umschalten der Modi und Resetten des Zählers.
            * Der Ausgang Pin 7 für den Nullpunktimpuls schaltet nach GND (das ist wichtig zu wissen)!!!
            * Ein Fehler, der evtl. in besonderen Konstellationen auftreten kann, wurde beseitigt (Divison durch 0).

22.05.2020 - Version v0.99 (beta 5) veröffentlicht;
            * alle aktuellen 'gogosch' Änderungen (bis Posting #125) eingefügt und in der USER-CONFIG-SEKTION parametrierbar gemacht (betrifft Meter- und Echtzeitanzeige für Revox A700).
            * Neuen Zeichensatz für FONTSIZE 2 erstellt, Zeichen homogener gezeichnet, Breite auf 21px verringert, damit bei der Echtzeitanzeige das Vorzeichen Platz hat (es gab vorher kein Vorzeichen).
            * Echtzeitanzeige auf eine Stelle bei den Stunden begrenzt (beide Schriftgrößen).
            * Überlauf zu 0 bei der Meteranzeige und Echtzeitanzeige eingefügt (Anzeigebedingt geht nun der Anzeigebereich bei der Meteranzeige
            von -1.999m bis 1.999m und bei der Echtzeitanzeige von -9:59:59 bis 9:59:59).
            * 'PrintEx' Bibliothek wird nicht mehr benutzt, entfernt und Formatierungen von 'gogosch' übernommen und angepasst.
            * Alle Anzeige-Formatierungen überarbeitet (noch nicht zu 100% getestet!).
            * Definition für explizites Ein-/Ausschalten des Startlogos eingefügt.
            * Definition für explizites Ein-/Ausschalten des Starttextes eingefügt.
            * Um es dem Anwender einfacher zu machen, neues Verfahren zum setzen des Startextes eingefügt.

19.05.2020 - Version v0.99 (beta 4) veröffentlicht;
            * Fehler aus Posting #31 korrigiert (bitte testen!).
            * Meter- und Echtzeitanzeige wurden an die Revox A700 angepasst (Editor: gogosch).
            * Vorzeichen für Echtzeitanzeige in Fontsize 1 eingefügt (Editor: gogosch).

18.05.2020 - Version v0.99 (beta 3) veröffentlicht;
            * Drehrichtungserkennung überarbeitet und Geschwindigkeit bis zu 4000U/Min mit zwei Impulsen pro Umdrehung getestet.
            * Anzeigefehler beseitigt.
            * Nullpunkt-Impuls korrigiert.
            * Code optimiert.

17.05.2020 - Version v0.99 (beta 2) veröffentlicht;

28.04.2020 - initiale Version v0.99 (alpha) ausgeliefert;

Downloads:
Version 0.99 (initiale Version, nur proforma, möglichst nicht mehr verwenden)
Version 0.99-b2
Version 0.99-b3
Version 0.99-b4
Version 0.99-b5
Version 0.99-b6
Version 0.99-rc1
Version 1.00-RELEASE (AKTUELL
[-] 13 Mitglieder sagen Danke an für diesen Beitrag:
  • stephan1892, Svennibenni, Rüsselfant, dettel, gasmann, havox, dedefr, nice2hear, hyberman, dg2dbm, saba, Futurematic, marctheshark
Zitieren
#2
Software

Das Programm hat eine eigene Sektion für die Konfiguration aller Arbeitsbedingungen.
Diese ist mit "USER CONFIG SECTION" gekennzeichnet, dort stellt man die Parameter, passend zur Maschine und seinen Bedürfnissen ein.
Sind alle Einstellungen gemacht und gespeichert, kann das Programm kompiliert und in den 'Arduino nano' geladen werden.

Alle relevanten Einstellungen erkläre ich an dieser Stelle.

[Bild: config-rc1.png]

44. HELLO_LOGO
"true" Beim Einschalten wird das Logo angezeigt.
"false" Beim Einschalten wird kein Logo angezeigt.

45. HELLO_TEXT
"true" Beim Einschalten wird der Begrüßungstext angezeigt.
"false" Beim Einschalten wird kein Begrüßungstext angezeigt.

46. HELLO_TIMEOUT
"3000" Die Anzeigedauer der Begrüßung in Millisekunden. 3000 steht also für 3 Sekunden.

47. BRIGHTNESS
"128" Die Helligkeit des Displays im Bereich von 0 bis 255 als initialer Startwert. Beim Betrieb kann die Helligkeit mittels Taster eingestellt werden und wird dann im EEPROM des Mikrocontrollers abgelegt. Konstruktionsbedingt liegen die sichtbaren Helligkeitsänderungen mehr im unteren Bereich, weiter oben sieht man keinen Unterschied mehr.

48. FLIPDISPLAY
"false" Der Inhalt des Displays wird so ausgegeben, wie es der Hersteller vorsieht.
"true" Der Inhalt des Displays wird um 180 Grad gedreht ausgegeben. Das ist praktisch, wenn man das Display verkehrt herum eingebaut hat oder einbauen musste.

49. INVERTDISPLAY
"false" Die Anzeige auf dem Display ist hell auf dunklem Hintergrund.
"true" Die Anzeige auf dem Display ist dunkel auf hellem Hintergrund (nur praktisch, wenn man selbst Schriften oder Bilder entwickelt und die Position pixelgenau sehen möchte. Außerdem kann man durch diese Einstellung das komplette Displayfeld sehen um es mechanisch auszurichten.

50. SWAPCLICK
Die Funktion des einfachen Klicks kann mit der Funktion des Doppelklicks vertauscht werden.

51. FONTSIZE
"1" Mittlere Schrift- und Anzeigengröße. In dieser Einstellung passen in der Breite mehr Informationen auf das Display und die Höhe passt auch in kleine mechanische Ausschnitte von vorhandenen Displays in den Maschinen.
"2" Die größte mögliche Darstellung. In der Höhe werden die maximalen 32 Pixel des Displays ausgenutzt. Daher weniger Informationen in der Breite.

52. UNSIGN
"false" Counterwerte werden mit negativem Vorzeichen angezeigt, wenn sie negativ sind (z.B. nach einen 0-Reset mitten im Band und zurückspulen).
"true" Es werden keine negativen Vorzeichen im normalen Counter angezeigt (nur im Zählmodus, nicht bei der Meter- oder Echtzeitanzeige). Der Counter verhält sich wie ein mechanisches Modell.

53. DIGITS_MINUTES
Anzahl der Minutenstellen bei der Echtzeitanzeige. Möglich ist 2 oder 3. Bei drei Stellen entfallen die Stunden.

54. DIGITS_COUNTER
"6" Je nach eingestellter Anzeigengröße können hier die Anzahl der Stellen für den normalen Zähler eingetragen werden.
Bei FONTSIZE=1 passen maximal 6 Stellen auf das Display, gültige Werte bei FONTSIZE=1 sind 4, 5 oder 6 Stellen.
Bei FONTSIZE=2 passen maximal 5 Stellen auf das Display, gültige Werte bei FONTSIZE=2 sind 4 oder 5 Stellen.

55. PULSES_COUNTER
"1" Die Anzahl der erforderlichen Impulse, um eine Stelle bei dem normalen Zähler weiter zu zählen.
Angenommen es gibt eine Segmentscheibe mit 4 Segmenten und man möchte pro Umdrehung eine Stelle weiterzählen, nimmt man die Einstellung 4.
Dann wären 4 Impulse nötig pro Zählung. Das muss jeder für sich einstellen!

56. OPHOURSOFFSET
Der Offset für den Betriebsstundenzähler in Sekunden. Hier kann eine feste Zeit eingetragen werden, zu der der aktuelle Zähler dazu addiert wird.
Es gibt diverse Onlinetools zum Umrechnen einer Zeitangabe in Sekunden.

59. MACHINE
Bandmaschinenbezeichnung. Momentan stehen nur zwei Möglichkeiten zur Verfügung: '700' für die Revox A700 und 'NONE', wenn keine unterstützte Maschine vorhanden ist. 

60. SHOWSPEED
Legt fest, ob die Geschwindigkeitsangaben kurz auf dem Display ausgegeben werden sollen oder nicht.

61. SPEEDHIGH
Korrekturwert für 38cm/s bei der eingestellten Maschine.

62. SPEEDMIDDLE
Korrekturwert für 19cm/s bei der eingestellten Maschine.

63. SPEEDLOW
Korrekturwert für 9,5cm/s bei der eingestellten Maschine.

64. CAPSTANOFF
Interner Arbeitswert des Zustands, wenn der Capstan nicht dreht (momentan gibt es keine Veranlassung, diesen Wert zu ändern).

65. NUMSEGS
Anzahl der Segmente der Bandrolle.

66. SCOPE
Umfang der Bandrolle in mm.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

70. SENSOR_A
Arduino-Pin (Eingang) für Sensor A. (durch Vertauschen der Pinangabe für SENSOR_A und SENSOR_B kann die Zählrichtung umgekehrt werden!).

71. SENSOR_B
Arduino-Pin (Eingang) für Sensor B. (durch Vertauschen der Pinangabe für SENSOR_A und SENSOR_B kann die Zählrichtung umgekehrt werden!).

72. SPEED95
Arduino-Pin (Eingang) für die Bandgeschwindigkeit 9,5cm/s (active LOW).

73. SPEED19
Arduino-Pin (Eingang) für die Bandgeschwindigkeit 19cm/s (active LOW).

74. SPEED38
Arduino-Pin (Eingang) für die Bandgeschwindigkeit 38cm/s (active LOW).

75. BUTTON
Arduino-Pin (Eingang) für den Anschluss des Tasters.

76. ZEROPOINT
Arduino-Pin (Ausgang) für den Null-Impuls.

77. LED
Arduino-Pin (Ausgang) für die onboard-LED zum Anzeigen des Speichervorgangs.

78. LEFT
Logischer Zustand der Drehrichtung 'links'.

79. RIGHT
Logischer Zustand der Drehrichtung 'rechts'.

80. bis 85.
Diverse EEPROM-Adressen (nur Ändern, wenn Zellen nach 100.000 Schreibvorgängen verbraucht sind!).

86. I2C_ADDRESS
Adresse des Displays. In den meisten Fällen vom Hersteller auf 0x3C festgelegt. In Ausnahmefällen auch 0x3D möglich.

87. USE_FRAM
- noch ohne Funktion! -



Begrüßungstext

Der Begrüßungstext kann sehr einfach geändert werden.
Bitte im Programm nach 'welcome helloText' suchen. Dort findet man dann diesen Abschnitt:

Code:
/**
* Here you define the welcome text. A maximum of 2 lines is possible.
* Syntax: Message, column (0 to 128), row (1 or 2).
* If a line is not used, it is commented out.
**********************************************************************/
welcome helloText[2] = {
    /*Line1*/ { "DIYLAB", 52, 1 },
    /*Line2*/ { "COUNTER 0.99", 52, 2 }
};
/**********************************************************************/

Mit dem benutzten Font 'utf8font10x16' sind auf dem Display 2 Zeilen möglich.
Die Syntax des oben zu sehenden Codeabschnitts ist "Text", Spalte, Zeile.
Der Text sollte natürlich auf die Displaybreite passen, ein Scrolling ist nicht implementiert.
Mit 'Spalte' ist ein Punkt zwischen 0 und 128 gemeint, auf den der Cursor gesetzt wird.
Mit Zeile ist entweder Zeile 1 oder Zeile 2 gemeint.
Wenn nur eine Zeile benutzt werden soll, kann die andere Zeile einfach mit zwei // auskommentiert werden.
Wer andere Schriftarten und Größen verwenden will, sollte sich unbedingt mit der Dokumentation der verwendeten OLED-Bibliothek auseinandersetzen.
VORSICHT: Änderungen der Schriftart und Größe wirken sich direkt auf den Menüpunkt 'Brightness' aus und könnten zu einer falschen Darstellung führen!



Startlogo

Das verwendete OLED-Display hat eine Auflösung von 128x32 Pixeln. Jedes Pixel kann per Direktbeschreibung des Puffers einzeln gesetzt werden.
Daher ist es recht einfach, beim Start ein Bild in dieser Größe anzuzeigen. Das Bild kann mit jedem Zeichenprogramm erstellt werden, welches Bitmapformate abspeichern kann.
Für unser Startlogo habe ich z.B. solch ein Bild benutzt:

[Bild: startlogo-128x32.png]

Das Hintergrundgitter ist natürlich nur im Zeichenprogramm enthalten und zeigt die einzelnen Pixel.
Ihr könnt z.B. auch mit eurem Zeichenprogramm Text an beliebigen Stellen zeichnen, in jeder Sprache.

Ist dann das Bild fertig, muss es in ein Format gewandelt werden, welches der Arduino verarbeiten kann.
Dazu gibt es eine wundervolle Website, die das für euch erledigt: https://javl.github.io/image2cpp/

Dort ladet ihr euer Bild hoch und stellt folgendes ein:

[Bild: image-seetings.png]

Wenn ihr dann auf 'Generate code' klickt, habt ihr im Kästchen darunter den kompletten Code für unser Projekt.
Ihr öffnet im Projektverzeichnis die Datei logo.h und kopiert den generierten Code dort hinein (den kompletten vorhandenen Code bitte ersetzen!).

Dann nur noch die Zeile:
Code:
const unsigned char NaN [] PROGMEM = {

durch:

Code:
const unsigned char logo [] PROGMEM = {

ersetzen, das Projekt kompilieren und in den Arduino laden und schon habt ihr ein neues Logo!



Schriftarten

Es kam öfter die Frage: "wie kann ich die Schriftgröße verändern?".
Dazu muss man verstehen, dass ein Mikrocontroller natürlich kein PC oder Tablet ist und verwendete Schriften auf Displays beliebiger Art nicht als Vektoren, sondern als Bild dargestellt werden.
Jeder Pixel eines Zeichens ist ein Bit und ein Zeichen kann nicht frei skaliert werden.
Die von uns verwendete Bibliothek stellt bereits eine stattliche Auswahl an Schriftarten zur Verfügung. Vielleicht guckt ihr mal ins Font-Verzeichnis der Bibliothek?
Alle Arduino-Bibliotheken werden hier abgelegt: c:\Users\<dein Windows Benutzername>\Documents\Arduino\libraries\
Dort findet ihr auch die Bibliothek 'SSD1306Ascii' - die verwenden wir für unser Projekt!

*Anmerkung: 'SSD1306' bezieht sich auf den Chip, der sich auf dem OLED-Display befindet und das Display steuert. 'Ascii' bedeutet, dass diese Bibliothek ausschließlich dafür entwickelt wurde, ASCII-Schriftzeichen darzustellen und keine Grafikroutinen beinhaltet.
Es gibt natürlich verschiedene Bibliotheken anderer Entwickler die viel mehr Komfort, Grafikroutinen und Effekte haben, allerdings sind diese Bibliotheken meist wesentlich langsamer und brauchen deutlich mehr Speicherplatz im Controller.

Im Verzeichnis C:\Users\<dein Windows Benutzername>\Documents\Arduino\libraries\SSD1306Ascii\src\fonts\ findet ihr alle Schriften, die unsere Bibliothek zur Verfügung stellt.
An dieser Stelle muss ich euch aber bremsen, ich habe alle Schriften durch  Floet .
Wir haben bei diesem Projekt teilweise sehr spezielle Anforderungen an die Darstellung und Größe der Schriftzeichen, so dass ich zwei Schriftarten selbst erstellen musste.

Benutzt werden von uns insgesamt 3 Schriftarten:
utf8font10x16.h (für den Begrüßungstext und die Änderung der Displayhelligkeit - ist bei der Bibliothek dabei)
tapecounter_16x24.h (Für die Darstellung bei FONTSIZE 1, selbst erstellt)
tapecounter_23x32.h (Für die Darstellung bei FONTSIZE 2, selbst erstellt)

Die Zahlen im Dateinamen stehen für die maximale Größe der Zeichen (einige Zeichen können weniger Breite haben, es sind Proportionalschriften).

Wer nun möchte, kann sich also selbst einen eigenen Zeichensatz erstellen.
Wobei dies eine sehr zeitaufwändige Angelegenheit ist und die Anpassung auf optimale Darstellung bei unserem Projekt schwierig ist, ganz besonders bei FONTSIZE 2.
Dort wird mit einigen Tricks gearbeitet, die z.B. gewährleisten, dass bei der Meteranzeige trotz des begrenzten Platzes auch mehr als 1000 Meter angezeigt werden können.
Da die Veränderung der Schriften in unserem Projekt ein komplexes Thema ist, möchte ich dies nicht Supporten, bitte verzeiht mir diese Entscheidung. Der Counter wird mit passenden und funktionierenden Schriften geliefert, darum leider kein Support.

Ok, wer es nicht lassen kann:
Ganz unten auf dieser Seite findet ihr zwei Downloads. Einmal ein kleines Programm zum Zeichnen von Schriften und die beiden selbst erstellten Schriften in 24px und 32px Größe.
Das Programm ist im Internet schwer zu finden, daher biete ich es hier zum Download an.
Es ist eine Java-Applikation und setzt eine installierte Java-JRE voraus (Oracle Java geht, OpenJDK nicht probiert).
Ihr könnt nun meine Schriftdateien damit öffnen, die haben die Endung '.fnt' und auch Zeichen für Zeichen ansehen. Dieses Programm ist in der Lage, die nötigen C-Header Dateien zu erzeugen, die unser Projekt benötigt (diese Dateien haben die Endung '.h'.

[Bild: glcd-fontcreator.png]

Die exportierte Schrift als Header-Datei lässt sich mit jedem Texteditor anschauen.
Wenn ihr die exportierte Schrift im Texteditor anschaut, werdet ihr merken, dass das Java-Programm leicht Buggy ist! In der Datei steht bei der Font-Größe ein negativer Wert.
Alles Negative muss ins Positive geändert werden und bei der Größe selbst muss dann natürlich auch die reelle, positive Größe der Zeichen als HEX-Zahl eingetragen werden, sonst kommt nur Pixelmatsch  LOL .
Außerdem ist eine Zeile zu ändern!

Beim Export wird im Header dies erzeugt:

Code:
static uint8_t <name eurer schrift>[] PROGMEM = {

Das muss in:

Code:
GLCDFONTDECL(<name eurer schrift>) = {

... geändert werden.
Am besten ist es, ihr vergleicht eure erzeugten Headerdateien mit den originalen Dateien.

Nun habt ihr alle Werkzeuge um selbst kreativ zu werkeln, viel Spaß!

Downloads:
Fonts.zip
GLCDFontCreator.zip
Segmentscheibe als Excel-Macro Datei (danke Detlef!)
[-] 12 Mitglieder sagen Danke an für diesen Beitrag:
  • stephan1892, Baruse, dedefr, dettel, Rüsselfant, havox, hyberman, spocintosh, Luminary, xs500, gasmann, dg2dbm
Zitieren
#3
Hardware

vereinfachter Schaltplan

[Bild: counter-schematics.png]
[-] 7 Mitglieder sagen Danke an für diesen Beitrag:
  • stephan1892, , gasmann, Svennibenni, dg2dbm, saba, dedefr
Zitieren
#4
Bruno,ich bekomme immer ne Fehlermeldung  Denker wenn ich die neue Software hochlade  Flenne
Steffen
Zitieren
#5
Danke Bruno, mal sehen, ob ich das heute noch umsetzen kann.
Gruß André





Zitieren
#6
(17.05.2020, 14:36)stephan1892 schrieb: Bruno,ich bekomme immer ne Fehlermeldung  Denker wenn ich die neue Software hochlade  Flenne
Steffen

Hallo Steffen,

dann zeig doch mal, wie sie lautet - ok?
Vielleicht liegt es ja an den Einstellungen in der Arduino IDE?
Schon alles überprüft?

LG
Zitieren
#7
Bruno
Es hat ja ein paar Minuten später doch noch geklappt!
Es funktioniert soweit alles,wie zählen,die Umschaltung Zählwerk,Meter,Echtzeit.
Ebenfalls geht die Resetfunktion und die helligkeitsregelung und Begrüßung  LOL
Nur das Relais klackt halt ständig .Maschine läuft nur,wenn ich die Starttaste gedrückt halte
steffen
Zitieren
#8
Es lief ne Weile, nun spinnt plötzlich alles, genau genommen 2 Systeme.

Dann stimmte die Zählrichtung nicht mehr. Software neu rauf ging es wieder, bis ich den Arduino vom Stom getrennt habe.
Zig mal wieder neu eingespielt, es wurde immer schlechter

Den einen Arduino habe ich an 12 V der BM hängen.

Bei Maschine Netz aus und PC über USB an Arduino dieses hier

[Bild: IMG-7308.jpg]
Gruß Detlef
[-] 1 Mitglied sagt Danke an dettel für diesen Beitrag:
  • dedefr
Zitieren
#9
LOL LOL LOL


[Bild: IMG-4173.jpg]
Gruß André





[-] 5 Mitglieder sagen Danke an hyberman für diesen Beitrag:
  • dedefr, , stephan1892, nice2hear, Balloo
Zitieren
#10
Hallo Detlef,

(17.05.2020, 16:54)dettel schrieb: Dann stimmte die Zählrichtung nicht mehr.

Einfach umdrehen? Ist alles konfigurierbar.
Dies ändern:

Code:
#define SENSOR_A            3        // INPUT PIN (Sensor-A)
#define SENSOR_B            2        // INPUT PIN (Sensor-B)

in:

Code:
#define SENSOR_A            2        // INPUT PIN (Sensor-A)
#define SENSOR_B            3        // INPUT PIN (Sensor-B)

müsste die Zählrichtung umkehren.

(17.05.2020, 16:54)dettel schrieb: Zig mal wieder neu eingespielt, es wurde immer schlechter

Ist kein typisches Verhalten bei einer Mikrocontroller Programmierung - kann ich leider nicht nachvollziehen.

(17.05.2020, 16:54)dettel schrieb: Den einen Arduino habe ich an 12 V der BM hängen.

Direkt an 12V?
Vielleicht kocht dann der interne Festspannungsregler und macht die Zicken, die Du beschreibst?
Kann sein, dass er schon einen Knacks hat.

(17.05.2020, 16:54)dettel schrieb: Bei Maschine Netz aus und PC über USB an Arduino dieses hier

Was genau sehe ich da?

LG
Bruno
Zitieren
#11
Der Treiber für OSX nervt! 3x ging es gut mit dem hochladen und nun ist der Port wieder ganz weg incl. 2x Absturz vom Mac. Komme nicht herum, die Software auf den PC zu installieren.

Immer hin konnte ich schon den Bergrüßungstext ändern. Kann ich da die Font Größe auch einfach ändern?



Code:
    oled.setFont(utf8font10x16);
    oled.setCursor(52, 0);
    oled.print(F("Welcome"));
    oled.setCursor(52, 2);
    oled.print(F("to Revox A77"));
    delay(HELLO_TIMEOUT);
Gruß André





Zitieren
#12
Die unteren LED leuchten schwach, Der Arduino schickt offenbar Strom in die Maschine.

lt. www externe Spannungsversorgung (VIN) 7 - 12 V, in Deiner Verdrahtungsanleitung steht 6 - ca. 12 V

Der zweite hängt nur an USB und macht auch Probleme.

Die Änderung Sensor A / B habe ich gemacht, das vergisst er aber scheinbar immer wieder.

Oder ich habe die Sensoren gekillt, habe nur noch zwei digitale.

Mache ich also erst mal Pause


So, mal mit nem anderen Arduino getestet, die Sensoren haben ein Ding weg.
Keine Ahnung wie ich das geschaft habe Dash1
Wichtig ist aber, die A700 läuft noch Dance3
Gruß Detlef
Zitieren
#13
Hallo Detlef,

(17.05.2020, 17:39)dettel schrieb: Die unteren LED leuchten schwach, Der Arduino schickt offenbar Strom in die Maschine.

kann ich so nicht beurteilen, da ich nicht weiß, wie du ihn genau angeschlossen hast.
Vielleicht versorgt ja Der Arduino nun auch dein LED-VU mit Spannung? 
Das wäre dann wohl nicht richtig so.

(17.05.2020, 17:39)dettel schrieb: Die Änderung Sensor A / B habe ich gemacht, das vergisst er aber scheinbar immer wieder.

Mhh, wenn ein Programm erst mal im Controller ist, kann er es nicht vergessen.
Vielleicht liegt ja ein Programmfehler vor, den ich noch nicht entdeckt habe?
Dazu wäre es aber nötig, Feedback der anderen Bastler zu bekommen, ob es da auch so ist.
Bis jetzt kam aber noch nichts, müssen wir mal abwarten.
Ich kann ja nur von meinem eigenen Versuchsaufbau mit der Festplatte berichten und da zählt er immer richtig herum  Denker .

Ich verstehe nicht, was da bei Dir los ist und kann so aus der Ferne auch nichts so richtig nachvollziehen.
Auch deine "Nebenbestromungseffekte" verstehe ich leider nicht ohne den genauen Plan, wie du wo was angeschlossen hast, sorry.

Da gibt es ja nur noch zwei Möglichkeiten:
entweder ich komme dich besuchen und wir basteln zusammen und lösen deine Probleme oder du wartest, bis meine A700 hier ist und ich meine eigenen Erfahrungen machen kann. 

LG
Bruno
Zitieren
#14
Also in meiner A77 läuft das alles supergut...für den 8mm Sensor habe ich den Winkel für den weißen Streifen noch  optimiert, aber nach der letzten Änderung hatte ich ja noch nicht mit einem kompletten Umspulen getestet. 

Start bei 0 - kommt nach hin- und zurückspulen über 2000 Umdrehungen des Wickelmotors wieder bei 0 an  Dance3 
Und der neue Font Heart
Viele Grüße aus Kiel,
Hans-Volker

Es gibt viel zu tun, fangt schon mal an!
[-] 1 Mitglied sagt Danke an havox für diesen Beitrag:
  • dettel
Zitieren
#15
At Bruno, die Sensoren zicken rum, er zählt nun wie er Lust und Laune hat.

muss nun auf Neue warten.

Angeschlossen ist der Arduino über VIN und GRD, direkt am Netzteil die stabilisierte Spannung abgegriffen.

Edit:

habe noch zwei digitale Sensoren (Fehlkauf) hier.
Lassen die sich einbinden?
Gruß Detlef
Zitieren
#16
AtBruno
Also zählen tut er richtig,vor und zurück !
Aber er schaltet willkürlich die Maschine auf STOPP auch wenn da nicht 0000 steht.
Beim ersten Einschalten zählte er Rückwärts bei Play,habe dann die Sensoren getauscht,dann ging es wieder richtig rum.
Eben hat er wieder Rückwärts gezählt,jetzt geht´s wieder.
Steffen
Zitieren
#17
(17.05.2020, 18:00)dettel schrieb: Angeschlossen ist der Arduino über VIN und GRD, direkt am Netzteil die stabilisierte Spannung abgegriffen.
habe noch zwei digitale Sensoren (Fehlkauf) hier.
Lassen die sich einbinden?

An welchem Netzteil?
Das von der BM oder ein 5V StepDown-Netzteil, welches Du eingebaut hast?
Falls es ein 5V Netzteil ist, kann Vin nicht funktionieren, weil Vin einen eigenen Festspannungsregler hat, der selbst 5V erzeugt und daher eine höhere Spannung braucht als 5V.
Externe 5V müssen an einem der 5V Pins am Arduino angeschlossen werden, nicht an Vin.
Solltest Du aber den Kleinen direkt ans BM-Netzteil engeschlossen haben, könnte es sein, dass der interne kleine Festspannungsregler schon dicke Backen bekommen hat, da er ja auch noch die Sensoren versorgen muss und daher gerillt ist.
Am besten ist es immer, man nimmt einen StepDown-Regler mit 5V Ausgang und schließt die 5V an einen 5V Pin des Arduino an.
Ich glaube, Du zeigtest mir bei meinem Besuch einen StepDown-Regler, den Du bestellt hattest?

Und nein, die digitalen Sensoren kannst du schaltungsbedingt nicht benutzen.
Es sei denn, du ersetzt die winzigen SMD-Kondensatoren an der richtigen Stelle durch Widerstände in Bauform 0402.
Da brauchst Du aber eine Lupe und gutes Werkzeug und ne ruhige Hand (hast Du sicher, war keine Unterstellung!).

(17.05.2020, 18:08)stephan1892 schrieb: Aber er schaltet willkürlich die Maschine auf STOPP auch wenn da nicht 0000 steht.

Ja, das ist ein Programmfehler, sorry, halt Beta  Floet .
Das fixe ich morgen.

LG
[-] 2 Mitglieder sagen Danke an für diesen Beitrag:
  • stephan1892,
Zitieren
#18
Bei mir läuft die neue SW auf der A700. Mir kommt vor, manchmal zählt er runter statt rauf nach dem Einschalten. Hab jetzt nochmals die Sensoren getauscht.
Bringt nichts. Nach dem Einschalten wird sehr oft die Zählrichtung geändert. Irgendwo ist da noch ein Bug. Sonst läuft der Zähler gut.
[-] 1 Mitglied sagt Danke an für diesen Beitrag:
  • stephan1892
Zitieren
#19
(17.05.2020, 19:11)gogosch schrieb: Bei mir läuft die neue SW auf der A700. Mir kommt vor, manchmal zählt er runter statt rauf nach dem Einschalten. Hab jetzt nochmals die Sensoren getauscht.
das war bei mir genau so ! Aber nicht immer  Denker 
Steffen
Zitieren
#20
(17.05.2020, 19:16)stephan1892 schrieb:
(17.05.2020, 19:11)gogosch schrieb: Bei mir läuft die neue SW auf der A700. Mir kommt vor, manchmal zählt er runter statt rauf nach dem Einschalten. Hab jetzt nochmals die Sensoren getauscht.
das war bei mir genau so ! Aber nicht immer  Denker 
Steffen
Was kann da der Grund sein? Hab jetzt mehrmals aus und eingeschalten. Meist wird die Zählrichtung geändert.
Zitieren
#21
Ist bei mir auch so. Habe nachdem ich das festgestellt hatte,die Sensoren in der Software vertauscht.
Ist aber danach wieder passiert,nicht immer !
Müssen wir warten,was Bruno dazu sagt.
Steffen
[-] 1 Mitglied sagt Danke an stephan1892 für diesen Beitrag:
  • Rüsselfant
Zitieren
#22
So, habe noch mal getestet.

Arduino mit Rechner verbunden, Software aufgespielt.
Maschine mit Play gestartet, er zählt vorwärts.
Maschine stop, USB vom Arduino abgezogen, kurz gewartet und wieder angesteckt.
Maschine  mit Play gestartet, er zählt rückwärts.
Er mag den Sensor nicht.
Gruß Detlef
Zitieren
#23
Nöö! Hat  nichts mit dem Sensor zu tun. Der merkt sich nicht die Zählrichtung. Das ist ein SW-Problem.
Zitieren
#24
Ihr könnt ja wenigstens froh sein, dass ihr eure Nanos mit der Software verbinden könnt.
Mittlerweile habe ich auch auf einen Windows PC ( Win 10) installiert. Da wird der Nano ebenfalls nicht korrekt erkannt. USB Gerät konnte nicht erkannt werden. Zweiten Nano hervor gekramt, angeschlossen, usb treiber meckert diesmal nicht, aber der COM Port Treiber ist fehlerhaft. Ich habe sogar den Win 10 Rechner zum Absturz gebracht....gleiche Verhalten wie beim Mac.

Denke mal, das meine Arduinos kacke sind. Was für verlässliche Quellen für einen guten Fake Nano gibt es den noch?

Die usb Treiber habe ich natürlich vorher installiert.
Gruß André





Zitieren
#25
Ich habe meinen zweiten Satz hier gekauft, haben auch den neuen Bootloader

Hier ist's noch günstiger
Gruß Detlef
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Digitales Zählwerk ( nur Counter ) reVox B77 dedefr 134 37.006 06.10.2021, 14:14
Letzter Beitrag: scope
Lightbulb Digitales Zählwerk ( Realtime, Meter, Counter ) reVox A700 DIYLAB 51 17.397 22.08.2021, 19:21
Letzter Beitrag: Wolf1
  Digitales Zählwerk ( nur Counter ) AKAI GX 620 Rüsselfant 520 134.234 27.05.2021, 09:42
Letzter Beitrag: Sparbier635D
Lightbulb Digitales VU-Meter (Mikrocontroller, Display, LED) reVox A700 DIYLAB 1.596 371.748 20.05.2021, 22:00
Letzter Beitrag: Harry Hirsch
  Digitales Zählwerk ( nur Counter ) Sony TC 788-4 dedefr 14 5.456 10.07.2020, 10:50
Letzter Beitrag: dedefr
  Digitales Zählwerk (nur Counter) Revox A77 havox 81 20.714 25.06.2020, 16:21
Letzter Beitrag: akguzzi



Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste