>Daher: Je nachdem, wie du die Schalter verbaut hast und je nachdem, ob
>die öffnen oder schliessen, wenn der Kolben(?) die Endlage erreicht hat,
>muss hier
> if ( (PINC & (1<<PC2)))
>bei den Abfragen der Endschalter ein ! rein oder auch nicht
Ja du hast Recht. Entschuldigung das habe ich in meinem Code eigentlich
auch. Habe zwischendruch ein bisschen rumexperimentiert und die ! mal
rausgenommen.
So sieht die aktuelle Schleife aus, die ebenfalls nicht funktioniert :P
1 | while(1)
|
2 | {
|
3 |
|
4 | if ( !(PINC & (1<<PC2)))
|
5 | {
|
6 | PORTD |= (1 << PD0);
|
7 | }
|
8 | if( !(PINC & (1<<PC1)))
|
9 | {
|
10 | PORTD &= ~(1 << PD0);
|
11 | }
|
12 |
|
13 | }
|
Sensor_ausgefahren (oben): PC1
Sensor_eingefahren (unten): PC2
Magentventil: PD0
Wenn PC2=0 ist, also wenn Sensor_eigefahren (unten) ein Signal hat, wird
PD0 geschalten.
Magentventil gibt Druckluft auf den Zylinder und Kolben fährt aus.
Wenn PC1=0 ist, also wenn Sensor_ausgefahren (oben) ein Signal hat, wird
der Ausgang PD0 sofort wieder abgeschalten
Die Sensor Eingänge gehen auf Optokoppler die Masse an die Eingangspins
des µC ziehen.