Picproje Elektronik Sitesi

DERLEYİCİLER => MikroC - PIC => Konuyu başlatan: valaa6 - 10 Mart 2013, 21:06:16

Başlık: Mikroc 16f628a ile ultrasonic sensör kullanımı yardım.
Gönderen: valaa6 - 10 Mart 2013, 21:06:16
Merhabalar arkadaşlar,
Mikroc üzerine ultrasonic sensör ile yapılmış tek bir paylaşım bulabildim, bu da 16f877a ile. Ben bunu 16f628 de yapmak istiyorum; fakat fazla bir bilgim olmadığı için gerçekte çalıştıramadım. Tahminime göre ADC den kaynaklanıyor çalışmaması; ama ADC hakkınde pek bir bilgim yok.
Aşağıda ki kodda pic in yapmasını istediğim
10cm den yakınsa cisim led sönsün portb.b0=0, 10cm den uzaksa led yansın portb.b0=1, yardımcı olursanız çok sevinirim.




unsigned int distance,time;
sbit trig at RA0_bit;
sbit ECHO at RA1_bit;

void main() {
TRISB = 0;
TRISA =0xff;
porta=0;
portb=0;

T1CON = 0b10000001;

while(1){
trig=1;
delay_us(15);
trig=0;
while(!(ECHO) ){
TMR1L = 0;
TMR1H = 0;
}
while(ECHO){
time = TMR1H;
time = time <=10){
portb.b0=1;
}
else if(distance<=9){
portb.b0=0;
}

delay_ms(100);

}
}
Başlık: Ynt: Mikroc 16f628a ile ultrasonic sensör kullanımı yardım.
Gönderen: Mr.Java - 10 Mart 2013, 22:48:01

extern sfr Distance_Sensor_SignalPin;
extern sfr Distance_Sensor_SignalPin_Direction;


void __Init_Distance_Sensor__()
{
Distance_Sensor_SignalPin_Direction=1;
}

unsigned int __Read_Distance__()
{
unsigned int Timer;
Timer=0;
Distance_Sensor_SignalPin_Direction=0;
Distance_Sensor_SignalPin=0;
delay_us(5);
Distance_Sensor_SignalPin=1;
delay_us(10);
Distance_Sensor_SignalPin=0;
Distance_Sensor_SignalPin_Direction=1;
while(!Distance_Sensor_SignalPin);
while(Distance_Sensor_SignalPin)Timer++;
delay_ms(50);
return Timer;

void main(void)
{}
}
Başlık: Ynt: Mikroc 16f628a ile ultrasonic sensör kullanımı yardım.
Gönderen: valaa6 - 11 Mart 2013, 00:25:43
Üstadım Allah razı olsun paylaşım için; ama özür dileyerek soracağım; main içersine kendi paylaştığım kodu mu yazacağım? Bu şekilde denedim hata veriyor, anlayamadım.
Başlık: Ynt: Mikroc 16f628a ile ultrasonic sensör kullanımı yardım.
Gönderen: Mr.Java - 11 Mart 2013, 00:58:06
Bu senin ultrasonicten veri okuman için kullanacağın fonksiyon.Void main içerisinde çağırıp kullanacaksın artık ne yapmak istiyorsan lcd fonksiyonu yazip void main içerisinde nasıl lcd_init(); diyorsan bunda da void main ana program döngüsünde __Read_Distance__() diyip yapmak istediğini yapacaksın.