Hallo,
ich habe eine Bitte, bzw. Frage......
Hat jemand von Euch schon einen Digitalen Messchieber mit einer LED
Anzeige verbunden? Ich habe mir im Netz schon den Wolf gesucht und nix
gefunden, ausser 2 Seiten wo mit PIc's gearbeitet wurde.
Natuerlich jede Menge Seiten wo man so was kaufen kann....
Auch tolle Ideen fuer ein Interface fuer einen PC habe ich gefunden,
mit Layout usw. aber ich moechte eine LED Anzeige benutzen und keinen
PC.
Und, viel wichtiger, ich moechte das selber bauen!
Ich habe so gut wie keine Ahnung von AVR programierung und wuerde mich
echt freuen, wenn jemand da etwas an Bauplan oder AVR Progi haette.
Ich habe auch hier im Forum gesucht und da ist leider nur ein Eintrag
der mir nicht recht weiter hilft.
Vielen Dank im voraus!
Tschuess
Peter
www.mikrocontroller.net/forum/read-1-97612.html#97994
Da ist doch alles drin was du brauchst. Ob du wen findest der dir das
Programmiert weiss ich allerdings nicht.
Ich habe mich vor kurzen mit dem gleichen Problem beschäftigt.Als
Suchtip probier mal "Digital Caliper". Beim Datenprotokoll scheint es
mehrere Varianten zu geben. Mein Messchieber (vor kurzem bei NORMA
gekauft) gibt die Displayanzeige in fünf 4-Bitwerten aus.Dabei sind im
5. Wert noch Vorzeichen und Maßeinheit(mm/inch) enthalten sind. Leider
hatte ich noch nicht die Zeit,mich bis ins letzte damit zu
beschäftigen.Vieleicht ist da jemand schon weiter.
MfG Hartmut
Erst mal vielen Dank fuer die danzen Infos......
Auf der Finger Seite ist ja etwas was ich so probieren kann.
Wenn es jedoch mal einer mit nem AVR aufbaut bitte bescheit sagen :-)
Tschues
Peter
Erst mal vielen Dank fuer die ganzen Infos......
Auf der Finger Seite ist ja etwas was ich so probieren kann.
Wenn es jedoch mal einer mit nem AVR aufbaut bitte bescheit sagen :-)
Tschues
Peter
@Hartmut
Ich hatte den vom Januar und jetzt umgetauscht. Sind scheinbar
identisch, glaube die Anordnung der Tasten ist anders bin aber nicht
mehr sicher.
Welche Kontakte sind denn für die Datenausgabe zuständig?
Testweise habe ich beim 1. Gerät mal die Kontakte über einen Draht
verbunden und damit irgendwelche (sinnvollen?) Einstellungen machen
können.
Immerhin steht in der Anleitung was von der Schnittstelle aber nix
genaueres...
Peter,
www.funkamateur.de (Ausgabe kann nachbestellt werden)
oder info@sander-electronic.de (Verfasser)
Protokoll der Meßschieber ist beschrieben in:
http://www.shumatech.com/support/chinese_scales.htm
Reiner
http://www.mikrocontroller.net/forum/read-1-97612.html#97994
was ich da geschrieben habe bezieht sich auf:
ELECTRONIC DIGITAL CALIPER
www.BW-Netshop.de
hat blaue umschalttaste inch/mm oberhalb des displays
unterhalb ,links rote off/on taste und rechts daneben gelbe zero
taste.weiter rechts batteriefach...darueber anschluesse fuer Interface
Ed
Hallo!
Ich habe das vor kurzem für drei Messschieber gemacht, die an eine
Fräs- bzw. Drehmaschine montiert werden.
Verwendet habe ich einen ATmega 32, der mit 16 MHz getaktet wird.
Dieser hat drei externe Interuppteingänge, die nacheinander ausgewertet
werden.
Das Ergebnis wird auf einem 4-zeiligen 20 Zeichen LCD dargestellt.
Der Messschieber wird beim Start auf den schnellen Übertragungsmodus
umgestellt (20 ms Pause statt 300 ms). Das geht auch, wenn der
Messschieber keinen Knopf für Mode-Umschaltung hat.
Die Nullstellung der Anzeige wird über externe Taster (also per
Software) gemacht.
Momentan bin ich dabei, mit einem ATiny13 die Drehzahl über eine
Lichtschranke zu messen.
Im Endeffekt soll der ATmega32 (der das LCD ansteuert), per I2C die
Drehzahl vom Tiny13 bekommen und in der vierten Zeile anzeigen.
Wenn alles funktioniert, kann ich das Projekt bzw. die Software bei
Interesse veröffentlichen.
Programmiert wurde übrigens alles mit avr-gcc und den legendären
Bibliotheken von P. Fleury.
Die Auswertung der drei Messschieber funktioniert schon einwandfrei.
Wird die Versorgungsspannung aber für sehr kurze Zeit abgetrennt, führt
der ATmega einen Reset durch, der Messschieber hat aber noch den
schnellen Übertragungsmodus gespeichert.
Das führt dazu, dass der Mikrocontroller den Messschieber wieder in den
langsamen Modus zurückschaltet (die Umschaltung ist identisch, es wird
immer zwischen den beiden Modi gewechselt).
Die Umschaltung will ich jetzt nur noch machen, wenn er sich im
langsamen Modus befindet. Eine Idee hab ich aber schon :-)
Gruß,
Matthias
Sobald Du ins '' Mittelalter'' kommst wirst Du Dich an groesseren
und sichtbaren Ziffern erfreuen.Aber das kannst Du erst dann
verstehen.
Haengt natuerlich auch davon ab WO Du Dein Display installierst.
Ergonomie?
Aber da Du ein freier Mensch bist lass Dich nur nicht beeinflussen. Du
darfst Du bei Deiner Wahl bleiben.
Hi,
also da ich mit Hardware besser umgehen kann als mit Software, habe ich
mir die Hardwareinterface gebaut, das die Datenworte in einem
Schieberegister ablegt und die fertige Wandlung dem Prozessor
mitteilt.
Der kann dann im Vorbeigehen völlig entspannt die Daten abholen..
Ist aber noch nicht fertig, auch wegen div. anderer Produkte.
Einen kurzen Zwischenstand findet ihr auf meiner Homepage
(www.audiograde.de).
Gruß Wolfram
Jepp,
in der ersten "groben" Phase einfach gepfuscht, weil die -1,5V auf
0 gelegt wurden und dann das Ausgangssignal wieder positiv war und so
mit nem 358 auf TTL Pegel gebracht wurde.
Bei mehreren Meßschiebern und einer Steuerung geht das aber in die Hose
und isolierte Meßschieber sind eine unfeine Sache.
Also mit einem kleinen 7660 eine neg. Spannung erzeugen, damit geht es
dann ebenfalls mit nem 358 und kostet auch nicht viel mehr...
Gruß Wolfram
Hi,
die ersten Versuche hatte ich mi Komparatoren gemacht....dann habe ich
die bessere Loesung eingesetzt: AC - Kopplung und
Analog-Verstaerkerschaltung mit CD 4049 ...jawohl..und noch einen
Inverter dahinter um ein sauberes Nutzsignal zu bekommen.Super
einfach.
Ed
@Matthias,
wenn Du die Messschieber schon am laufen hast kannst Du das doch schon
mal hier veroeffentlichen.
Hast doch bestimmt schaltplaene, layouts, etc.....
Waehre echt super!
Oder wenn Du ne Homepage hast, da was einstellen und uns den Link geben
:-)
Tschau
Peter
Hi zusammen,
schaut mal auf die Seite: www.Mess-elektronik.de
ich habe mal so ein Ding mit Edgar gebaut. Wenn jemand Hilfe braucht,
einfach mailen.
Gruß Rolf
Hallo,
dies ist ein älterer Beitragsstrang, ich weiß. Ich war auf der Suche
nach einer Möglichkeit die Daten meiner 2 Anbaumeßschieber geeignet
anzeigen lassen zu können und bei der Suche nach einer Schaltung fand
ich diese Diskussion.
Leider habe ich aus den Beiträgen nicht wirklich was Brauchbares
herauslesen können und bin jetzt fast genauso "schlau" wie vorher.
Hat jemand eine Schaltung für eine oder zwei Achsen, die funktioniert,
die man relativ leicht nachbauen kann und die er mir zur Verfügung
stellen würde??
Leider habe ich von der Programmierung von PICs und AVRs noch keinerlei
Ahnung, es wäre also schön, wenn ich auf was fertig programmiertes
zurückgreifen könnte.
Hoffentlich kriege ich noch ne passende Antwort, ich würde mich freuen,
weil das momentane Ablesen der Anzeigen ist mehr als belastend.
Vielen Dank im voraus ...
Hat jemand schon eine Kopie des erwähnten Artikels aus der Funkschau,
die er/sie mir zukommen lassen kann?
Hier nochmal die genaue Referenz:
Zeitschrift: Funkamateur (www.funkamateur.de)
Inhalt: Messschieber mit Display und Zusatzfunktionen
Autor: Klaus Sander (info@sander-electronic.de)
Rubrik: Elektronik
Heft/Seite: 3/256 - 2005
Hallo
Mal angenommen die Signale (Data und Clock) kommen bei meinem PIC an.
Wie kann ich nun am einfachsten den Start des Gesamten Protokolls
erkennen?
Hab mir schon mehrere Oszi-Bilder angeschaut. Nun habe ich aber immer
noch kein Plan wie ich das angehen soll.
freundliche Grüsse
Remo Hug
Hi am besten per Interrupt + timer hab mich damit auch schon beschäftigt
Schaltung siehe Anhang nur SW gibs noch net hab irgendwann die lust dran
verloren.
(anhang: mein Projekt Ordner + Oszi Bilder ...)
Danke.
Aber da muss es doch eine lösung geben, den Start per Software zu
ermitteln.
Das haben ja schon mehrere Programmierer gemacht.
Das es mit Timer und Interrupt irgendwie zu lösen ist dachte ich auch.
Aber ich hab einfach keine Idee.
freundliche Grüsse
Remo Hug
Hi schau mal in die oszi bilder dann wirste sehen das das startsignal ne
bestimmte länge hat am besten per Interrupt nen timer starten und messen
wan des Startsignal kommt wen das passt kanste den rest ebenfalls über
den Interrupt und den timer machen
Ob ein Timerinterrupt notwendig ist hängt vom Gesamtkonzept ab und
ist nicht unbedingt notwendig. Es geht auch über Polling eines Timers,
den man in jedem Fall braucht.
Eine einfache Lösung geht wie folgt:
Warte auf Clock low, dann Timer starten (Überlaufzeit > 100 us
In einer Schleife prüfen ob Timeroverflow oder Clock high
Wenn Timer vor High abgelaufen, dann liegt Pause zwischen zwei
Datagrammen vor und man wartet auf das nächste Clock high, hier beginnt
das Datagramm.
Wenn Clock auf High und kein Timeroverflow, dann ist man irgendwo mitten
in einem Datagramm. Timer zurücksetzen und weiter warten.
Low und High können natürlich vertauscht sein, je nachdem, wie man die
Messleisten an den Prozessor angeschlossen hat.
Hallo
Habe nun die Beschaltung vor dem PIC soweit, das es in den PIC passt.
Habe folgendes zur verfügung:
-PIC 16F877A mit 20MHz Quarz
-MikroC-Compiler
Habe nun in C mal probiert ein Programm zu schreiben, aber ich glaube es
bekommt nicht alle Daten mit.
Hat jemand erfahrung mit MikroC und weiss ob der Code schnell genug sein
kann für sowas.
Kann es sein dass man bei dieser Anwendung nur mit Assembler schell
genug ist?
Die 20MHz müssten eigentlich reichen oder?
Hat vielleicht einer eine Konkrete Idee wie der Ablauf eines solchen
Programms sein soll?
Ich möchte am schluss eigentlich 3 Messschieber einlesen und ausgeben.
Dazu noch die Werte Umrechnen.
Leider binn ich mit einlesen eines Messschiebers schon ein bisschen
überfordert.
freundliche Grüsse
Remo
Habe nur AVR-Erfahrung und kenne den PIC zu wenig. Würde allgemein zu
Assembler raten, zumindest für die Einleseroutine.
Kritisch ist nur, das Datenpaket einzulesen, welches ca. 1 Millisekunde
dauert, danach hast Du endlos Zeit (genau genommen ca. 19 Millisekunden
im Fast-Modus) mit dem Datenpaket zu machen, was Du willst.
Die Datenbits werden mit 96 khz getaktet, Für eine Überschlagsrechnung
runde ich auf 100 kHz. Bei einem Prozessortakt von 4 Mhz ergeben sich
somit 40 Takte, die zur Verfügung stehen, 1 Datenbit einzulesen und
in ein 24bit-Register zu schieben. Da ist also genügend Luft
ein Triple-Sample zu machen (den Datenwert dreimal einlesen und
mitteln),
um eventuell vorkommende Glitches zu filtern.
Ansonsten sollte man wissen, welches Protokoll die Messleiste ausspuckt.
Siehe dazu z.B.: http://www.yadro.de/digital-messleiste/protokoll.html.
Hallo
Die Messleiste spuckt das Chinese-Protokoll aus. (Weiss nicht ob das die
richtige bezeichnung des Protokolls ist. Eher nicht. )
Auf jedenfall ist es das, welches hier genau beschrieben ist:
http://www.shumatech.com/support/chinese_scales.htm
Das Protokoll ist mir auch geläufig und wenn ich den wert habe, kann der
MP auch umrechnen nur weiss ich nicht genau wie ich den start des
zweiten 24-Bit Pakets am besten detektiere und dann die Werte einlese
ohne gross leistung zu verschwenden.
freundliche Grüsse
Remo
Zwei Möglichkeiten
A:
Warte auf Taktsignal high, welches deutlich länger ist als 50 us,
dann ist man am Beginn des zweiten 24bit Datenpaketes.
B:
waitSync - Warte auf Taksignal low, welches deutlich länger ist als 6us,
dann ist man in der Pause zwischen 2 Datagrammen. Warte dann
auf das nächste High. Jetzt ist man am Anfang des ersten
24-bit-Datenpaketes.
getdata24 - Überlies die ersten 24 bit und nimm die nächsten 24 bit.
Ich empfehle die Methode B, da sich hier auch das BCD-Protokoll gut
integrieren läßt:
Hier das ganze in Pseudocode:
waitSync();
if(BCD-Protokol)
{
data = getDataBCD();
}
else
}
getData24();
data = getData24();
}
So.
Habe nun mal ein Programm in MicroC geschrieben.
Es funktioniert soweit.
Möchte nur noch wissen, was man besser machen kann. (gibt sicher
einiges)
Vor allem auch im Hinblick, dass ich nachher drei Messchieber am PIC
einlesen will.
1
#include"Display_utils.h"
2
3
unsignedcharZaehler1=0;
4
unsignedcharWert_Lesen=0;
5
unsignedcharRead_Bit=0;
6
unsignedcharMinuswert=0;
7
unsignedcharWert_Array[24];
8
9
unsignedlongWert_Eingelesen=0;
10
unsignedlongRechnungswert=0;
11
unsignedlongSchlusswert=0;
12
13
constfloatx=806.299;
14
15
16
voidinterrupt(){
17
18
if(INTCON.INTF){
19
INTCON.INTF=0;
20
if(Wert_Lesen){
21
Wert_Array[Read_Bit]=PORTB.F1;
22
if(Read_Bit==0){
23
Wert_Lesen=0;
24
INTCON.GIE=0;
25
}
26
--Read_Bit;
27
28
}
29
else{
30
if(OPTION_REG.INTEDG){
31
OPTION_REG.INTEDG=0;
32
TMR1H=0xFE;
33
TMR1L=0x6F;
34
T1CON.TMR1ON=1;
35
}
36
else{
37
OPTION_REG.INTEDG=1;
38
T1CON.TMR1ON=0;
39
PIR1.TMR1IF=0;
40
}
41
}
42
}
43
44
if(PIR1.TMR1IF){
45
PIR1.TMR1IF=0;
46
T1CON.TMR1ON=0;
47
Wert_Lesen=1;
48
Read_Bit=23;
49
}
50
51
52
}
53
54
55
voidmain()
56
{
57
58
59
60
//* inizialisieren der PORT's *//
61
ADCON1=0;
62
TRISA=0x00;// Set PORTA as output
63
TRISB=0xFF;// Set PORTB as input
64
TRISD=0x00;// Set PORTD as output
65
PORTA=0x00;
66
PORTB=0x00;
67
PORTD=0x00;
68
69
//* Interrupts erlauben *//
70
INTCON.GIE=1;
71
INTCON.PEIE=1;
72
INTCON.INTE=1;
73
74
//* inizialisieren des TIMER1 fuer 100us Interrupt *//
75
PIE1.TMR1IE=1;
76
PIR1.TMR1IF=0;
77
T1CON.T1CKPS1=0;
78
T1CON.T1CKPS0=0;
79
T1CON.TMR1CS=0;
80
TMR1H=0xFE;
81
TMR1L=0x6F;
82
T1CON.TMR1ON=0;
83
84
//* Port RB0/INT für steigende Flanke Konfigurieren
Hallo Remo,
Bezüglich deines Plans drei Messschieber einzulesen, könnte dich
folgende Seite interessieren:
http://www.caliper2pc.de
Bitte halt uns auf dem Laufenden.
Hoffe, damit geholfen zu haben
Frank
Hallo,
mich interessiert der Messschieberumbau und hätte eine Frage zu der
Pegelanpassung -1.5V zu TTL. Edi-Edi hat die Schaltung im Anhang
skizziert. Alter Hut wahrscheinlich und trivial ABER wie genau
funktioniert diese? Wieso sind die 4049 hintereinander geschaltet und
warum 1MOhm als Rückkopplung?
Lg Manfred
Hallo,
ich habe lange gesucht und bin dann letztlich auf diesen Thread
gestoßen. Ich möchte einen Messschieber auslesen, welcher offensichtlich
nach dem 2*24 Bit Protokoll sendet. Es sieht jedoch so aus, dass die
relative Position zuerst gesendet wird und danach die absolute Position
gesendet wird. Das erkenne ich daran, weil ich am Messschieber die
relative Position auf 0 setzen kann. Die einzelnen Bytes werden im
Zweierkomplement übertragen.
Ich lasse mir die 6 Byte auslesen und komme dann auf Werte, welche ich
mir nicht erklären kann. Es ist zum einen so, dass die Werte der
absoluten Position ständig wechseln oder zumindest schwanken. Die ersten
3 Byte sind dagegen recht robust. Ich habe schon mehrere Terminals
ausprobiert, welche die serielle Schnittstelle auslesen können. Ich habe
selbst ein C++ Programm geschrieben was das kann. Die Werte müssen
eigentlich richtig sein.
Ich gehe jetzt einmal von der positiven Darstellung aus, weil mich die
nur letztlich interessiert:
Wenn ich mir die Werte so anschaue zählen sie bis 7F hoch. Ich erkenne,
dass es sich um eine positive Zahl handelt an der führenden 0. Jetzt
habe ich folgende Ausgabe:
Am Punkt 0:
00 00 00
ich schiebe weiter und bekomme:
00 00 7F
ich schiebe weiter und bekomme:
00 00 00
jetzt schiebe ich noch einmal weiter und erhalte:
00 01 7F
Wo ist der erste Überlauf gespeichert? Warum wird nur nach jedem zweiten
Durchlauf hochgezählt? Gibt es ein Bit bei der seriellen Schnittstelle,
wo ein Übertrag angezeigt werden kann?
Bevor hier irgendwer denkt, der Messschieber funktioniert nicht. Er
funktioniert. Die beigelieferte Software liefert die richtigen Werte.
Ich habe nur einen Denkfehler und jetzt wüsste ich gerne wo der liegt.
ich bin über jede Hilfe dankbar,
mfg
Florian
Hallo Florian
Ich bin im Moment auch dabei einen Messschieber auszulesen.
Ich verwende einen ATMega8.
Der Messschieber kann nicht direkt mit einer seriellen Schnittstelle
des PC verarbeitet werden.
Ein Datenbit muss mit dem Taktsignal verarbeitet werden.
Im Moment liest du vermutlich mit den 00 00 Werten das Startsignal ein.
Die folgenden Werte sind dann Datenbits.
Die Datenbits koennen aber nicht ohne Tackt eingelesen werden.
Dazu fehlen Synchronisationsbits wie das Start Bit und Stop Bit bei
RS232.
Auf folgender Seite ist das Protokoll gut beschrieben:
http://www.yadro.de/digital-messleiste/protokoll.html
Gruss Jens
Hallo gemeinde
will ja nicht lästig sein, aber vl. kann mir jemand oben genannte
schaltung pinsel.gif kurz erläutern, wie genau die funktioniert. also
warum 3x 4049 hintereinander und mit 1MIhm rückgekoppelt?
lg manfred
Hallo Jens,
bin dabei mit der Schaltung die unter www.roehrenkramladen.de/
veröffentlicht ist zu experimentieren.
Ich habe die Elektronik aufgebaut, drei Messschieber angeschlossen,
bekomme
auch eine Anzeige allerdings mit dem falschen Vorzeichen, ab einem
bestimmten Messwert kommt diese Anzeige:
Messschieber-Werte pos. Terminal minus
z.Bsp. Messsch. 25,00mm >Terminal -25,20
40,00 -40,31
40,64 +10444,79
55,00 +10430,31
81,26 +10403.85
81,30 -81,94
Der ATMEGA8 ist mit dem als "LIDL-Programm" bezeichneten Programm
"bestückt".
Die Messschieber geben wohl das 2x24 ger aus.
Würde dein Programm auf dieser Hardware laufen?? Habe vom programmieren
keine Ahnung!!!!
Eine pos. Antwort würde mich sehr freuen!!! dl2sat(at)gmx.de
M.f.G Peter
Manfred,
die anordnung bildet einen analog_verstaerker...3 mal negieren heisst
verstaerken...mit der rueckkopplung laesst sich das spiel kontrollieren
edi-edi
Hallo liebe Forengemeinde !
hier war's ja recht lange ruhig !
Ich habe ebenfalls das Messsystem von Hans Borngräber
(http://www.roehrenkramladen.de/DRO/Projektmappe_MAS_V1_0.htm)
nachgebaut und bin auf die selben Fehler gestoßen wie oben Peter Burr !
Eine Nachfrage bei Herrn Borngräber blieb leider ohne Antwort , also
setzte ich mich selbst auf meinen Hosenboden und Überarbeitete das
Programm so das es für die Digitalmessschieber mir dem 24 Bit Protokoll
( 2x24Bit ) einwandfrei funktioniert (Peter Burr hat sie schon
getestet)!
Auf meiner Fräse laufen zwei 500mm und ein 150mm Messschieber ohne
Probleme . Wer Interesse an den Programm hat kann es kostenlos auf
meiner Homepage
http://www.svens-projekte.de/
,unter Mikrocontroller, herrunterladen !
Im Augenblick bin ich dabei eine neue Firmware für das "Borngräber"
System und ein eigenes Windows - Terminalprogramm zu schreiben , welches
dann eine bessere Bediehnung und Darstellung ermöglicht und die Tastatur
wird für dieses Programm ebenfalls nicht mehr benötigt , die gesammte
Rechenprozedur wird vom µC auf den PC verlagert und somit optimiert !
Sobald die neue Software und die dazugehörige Firmware fertig ist ,
stelle ich sie auf meiner seite zum Download bereit .
Ein Umbau auf USB ist ebenfalls in der Planung und wird dämnächst kommen
!
so , viel Spaß mit der Software
Sven