Forum: Mikrocontroller und Digitale Elektronik 2-Draht Übertragnung


von Markus S. (borastoni)


Lesenswert?

Hallo Jungs,

ich müsste 2x8 (16) I/O Signale über maximal 6 Adern einer 0,8er 
Telefonleitung über ca. 12 m in meinen Keller bringen.

Ich dachte da an iergend en ümsetzer auf en 2-Drahtbus, meine schonmal 
sowas gesehen zu habe aber finde nichts mehr dazu.

Hat von euch jemand ne idee, solte natürlich kein vermögen kosten ist 
nur ne bastelei. Löten, Ätzen, Lyout machen wäre kein problem für mich 
müsste nur wissen mit welschen bauteilen es machbar wäre.

Danke

Markus

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Dann guck mal nach RS485.
Da schickste dann den UART des µC drüber.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Stichworte: I2C, RS422/485 oder CAN. Jeweils mit einem die Signale 
aufbereitenden µC an jedem Ende.

von Watt (Gast)


Lesenswert?

Es gab (auch bei Conrad) vor einigen Jahren mal ICs für 
Funkfernsteuerungen. Die haben 8 (?) Tasten codiert, so dass man ein 
Funkmodul anschließen konnte. Ein zweiter Chip hat das codierte Signal 
dann wieder auf 8 (?) Ausgänge dekodiert.

Bezeichnung kenne ich leider nicht mehr. Hab eben mal danach gesucht.

von Günter K. (Firma: Lurch Hobby Tec) (murkel)


Angehängte Dateien:

Lesenswert?

Hallo,

das sind diese Teile, kann man offensichtlich auch kaskadieren.

Gruß
MURKEL

von Jens P. (picler)


Lesenswert?

Markus Steingaß schrieb:
> ich müsste 2x8 (16) I/O Signale über maximal 6 Adern einer 0,8er
> Telefonleitung über ca. 12 m in meinen Keller bringen.

Welche Frequenz und Impulsbreite haben die Signale. Dürfen diese eine 
Latenz haben oder einen zeitlichen Versatz untereinander? Sind die 
Signale uni- oder bidirektional? Was soll es genau werden? Mit diesen 
Informationen könnte man dir vielleicht besser weiterhelfen. Ansonsten 
wurden weiter oben schon mal ein paar gute Tipps genannt.

Wenn es nur in eine Richtung gehen soll und die Signale zeitlich 
unkritisch sind, würde ich die 16 Signale mit einem µC überwachen und 
bei Änderungen ein Datenpaket über den UART schicken und auf der anderen 
Seite wieder zurückwandeln.

von Watt (Gast)


Lesenswert?

@MURKEL
genau, die meinte ich.

von Markus S. (borastoni)


Lesenswert?

Jens PICler schrieb:
> Markus Steingaß schrieb:
>> ich müsste 2x8 (16) I/O Signale über maximal 6 Adern einer 0,8er
>> Telefonleitung über ca. 12 m in meinen Keller bringen.
>
> Welche Frequenz und Impulsbreite haben die Signale. Dürfen diese eine
> Latenz haben oder einen zeitlichen Versatz untereinander? Sind die
> Signale uni- oder bidirektional? Was soll es genau werden? Mit diesen
> Informationen könnte man dir vielleicht besser weiterhelfen. Ansonsten
> wurden weiter oben schon mal ein paar gute Tipps genannt.
>
> Wenn es nur in eine Richtung gehen soll und die Signale zeitlich
> unkritisch sind, würde ich die 16 Signale mit einem µC überwachen und
> bei Änderungen ein Datenpaket über den UART schicken und auf der anderen
> Seite wieder zurückwandeln.

Hallo, also die Signale sein einfach nur ein oder aus. Damit will ich 
kontakte von Fenstern die im OG zusammenlaufen auf eine SPS in den 
Keller bringen.

Danke

Markus

von Tom P. (booner)


Lesenswert?

Hei,

na dann würde ich die Adern einfach "binär" verschalten.
(Das erledigt ein µC im Obergeschoß)
Dann sparst Du an der SPS auch noch ein paar Eingänge.
Du kannst mit den 6 Adern 63 Signale übertragen, wenn ich mich nicht 
verrechnet habe.
Des weiteren brauchst Du nur auf einer Seite einen µC.
Vielleicht noch einen ULN2003 oder so, damit man die Signale einfach auf 
24V bekommt, was eine SPS ja normalerweise haben will. Der invertiert 
zwar, aber das kannst Du in der SPS ja wieder verwursten...

Also in etwa so:

Adern Fenster
00001 Kontakt1
00010 Kontakt2
00011 Kontakt3
usw.
(Du würdest theoretisch mit 5 Adern auskommen)

Wenn Du die Signale an einen Port der SPS anschließt und diesen in eine 
Variable einliest und selbige dann bitweise ausliest, hast Du mit wenig 
Aufwand sehr viele Signale verarbeitet. Vielleicht gehts auch ohne Umweg 
über ne weitere Variable, aber ich kenne Dein System nicht.


Grüße,

Tom

PS: Welche SPS verwendest Du?

von Maddin (Gast)


Lesenswert?

Tom P. schrieb:
> Adern Fenster
> 00001 Kontakt1
> 00010 Kontakt2
> 00011 Kontakt3
> usw.
> (Du würdest theoretisch mit 5 Adern auskommen)

ne ne ne, bei Kontakt1 UND Kontakt2 kann man das dann nicht mehr von 
Kontakt3 unterscheiden.
RS485 würde ich empfehlen, oder Bluetooth

von Harald W. (wilhelms)


Lesenswert?

Markus Steingaß schrieb:

> Ich dachte da an iergend en ümsetzer auf en 2-Drahtbus,

DTMF funktioniert über Tausende von km problemlos. Und es gibt
passende ICs dafür, wenn man keinen µC will. Allerdings sind
diese überwiegend obsolet.
Gruss
Harald

von Achim M. (minifloat)


Lesenswert?

Mit Tastenabfrage per Charlieplexing bekommt man 30 Kontakte über 6 GPIO 
eingelesen. Man kommt, weil n<20 auch mit 5 Adern aus. An der SPS 
brauchst du dann halt 5 Ausgänge und 5 Eingänge. Und vielleicht ein 
bisschen Diodenlogik und Pullup-Widerstände. mf

von STK500-Besitzer (Gast)


Lesenswert?

Mit Der Anzahl an Leitungen müsste man doch eigentlich eine 
Porterweiterung in Form von Schieberegistern realisieren können.
Dann muss man "nur noch" die Software entsprechend basteln...

von Tom P. (booner)


Lesenswert?

Hei,

@Maddin: ohja Asche auf mein Haupt, Du hast Recht!

Welche Schnittstellen stehen denn an der SPS zur Verfügung?
Ich hab an meiner SPS grad eine RS485 laufen, an der ich ne Menge 
kleiner µC mit Modbus-Slave drauf laufen hab.

Grüße,

Tom

von Markus S. (borastoni)


Lesenswert?

Tom P. schrieb:
> Hei,
>
> @Maddin: ohja Asche auf mein Haupt, Du hast Recht!
>
> Welche Schnittstellen stehen denn an der SPS zur Verfügung?
> Ich hab an meiner SPS grad eine RS485 laufen, an der ich ne Menge
> kleiner µC mit Modbus-Slave drauf laufen hab.
>
> Grüße,
>
> Tom

Es stehen leider nur Digitale eingänge 24V zu Verfügung.

Das mit den U6050 und dem U6052 hört sich gut an, hätte da jemand mal en 
schaltplan zu komm leider doch damit nicht zurecht.

Danke

von Obsolet (Gast)


Lesenswert?

Die bekommst Du nur noch mit Glück beim Restpostenhändler. Heute wird 
das mit PIC/uC gemacht.

von H.Joachim S. (crazyhorse)


Lesenswert?

Würde an deiner Stelle so einen Kram nicht anfangen.
2 x ATMega8 (o.ä) (der hat dann direkt gleich genug I/Os)
2 Quarze
2 x RS485 -Treiber
2 x ULN2803
Geschätzte 20 Zeilen Code
2 Adern für die Datenübertragung, 2 weitere für die Spannungsversorgung

Prozessor1 liest die Eingänge, bastelt daraus irgendwas (im einfachsten, 
hier ausreichenden Fall, sind das 2 Byte binär) und schickt die per UART 
raus.
Der andere wartet, bis was kommt. Und wenn, dann empfangen und auf die 
16 Ausgänge verteilen.
Sehr simpel, Material 10€.
Software je nach Vorkenntnissen. Für nen Profi ne Stunde Arbeit.

von Christian H. (christian_h)


Lesenswert?

Anstatt einen zweiten Atmega für 16 Ausgänge zu missbrauchen könnte auch 
ein 74HC595 das ganze günstiger erledigen.

von H.Joachim S. (crazyhorse)


Lesenswert?

Kann man. Aber dann brauchste 2 RS485-Strecken (Takt + Daten).
Mal die Reichelt-Preise:
2 x MAX485, 2 x 74HC595 -> 3,60€
ATMega8  2,10€

von Michael (Gast)


Lesenswert?

H.joachim Seifert schrieb:
> Prozessor1 liest die Eingänge, bastelt daraus irgendwas (im einfachsten,
> hier ausreichenden Fall, sind das 2 Byte binär)

Bei 16 Bit wird man dann allerdings ein spezielles Timing verwenden 
müssen, damit der Empfänger die beiden Bytes auseinanderhalten kann.

von H.Joachim S. (crazyhorse)


Lesenswert?

Oder das 9.Bit verwenden :-)
Kann man aber auch in jedem beliebigen anderem (auch eigenem Format) 
machen.
ASCII wäre auch ganz interessant, da kann man mal eben mit nem 
Terminalprogramm mithören/kontrollieren.
Datenengpass gibts ja nicht.

von Markus S. (borastoni)


Lesenswert?

H.joachim Seifert schrieb:
> Würde an deiner Stelle so einen Kram nicht anfangen.
> 2 x ATMega8 (o.ä) (der hat dann direkt gleich genug I/Os)
> 2 Quarze
> 2 x RS485 -Treiber
> 2 x ULN2803
> Geschätzte 20 Zeilen Code
> 2 Adern für die Datenübertragung, 2 weitere für die Spannungsversorgung
>
> Prozessor1 liest die Eingänge, bastelt daraus irgendwas (im einfachsten,
> hier ausreichenden Fall, sind das 2 Byte binär) und schickt die per UART
> raus.
> Der andere wartet, bis was kommt. Und wenn, dann empfangen und auf die
> 16 Ausgänge verteilen.
> Sehr simpel, Material 10€.
> Software je nach Vorkenntnissen. Für nen Profi ne Stunde Arbeit.

Hört sich super an nur leider kann ich keine Programme für IC´s 
schreiben, das Programmieren sollte gehen wenn ich ein Programm habe.
Hättest du mal ne Zkizze wie die verschaltet werden müssen.

Danke

Markus

von Werner (Gast)


Lesenswert?

Markus Steingaß schrieb:
> Hättest du mal ne Zkizze wie die verschaltet werden müssen.

µC1.Tx - Umsetzer 5V-RS485 - Leitung - Umsetzer RS485-5V - µC2.Rx
ULN2803 an digitale Ausgänge vom µC2

von Jens P. (picler)


Lesenswert?

Michael schrieb:
> Bei 16 Bit wird man dann allerdings ein spezielles Timing verwenden
> müssen, damit der Empfänger die beiden Bytes auseinanderhalten kann.

Wieso spezielles Timing? Byte 1 sind IOs 1-8 und Byte 2 sind IOs 9-16. 
Die werden einfach hintereinander übertragen. Natürlich sollte nach der 
Übertragung des 2. Bytes eine kurze Pause sein, doch das ist eine simple 
TimeOut-Bedingung, wie sie jede asyncrone serielle Übertragung haben 
sollte. Außerdem würde ich die IOs auf Pegelwechsel überwachen und nur 
bei einer Zustandsänderung ein neues Word übertragen. Also sind da 
längere Pausen durchaus drin...

Da das ganze ja in eine SPS gehen soll, reicht m.M.n. ein µC auf der 
Senderseite. Den Empfang macht die SPS. Die haben ja normalerweise auch 
serielle Eingänge.

von Tom P. (booner)


Lesenswert?

Hei,

bei Wago kostet ne serielle Schnittstelle so um die 260 Euro.
Ist zudem auch noch echt aufwendig zu programmieren.

Wenn schon digitale Eingänge vorhanden sind (ca. 4-8 Euro/Stück), würde 
ich die auch nehmen.

Der ULN2803 schaltet aber die Masse, oder?
D.h. man bräuchte auch eine negativ schaltende Eingangsklemme...
Bitte berichtigen, falls ich falsch liege!

Verrate uns doch noch, welche SPS Du einsetzt!


Grüße,

Tom

von H.Joachim S. (crazyhorse)


Lesenswert?

Normalerweise kann ne SPS mit masseschaltenden Ausgängen was anfangen.
Falls nicht, dann eben ULN2981 verwenden.

von H.Joachim S. (crazyhorse)


Lesenswert?

/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.5a UL Standard
Automatic Program Generator
© Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 09.10.2012
Author  :
Company :
Comments:


Chip type               : ATmega8
Program type            : Application
AVR Core Clock frequency: 3,686400 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 256
*****************************************************/

#include <mega8.h>

// Standard Input/Output functions
#include <stdio.h>
 bit timer_ready;
// Timer2 output compare interrupt service routine
interrupt [TIM2_COMP] void timer2_comp_isr(void)
{
timer_ready=1;

}

// Declare your global variables here

void main(void)
{unsigned char input_data[3];
// Declare your local variables here

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In 
Func0=In
// State7=P State6=P State5=P State4=P State3=P State2=P State1=P 
State0=P
PORTB=0xFF;
DDRB=0x00;

// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=P State5=P State4=P State3=P State2=P State1=P State0=P
PORTC=0x7F;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In 
Func0=In
// State7=P State6=P State5=P State4=P State3=P State2=P State1=P 
State0=P
PORTD=0xFF;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 460,800 kHz
TCCR0=0x02;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: 28,800 kHz
// Mode: CTC top=OCR2
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x0D;
TCNT2=0x00;
OCR2=0x90;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x80;

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 57600
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x03;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC disabled
ADCSRA=0x00;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;

// Global enable interrupts
#asm("sei")

while (1)
      {
      if (timer_ready)
         {timer_ready=0;
          input_data[0]=PORTB;
          input_data[1]=PORTC;
          input_data[2]=PORTD;
          //hier evtl. noch was mit den Daten machen
          putchar (input_data[0]);
          putchar (input_data[1]);
          putchar (input_data[2]);
         }

      }
}

quick&dirty 5min-Programm.
Timer2 erzeugt alle 5ms einen Interrupt. Ist dieser da (timer_ready=1) 
werden alle 3 Ports eingelesen und seriell verschickt.
Verbesserungen möglich :-), aber es sollte schon mal funktionieren.

von H.Joachim S. (crazyhorse)


Lesenswert?

ups, natürlich so:
input_data[0]=PINB;
input_data[1]=PINC;
input_data[2]=PIND;

von MCUA (Gast)


Lesenswert?

>ich müsste 2x8 (16) I/O Signale über maximal 6 Adern
>Hört sich super an nur leider kann ich keine Programme für IC´s ....
Man muss nicht für alles mögliche tausende Logicgatter bemühen.
Warum machst du nicht einfach mit den 4x4 Schaltern und 4x4 Rs  4 DACs 
und schickst das (mit ges 5 Leitungen) runter zur SPS.

von Tom P. (booner)


Lesenswert?

MCUA schrieb:
> Warum machst du nicht einfach mit den 4x4 Schaltern und 4x4 Rs  4 DACs
> und schickst das (mit ges 5 Leitungen) runter zur SPS.

Hei,

und dann an vier analoge Eingänge der SPS??
Das ist aber wirtschaftlich gesehen auch nicht wirklich sinnvoll.

Analoger Eingang=Teuer!


Grüße,

Tom

von Falk B. (falk)


Lesenswert?


von MCUA (Gast)


Lesenswert?

>und dann an vier analoge Eingänge der SPS??
>Das ist aber wirtschaftlich gesehen auch nicht wirklich sinnvoll.

Anal.Eing muss nicht unbedint teuer sein, je nach Hersteller.
Man kann sich den passenden ADC auch selbst zusamenstricken (wenn man 
kein uc verwenden will), mit OPs oder COMPs.
 Andere Möglichkeit, die SPS schickt über 1 Leitung ein 4 stufiges 
Signal hoch, das dekodiert man analog 1v4 (MUX), und schaltet mit den 4 
Stufen jeweils 4 Bits runter zur SPS.
 Viele Wege führen nach ROM.

von Markus S. (borastoni)


Angehängte Dateien:

Lesenswert?

Hallo,

Also ich find die Variante mit nem Atmega super habe dann gleich mal 
einen Atmega16 genommen das ich paar Reserven habe wenn schon, wer weis 
was kommt.

Habe jetzt mal nen Schaltplan gemacht. So müsste ja dann jede Seite 
aussehen, Empfänger und Sender. Stimmt das so?

Oder ist das total falsch.

Danke

Markus

von H.Joachim S. (crazyhorse)


Lesenswert?

Im Prinzip richtig, noch einiges an Feinarbeit:
-dem 7805 solltest du einen Eingangskondensator (47µ) spendieren
-am Quarz fehlen die 2 22pf-Kondesatoren
-AGnd und AVcc müssen angeschlossen werden
-du solltest einen ISP-Anschluss vorsehen
-/RE und DE kannst du zusammenfassen und an nur einen Portpin legen. 
Falls du vornherein nur in eine Richtung Daten senden willst, brauchst 
du nicht mal das. Besser ist es aber, wenn man in beiden Richtungen 
arbeiten kann.
-RS485: http://www.mikrocontroller.net/articles/RS-485 , Terminierung

von Gerhard G. (g_g)


Angehängte Dateien:

Lesenswert?

Hallo,

Markus Steingaß schrieb:
> müsste nur wissen mit welschen bauteilen es machbar wäre

habe noch  zwei alte Platinen (Projekt aus der Funkschau) mit einen 
Decoder/Encoder gefunden. Das könnte dich interessieren!

Baustein ist der ED-15

Es können 15 Zustände in ca. 10 ms übertragen werden.

Mit 3 Verbindungsleitungen, Spannungsversorgung und einer Datenleitung 
ist die Anbindung nicht schwer. Auch wenn die Datenleitung über eine 
RS485-Strecke geführt werden müsste. Ein Ausgangstreiber für 24 Volt 
sollte auch aufgetrieben werden können.

Daten über das Layout habe ich nicht mehr. Platine und Schaltung ist 
aber funktionstüchtig.


Siehe Anlage

Gruß G.G.

von tscheschesche (Gast)


Lesenswert?

/RE und DE braucht man nicht als zwei signale aus dem µC ziehen - ein 
Signal an die beiden reicht...

von Markus S. (borastoni)


Angehängte Dateien:

Lesenswert?

H.joachim Seifert schrieb:
> Im Prinzip richtig, noch einiges an Feinarbeit:
> -dem 7805 solltest du einen Eingangskondensator (47µ) spendieren
> -am Quarz fehlen die 2 22pf-Kondesatoren
> -AGnd und AVcc müssen angeschlossen werden
> -du solltest einen ISP-Anschluss vorsehen
> -/RE und DE kannst du zusammenfassen und an nur einen Portpin legen.
> Falls du vornherein nur in eine Richtung Daten senden willst, brauchst
> du nicht mal das. Besser ist es aber, wenn man in beiden Richtungen
> arbeiten kann.
> -RS485: http://www.mikrocontroller.net/articles/RS-485 , Terminierung



So habe das mal angepasst, ISP brauch ich net zum programmieren kommt 
die dann auf ein Programmer Board.

Ist es möglich das so zu bauen das ich wählen kann mit welschem 
Aus/Eingang ich senden bzw. empfangen kann? Kann man das dann 
entsprechen programmieren und z.b. mit jumpern einrichten so wäre sie 
dann universäller auch für die anderen Bastler hier.

Markus

von amateur (Gast)


Lesenswert?

Eine weitere Möglichkeit wäre: Jeweils 4 Schalter mit 4 unterschiedlich 
gewichteten Widerständen auf 4 (08/15) A/D-Wandler gelegt. Die 
Genauigkeit der meisten eingebauten Wandler reicht für 16 verschiedene 
mögliche Spannungen längst aus. Mach in der Summe: 4 Signaldrähte, 1 
Versorgungsleitung und einen Draht zum Abschneiden (Reservedraht).

von H.Joachim S. (crazyhorse)


Lesenswert?

Markus Steingaß schrieb:

> So habe das mal angepasst, ISP brauch ich net zum programmieren kommt
> die dann auf ein Programmer Board.
>
> Ist es möglich das so zu bauen das ich wählen kann mit welschem
> Aus/Eingang ich senden bzw. empfangen kann? Kann man das dann
> entsprechen programmieren und z.b. mit jumpern einrichten so wäre sie
> dann universäller auch für die anderen Bastler hier.
>
> Markus

Kann/könnte man, aber verzettel dich nicht. Ich glaub, du hast erst mal 
genug Baustellen.
Beschränk dich erstmal auf eine funktionierende Hardware und bring eine 
(unidirektionale) Verbindung zustande (bei bidirektionaler RS485 lauern 
noch ein paar kleinere Fallstricke)
Und so neu ist die Sache nicht, dass andere das unbedingt brauchen.
ISP würde ich trotzdem vorsehen, nichts ist lästiger als ständig den 
Prozessor umzustecken. Irgendwann sind die Pins verbogen, die Fassung 
ausgelutscht oder der MC verkehrt herum eingesteckt. Beim ersten 
Programmierversuch wirds nicht funktionieren :-)

von Markus S. (borastoni)


Lesenswert?

H.joachim Seifert schrieb:
> Markus Steingaß schrieb:
>
>> So habe das mal angepasst, ISP brauch ich net zum programmieren kommt
>> die dann auf ein Programmer Board.
>>
>> Ist es möglich das so zu bauen das ich wählen kann mit welschem
>> Aus/Eingang ich senden bzw. empfangen kann? Kann man das dann
>> entsprechen programmieren und z.b. mit jumpern einrichten so wäre sie
>> dann universäller auch für die anderen Bastler hier.
>>
>> Markus
>
> Kann/könnte man, aber verzettel dich nicht. Ich glaub, du hast erst mal
> genug Baustellen.
> Beschränk dich erstmal auf eine funktionierende Hardware und bring eine
> (unidirektionale) Verbindung zustande (bei bidirektionaler RS485 lauern
> noch ein paar kleinere Fallstricke)
> Und so neu ist die Sache nicht, dass andere das unbedingt brauchen.
> ISP würde ich trotzdem vorsehen, nichts ist lästiger als ständig den
> Prozessor umzustecken. Irgendwann sind die Pins verbogen, die Fassung
> ausgelutscht oder der MC verkehrt herum eingesteckt. Beim ersten
> Programmierversuch wirds nicht funktionieren :-)

Da verbrauche ich aber zu viele Ausgänge wieder, das überleg ich mir 
nochmal.

Stimmt denn die Schaltung sonst so weit?

Markus

von MCUA (Gast)


Lesenswert?

>Eine weitere Möglichkeit wäre: Jeweils 4 Schalter mit 4 unterschiedlich
>gewichteten Widerständen auf 4 (08/15) A/D-Wandler gelegt.
steht oben schon.

von Tom P. (booner)


Lesenswert?

Hei,

verrate uns doch mal, welche SPS Du einsetzt!
Evtl. kommen dann noch ein paar brauchbare Ideen.


Grüße,

Tom

von Jens M. (Gast)


Lesenswert?

Markus Steingaß schrieb:
> ich müsste 2x8 (16) I/O Signale über maximal 6 Adern einer 0,8er
> Telefonleitung über ca. 12 m in meinen Keller bringen.

Hast du analoge Eingänge? Dann geht es evtl. über Spannungsteiler wo 
Kontakte einzelne Widerstände überbrücken bzw. parallel schalten.

Pro Draht hast du 16/6 = 3 Werte Das sind bei 0-10V z.b. 1, 3 und 5V 
(Summe8)

Damit lässt sich der einzelne Schaltzustand identifizieren.

von Markus S. (borastoni)


Lesenswert?

Tom P. schrieb:
> Hei,
>
> verrate uns doch mal, welche SPS Du einsetzt!
> Evtl. kommen dann noch ein paar brauchbare Ideen.
>
>
> Grüße,
>
> Tom

Also ich habe ein WAGO SPS die 750-842.

Ich möchte jetzt auf jeden fall die Version mit dem Atmega umsetzen die 
reitzt mich jetzt.

Danke

von Tom P. (booner)


Lesenswert?

Hei,

na also! Da hätte ich schon eine Idee:
Nimm die Servideschnittstelle und spendiere ihr einen 485 Treiber.
Dann noch Modbus-Slave auf den µC und los gehts!

Die Serviceschnittstelle hat praktischer Weise schon 5V Pegel. :-)

Modbus Master ist dann auch schnell eingerichtet.
(Sofern man sich nicht das hochkomplizierte Beispiel von Wago anschaut, 
sondern selber macht)

So kommst Du mit nur einem µC aus, hast ein sicheres 
Übertragungsprotokoll und kannst in beide Richtungen Daten austauschen. 
(Für die Zukunft.)


Grüße,

Tom

von Markus S. (borastoni)


Lesenswert?

Tom P. schrieb:
> Hei,
>
> na also! Da hätte ich schon eine Idee:
> Nimm die Servideschnittstelle und spendiere ihr einen 485 Treiber.
> Dann noch Modbus-Slave auf den µC und los gehts!
>
> Die Serviceschnittstelle hat praktischer Weise schon 5V Pegel. :-)
>
> Modbus Master ist dann auch schnell eingerichtet.
> (Sofern man sich nicht das hochkomplizierte Beispiel von Wago anschaut,
> sondern selber macht)
>
> So kommst Du mit nur einem µC aus, hast ein sicheres
> Übertragungsprotokoll und kannst in beide Richtungen Daten austauschen.
> (Für die Zukunft.)
>
>
> Grüße,
>
> Tom

Sorry hätte schon gern ein Autagessystem vielleicht will ich ja auch mal 
signale ohne sps von oben nach unten.

Danke

Markus

von Markus S. (borastoni)


Lesenswert?

Könnte mir bitte jemand en Programm für meine obige schaltung schreiben.

Wäre super .

Danke

Markus

von H.Joachim S. (crazyhorse)


Lesenswert?

Ist jetzt nicht dein Ernst, oder?
Ich habe dir doch oben schon ein fast fertiges Programm hingestellt.
Ok, ein bisschen ummodeln auf Mega16, aber sonst?

von Markus S. (borastoni)


Lesenswert?

H.joachim Seifert schrieb:
> Ist jetzt nicht dein Ernst, oder?
> Ich habe dir doch oben schon ein fast fertiges Programm hingestellt.
> Ok, ein bisschen ummodeln auf Mega16, aber sonst?

Ja ok sorry aber zu mir da so schwer mit, aber ok werds mal probieren.

Mit was für einem Programm mache ich das am besten auch das 
Programmieren später.
Hatte mal das AVR Studio ist das gut oder haste was besseres?

Markus

von Marco (Gast)


Lesenswert?

Bis wann bräuchtest Du das Teil ?
Habe selber sowas vor, aber zur Zeit ein klein wenig Zeitmangel...
Ich selber arbeite auch mit dem Atmel Studio.

von MCUA (Gast)


Lesenswert?

>Könnte mir bitte jemand en Programm für meine obige schaltung schreiben.
ua deswegen hatte das mit den DACs erwähnt

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
Noch kein Account? Hier anmelden.