www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Durchgangsprüfung


Autor: Jan Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte mit einem Atmel AT90S1200 4433 oder ATMega8 den Durchgang
von mehreren Kanälen messen. Das soll allerdings mit max. 1V und
weniger als 0,08A erfolgen. Bei Durchgang soll dieser dann ein  Signal
(z.B. für eine serielle Übertragung) bereitstellen. Ein entsprechender
"Empfänger" dieses Signales soll dann dieses Auswerten und bei
bestehendem Durchgang eine Meldung auf einem Display ausgeben...

Leider hab ich spontan keine Idee, wie das zu realisieren ist...

Danke im vorraus ...

Jan

Autor: Kai M. Tegtmeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, da würde ich vielleicht einen Optokoppler an einen Ausgang des AVR
(z.B. Mega8) hängen, der eine 1V-Spannungsquelle mit Vorwiderstand auf
den zu prüfenden Draht gibt. An das andere Ende des Drahtes den
A/D-Wandler vom AVR hängen und prüfen, ob Spannung anliegt. Ich bin mir
nur nicht ganz sicher, ob es Optokoppler gibt, die so kleine Spannungen
am Ausgang schalten können?!? Ansonsten Transistor nehmen.

MfG
Kai Markus

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
probier folgendes:
nimm einen 74hc4051, da hast du max. 8 Leitungen, die du prüfen kannst
gegen einen gemeinsamen., begrenz den Strom auf einen Wert deiner
Wahl(mittels eines Widerstandes) und los gehts.
Michael

Autor: Jan Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke erstmal...
klingt ja schonmal interessant...
aber ich wüsste immer noch nicht, wie das in die realität umzusetzten
ist. Vor allem was den Code angeht.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine Ausführungen sind extrem schwammig, was sind z.B. Kanäle. Man kann
daher nicht erkennen, was Du eigentlich willst.


Wenn Du aber einen Kabeltester meinst:

http://www.mikrocontroller.net/forum/read-1-16989.html#17024


Peter

Autor: Jan Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
stimmt... ich werde deshalb das ganze ein wenig näher erläutern:

ich habe 8 Kanäle (im Sinne von 8 Kabel), die permanent auf Durchgang
überprüft werden sollen. Zum Prüfen sollen maximal 1V und 0,08 A
verwendet werden.
Der ATMega8 soll nur bei bestehendem Durchgang von allen 8 Kanälen ein
entsprechendes Signal ausgeben (am UART) das dann seriell übertragen
werden kann. Ein weiterer ATMega8 am anderen Ende der Seriellen Leitung
soll das Signal lesen und auf einem LCD eine Statusmeldung (z.B. "OK"
oder so) angeben. Andernfalls "Fehler".
Der Oberhammer wäre, wenn das Display mir sagen würde z.B. "Fehler auf
Kanal 5" oder so, aber das ist nicht so wichtig.

Danke im vorraus
Jan

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe einen Verdacht... willst du die zu überprüfende Leitung auch
zur seriellen Übertragung benutzen???
Wenn ja dann mußt du dir mal gedanken machen was passiert wenn gerade
die Leitung einen Fehler hat

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,


wieso 2 Mega8? Ich hab bei mir in der Firma ein Platinentester gebaut.
Dieser hat mit TTL Pegel gearbeitet und ein max Strom von 1mA.

Es war relativ simpel aufgebaut.

Ein 8Bit I/O Port als Ausgang , ein 8 Bit I/O Port als Eingang.

Nun hab ich einfach am Ausgang Binaer "01010101" ausgegeben ... und
dieses am Eingang abgefragt. Danach hab ich einfach "10101010"
ausgegeben und am Eingang abgefragt . Ausgabe per LED da nur gefordet
war zuzeigen ob ein Fehler vorhanden ist.

Mit welcher Programmiersprache arbeitest du? wenn es Bascom oder C ist
kann ich dir unter die Arme greifen.

Mfg

Dirk

Autor: Jan Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Sebastian:

Nein, die zu überprüfende Leitung soll nicht zur seriellen übertragung
genutzt werden. Es soll lediglich überprüft werden, ob ein durchgang
vorhanden ist.


@Dirk:
Der Überprüfende ATMega und der auswertende ATMega sollen in 2
voneinander unabhängigen Geräten arbeiten. Lediglich eine Datenleitung
verbindet die Geräte. Man kann es sich so vorstellen, das der
überprüfende ATMega permanent ein Statussignal über die Datenleitung an
den auswertenden ATMega schicken soll. Dieser erkennt das und schreibt
dann einen entsprechenden Text aufs Display (z.B. "OK" bzw.
"Fehler").

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Irgendwie kann ich mir dein zukünftiges gerät nicht wirklich vorstellen.
was hast du am anderen ende vom kabel??
also irgendwas muß da ja sein weil man meines wissens nach einen
durchgang nur zwischen 2 punkten messen kann.

Autor: Stephan Schwarz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist doch nicht so schwer zu verstehen.

1 Einheit sendet ein Signal über diverse Leitungen, während die ander
Anzeigt ob die Signale ankommen.

Hast du denn wenigstens einen sicheren gemeinsammen Bezugspunkt, dann
ist das ganze doch recht easy.

Hast du meine PN bekommen Jan?

Autor: Jan Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich merk schon, es ist sehr schwierig zu verstehen. Ich werde daher mal
das gesamte konstrukt komplett erläutern.

Also ich bin Pyrotechniker und arbeite seit einiger zeit an einem neuen
Zündsystem.

Das System besteht aus einem Zündsystem (Gerät 1) und einem
Kontrollpult (Gerät 2). Die Geräte sind nur mit 4 Adern miteinander
verbunden und sind in der Lage bis zu 256 Kanäle zu zünden.

Nun, am Zündsystem sind 2 Polige anschlüsse (+36V und GND) für die
Pyroladungen, welche mit Gleichstrom gezündet werden.

Um zu überprüfen, ob die Ladungen richtig verkabelt sind, macht man
eine durchgangsprüfung. Spannung/Strom müssen dabei sehr gering sein,
weil die ladungen sonst zünden würden. Quasi ne Durchgangsprüfung
zwischen dem 36V anschluss und dem GND anschluss.

Ja und jetzt möchte ich gern mittels eines ATMega8 den durchgang auf
diesen Zündkanälen prüfen. Das ergebnis der permanenten Prüfung soll
ebenfalls permanent dem Kontrollpult übermittelt werden, welches
ebenfalls mit der Hilfe eines ATMega8 einen entsprechenden Status-Text
auf einem LCD ausgeben soll.

Ich hoffe, dass war verständlicher ;-)

Danke im vorraus,
Jan

Autor: Jan Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HI, ...

also ich hab mich jetzt entschlossen, die Durchgansprüfung extern zu
machen. Bei durchgang schaltet jetzt ein Transistor und legt einen
High-Pegel auf einen Eingang des ATMega. Jetz soll der Atmel nur noch
das erkennen und ein Statussignal seriell über UART rausschicken.
Das soll dann per Funk übertragen werden. (die Funk-geschichte ist
schon fertig, funktioniert auch). Am anderen Ende empfängt ein weiterer
Atmel das signal und gibt einen Text auf einem LCD aus.
Ja, nur wie mache ich das ?
Oder ist es vielleicht möglich, dass der 1. ATMega bereits den Text
fürs Display sendet, den dann der andere ATMega nur noch ausgibt ?

Danke im vorraus
Jan

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich versteh ehrlich gesagt nicht das problem bei de textausgabe. beide
wege sind möglich: du kannst den mega am zündgerät einen fertigen text
für das display senden damit dieser nur noch ausgeben muss oder du
kannst den status als binärwerte übertragen (weniger übertragung) indem
du z.b immer die kanalnummer und den status nacheinander überträgst und
der ziel mega dann aus den statuscodes und fertigen textbausteinen eine
meldung generiert.

such dir eine aus und beschreib und was du da für probleme an der
umsetztung hast denn da sollte man dir helfen können

Autor: Jan Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, ...

es wäre natürlich am einfachsten, den fertigen Text zu senden, der dann
vom 2.Atmel ausgegeben wird. Ist diese übertragung auch über längere
Leitungen möglich (bis zu 100m oder so ?)

Der Jan

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
such mal nach rs485. ist ein rs232 ähnliches verfahren aber verträgt imo
weit mehr als 100m kabel. gibts fertige leitungstreiber ic's für.
kannst du per uart ansteuern

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder nimm die RS422, das ist eine serielle Schnittstelle die der RS232
eher ähnelt. Sie besitzt für jede der beiden Datenleitungen (RXD und
TXD) ein Paar (also 2) Leitungen. Das nennt sich differentielle
Übertragung und hat keinen Bezug zur Masse mehr. Es wird einfach der
Spunnungunterschied zwischen den beiden Leitungen gemessen.
RS485 ist wie die RS422 eine differentielle Schnittstelle, allerdings
laufen hier beide Signale über ein Leitungspaar, also nur halb-duplex.
Natürlich kann man auch RS485-Transceiver für die RS422 nehmen,
andersherum wirds wesentlich schwieriger...

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann man eigentlich nicht einfach einen rs485/422 leitungstreiber nehmen
und den ganz normal mit rs232 protokoll ansteuern? das protokoll ist dem
treiber ic doch so ziemlich egal, das macht nur seine diffentiellen
signal und zurück. oder verrenne ich mich da gerade?

Autor: Jan Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
iss ja alles schön und gut, aber wie mache ich die Software ?

Jan

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was genau klappt denn nicht?`was hast du schon und wo will es nicht so
recht?

da musst du konkret fragen, hier wird keiner mal eben das programm
fertig posten :))

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nabend!
Etwas Informationen zum Thema Schnittstellen und Protokolle:
Die Bezeichnungen RS422, RS232 und RS485 sind eine Art Norm, wobei das
"RS" für "recommended standard" steht, also nur eine Vereinbarung,
auf die sich verschiedene Leute (Firmen) geeinigt haben.
Normen werden von Instituten wie DIN (deutsches Institut für Normung)
oder anderen Organisationen dieser Art festgelegt.
(das jetzt nur als Einwurf).

In der Vereinbarung über die RS422 etc steht eigentlich nur drin,
welche elektrischen Eigenschaften die Schnittstelle hat, nicht, welche
Daten übermittelt, oder dass ein bestimmtest Protokoll verwendet wird.

Schliesslich findet man den CAN-Bus auch nicht nur in Autos...

Zum Thema Textübermittlung:
man schreibt die einzelnen Buchstaben nacheinander in den Sendpuffer
der seriellen Schnittstelle und wartet bis das jeweilige Zeichen
gesendet wurde. Dann folgt das nächste bis alle durch sind.
Den Text kannst du aus Fragmenten (mehrere Wörter) zusammensetzen, und
so für jeden Kanal den gleichen Text je nach Zustand übermitteln, wobei
nur die jeweilige Kanalnummer eingetragen werden muss.

Gruß Rahul

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.