ışık izleyen pic devresi yapan var mı?
Alıntı yapılan: çavuş - 22 Şubat 2008, 22:29:51
ışık izleyen pic devresi yapan var mı?
ışık derken nasıl bir ışık ve pice bunu nasıl,ne aralıklarile algılatmanız gerek? yani ışık izleyen robot diye sorduğunuz zaman ben size en az 3-4 özellikli ışık takib eden robot tarif edebilirim siz nasıl bir şey düşünüyordunuz?
ben tek step motorla olduğu yerde panellerini ışığa doğru çevirmesini düşünüyordum.devrede iki adet led kullanılıyormuş ışık hangi yönde daha çoksa karşılaştırıcı opamp o girişi yükselterek çıkışa veriyor.motorda pic ten gelen sinyale göre paneli ışığın geliş yönüne çeviriyor...
bunu 4 adet ldr lm324 ve 1 pic ile çok basit bir şekilde yapabilirsiniz.mantık ise 4 adet ledereden gelen ışık değerlerini lm324 ile karşılaştırp pic'in igili pinlerine girerek yapabilirsiniz...
verdiğin bilgiler için teşekkürler beyaz kuvvet...
Alıntı Yaplütfen konu ile ilgisi olmayan msjlar atmayın.birde kimseden hazır proje beklemeyin araştırın bir girişimde bulunun takıldığınız yerlerde yardım edelim..kolay gelsin..
hocam çok arştırdım ama programı tek bulabildim devresi yoktu oradada opamp ve ldr kullanımından bahs etmiş ama fazla detaylı bilgi yok,okulu bitirmem bu için yapmam şart.
saygılar....
Alıntı yapılan: çavuş - 23 Şubat 2008, 19:32:09
lütfen konu ile ilgisi olmayan msjlar atmayın.birde kimseden hazır proje beklemeyin araştırın bir girişimde bulunun takıldığınız yerlerde yardım edelim..kolay gelsin..
hocam çok arştırdım ama programı tek bulabildim devresi yoktu oradada opamp ve ldr kullanımından bahs etmiş ama fazla detaylı bilgi yok,okulu bitirmem bu için yapmam şart.
saygılar....
sen programını buraya koy yardımcı olurum şayet program basic ise...
hocam güneş(ışık) takipçisi programı bu...
list p=16F877
#include "P16F877.INC"
org 0x03
goto BASLA
DEPO1 EQU h'20'
DEPO2 EQU h'21'
STATUS EQU h'03'
PORTA EQU h'05'
PORTB EQU h'06'
PORTC EQU h'07'
TRISA EQU h'85'
TRISB EQU h'86'
TRISC EQU h'87'
ADCON1 EQU h'9F'
ADCON0 EQU h'1F'
BASLA CLRF PORTA
CLRF PORTB
CLRF PORTC
CLRF ADCON0
BSF STATUS,5
MOVLW h'06'
MOVWF ADCON1
MOVLW h'FF'
MOVWF TRISA
MOVLW h'00'
MOVWF TRISB
MOVWF TRISC
BCF STATUS,5
GERI1 BTFSC PORTA,0
GOTO ALT_MOT_S_TERS
GERI2 BTFSC PORTA,1
GOTO UST_MOT_S_YON
GERI3 BTFSC PORTA,2
GOTO UST_MOT_S_TERS
GERI4 BTFSC PORTA,3
GOTO ALT_MOT_S_YON
GOTO GERI1
ALT_MOT_S_TERS MOVLW h'09'
MOVWF PORTB
CALL DELAY
MOVLW h'05'
MOVWF PORTB
CALL DELAY
MOVLW h'06'
MOVWF PORTB
CALL DELAY
MOVLW h'0A'
MOVWF PORTB
CALL DELAY
GOTO GERI1
UST_MOT_S_YON MOVLW h'0A'
MOVWF PORTC
CALL DELAY
MOVLW h'06'
MOVWF PORTC
CALL DELAY
MOVLW h'05'
MOVWF PORTC
CALL DELAY
MOVLW h'09'
MOVWF PORTC
CALL DELAY
GOTO GERI2
UST_MOT_S_TERS MOVLW h'09'
MOVWF PORTC
CALL DELAY
MOVLW h'05'
MOVWF PORTC
CALL DELAY
MOVLW h'06'
MOVWF PORTC
CALL DELAY
MOVLW h'0A'
MOVWF PORTC
CALL DELAY
GOTO GERI3
ALT_MOT_S_YON MOVLW h'0A'
MOVWF PORTB
CALL DELAY
MOVLW h'06'
MOVWF PORTB
CALL DELAY
MOVLW h'05'
MOVWF PORTB
CALL DELAY
MOVLW h'09'
MOVWF PORTB
CALL DELAY
GOTO GERI4
DELAY MOVLW h'0C'
MOVWF DEPO1
DIS_DONGU MOVLW h'FF'
MOVWF DEPO2
IC_DONGU NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ DEPO2,1
GOTO IC_DONGU
DECFSZ DEPO1,1
GOTO DIS_DONGU
RETURN
END
hocam bu kod asm de yazılmış olduğu için size yardımcı olamayacağım ama uykusuz hocamın işi yok ise ona bir ö.m a belki o sana yardımcı olur çünki benim bildiğim o asm de kod yazıyordu...
Merhaba,
Pic'te dört adet giriş var. Sanırım karşılaştırıcıdan gelen bilgiler bu girişlere veriliyor. Girişler Porta 0, 1, 2, 3,.
Eğer porta,0 bir ise portb pinlerine sırasıyla 00001001, 00000110, 00000101, 00001010 bilgileri gönderiliyor.
Eğer porta,1 bir ise portc pinlerine sırasıyla 00001010, 00000110, 00000101, 00001001 bilgileri gönderiliyor.
Eğer porta,2 bir ise portc pinlerine sırasıyla 00001001, 00000110, 00000101, 00001010 bilgileri gönderiliyor.
Eğer porta,3 bir ise portb pinlerine sırasıyla 00001010, 00000110, 00000101, 00001001 bilgileri gönderiliyor.
Burada portb ve portc portlarının alt dört pinlerini kullanarak sanırım step motor kontrol etmeye çalışılmış. Ben daha önceden step motor kontrol etmediğimden sadece gönderilen bilgileri çıkardım. Daha önceden step motor kontrol etmiş arkadaşlar eğer kodlar doğru ise kodları hemen tarif edeceklerdir.
Devreyi ben size yazılıma göre şöyle açıklayayım:
Port a pinlerinizden 0, 1, 2, 4. pinleriniz giriş oluyor. Portb dinin alt dört biti bir motoru, portc pinlerinizin alt dört biti de ikinci motoru kontrol ediyor. porta,0 ve porta,3 pinleri birinci motorun sağa veya sola dönmesini, porta,1 ve porta,2 pinleri de ikinci motorun sağa veya sola dönmesini sağlıyor.
çok teşekkürler....
hocam peki ben devrede sadece 2 tane ldr yi karşılaştıracağım o zaman ne yapmam gerekir...
hocam bu step motor döndürmede pic16f84a nın programını bulabildim onu mplab da pic16f877 ye çevirdim ama bu sefer devre çalışmıyor.neden olabilir?
programı ekler misiniz inceleyelim
sorun yaşadığım program bu....
LIST P=16F84
#include "P16F84.INC"
__CONFIG _WDT_OFF &_XT_OSC &_PWRTE_ON &_CP_OFF
LSB EQU H'20'
MSB EQU H'21'
;**************
ORG 0X00
GOTO BASLA
;*******************
BEKLE
MOVLW .45
MOVWF LSB
DON1
MOVLW .95
MOVWF MSB
DON2
DECFSZ MSB,F
GOTO DON2
DECFSZ LSB,F
GOTO DON1
RETURN
;****************
BASLA
CLRF MSB
CLRF LSB
BSF STATUS,5
MOVLW B'11111111'
MOVWF TRISA
CLRF TRISB
BCF STATUS,5
CLRF PORTB
;********************************************
TEST
BTFSS PORTA,0
GOTO SAG
BTFSS PORTA,1
GOTO SOL
GOTO TEST
SOL
BTFSS PORTA,2
GOTO TEST
MOVLW B'11000110'
MOVWF PORTB
CALL BEKLE
MOVLW B'01000011'
MOVWF PORTB
CALL BEKLE
MOVLW B'01001001'
MOVWF PORTB
CALL BEKLE
MOVLW B'11001100'
MOVWF PORTB
CALL BEKLE
CLRF PORTB
BTFSS PORTA,0
GOTO SAG
GOTO SOL
;*******************************
SAG
BTFSS PORTA,2
GOTO TEST
MOVLW B'00110011'
MOVWF PORTB
CALL BEKLE
MOVLW B'00100110'
MOVWF PORTB
CALL BEKLE
MOVLW B'00101100'
MOVWF PORTB
CALL BEKLE
MOVLW B'00111001'
MOVWF PORTB
CALL BEKLE
CLRF PORTB
BTFSS PORTA,1
GOTO SOL
GOTO SAG
END
mplab'da 877'ye çevirdiğiniz programı ekleyin orada hatayı bulmak bu programı 877 ye çevirmekten daha kolay ;)
uykusuz hocam kusura bakmayın ama bu projeyi hala yapamadım onun için sizlerden daha büyük yardımlarınızı bekliyorum.sorunum:
pic16f877 nin porta uçlarının ilk iki ucu analog giriş olacak ldr lerden alınan bilgi bu iki uca gönderilip 16f877 nin içerisindeki opamplarla(veya başka opamplarla olabilir) bu iki biligi karşılaştırılacak ve çıkışa göre motorumuzu(step veya dc motor) sola veya sağa dönderecek.
biliyorum hocam sizlerde çok meşgulsünüz ama okulumdaki hocamdanda ümidim kalmayınca son çarem sizsiniz en azında elinizden geldiğince yardımcı olursanız sevinirim.
herkese teşekkürler projeyi bitirmeye az kaldı.
hocam projeyi paylaşıma verdim isis te çalışıyor ama bord un üzerini kurdum çalışmadı acaba ne hata yapmış olabilirim birde ben bordun üzerine kurduğumda UA741 entegresi kullandım LM324 kullanmadım.ama isis te UA741 ile de çalıştı acaba LM324 ü de deneyeyim mi.ama hocom bord un üzerine 4 kez kurup söktüm yinede olmadı.teşekkürler
not:proteus 7.2 SP2 ve üzeri çalıştırır
http://www.savefile.com/files/1487219 (http://www.savefile.com/files/1487219)
lm324 ile 741'in ayak bağlanıtıları farklı bunu biliyorsunuz değilmi acaba 741'in ayaklarını doğru bağladınızmı?
birde isiste bazen çalışan devreler realde çalışmaya biliyor..bunun sizin devrenize uyarlarsak şöyle söyleyebiliriz..741 ile lm324'ün akım kazançları farklı olabilir... ayaklarını ters bağlamış olabilirsiniz...bir diğer ince detay ise hangi pic'i kllanıyorsanız onun mclr ayağına 10k ile +5v a bağlamayı unutmanız olabilir...
yok 741 in ayaklarını doğru bağladığımdan çok çok eminim pic16f877 yi kullanıyorum mclr ucuna 1K bağlayıp +5 volt a verdim.lm324 üde bir denesem iyi olur heralde
heralde porta nın uçlarına yeterli miktarda gerilim gitmediği için step motor çalışmıyor UA741 yerine birde LM324 ü deneyeyim bakalım olacak mı.
tamam devre çalıştı LM324 ile gayet güzel çalışıyor.önceki sayfada paylaşıma vermiş olduğum devre doğru.yapacak olanlar onu indirip basit bir şekilde yapabilirler.
teşekkürler...