Herzlich Willkommen im einzigen (deutschsprachigem) Picaxe-Forum.

Der Ursprung dieses Forum reicht bis in das Jahr 2008 zurück


Drehencoder mit der Picaxe

#1 von BoomBoomMagic , 26.01.2019 19:32

Einen sogenannten Drehencoder oder Drehimpulsgeber mit einer Picaxe auszuwerten ist leider garnicht so einfach. :(

"Normale" Mikrocontroller haben meistens bereits schon fertige Routinen enthalten , während bei einer Picaxe man das leider selber machen muss.



Drehencoder gibt es in viele Variationen :



Sie arbeiten in der Regel alle nach dem selben Prinzip:

2 Pins ( meist A + B ) werden mit einem Pullup-Widerstand auf High gesetzt.
Während des Drehens verbindet der Drehencoder nun abwechselnd Pin A oder Pin B mit Pin C = Masse.
Ab und an wird sogar noch ein Kondensator von 100nF parallel zum Pullup gesetzt.


Da ja nun beim Drehen unheimlich schnelle Impulse entstehen , ist die Picaxe leider nicht in der Lage ohne Verluste den Encoder auswerten zu können und auch noch eine Anzeige darzustellen.

Es ist aber möglich nach dem Auswerten 2 Ausgänge passend zur Drehrichtung mit LED´s zu versehen , die einem die Richtung und Anzahl der Impulse darstellen.

Dazu hier der Schaltplan :


Der zugehörige Code ist am Anfang vielleicht nicht so ganz leicht zu verstehen , aber evtl. kommt der Ein oder Andere hinter das Prinzip :


Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 

setfreq m8
 
let dirs=%00000111
 
symbol Impulsgeber_rauf = pinc.3
symbol Impulsgeber_runter = pinc.4
symbol Impulse = b0
symbol Impulse_merken = b1
 

bit0 = Impulsgeber_rauf
bit1 = Impulsgeber_runter
impulse_merken = impulse
 
do
 
bit0 = Impulsgeber_rauf
bit1 = Impulsgeber_runter
 
' rauf zählen - rechts rum
if impulse = 2 and impulse_merken = 0 then
pulsout c.1,200
impulse_merken = 3
do
bit0 = Impulsgeber_rauf
bit1 = Impulsgeber_runter
loop until impulse = 3
endif
 
if impulse = 1 and impulse_merken = 3 then
pulsout c.1,200
impulse_merken = 0
do
bit0 = Impulsgeber_rauf
bit1 = Impulsgeber_runter
loop until impulse = 0
endif
'-----------------------------------
 
' runter zählen - links rum
if impulse = 1 and impulse_merken = 0 then
pulsout c.2,200
impulse_merken = 3
do
bit0 = Impulsgeber_rauf
bit1 = Impulsgeber_runter
loop until impulse = 3
endif
 
if impulse = 2 and impulse_merken = 3 then
pulsout c.2,200
impulse_merken = 0
do
bit0 = Impulsgeber_rauf
bit1 = Impulsgeber_runter
loop until impulse = 0
endif
 
loop
 
 

|addpics|nqa-d-8f3e.jpg,nqa-e-9c0f.jpg,nqa-f-d095.jpg,nqa-g-ffe8.jpg|/addpics|

 
BoomBoomMagic
Beiträge: 876
Registriert am: 24.01.2019


   

Das alphanumerische LCD-Display
ADC ( Analog - Digital - Converter ) an der Picaxe

Picaxe Editor 5.5.5 Download
Update auf Picaxe Editor 5.5.6 Download
Picaxe Editor 6.x.x.x Download
Manual1.pdf        -      Grundwissen Download
Manual2.pdf        -      Befehle Download
Manual3.pdf        -      Beispiele Download


Press [Backspace] for back to Menu


Counter
Xobor Forum Software ©Xobor.de | Forum erstellen
Datenschutz