Enkoder Obrotowy


7.66667
Ocena: None Średnia: 7.7 (6 głosujących)

Nazwa tego urządzenia może wydawać się myląca ale jest to poprostu konwerter zamieniający sygnał z impulsatora na dwa sygnały (impulsy w lewo i w prawo). Dwa przebiegi przesunięte w fazie o połowe okresu, generowane przez impulsator są zamieniane na impulsy na dwóch wyjściach. Na jednym pojawiają się przy obrocie w prawo a na drugim przy obrocie w lewo. Całe urządzenie zostało zaprojektowane na niewielkiej płytce drukowanej, w którą bezpośrednio wlutowany jest impulsator. Nad sterowaniem całością czuwa mikrokontroler ATTiny13, który jako element SMD znakomicie zmieścił się między nóżkami impulsatora. Układ wymaga zasilania 5V i generuje impulsy których stanem aktywnym jest zero logiczne. Ze względu na niewielkie wymiary całej płytki nie będzie ona przeszkodą w zamontowaniu impulsatorów nawet 6mm od siebie. Układ przeznaczony jest do współpracy z potencjometrami cyfrowymi, wyposażonymi w sygnały "góra" i "dół", pozwala zastąpić przyciski impulsatorem. Może się także nadawać do współpracy z innymi mikrokontrolerami, tam gdzie program sterujący jest już bardzo skomplikowany i nie chcemy obciążać go dodatkowo obsługą impulsatora.

Działanie:


Schemat ideowy układu znajduje się na rysunku poniżej:

Sercem układu i jedyną jego aktywną częścią jest mikrokontroler U1 (ATTiny13). Kondensator C1 (100nF) filtruje zasilanie, a kondensatory C2 (100nF) i C3 (100nF). poprawiają pracę impulsatora, zmniejszając wrażliwość całego układu na fałszywe impulsy. Złącze Prog (Goldpin) jest złączem programującym ale po zaprogramowaniu procesora, wyprowadzenia MOSI i MISO tego złącza stanowia wyjście całego Enkodera. Złącze Sw(goldpin) stanowi wyprowadzenie przycisku impulsatora, jeśli jest on w niego wyposażony. Układ powinien być zasilany stabilizowanym napięciem 5V (plus podłączamy do +5V) za pomocą złącza Zas (goldpin)

Budowa:

Układ z powodzeniem można zbudować w oparciu o płytkę drukowaną dostępną tutaj. Rysunek w odbiciu lustrzanym dostępny jest tutaj. Lutowanie należy rozpocząć od procesora U1, w drugiej kolejności montujemy kondensatory, a na końcu impulsator i goldpiny. Goldpiny muszą być wlutowane od strony druku (patrz na zdjęcia) aby umożliwić łatwe dołączenie przewodów. W przeciwnym wypadku będzie problem z przykręceniem impulsatora do obudowy. W przypadku kłopotów z lutowaniem ich w takiej pozycji można przewody przylutować bezpośrednio do płytki. Przy montażu należy zwrócić uwagę z której strony montujemy elementy i zastosować odpowiedni schemat montażowy (szczególnie dotyczy to mikrokontrolera). Pomocą w konstrukcji może okazać się schemat montażowy dostępny tutaj. Dla montażu SMD pomocny będzie także rysunek montażowy w odbiciu lustrzanym, dostępny tutaj

Układ Enkodera jest tylko dodatkiem do juz istniejącego sprzętu a zatem należy go odpowiednio podłączyć do współpracy z innymi urządzeniami. Pomocą będzie rysunek niżej:

Wykaz Elementów:

1x Impulsator z przyciskiem
2x Listwa Goldpin 1x2
1x Listwa Goldpin 1x5
3x 100nF
1x Mikrokontroler ATTINY13 (SMD)

Programowanie:

Kod Źródłowy do enkodera został napisany w BASCOM AVR firmy MCS Electronics (http://www.mcselec.com/). Program przedstawiony jest poniżej:

'************* Konfiguracja uC *****************
'***********************************************
$regfile = "attiny13.dat"
$crystal = 9600000
 
Config Portb = &B11100111 : Portb = &B11111111
 
$hwstack = 20
$swstack = 10
$framesize = 40
 
I1 Alias Pinb.3
I2 Alias Pinb.4
O1 Alias Portb.0
O2 Alias Portb.1
 
Config Timer0 = Timer , Prescale = 256
Enable Timer0 : On Timer0 Prztimer0
Enable Interrupts
'********** Konfiguracja uC Koniec  ************
'******************  Zmienne *******************
'***********************************************
Dim In1 As Bit , In2 As Bit
Dim Tryb As Byte , Rezultat As Integer
Dim Licz_sw As Byte
Dim Impuls As Byte , Stan_wyjsc As Byte
Dim F_6ms As Bit
Dim Port As Byte
'*************  Zmienne Koniec  ****************
'**************  Petla glowna ******************
'***********************************************
Do
 
In1 = I1
In2 = I2
 Rezultat = 0
 Select Case Tryb
  Case 0:
   If In1 = 1 And In2 = 1 Then Incr Tryb                    'jezeli dwa rozwarte
  Case 1:
   If In1 = 1 And In2 = 0 Then Tryb = 2
   If In1 = 0 And In2 = 1 Then Tryb = 3
  Case 2:
   If In1 = 0 And In2 = 1 Then
     Rezultat = 1
     Tryb = 0
   End If
  Case 3:
   If In1 = 1 And In2 = 0 Then
     Rezultat = -1
     Tryb = 0
   End If
 End Select
 Waitus 100
 
If Rezultat <> 0 Then
  If Rezultat = 1 Then
    Set O1
    Reset O2
  Else
    Set O2
    Reset O1
  End If
End If
 
If F_6ms = 1 Then
  F_6ms = 0
 
  If O1 = 0 Or O2 = 0 Then
    Incr Impuls
    If Impuls = 15 Then
      Impuls = 0
      O1 = 1
      O2 = 1
    End If
  Else
    Impuls = 0
  End If
 
End If
 
Loop
End
'************ Petla glowna Koniec **************
'************ Przerwanie timer 0 ***************
'***********************************************
Prztimer0:
  Timer0 = 5
  Set F_6ms
Return
'******** Przerwanie timer 0 Koniec ************

Poniższy rysunek przedstawia ustawienia Fusebitów dla ATTiny13 (zrzut z programu Burn-O-Mat):

Zdjęcia Projektu:

ZałącznikWielkość
Schemat21.13 KB
Płytka4.96 KB
Płytka (odbicie lustrzane)4.97 KB
Płytka (18 na stronie)41.93 KB
Montowanie6.18 KB
Montowanie (odbicie lustrzane)6.2 KB
Kod Źródłowy1.92 KB
Program po Kompilacji (BIN) 824 bajty
Program po Kompilacji (Hex) 2.28 KB
Kod Źródłowy (impulsy +5V)1.92 KB
Program po Kompilacji (Hex) (impulsy +5V)1.95 KB
Kod Źródłowy (impulsy +5V, dodatkowy sygnał wykrycia obrotu na PB.2)1.96 KB
Program po Kompilacji (Hex) (impulsy +5V, dodatkowy sygnał wykrycia obrotu na PB.2)1.97 KB



Portret użytkownika Hubert

Jak tego dokonałeś ???

Quote:
Dim In1 As Bit , In2 As Bit
Dim Tryb As Byte , Rezultat As Integer
Dim Licz_sw As Byte
Dim Impuls As Byte , Stan_wyjsc As Byte
Dim F_6ms As Bit

Jak jest możliwe dodać tyle zmiennych na ATTiny13 ???

Ja nie mogę dodać jednej Byte. A ty 5 typu Byte , 1 INTEGER! i kilka BIT !!!

Pozdrawiam.
PS: Telephone 792834647

-

http://www.youtube.com/user/Hubert7323

Ciekawe filmy z urządzeniami mojej konstrukcji.

Portret użytkownika mirley

Re: Tiny2313

Zmniejszyłem rozmiar stosu i uwolniłem kilka bajtów ramu:

$hwstack = 20
$swstack = 10
$framesize = 40

nie można przez to robić wielu skoków do podprogramów ani etkiet gosub. Przez co wszystko jest włożone bezpośrednio w do loop

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Hubert

?

Witam.

Quote:
Re: Tiny2313
Temat jest trochę nie na miejscu. :P

Dzięki za odpowiedź. To bardzo pomogło rozwojowi mojej wiedzy na temat Bascoma.

-

http://www.youtube.com/user/Hubert7323

Ciekawe filmy z urządzeniami mojej konstrukcji.

Portret użytkownika gosc

Prosze o pomoc!

Witam.

Zastosowałem ten enkoder z attiny13 do potencjometru cyfrowego DS1802 i mam problem, mianowicie aby zgłosic lub z ciszyć muszę sporo sie nakręcić impulsatorem; DS1802 ma 65 posyzji; czy da rade zmienić program w taki sposób aby przekręcając impulsator o 360 stopni, zwiększyło amplitude na maksymalny poziom.
Nie znam Bascoma dlatego proszę o pomoc.
Z góry dziękuję

Portret użytkownika mirley

Re: Impulsator

Można zastosować impulsator o większej liczbie impulsów na obrót. Nad programem trzeba się głębiej zadumać mimo jego prostoty

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Pomocnik

Program impulsatora

Witam :)

Układ wykonałem na płytce testowej i okazało się, że układ ma wadę...
Mianowicie nie jest "odporny" na szybkie kręcenie się impulsatora lub szybką zmianę kierunku...

Posiedziałem, pomyślałem i wymyśliłem :)
Podaję kod który działa bardzo ładnie.
Pracę impulsatora należy wcisnąć w postaci podprogramu - tak najlepiej.
Sprawdzone i potwierdzone praktycznie :)

Techniczne: impulsator podaje impulsy w postaci jedynek - czyli impulsu 5v zasilania układu, wejścia muszą być podciągnięte opornikami 10k do masy - można wykonać programowo ale ja wolę dolutować opornik :P

Układ działa w taki sposób, że zwiększa lub zmiejsza liczbę w zakresie 0-255

Łatwo można go też przerobić aby działał jak układ przedstawiony powyżej.
Mam nadzieję, że się przyda do dalszej zabawy ten kod :)

Dim Licz As Byte
 
Cls
Licz = 0
 
 
 
Do
'######## ograniczenie aby zmienna licz nie była liczona w kółko tylko od 0 - 255
If Licz = 0 Then
Licz = 1
End If
 
If Licz = 255 Then
Licz = 254
End If
'######## koniec ograniczenia - ta część może być ale  nie musi...
 
 
If Pind.4 = 0 Then
Bitwait Pind.4 , Set
If Pind.3 = 0 Then
Decr Licz
Gosub Wys
End If
End If
 
If Pind.3 = 0 Then
Bitwait Pind.3 , Set
If Pind.4 = 0 Then
Incr Licz
Gosub Wys
End If
End If
 
Loop
 
 
 
Wys:
 
Cls
 
Locate 1 , 1
Lcd Licz
 
Return

Portret użytkownika Pomocnik

Dodatek

Popijając "złoty trunek" zmieniłem podprogramik 'wys' w taki sposób, że na określonych portach pojawiają się impulsy - kiedy kręcę w jedną stronę to mryga dioda zielona kiedy w drugą to dioda czerwona. Dioda świeci przez 30 ms i gaśnie - oczywiście można ten czas zmienić w zależności od potrzeby.

Oczywiście kod jest w pełni "odporny" szybkie kręcenie impulsatorem lub szybką zmianę kierunku obrotu.

Załączam kod - oczywiście w Bascomie :)

Pozdrawiam! :)

Dim Licz As Byte
 
Do
Licz = 1
 
If Pind.4 = 0 Then
Bitwait Pind.4 , Set
If Pind.3 = 0 Then
Decr Licz
Gosub Wys
End If
End If
 
If Pind.3 = 0 Then
Bitwait Pind.3 , Set
If Pind.4 = 0 Then
Incr Licz
Gosub Wys
End If
End If
 
Loop
 
 
Wys:
 
If Licz = 0 Then
Zielona = 1
Waitms 30
Zielona = 0
End If
 
If Licz = 2 Then
Czerwona = 1
Waitms 30
Czerwona = 0
End If
 
Return

Portret użytkownika mirley

Re: Enkoder

na jakim procesorze było to testowane? Ma to zadziałać w Tiny 13 w którym można zrobić jedną może dwie zmienne. Odpornośc na bardzo szybkie kręcenie lub szybką zmianę kierunku akurat w tym przypadku nie mają znaczenia ale dzięki za fragment kodu. potestuje w swoim zakresie w kolejnych konstrukcjach z impulsatorem.

tak na marginesie to twój kod tez ma wady a mianowicie program wisi w pętli głównej czekając na zmianę stanu impulsatora, ale w zalezności od zastosowania należy korzystać z róznych rozwiązań

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Pomocnik

Programik

Testowałem to na atmega8 z częstotliwością 8MHz.
Ale jestem przekonany, że będzie działało na attiny13.

W programie to zaledwie jedna zmienna...

A kolega użył w swoim aż (nie wiem czy prawidłowo liczę) 8 zmiennych i do tego jeszcze timer0... :P

Mój program na 99% będzie śmigał na attiny13 w układzie pierwotnego projektu powyżej :)

Co do polecenia 'bitwait' no jest to mała wada ale wciskając sterowanie impulsatora w podprogram nie jest to żaden problem ponieważ zmieniamy wartość zmiennej i wychodzimy z podprogramu i jest gitara :)

Portret użytkownika Piotr_94

parę uwag

wadą nie jest polecenie bitwait, ale waitms w procedurze Wys - przez to Twój program także gubi impulsy przy szybkim kręceniu i to nawet w większym stopniu niż zaproponowany przez Mirley'a.
Postanowiłem nieco zmodyfikować drugi kod (a raczej wykorzystać to co dobre z obu kodów i oto powstało coś takiego:

$regfile = "2313def.dat"
$crystal = 11059200
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
Cursor Off Noblink
Cls
Config Pinb.0 = Input
Set Portb.0
Config Pinb.1 = Input
Set Portb.1
Config Pind.0 = Output
Config Pind.1 = Output
 
I1 Alias Pinb.0
I2 Alias Pinb.1
O1 Alias Portd.0
O2 Alias Portd.1
O1 = 1
O2 = 1
 
Config Timer0 = Timer , Prescale = 64
Enable Timer0 : On Timer0 Prztimer0
Enable Interrupts
 
Dim Licz As Byte
Dim Ct As Byte , Cts As Byte , Outs As String * 3
'Dim F_6ms As Bit
Dim Impuls As Byte
Locate 1 , 1
Lcd "000"
Do
Licz = 1
 
If I1 = 0 Then
Bitwait I1 , Set
If I2 = 0 Then
Decr Licz
Gosub Wys
End If
End If
 
If I2 = 0 Then
Bitwait I2 , Set
If I1 = 0 Then
Incr Licz
Gosub Wys
End If
End If
'(
If F_6ms = 1 Then
  F_6ms = 0
 
  If O1 = 0 Or O2 = 0 Then
    Incr Impuls
    If Impuls = 15 Then
      Impuls = 0
      O1 = 1
      O2 = 1
    End If
  Else
    Impuls = 0
  End If
 
End If
')
Loop
 
 
Wys:
 
If Licz = 0 Then
O1 = 0
Decr Ct
End If
 
If Licz = 2 Then
O2 = 0
Incr Ct
End If
 
If Ct <> Cts Then
Cts = Ct
Outs = ""
If Ct < 10 Then Outs = Outs + "0"
If Ct < 100 Then Outs = Outs + "0"
Outs = Outs + Str(ct)
Locate 1 , 1
Lcd Outs
End If
 
Return
 
Prztimer0:
  Timer0 = 5
  'Set F_6ms
  If O1 = 0 Or O2 = 0 Then
    Incr Impuls
    If Impuls = 15 Then
      Impuls = 0
      O1 = 1
      O2 = 1
    End If
  Else
    Impuls = 0
  End If
Return

No i oczywiście wersja MINI pod attiny13(jeszcze nie testowana, bo mój attiny13 po włożeniu do góry nogami w podstawkę z podpiętym zasilaniem odmówił mi dalszej współpracy, a był to jedyni jaki miałem, może w przyszłym tygodniu wybiorę się do sklepu po nowy zapas ;-)):
$regfile = "attiny13.dat"
$crystal = 9600000
'Config Lcd = 16 * 2
'Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
'Cursor Off Noblink
'Cls
$hwstack = 20
$swstack = 10
$framesize = 30
 
Config Pinb.3 = Input
Set Portb.3
Config Pinb.4 = Input
Set Portb.4
Config Pinb.1 = Output
Config Pinb.2 = Output
 
I1 Alias Pinb.3
I2 Alias Pinb.4
O1 Alias Portb.1
O2 Alias Portb.2
O1 = 1
O2 = 1
 
Config Timer0 = Timer , Prescale = 64
Enable Timer0 : On Timer0 Prztimer0
Enable Interrupts
 
'Dim Licz As Byte
'Dim Ct As Byte , Cts As Byte , Outs As String * 3
'Dim F_6ms As Bit
Dim Impuls As Byte
'Locate 1 , 1
'Lcd "000"
Do
'Licz = 1
 
If I1 = 0 Then
Bitwait I1 , Set
If I2 = 0 Then
'Decr Licz
O1 = 0
'Gosub Wys
End If
End If
 
If I2 = 0 Then
Bitwait I2 , Set
If I1 = 0 Then
'Incr Licz
O2 = 0
'Gosub Wys
End If
End If
'(
If F_6ms = 1 Then
  F_6ms = 0
 
  If O1 = 0 Or O2 = 0 Then
    Incr Impuls
    If Impuls = 15 Then
      Impuls = 0
      O1 = 1
      O2 = 1
    End If
  Else
    Impuls = 0
  End If
 
End If
')
Loop
 
'(
Wys:
 
If Licz = 0 Then
O1 = 0
'Decr Ct
End If
 
If Licz = 2 Then
O2 = 0
'Incr Ct
End If
 
If Ct <> Cts Then
Cts = Ct
Outs = ""
If Ct < 10 Then Outs = Outs + "0"
If Ct < 100 Then Outs = Outs + "0"
Outs = Outs + Str(ct)
Locate 1 , 1
Lcd Outs
End If
 
Return
')
Prztimer0:
  Timer0 = 5
  'Set F_6ms
  If O1 = 0 Or O2 = 0 Then
    Incr Impuls
    If Impuls = 15 Then
      Impuls = 0
      O1 = 1
      O2 = 1
    End If
  Else
    Impuls = 0
  End If
Return

Portret użytkownika Piotr_94

Kod właśnie przetestowałem,

Kod właśnie przetestowałem, należy jedynie zmienić

Config Timer0 = Timer , Prescale = 64

na
Config Timer0 = Timer , Prescale = 8

Portret użytkownika lucastg

kilka pytań ;)

Do autora projektu mam kilka pytań po 1. jaki musi byc ten impulsator taki ktory zapodaje kod graya czy normalny stykowy cos takiego http://www.nikomp.com.pl/opisy/WRR00/WRR1010P.htm , i pytanie nr 2 czy moze mi ktos namalowac jaki jest przebieg na wyjsciu tego enkodera bo chciał bym to zastosować do sterownika do cnc ale niewiem czy to bedzie to samo co potrzebuję , a potrzebuje dwa przebiegi przesuniete o 90 stop a i pytanie nr 3 hehe czym rózni sie " Kod Źródłowy (impulsy +5V)" od tego normalnie skompilowanego juz do bin lub hex ??

Portret użytkownika mirley

Re: Impulsator

Chodzi ci o przebieg na wyjściu impulsatora jak elementu na pcb? to sa to dwa przebiegi prostokątne przesunięte w fazie o 90 stopni. Na wyjściu mojego całego układu pojawiają się impulsy prostokątne na dwóch wyjściach na jednym jak kręcisz w prawo a na drugim jak kręcisz w lewo.

Program podstawowy, ten skompilowany daje impulsy 0V a w stanie spoczynku jest na wyjściach 5V. Drugi program w stanie spoczynku na wyjściach trzyma masę a impulsami są szpilki +5V

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika qqrydza

impulsator i attiny13 jako zamek

Witaj. Czytając posty na elektrodzie na temat tego projektu ktoś podrzucił fajny pomysł na wykorzystanie tego układu. Mam na myśli użycie tego jako zamek typu: 5 w prawo, 3 w lewo, 4 w prawo i żeby na jednym z portów wystawiał stan niski. Da się to zrealizować w tym układzie? Zostało coś miejsca jeszcze, czy trzeba użyć drugiego proca, ew. attiny85 w smd?

Pozdrawiam
Dawid

Portret użytkownika mirley

Re: Tiny13

Jest problem ze zmiennymi bo już nic nie wstawisz do tego procka, przynajmniej nie pisząc kod w bascomie. Należało by się nad tym poważnie zastanowić żeby to weszło, napewno nie trzeba dawać dwóch procków, można przecież dać jakiś uC który ma więcej ramu na zmienne i wejdzie taki sejfowy sposób sterowania

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Pavlik71

Program autora ma pewiem

Program autora ma pewiem plus. Program ten można "wsadzić" jako część większego programu. Program ten nie zatrzymuje się i nie czeka na zmianę stanów z imulsatora (co w innych rozwiązaniach występuje - chodzi mi o instrukcję BITWAIT). Jest jednak jeden problem, który spróbóje opisać. W pozycji wyjściowej mamy na wejściach 11. Przekręcamy w umówione lewo tak aby stan zmienił się na 10 wtedy zmienna Tryb=2. Puszczamy (lub wracamy gałką) gałkę do pozycji stabilnej (w prawo), wtedy znów mamy na wejściach 11, ale zmienna Tryb=2 pozostaje. Kręcimy nadal w prawo i następuje stan na wejściach 01. Wtedy następuje wygenerowanie impulsu na wyjściu. Puszczmy gałkę (lub wracamy gałką) i ona wraca (przekręci się w lewo) do pozycji stabilnej. Gałka impulsatora jest w pozycji początkowej, a impuls został wygenerowany. Jeżeli to rozwiązanie było by stosowane w maszynach, to poruszając w prawo i w lewo "nabiłbym" licznik, nie zmieniając pozycji maszyny.

Portret użytkownika mirley

Re; Enkoder

Rozwiązanie nie jest idealne, jeśli będziesz balansował na granicy przełączenia w lewo i w prawo to mogaą się stać różne rzeczy.... w zastosowaniu jakie przewidziałem dla tego układu nie jest to dużą wada.

Zastosowany impulsator za 3zł nie ma nic wspólnego z teorią według której powinien działać. Stany na pinach są przeważnie dziwne.... po przekręceniu o jeden skok powinno być raz 00 a raz 11 (oczywiście który z bitów najpierw się przełącza z 0 na 1 i odwrotnie zależy od kierunku)

W moim impulsatorze czasami zatrzymuje się na stanie 01 lub 10 co nie działo się gdy miałem impulsator za 12-15zł

Program nie do końca doskonały ale przy normalnym kręceniu daje rade obsłużyć tani impulsator

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Daniel

Poszukuje bezskutecznie od

Poszukuje bezskutecznie od kilku dni enkodera wciskanego, którego da się przykręcić i jest w miarę tani. Chciałbym spytać gdzie kupiłeś swój impulsator (widoczny na zdjęciach). Bo to jest dokładnie taki jakiego potrzebuję.

Pozdrawiam.

Portret użytkownika mirley

Re: Enkoder

Na allegro, wpisz hasło "impulsator" i przejdź do działu elektronika

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Daniel

Dzieki wielkie. Pod latarnia

Dzieki wielkie. Pod latarnia najciemniej, nie przyszlo mi do glowy szukanie akurat tam. Za to przegrzebalem wszystkie internetowe sklepy elektroniczne i nic.
Jeszcze raz dzieki.

Portret użytkownika sza86

Typ impulsatora

Witam kolegów, mam pytanie posiadam impulsator:
ED16112O Enkodery mechaniczne; 24imp/obrót;
Producent: CTR Symbol oryginalny: ED16112O-FB20B12-A24-100-G12
Czy on będzie odpowiedni gdyż wykonałem w/w układ ale nie podaje impulsów układ wygląda na dobrze zaprogramowany.

Portret użytkownika mirley

Re: Enkoder

Twój impulsator wygląda dobrze. W katalogu wyczytałem że to zwykły impulsator generujący dwa przebiegi przesunięte w fazie o 0.25 okresu. Zaprogramuj procesor jeszcze raz i ustaw mu fusebity zgodnie z zaleceniami

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika sza86

Procesor jest dobrze

Procesor jest dobrze zaprogramowany i fusebity ustawione zgodnie z zaleceniami hehe może wyprowadzenia z impulsatora źle podpiąłem(?)

Portret użytkownika mirley

Re: Impulsator

Podłącz środkowe wyprowadzenie na boku do masy a do pozostałych dwóch daj diody z rezystorami do zasilania. Kręcąc bardzo powoli powinieneś widzieć że jedna z diod zapala się wcześniej od drugiej. Kręcąc w drugą stronę będzie odwrotnie. Tym sposobem możesz zidentyfikować wyprowadzenia i upewnić się przynajmniej w kwestii podłączenia

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika sza86

I wyszło szydło z worka.

I wyszło szydło z worka. Wejście na impulsator nie jest w środku tylko z lewej strony. Jeszcze takie pytanko czy jest sposób na poprawę kodu tzn przyśpieszenie (szybsza i dokładniejsza reakcja na obroty).

Portret użytkownika mirley

Re: Enkoder

Dało by pewnie radę ale trzeba by to troszkę przerobić i spróbować wykorzystać przerwanie zewnętrzne. Sam tego jeszcze nie próbowałem a program który napisałem działa na prostej zasadzie.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Pavlik71

Super szybki algorytm

Do sza86: Właściwości samego impulsatora musisz sam znaleźć. Impulator nie ma "wejścia" jak to nazwałeś. Ma wspólny styk i do czego go podłączysz to już Twoja sprawa. Ja wspólny styk podłaczam do masy. A wyjścia impulastora podciagam do +5V przez wewnętrzne oporniki w układzie atmela. Można też podcignąć wyjścia impulsatora przez oporniki.

http://www.elektroda.pl/rtvforum/topic1877939-30.html

Portret użytkownika sza86

Dzięki ale się już z tym

Dzięki ale się już z tym uporałem muszę tylko jakoś się doszkolić i przyśpieszyć kod ;(

Portret użytkownika gosc12341234

endkoder zliczjący obroty

Czy jest możliwość żeby enkoder(układ enkodera) po obrocie 360*(stopni) wysłał 1 impuls.(potrzebne mi to do zrobienia licznika snopków siana w prasie kostkującej, gdyż liczniki kosztują 200zł. A teraz zasada jak to mogło by działać.
Inny procek odebrał by ten impuls 1 impuls dodał go jako +1 do zmiennej i wynik wyświetlił na wyświetlaczu.)

Więc pytam się czy można zrobić tak żeby po 360* był 1 impuls.

Portret użytkownika mirley

Re: Enkoder

Ja bym raczej zastosował kontaktron na osi albo układ optyczny, który policzy obroty a nie kombinował z dwoma procesorami. Rozwiązanie prostsze i pewniejsze

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika tomec

klawiatura

Witam czy można to zastosować do klawiatury komputerowej? Da rede kilka takich potencjometrów uciągnąć :)

Portret użytkownika mirley

Re: Enkoder

Nie bardzo rozumiem co ma to wspólnego z klawiaturą komputerową

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika tomec

Chodzi o to żeby dołożyć

Chodzi o to żeby dołożyć kilka takich potencjometrów i używać zamiast skrótów klawiszowych. cos na wzor mixera albo np w virtualdj zamiast wciskac kombinacje klawiszy wystarczylo by przekrecic potencjometr tylko czy to by reagowalo idealnie.

Portret użytkownika mirley

Re: Klawiatura

Nie będzie tak działać.... tak wogóle to ukąłd powyżej nie jest potencjometrem, generuje tylko sygnały do potencjometru ze sterowanim up/down.

Jednak twój problem dotyczy zupełnie innego problemu... z tego co teraz zrozumiałem nie potrzebujesz żadnych potencjometrów, tylko impulsatory, które bedą działąć jak regulatory na komputerze. Czyli trzeba emulować sygnały klawiatury ps2 a nie podłączać klawiatury.

Układ jest ciekawy ale to całkiem co innego i nie ma nic wspólnego z układem opisanym wyżej

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika boniu

enkoder optyczny

Witam!! Mam pytanie czy ktoś ćwiczył enkodery z myszki, chciałbym taki enkoder wykorzystać zamiast mechanicznego
czy da się go podłączyć do procesora. Proszę o jakieś propozycje.Jestem słaby w programowaniu.
Za odpowiedź i pomoc serdecznie kolegom dziękuję
Bronisław

-

z poważaniem Bronislaw

Portret użytkownika mirley

Re: Enkoder

Musisz rozbebeszyć tą myszkę i zobaczyć jaki układ jest odbiornikiem, bo powinna tam być dioda i odbiornik

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika boniu

enkoder

Witam!!
Owszem jest dioda i odbiornik z 3 wyprowadzeniami ale nie ma oznaczenia tylko kolorowy pasek "srebrny" lub inny z paskiem "zielonym".
Układ scalony który to przetwarza ma dziwne oznakowania "tech www-1007D" w drugim wierszu "0105V BP1222".
pozdrawiam Bronisław

-

z poważaniem Bronislaw

Portret użytkownika mirley

Re: Mysz

Z tego co się doczytałem to są zwykłe fototranzystory i hak logika nakazuje powinny być dwa na rolkę..... Trzeba podłączyć miernik i zobzczyć jakie napięcia występują na fototranzystorach przy rolce. Powinny być dwa przebiegi przesunięte w fazie o 1/4 okresu jak w zwykłym impulsatorze

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Norbert

Pytanie - prośba

Witam , o programowaniu układów nie mam pojęcia więc podstawowe pytania : do czego słuzy pin CLK ? jeśli dobrze rozumiem to na wyjściach OUT pojawia się 5v w momencie kręcenia pokrętłem enkodera R w prawo L w lewo, czy tak ? Czy ktoś z forumowiczów mógłby zaprogramować dla mnie układ?
Pozdrawiam Norbert

Portret użytkownika mirley

Re: Enkoder

Złącze Prog w którym jest CLK jest złączem programującym a jednocześnie dwa piny w tym złaczy działają jako wyjścia. CLK jest potrzebny podczas programowania,

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Norbert

Działa :-)

Mój debiut w programowaniu :-) Kupiłem programator układ , zaprogramowałem - działa :-) Przy próbie kompilacji kodu z +5V na wyjściu dostaję komunikat Error: 22 line: 0 Out of SRAM space in file - w czym może być problem ? I drugie pytanie - jak do wyjść można podłączyć przekaźniki ?

Portret użytkownika mirley

Re: Program

Błąd kompilacji to problem braku wolnego ramu, dokładnie tak jak jest napisane. Kretynizm bascoma z nowszą wersją kompilatora dowala jakieś dodatkowe nikomu nie potrzebne rzeczy, które domyślnie deklarowane są w pamięci ram. Starsza wersja kompilatora napewno zadziała. Możesz też zmniejszyć hwdstack swdstack

-------

Co do przekaźników to jak miały by one działać

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika slavcio2012

Encoder i synteza

Projekt ciekawy chciałbym go zaadaptować do syntezy bo oryginalny kod ma problem właśnie ze zliczaniem impulsów link http://www.elektroda.pl/rtvforum/topic1658869.html#8078499 tylko nie wiem jak to mam zrobić

Portret użytkownika DaroAdmin

Enkoder

Witam
A ja mam inne pytanie
Wykorzystałem polecenie encoder .

Nastaw = Encoder(pind.2 , Pind.3 , Dodanie , Ujmowanie , 0 )

Etykiety Dodanie i Ujmowanie to po prostu Incr i Decr jakiejś zmiennej.

Jak kręce ośką w jedną stronę zmienna rośnie mi o 1 a jak w drugą o maleje mi o 3.
Przełączałem enkoder na wszystkie sposoby i ciągle to samo.
O dziwo jak podglądam zmienną Nastaw to pojawiają mi się Tam cyfry 0 , 1 , lub 3. Domyślnie jest tam 3.

Portret użytkownika mirley

Re: Encoder

Niestety nie wiem co siedzi wewnątrz tego polecenia bo go nigdy nie używałem. Po co jednak jest zmianna Nastaw skoro i tak skaczesz do dwóch etykiet?

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika DaroAdmin

Encoder

Sam tego nie rozumiem po co ta zmienna, ale w helpie tak jest więc nie wnikałem. Może polecenie przechowuje tam stan encodera ?
Encoder mam taki jak kolega wcześniej ED16112O-FB20B12-A24-100-G12.

Portret użytkownika wilczasty

praca jako tact-switch

Witam,
Chciałbym się zorientować czy mogę zastosować ten enkoder zamiast przycisków tzn resetów (tact switch)?
Chodzi mi o uzyskanie takiego samego efektu jak przy naciskaniu przycisków. Całość ma pracować w zasilaczu sterowanym cyfrowo.

Pozdrawiam.

Portret użytkownika DaroAdmin

Sam enkoder to nie wszystko,

Sam enkoder to nie wszystko, można go zastosować jak zmienisz oprogramowanie tego co tym zasilaczem steruje albo zrobisz układ pośredniczący.

Portret użytkownika mirley

Re: Enkoder

Będzie tak działać... dokładnie po to zostało to zrobione. Układ podaje ujemny impuls masę na jedno lub drugie wyjście w zależności od kierunku kręcenia. Wszystko zależy od tego jak podłączone są przyciski w zasilaczu i jak długi impuls trzeba aby przycisk zadziałał

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika wilczasty

Enkoder

Witam,
Są to zwykłe resety, naciśnięcie go jeden raz powoduje podniesienia napięcia o 0,1V, a trzymając napięcie zwiększa się coraz szybciej. Czy mogę go w takim razie użyć?

Projekt zasilacza: http://ep.com.pl/files/3248.pdf

Pozdrawiam.