Da hier im MC-Net gerade Frequenzzählerwochen sind und ich Lust hatte, etwas herumzubasteln, hier eine kleine Schätzeisenaktion. Ein Arduino Uno mit einem Siebensegmentdisplay. Der Zähler scheint bis ca. 7MHz zu laufen ( Bild ). Er ist an einen DDS Signal Generator FY6800 mit einem 100Ohm Widerstand angeschlossen. Interessante Frage: Welche der beiden Zeitbasen verursacht die größte Ungenauigkeit?
>Schönes "Led&Key" TM1638 Modul, gleich mal vormerken ;-)
Ja, die habe ich auch erst vor kurzem hier entdeckt. Für einen
Frequenzzähler sind die auch schöner als die LCD-Module, weil man sie
besser ablesen kann.
Um die Genauigkeit des Zählers zu testen habe ich mal mit dem Föhn drauf
gehalten: Die Frequenz läuft dann ziemlich schnell weg, was wohl auf
eine starke Temperaturabhängigkeit des Arduino-Quarz schließen lässt.
chris_ schrieb: > Da hier im MC-Net gerade Frequenzzählerwochen sind Da geht es aber um andere Probleme, als in einer Dauerschleife vier Funktionen aus einer LIB aufzurufen. chris_ schrieb: > Die Frequenz läuft dann ziemlich schnell weg, Das kann ich voll nachvollziehen :-|
m.n. (Gast) >chris_ schrieb: >> Da hier im MC-Net gerade Frequenzzählerwochen sind >Da geht es aber um andere Probleme, als in einer Dauerschleife vier >Funktionen aus einer LIB aufzurufen. So sieht's aus. Nichtsdestotrotz kann man einige der Probleme offensichtlich ziemlich schnell mit meinem 30Minuten Quick-Hack nachvollziehen. Hier eine Sammlung der Frequenzzählerthemen, die ich gerade sehe: https://www.mikrocontroller.net/articles/Frequenzz%C3%A4hlermodul#Messverfahren Beitrag "8-stelliger Frequenzzähler, reziprok, STM32F7xx" Beitrag "FPGA reziproker Frequenzzähler" >chris_ schrieb: >> Die Frequenz läuft dann ziemlich schnell weg, >Das kann ich voll nachvollziehen :-| Interessant wäre die Temperaturabhängigkeit des auf dem Arduino-Uno verbauten Quarzes zu kennen. In der Wikipedia finden sich eine ziemlich ausführliche Liste und die Anzahl der Bauformen der Quarzes ist immens, so dass sich ein qualifizierte Aussage nur schwer machen lässt: https://de.wikipedia.org/wiki/Schwingquarz
chris_ schrieb: > Nichtsdestotrotz kann man einige der Probleme > offensichtlich ziemlich schnell mit meinem 30Minuten Quick-Hack > nachvollziehen. Welches denn? > Hier eine Sammlung der Frequenzzählerthemen, die ich gerade sehe: Wenn man den FPGA-Beitrag genau gelesen hat, findet man dort unter Beitrag "Re: FPGA reziproker Frequenzzähler" einen Link, der eine erschreckend ähnliche Lösung anbietet. Aber wer kauft sich ein e-bike und sucht dann eine Bauanleitung zur Demontage von Motor und Akku, um daraus ein normales Fahrrad zu erhalten? > Interessant wäre die Temperaturabhängigkeit des auf dem Arduino-Uno > verbauten Quarzes zu kennen. Auf dem Arduino-Uno ist ein keramischer Resonator verbaut. So genau sollte man schon hinsehen. Im Netz gibt es Schaltungen, die diesen abklemmen und mit dem Arduino einen reziproken Zähler aufbauen. Soetwas hätte ich hier unter der Überschrift erwartet.
>Auf dem Arduino-Uno ist ein keramischer Resonator verbaut. So genau >sollte man schon hinsehen. Ist auch gar nicht so einfach. Auf dem UNO ist laut dem Bild oben ein Murata CSTCE16M0V53-R0 verbaut. Bei Mouser ist ein Datenblatt verlinkt, aber genau diese Bezeichnung kann ich dort nicht finden.
Zum Thema reziproker Frequenzzähler und Arduino hat MINO schon etwas gemacht: http://www.mino-elektronik.de/fmeter/fm_software.htm
Beitrag #6515788 wurde vom Autor gelöscht.
chris_ schrieb:
> Der Resonator im Schaltbild.
Das im Bild eingezeichnete Bauteil ist ein Quarz und kein Resonator. Ein
Resonator hat 3 Anschlüsse, ein Quarz nur 2 !!!
Es gibt zwar auch Resonatoren in einem Metallgehäuse, habe ich aber
bisher noch keine in den Fingern gehabt... genausowenig wie ein Arduino
mit eingebautem Resonator.
Gängig haben die Quarze eine Genauigkeit von +-30 ppm, das sind 0,003% .
Die Temperaturempfindlichkeit der Ziehkondensatoren haben mehr Einfluß.
Ralph S. schrieb: > Das im Bild eingezeichnete Bauteil ist ein Quarz und kein Resonator. Ein > Resonator hat 3 Anschlüsse, ein Quarz nur 2 !!! Der Schwingquarz ist ein Resonator und Bestandteil eines Quarzoszillators. https://en.wikipedia.org/wiki/Pierce_oscillator
Ralph S. schrieb: > Das im Bild eingezeichnete Bauteil ist ein Quarz und kein Resonator. Ein > Resonator hat 3 Anschlüsse, ein Quarz nur 2 !!! Der 3. Anschluss ist vorhanden und geht von den beiden internen Kondensatoren an GND. https://de.wikipedia.org/wiki/Datei:Pierce-Oszillatorschaltung-3.png > genausowenig wie ein Arduino mit eingebautem Resonator. Das ist aber das typische Bauteil für eine Originalausführung: dummerweise, voll daneben und nicht einmal günstig.
>Frequenzzählerwochen Eines meiner alten Projekte (ca. 1997) möchte ich in dem Zusammenhang auch mal kurz vorstellen. Auch kein FPGA, nicht reziprok, aber im CPLD. Damals gab es die ersten etwas größeren CPLDs auch im Einzelhandel (Reichelt, ELV), speziell den Lattice ispLSI1016. Hatte der gute alte 22V10 noch 10 Register, so waren es hier immerhin 64. Passend für einen Versuch minimalistischer Schaltungstechnik. Lattice hatte als kostenlose Demosoftware eine CD speziell nur für diesen kleinsten Typ herausgebracht. Programmierung mit ABEL/Synario. ABEL ist nur eine Textbeschreibung für programmierbare Logik, Synario bildete darüber noch eine grafische Oberfläche, die auch eine Schaltplaneingabe erlaubte. Hier die Übersicht als Plan, die einzelnen Blöcke sind ABEL-Texte. Ähnlich kann man heute immer noch in Quartus arbeiten, auch wenn Puristen den reinen Text bevorzugen. Der 4 1/2 stellige Frequenzzähler ist als "Quarzmarke" für einen Wobbler gedacht. Ein Komparator soll den Sägezahn des Wobblers mit einer einstellbaren Spannung vergleichen. Der Ausgang "GATE" läßt sich dann auf sein Y-Signal addieren, sodass die Wobbelkurve dort einen kleinen Peak hat. Der hier gezeigte Typ hat mit Zusatz "-80" unter bestimmten Messbedingungen eine maximale Frequenz von 80 MHz. Der Zähler schaffte bei Zimmertemperatur und Rückenwind sogar 150 MHz. Die Kapazität des LCD stört die Darstellung etwas. Die rechteckige Ansteuerung (wie im CD4543 Decoder wird der Ausgang durch Exor hier in eine 312Hz Wechselspannung verwandelt) ergibt eine Art Ladungspumpe, an den LCD-Anschlüssen sind Spannungen bis 10V zu messen. Dadurch war die Anzeige unsauber.
:
Bearbeitet durch User
>Eines meiner alten Projekte (ca. 1997) möchte ich in dem Zusammenhang >auch mal kurz vorstellen. Auch kein FPGA, nicht reziprok, aber im CPLD. Ein schön minimalistisches Design ;-) Mit den Lattice CPLDs hatte ich damals auch schon zu tun. Ich meine mich zu erinnern, dass die Entwicklungsumgebung deutlich einfacher war als ISE. Ich versuche mich gerade an einer parametrischen 19-Zoll Frontplatte zum Druck im 3D-Drucker mit OpenScad.
Georg M. schrieb: > Ralph S. schrieb: >> Das im Bild eingezeichnete Bauteil ist ein Quarz und kein Resonator. Ein >> Resonator hat 3 Anschlüsse, ein Quarz nur 2 !!! > > Der Schwingquarz ist ein Resonator und Bestandteil eines > Quarzoszillators. > > https://en.wikipedia.org/wiki/Pierce_oscillator Das weiß ich sehr wohl, aaaaaber: egal ob am Arduino nun ein Quarz hängt, oder ein Resonator: in keinem Falle hängt dort ein Quarzoszillator dran (das kann man zwar mit einem ATmega auch machen, ext. Taktquelle). Aber hier wird dem Controller nur ein Resonator oder ein Quarz angeboten. Die interne Schaltung des ATmega bildet mit dem Resonator (oder einem Quarz mit Ziehkondensatoren der dann zu einem Resonator wird) einen Quarzoszillator. m.n. schrieb: > Das ist aber das typische Bauteil für eine Originalausführung: > dummerweise, voll daneben und nicht einmal günstig. Du hast Recht !!!! (und ich habe nicht richtig hingesehen bzw. die Typbezeichnung des Murata nicht gelesen). Hab ich extra einen originalen Arduino rausgekramt und stimmt. Grundsätzlich habe ich mich verleiten lassen, dass es um die Schaltung des Quarzes mit den Ziehkondensatoren keine Umrandung als Bauteil gibt. Für mich hat das so ausgesehen, als wären das lt. Schaltplan 3 Bauteile Aber, du hast recht ! m.n. schrieb: > dummerweise, voll daneben und nicht einmal günstig. Ob ich deswegen voll daneben bin weiß ich nicht ... wahrscheinlich schon
Die Konstruktion für den 3D-Drucker braucht mehr Zeit als gedacht. Hier mal der Zwischenstand. Als nächstes wird ein Eingangsverstärker gebraucht, sonst könnte der verwendete Pin 5 des Arduino schnell abrauchen. PJRC schlägt diese Variante vor: https://www.pjrc.com/teensy/td_libs_FreqCount.html Was ist davon zu halten?
chris_ schrieb: > Was ist davon zu halten? Kann man schlecht sagen, ohne die Anforderungen zu kennen. Diese simplen Verstärkerstufen mit einem Transistor und zufälliger Kollektorspannung taugen nicht viel. Da die Eingänge der AVRs schon Schmitttrigger haben, könnte es auch reichen per Spannungsteiler den Gleichspannungspegel am Eingang auf Vcc/2 zu bringen und das Signal kapazitiv einzukoppeln. Ein Widerstand ( 10 k || 100 pF) in Reihe schützt in gewissem Rahmen vor Überspannung. Die Hysterese der AVR-Eingänge ist eher kleiner als die eines 'HC14.
>Da die Eingänge der AVRs schon Schmitttrigger haben, Da habe ich auch gerade daran gedacht. Vielleicht ist die einfachste Lösung, den Eingang mit zwei Dioden und einem Widerstand vor Überspannung zu schützen. Wenn ich die "Maximum-Ratings" des Atmega anschaue, liegen die Grenzwerte für die Spannungen aber genau bei den Diodenspannungen. Sollte man sie verwenden, oder doch eher nicht? >könnte es auch >reichen per Spannungsteiler den Gleichspannungspegel am Eingang auf >Vcc/2 zu bringen und das Signal kapazitiv einzukoppeln. Kapazitiv einkoppeln ist immer ein wenig problematisch. Mir schwebt auch eine Periodendauermessung vor und das ist bei PWM Signalen mit großem Tastverhältnis dann schwierig.
chris_ schrieb: > Sollte man sie verwenden, oder doch eher nicht Man kann für R1 100 k nehmen und Schottky-Dioden (BAT54S) verwenden oder diese auch weglassen, da intern schon vorhanden. Für DC-Kopplung braucht man einen Komparator. Je nach Grenzfrequenz soetwas wie LM393, oder schnell wie der MAX961, oder schnell und mit hochohmigem Eingang TLV3501, ... Wenn man ICP1 von Timer1 als Eingang nutzt, kann man auch den internen Komparator verwenden. Kommt ganz darauf an, was Du machen willst.
>Man kann für R1 100 k nehmen und Schottky-Dioden (BAT54S) verwenden oder >diese auch weglassen, da intern schon vorhanden. Ich hatte es mal mit den Shottkey 1N5819 simuliert, weil ich die da habe. Aber dort bricht die Amplitude bei hohen Frequenzen zu stark ein. >Kommt ganz darauf an, was Du machen willst. Weiss noch nicht. Ich experimentiere einfach ein wenig herum. Ich habe jetzt zwei Tasten des Anzeigboards in Betrieb genommen: ganz links den Knopf, um Tara einzustellen ( aktuelle Frequenz wird abgezogen ), ganz rechts um wieder auf Default zu gehen. Im Anhang das weglaufen der Frequenzanzeige ( Tara ) über 500 Sekunden.
Schottky hat es verdient, daß man sich seinen Namen merkt: https://de.wikipedia.org/wiki/Walter_Schottky chris_ schrieb: > Ich hatte es mal mit den Shottkey 1N5819 simuliert, weil ich die da > habe. Wenn Du einen Hammer brauchst, hilft Dir eine Säge nicht weiter. Die 25 A Spitzenstrom der 5819 willst Du sicherlich nicht nutzen. 100 pF || zu 100 kOhm sind bei höheren Frequenzen Pflicht. chris_ schrieb: >>Kommt ganz darauf an, was Du machen willst. > Weiss noch nicht. Ich experimentiere einfach ein wenig herum. Dann gehe mit Deinem Signal über die o.g. Schutzschaltung direkt auf den AVR-Eingang. Virtuelle Schaltungen bringen hier nichts. Kurven ohne Skalierung sagen nichts aus. Solange Du weiter den Resonator vom Arduino verwendest, sind die Ergebnisse recht unbrauchbar.
chris_ schrieb: > Sollte man sie verwenden, oder doch eher nicht? Das ist ganz einfach zu lösen. Es kommt ein kleiner Widerstand noch zwischen die Dioden zum µC-Eingang. Irgendwas zwischen 50...100Ω. Dann teilt sich der Strom auf und nur ein geringer Teil wird noch von den internen Dioden übernommen.
Dieter D. (Firma: Hobbytheoretiker) (dieter_1234) >Irgendwas zwischen 50...100Ω. Beispielsweise 10V: (10V-5V)/50 Ohm=100mA bzw: -10V/50 Ohm=-200mA Wenn ich ein 10Vss Signal habe fließen 100mA über die Schutzdiode des Atmega in die Spannungsversorgung bzw 200 mA über Masse des Chips. Macht der Prozessor das mit? >Kurven ohne Skalierung sagen nichts aus. m.n. (Gast) Guck mal auf den Titel des Bildes "FrequenzverlaufBei4MHzInput_x_sec_y_delteF.png". Ok .. deltaF in HZ. Der "Screenshot" des in der Arduino IDE eingebauten Plotters gibt da nicht mehr her und alles weitere war mir zu aufwendig.
8 Tasten hat das Bedienpanel. Welche Messgrößen könnten interessant sein, um alle Tasten zu nutzen? Meistens wird die Frage nach dem Bedienkonzept ja vernachlässigt.
In meiner Bastelkiste habe ich einen alten Arduino Diecimilla mit Atmega168 gefunden. Praktischerweise war am Anfang der Arduinozeit der Sparzwang wohl nicht so groß und der Diecimilla besitzt noch einen echten Quarz. Und siehe da: Der Drift ist quasi verschwunden. Einziger Wermutstropfen: Ein Unterschied von 104ppm zwischen dem FY6800 und dem Diecimilla Frequenzzähler. Frage: wer ist Schuld? Die Italiener oder die Chinesen ;-)
Ich bin große fan vom HP, ich glaube daß in der 70s und 80s sehr einfache und nutzliche Bedienungspanelen entworfen haben, z.B. der HP8116A hat (ok, Pulse generator), 29 Tasten un ein 4 Stelliges 7 Seg display. 2 Ausgangsbuchsen, 2 Einganbuchsen und ein Trimpot. Und eine Menge LEDs :). Sehr intuitiv, schnell, ein paar Knöpfe und deine Signal ist da. Die einfache Zähler wie 5314A, 15A usw. haben eine minimalistische Bedienung, mit wenig Knöpfe.
>Ich bin große fan vom HP, ich glaube daß in der 70s und 80s sehr >einfache und nutzliche Bedienungspanelen entworfen haben, Ja, das wissen heute viele vielleicht gar nicht mehr: HP wahr ein großer Messgerätehersteller. Hewlett-Packard => Agilent => Keysight HP hatte immer schon edle Messtechnik. Es lohnt auf jeden Fall ein Blick ins HP-Archiv: http://hparchive.com/hp_catalogs Besonders die HP-Journale sind interessant: http://hparchive.com/Journals/HPJ-1974-06.pdf
chris_ schrieb: > Einziger Wermutstropfen: Ein Unterschied von 104ppm zwischen dem FY6800 > und dem Diecimilla Frequenzzähler. Interessant auch die Temperatur von 22.2 Prozent.
> 29 Tasten
Ok Boomer. Es sind 33!
4x Up/Down := 8 Tasten.
Einige Dinge sind aber nicht so intuitiv.
Bei einem u.a. Pulsgenerator wäre ein Eingabe der
Periodendauer ausgesprochen wünschenswert gewesen.
Einen kleinen Rechenknecht hätte er ja für sowas.
Statt dessen darf man immer die Frequenz ausrechnen...
Und ein Knopf mehr, für ein Feintuning der Frequenz,
wäre auch nicht verkehrt gewesen.
Ein HP 5308A hat genau so viele Knöpfe, wie ein
Universalzähler mit 2 Eingängen (A/B) halt braucht.
Es gibt zusätzlich ein DC-Filter (aka AC) und
ein Dämpfungsglied je Kanal. Allerdings hat HP
das ganze wirklich nett und klein in 7 Schiebeschaltern
und 2 Potis mit Schalter zusammengefasst.
Zzgl. dem Betriebsartenschalter und der Zeitbasis.
Sowas will man nicht durch Chinaböller ersetzen.
>Ein HP 5308A hat genau so viele Knöpfe, wie ein >Universalzähler mit 2 Eingängen (A/B) halt braucht. Hmm.. interessant: Schiebeschalter und Punktmatrixanzeigen, aber mit nur 6 Stellen. Auch sehr interessant: Man kann wohl die Display-Update Rate kontinuierlich einstellen. Für was braucht man zwei Kanäle? Periode gibt es und Pulsbreite. Hier wäre vielleicht Low- Und High-Time nicht schlecht.
chris_ schrieb: > Für was braucht man zwei Kanäle? Ich habe einen HP5302A, da haben die beiden Eingänge unterschiedliche Eingangsimpedanzen, Empfindlichkeiten und Frequenzgrenzen. Wenn ich mich recht entsinne, kann man auch Zeiten zwischen Impulsen an A und B messen.
> Für was braucht man zwei Kanäle? Na z.B. für 2 Lichtschranken. > Hier wäre vielleicht Low- Und High-Time nicht schlecht. Das geht natürlich. Dazu schaltet man A & B parallel. Triggert mit Start Low und Stop High. Und umgekehrt. Den 5308A, dass ist nur das Unterteil, kann man übrigens auch mit einer 8 stelligen 7 Segmentanzeige kombinieren. Für unterwegs passt dann noch ein Akkueinschub in die Mitte.
Hier mal ein kleines Softwareupdate, damit man das ganze auch als Zähler betreiben kann.
Hier mal der Versuch, mit FreeCad die einzelnen Teile der Konstruktion darzustellen.
als 19" Einschub? Wie fest ist denn eine Frontplatte, die mit 3-D Druck erstellt wurde ?
>Wie fest ist denn eine Frontplatte, die mit 3-D Druck erstellt wurde ?
Das hängt ein wenig von der Dicke ab, mit der gedruckt wird. Ich habe
sie 4mm dick gemacht, das ist schon ziemlich stabil. Wenn man es noch
stabiler wollte, könnte man auf der Unterseite auch ein paar
Verstrebungen drucken. So ähnlich wie bei einem T-Träger.
Die Eingangschaltung ist einfach ein Widerstand und zwei Klemmdioden. Das Schaltbild und die Diskussion steht ab hier: Beitrag "Re: Frequenzzähler Uno" Die Bedieneinheit ist mit einer Art SPI angebunden. Das Digitaldisplay mit Tasten gibt's für unter 10Euro beim Chinesen und hat drei Anschlüsse zur Datenübertragung:
1 | #include <TM1638plus.h>//https://github.com/gavinlyonsrepo/TM1638plus |
2 | // GPIO I/O pins on the Arduino connected to strobe, clock, data,
|
3 | // pick on any I/O you want.
|
4 | #define STROBE_TM 4 // strobe = GPIO connected to strobe line of module
|
5 | #define CLOCK_TM 2 // clock = GPIO connected to clock line of module
|
6 | #define DIO_TM 3 // data = GPIO connected to data line of module
|
Die Funktionen auf den Tasten sind folgende:
1 | #define BUTTON_TARA 0 // auf 0 kallibrieren, um Frequenzänderungen sichtbar zu machen
|
2 | #define BUTTON_PWMDUTY 1 // PWM duty cycle in %
|
3 | #define BUTTON_THIGH 2
|
4 | #define BUTTON_TLOW 3
|
5 | #define BUTTON_PERIOD 4
|
6 | #define BUTTON_COUNTER 5
|
7 | #define BUTTON_FREQUENCY 6
|
8 | #define BUTTON_SERIAL 7
|
Der Arduino-Uno ist nicht sehr gut als Frequenzzähler geeignet, weil der Resonator eine zu große Temperaturabhängigkeit hat. Beitrag "Re: Frequenzzähler Uno" Deshalb ist die Schaltung mit einem Arduino Diecimilla gemacht. Der letzte Code siehe Anhang. Die Treiber für den Frequenzzähler sollte man eigentlich selber schreiben, um die reziproke Zählmethode besser zu nutzen. Dazu habe ich aber keine Muße mehr, weil's mir hier mehr um die Gehäusetechnik ging.
N.G. schrieb: > Schönes "Led&Key" TM1638 Modul, gleich mal vormerken ;-) Danke für den Tipp! Gerade drei Stück von Marotronics.de erhalten. Machen einen sehr guten Eindruck.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.