PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Optokoppler an Drehgeber auslesen



Daveler
03.01.2005, 16:41
Hallo!

Hab mich schon etwas heruninformiert, bin aber leider noch nicht ganz schlau geworden.

Ich habe einen Optokoppler CNY70. (Anhang)

Den würde ich gerne mit dem Roboterboard RNBFRA 1.2 "auslesen". Also ich habe mir gedacht, ich schließe ihn an den Drehgebereingängen an. Wenn dann die Messpunkt am Sensor vorbei kommt wird ein Impuls ausgegeben. (Hi/Lo Flanke - oder umgekehrt?)
Es sind keine hohen Drehzahlen im Spiel. Also um genau zu sein, möchte ich nur wissen, wann der Sensor etwas misst - quasi wann das Rad eine bestimmte Position hat. Sobald es dort ist, soll es sich dann wieder in die andere Richtung drehen. Aber das nur nebenbei.
Es geht also NICHT um Umdrehungszahl, sondern eher um eine bestimmte Position.

Mein Problem, ist, dass ich nicht weiß wie ich das in Bascom schreiben soll. Im Datenblatt des Boards steht, dass ein Porgramm im Forum verfügbar sein wird, aber ich habs nicht gefunden - warscheinlich gibt es das noch nicht.
Ich bräuchts aber schon 8-[

Hoffe ihr könnt mir da etwas weiterhelfen.

mfg

Dave

PicNick
03.01.2005, 17:37
Hi, dave !

schau mal Bascom Help:

On INT0 Interrupt_PIN1

CONFIG INTx = state
Where X can be 0,1 and 4 to 7 in the MEGA chips.

Remarks

state LOW LEVEL to generate an interrupt while the pin is held low. Holding the pin low will generate an interrupt over and over again.

FALLING to generate an interrupt on the falling edge.
RISING to generate an interrupt on the rising edge..

alles da.

mfg robert


edit: gilt für rn-Bus 33/34
INT0 / INT1

Daveler
03.01.2005, 19:01
Hab jetzt mal das geschrieben:



$regfile = "m32def.dat"
$crystal = 8000000

Config Portd = Input
Config Portc = Output


On Int0 Interrupt_pin1

Config Int0 = Rising 'Interrupt 0 bei L/H-Flanke auslösen
Enable Int0 'Externen Interrupt 0 einschalten
Enable Interrupts 'Interrupts global zulassen


Do
If Pind.3 = 1 Then
Print "Pind.3 = 1"
Else
Print "Pind.3 = 0"

End If
Loop

End


Dann kommt aber die meldung:
Error: 219 Line 10: Int0 - Int3 ar always low level triggered in the mega

Hab mein Problem hier gefunden:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=5581

Mal schaun, was ich da schaff.

Btw: Muss ich da noch eine außenbeschaltung machen, oder ist der cny70 ready to go?
Kann ich den direkt ans Board anschließen?

mfg, Dave

PicNick
03.01.2005, 19:10
Hi,
Gut, Low-Level is eh gut, wir wissen ja nicht, wie vernudelt die Flanke ausschauen wird.
Vorwiderstand ca 220 Ohm für die LED an Plus
Transistor emitter GND, Kollector Pull up 4k7 (ca)
und am kollektor nimmst du die Spannung ab.
Geht auch im Trockenen zu messen. Pull up ev. anpassen.
mfg robert