HC SR-04 Pic Kullanımı (CCS C) Bütün Detaylar

Başlatan dogukantuncr, 31 Aralık 2014, 04:41:46

mahmut_kmrs

öncelikle çalışma güzel elinize sağlık...bir ricam olacaktı ben grafik lcd ile çalışmaya çok yeni başladım...ekrana merhaba dünya yazdıran kodları bile bulamadım yardımcı olabilir misiniz...elimde pic16f877a ve TG12864B  lcd var.

Recep METE

https://320volt.com/pic-18f452-ile-sicaklik-nem-basinc-algilayici/


Arkadaşım bu size yardımcı olacaktır. İstediğiniz ekleme ve çıkartmaları yaparak sonuca ulaşırsınız.
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

bbs2006

merhaba
bu snesör devresinde anlamdıgım bir yer var. ilk while ifadesinde  echo pini için 1 olması için bekle anlamıvar açıklamalarda (ancak benim bildiğim ocho pini 0 ise parantez işlemini yap  anlamında) ben bu kısmı anlamadım. aynı şekilde ikinci while ifadesindede tam tersi oluyor. bunu bir açıklayabilrseniz sevinirim. mesafe ölçme işlemi yaptıracam

while(!input(echo))                     
{}
set_timer1(0);                         
while(input(echo))                     
{}


baran123

Bildiğim kadarıyla başında ünlem işareti olduğundan "echo 1 değilse" anamına geliyor.Aşşağadaki komutta ise "echo 1 ise" parametre true döndürürse
fonksiyon işleniyor.

bahadır

Hocam ellerine sağlık. Uygulamayı bende farklı lcd de deneyeceğim. Bitirdikten sonra buraya eklerim.
belki bir gün

omereliusuk

Devrenin çalışması için iki mikrodenetleyici pini gereklidir. İşlemci olarak mümkün mertebe 16mhz (pic için 64mhz/4=16mips)hızda çalışabilen bir işlemci olması mesafeyi daha net hesaplayabilmek için önem arz etmektedir.
Bu blogda pic16f628a işlemcinin pin_a0 ve pin_b0 (interrupt) pinleri kullanılmış ayrıca timer0 sayacı ölçümde 100us ta bir kesime götürülmüş ve hesaplama işlemleri timer0 ın değerine göre yapılmıştır. İşlemci 4mhz dahili osc ile çalıştırılmıştır.
Ultrasonik sensör olara HC-SR04 modülü kullanılmıştır.

trigger pini pin a0

echo pini pin_b0 olarak tayin edilmiştir.

kodları direkt kopyala yapıştır yapabilirsiniz.
#include <16F628A.h>
#fuses nomclr,nowdt
#use delay(internal=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8,stream=PORT1)//seri port işlemleri
#define sensor_baslasin 0
#define sensor_okuyor   1
#define sensor_okudu    2

#define sonar pin_a0
int16 mesafe=0;
int islem_tamam=0;
#INT_EXT
void  EXT_isr(void)
{
if(input(pin_b0))
    {
        ext_int_edge(h_to_l);
        mesafe=0;
        enable_interrupts(int_timer0);set_timer0(219);
    }
    else
    {
        ext_int_edge(l_to_h);
        disable_interrupts(int_timer0);
        islem_tamam=sensor_okudu;
    }
}

#INT_RDA
void  RDA_isr(void)
{

}

#INT_TIMER0
void  TIMER0_isr(void)
{
mesafe++;
set_timer0(212);
}

void main()
{
    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1|RTCC_8_bit);        //256 us overflow  
    enable_interrupts(INT_EXT);     
    disable_interrupts(INT_RDA);
    disable_interrupts(INT_TIMER0);
    enable_interrupts(GLOBAL);
    delay_ms(1000);
    printf("timer0 verisi=omer eliusuk\r\n");
    ext_int_edge(l_to_h);
while(TRUE)
    {
        //TODO: User Code
        if(islem_tamam==sensor_baslasin)
            {
                output_high(sonar);output_high(pin_a2);
                delay_us(10);
                islem_tamam=sensor_okuyor;
                output_low(sonar);output_low(pin_a2);
            }
        if(islem_tamam==sensor_okudu)
            {
                output_high(pin_a3);
                printf("HC-SR04 SENSOR\tmesafe:%3.2fcm\r\n",((float)(mesafe*100)/58));
                islem_tamam=0;
                output_low(pin_a3);
            }
        delay_ms(1000);
    }
          
}

kerimaysenur

ben bu konuda biraz acemiyim de bu devreye voltajı nasıl vereceğin anlatabilir misiniz

brctfrl

merhaba. Ben de bu projeye benzer bir şey yapmak istiyorum. Ama ilave olarak istediğim bir keypad kullanarak sınır koşulu belirlemek. Kullanıcı sınır koşulunu yani o if bloğu içine bizim yazdığımız değeri kendi belirlesin istiyorum. sonra da  o sınır değerine ulaşınca led yakmak istiyorum. Yardımcı olursanız çok sevinirim.

kuylus