Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > Hallo Alle zusammen, > Ich bin ein ábsoluter noobie was Programmierung angeht, aber um mit zwei lichtschranken+Taktscheibe > entweder ein links oder ein rechts signal zu bekommen, brauche ich jetzt doch nen microcontroller. > Bisher hat sich mein Selbststudium auf diskrete Schaltungen beim Bau meiner Fräse beschränkt und > die C-control vom conrad-Restetisch lag nur rum- jetz muss sie ran, hier der code-der nicht so will > > > > ' Ports für Lichtschranken definieren > > ' > > #define LS_R Port_ReadBit(16) 'Eingang 1. Lichtschranke > > #define LS_L Port_ReadBit(17) 'Eingang 2. Lichtschranke > > > > > > > > Dim Linksrechts As Byte ' globale Variablendeklaration > > > > '------------------------------------------------------------------------------ > > 'Abfrage der Lichtschranke > > ' > > Sub Lichtschranke() > > Port_DataDirBit(16,PORT_IN) > > Port_DataDirBit(17,PORT_IN) > > > > If LS_L = 0 And LS_R = 1 And Linksrechts = 0 Then > > Linksrechts = 1 > > End If > > > > If LS_R = 0 And LS_L = 1 And Linksrechts = 0 Then > > Linksrechts = 11 > > End If > > > > > > If LS_L = 0 And LS_R = 0 Then > > Linksrechts = 0 > > End If > > > > > > > > If LS_L = 1 And LS_R = 1 Then Linksrechts = 0 > > > > End If > > > > Return > > End Sub > > ' > > '------------------------------------------------------------------------ > > ' > > Sub main() > > > > > > ' Ports für Richtungsausgabe definieren > > > > Port_DataDirBit(18,PORT_OUT) > > Port_DataDirBit(19,PORT_OUT) > > Do > > Lichtschranke() > > > > If Linksrechts = 1 Then > > Port_WriteBit(18,PORT_ON) > > End If > > > > If Linksrechts = 11 Then > > Port_WriteBit(19,PORT_ON) > > End If > > > > If Linksrechts = 0 Then Port_WriteBit(18,PORT_OFF):Port_WriteBit(19,PORT_OFF) > > End If > > > > Loop While 1 > > End Sub > > Nun, ich fänd es toll wenn mir einer sagte was verkehrt ist, > denn: > > Ich habe die so programmierte C-control (wie man im Code sieht) mit > Port C an ein Steckbrett angeschlossen, für die eingänge zwei optokoppler, > die Portpin16&17 bei eingang von der Lichtschranke auf 5v ziehen, für die ausgänge > Portpin 18&19 habe ich jeweils einen transistor verwendet, der den optokoppler bei high > mit Masse schaltet, sodass auf der anderen Seite eine LED leuchtet---und nun: > gehen die beiden! LED´s permanent an, und es gibt überhaupt keine zustandsänderung > > Trocken, also ohne prozessor verschaltet funktioniert´s