Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

sonsuz pot baglama

Başlatan cesmeali, 07 Haziran 2010, 13:51:35

cesmeali

merhaba arkadaslar.
yapmıs olduğum digital ton kontrole m3 calarlarda cok sık gördüğümüz sonsuz pot (adını tam
bilemiyorum.)seklindeki düğme bağlamak istiyorum.kullandığım ton kontrolde 3 tus var.- ,+
ve menü tusu.- ve + tusunu sonsuz pot seklindeki düğmeye menu tusunuda sonsuz pot üzerinde
basılanilen butona baglamak istiyorum.oto mp3 lerindeki gibi ses düğmesi şeklindeki sonsuz potan
kontrol etmek istiyorum.digital olarak.böyle bir bağlantıyı nasıl yapabilirim.pot seklindeki düğmeden nereden bulabilirim.yardımcı olabilirmisiniz?
resimdeki gibi.


ete

Şekilde görülen malzeme elektronikçilerde sonsuz pot - encoder pot yada direk encoder gibi isimlerle satılmaktadır.
Gerçekte de grey code üreten bir encoder dir. Her bir tık aralığında 00 01 10 11 şeklinde 4 adet kod üretir.
Ancak bu pot un kullanılabilmesi için orta ucu GND ye bağlanmalı yanlardaki uçlar ise 10K dirençle pullup yapılarak Pic'e A ve B girişi olarak girmelidir.

Gerisi encoder okuma komutları ile aynı olacaktır. Okuma yada kullanım mantığı aşağıdaki şekilde olmalıdır.
-Öncelikle A ve B den giren değeri okuyacaksın diyelimki %00 okudun. Buna Eski=%00 diyelim.
- Hemen ardından yeniden okuyacaksın ve bu sefer okunanı Yeni isimli değişkene atayacaksın Yeni=%00
- Eski=Yeni ise encoder dönmemiş demektir. O halde Yeni değeri eskiden farklı oluncaya kadar baklaman yada o arada başka işlere bakman gerekir.
- Diyelimki Yeni=%10 okuduk. Bu encoderin döndüğünü gösteriyor.
- Şimdi hangi yöne döndüğünü hesaplayıp ona göre işlem yapmamız gerekecek.
- Bunun için Eskinin ilk biti ile yeni nin ikinci bitini XOR yapmamız gerekiyor. Sonuç 1 ise diyelimki sağa, sonuç 0 ise sola dönüş yapıyor anlamına gelecektir.
- Örneğimize bakacak olursak 0 XOR 1=0 dır o halde encoder sola dönüyor demektir. Bu durumda SAYAC=SAYAC-1 yapmak şayet yön=1 ise SAYAC=SAYAC+1 yapmak uygun olacaktır. Bu tamamen kişinin isteğine kalmış bir şey olup gerekirse terside yapılabilir.
Arada butonun basılıp basılmadığınıda kontrol edebilirsin. Butonu bir tuş gibi düşün ve ona göre kontrolünü yap.

Gördüğün gibi çok zor değil.

Ete

Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

cesmeali

verdiğiniz bilgiler için çok teşekkür ederim.yazılım konusunda iyi değilim .mantık olarak anlamaya çalıstım.
picprojeye konuyu acmadan önce netten arastırma yapmıstım.söyle bi site bulmustum.fhttp://www.mcmanis.com/chuck/robotics/projects/lab-x3/quadratrak.html
16f628a ile lcd bar uygulaması var.bu uygulamayı bir örnek olarak yapabilirmisiniz?
saygılarımla..
Device = 16F628A                                               

Declare LCD_DTPIN PORTB.4
Declare LCD_ENPIN PORTB.3
Declare LCD_RSPIN PORTB.2
Declare LCD_INTERFACE 4
Declare LCD_LINES 2
Cls

Print $FE,$40,$F8,$F8,$F8,$F8,$F8,$F8,$F8,$F8
Print $FE,$48,$FB,$FB,$FB,$FB,$FB,$FB,$FB,$FB

Config INTRC_OSC_NOCLKOUT, CP_OFF, WDT_OFF, PWRTE_ON, LVP_OFF
TRISA=%11111111
TRISB=%00000000
Dim barval As Byte
Dim bar1 As Byte
Dim bar2 As Byte
Dim pad As Byte

Symbol azbut = PORTA.0
Symbol artbut = PORTA.1
CMCON=7
ana:
If artbut=0 Then barval=barval+1
If barval>32 Then barval=32
If azbut=0 Then barval=barval-1
If barval=255 Then barval=0
GoSub lcd_bar
DelayMS 200
GoTo ana

lcd_bar:
bar1 = barval/2   
bar2 = barval // 2   
pad = 16-bar2 
Print At 1,1, "DEGER=",DEC2 barval   
Print At 2,1, Rep $01\bar1,Rep $00\bar2,Rep " "\pad+1
Return
End


http://rapidshare.com/files/397407823/LCD_Bar_uygulamasae_.rar.html

ete

Verdiğin program zaten bir örnek. Daha ne gibi bir örnek istiyorsun pek anlamadım.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

cesmeali

merhaba hocam,
Symbol azbut = PORTA.0
Symbol artbut = PORTA.1

porta.o ve porta.1 bağlı buton lara  encoder pot bağlamak istiyorum.programda nasıl bir değişiklik yapmam gerekli onu görebilmek için bu örneği onun için verdim.

ete


Encoder:
New=PORTA & %00000011

Tekrar:
Old=PORTA & %00000011
IF OLD=NEW THEN TEKRAR

YON= (New.1) ^(Old.2)
IF YON=1 Then
  Barval=Barval+1
  IF Barval>32 then barval=32
Else
  Barval=barval-1
  If Barval=255 then Barval=0
Endif
Return

Şeklinde bir alt program oluştur. Encoderin en sağdaki ucunu 10K ile Pullup yapıp PortA.0 a bağla. encoderin en soldaki ucunu yine 10K ile pullup yapıp PortA.1 e bağla. ENcoderin orta pinini GND ye bağla.
Buton kontrollarını programdan çıkart yerine gosub encoder yaz.
Hepsi bu kadar.

Ete

Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

cesmeali

çok teşekkür ederim ete hocam allah rağzı olsun.çok saolun