Şimdi Ara

Pic kontrollü LCD li voltmetre

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
21
Cevap
0
Favori
5.668
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 12
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • arkadaşlar kendime güç kaynağı yaptım fakat bunun güç bilgilerini 2 satır lcd ekranda görmek istiyorum 4 kanal şeklinde normal devresini şemasını kodlarını buldum fakat istediğim gibi değil benim istediğim lcd satırlarında istediğim yazının yazmasını istiyorum yardımcı olabilicek varsa çok sevinirim.

    DEVICE 16F877  

    Declare XTAL 4
    'OSILATOR FRKANSI 4MHz OLARAK BELIRLENIR

    'ADC PORTU TANIMLAMALARI
    'DEFINE ADC_BITS 10 ' adc cozunurugu
    'DEFINE ADC_CLOCK 3 ' saat kaynagi (rc = 3)
    'DEFINE ADC_SAMPLEUS 50 ' ornekleme zamani us

    '2x16 LCD icin ayarlar tanimlanir
    '4 bit baglanti
    Declare LCD_DTPIN PortD.4
    Declare LCD_RSPIN PortD.1
    Declare LCD_ENPIN PortD.0
    Declare LCD_INTERFACE 4
    Declare LCD_LINES 2

    'ADC icin tanimlamalar
    Declare ADIN_RES 10
    Declare ADIN_TAD FRC
    Declare ADIN_STIME 100

    'EKRANA YAZDIRILACAK ADC DEGISKENLERI TANIMLANIR
    DIM ADC_KANAL1 AS FLOAT
    DIM ADC_KANAL2 AS FLOAT
    DIM ADC_KANAL3 AS FLOAT
    DIM ADC_KANAL4 AS FLOAT

    'ISLEMLER ICIN GEREKLI GECICI DEGISKENLER TANIMLANIR
    DIM TEMP1 AS BYTE
    DIM W1 AS WORD
    DIM W2 AS FLOAT

    'OLCUM VOLTAJI
    DIM OLCUM_VOLTAJI AS 50 '*** ölçülecek maksimum giriş gerilimini buradan belirleyin

    DIM ADC_ORNEKSAYISI AS 100

    GOTO RESET_VECTOR

    ;********************************************************************
    PRJ_LOOP:
    ASM
    NOP
    NOP
    CLRWDT
    NOP
    NOP
    ENDASM
    call adc_oku
    DELAYMS 1
    GOTO PRJ_LOOP

    ;********************************************************************
    'BU BOLUMDE ISLEMCININ BASLANGIC AYARLARI YAPILIR
    RESET_VECTOR:
    ASM
    BCF INTCON,GIE
    BTFSC INTCON,GIE
    GOTO RESET_VECTOR
    ENDASM

    ;ENERJI HATLARINDAKI PARAZITIK ETKI ICIN ACILIS GECIKMESI
    PAUSE 1000


    OPTION_REG = %00000001 ' Enable PORTB pullups
    TRISA=%00111111
    ADCON1 = %10000010 ' Set PORTA analog and right
    INTCON=%00100000
    LCDOUT $FE, 1 ;lcd temizlenir

    TEMP1=ADC_ORNEKSAYISI
    ADC_KANAL1=0
    ADC_KANAL2=0
    ADC_KANAL3=0
    ADC_KANAL4=0

    GOTO PRJ_LOOP

    ;********************************************************************
    ADC_OKU:
    'ORNEKLER ALINIR VE ORTALAMA DEGER HESAPLANIR
    'BU EN DOGRU DEGERI YAKALAK VE
    'ADC GORUNTULEME HIZINI YAVASLATMAK ICINDIR

    ADC_OKU_1:
    ADCIN 0,W1
    ADC_KANAL1=ADC_KANAL1+W1

    ADCIN 1,W1
    ADC_KANAL2=ADC_KANAL2+W1

    ADCIN 2,W1
    ADC_KANAL3=ADC_KANAL3+W1

    ADCIN 3,W1
    ADC_KANAL4=ADC_KANAL4+W1
    TEMP1=TEMP1-1
    IF TEMP1>0 THEN RETURN

    ADC_KANAL1=ADC_KANAL1/ADC_ORNEKSAYISI
    ADC_KANAL2=ADC_KANAL2/ADC_ORNEKSAYISI
    ADC_KANAL3=ADC_KANAL3/ADC_ORNEKSAYISI
    ADC_KANAL4=ADC_KANAL4/ADC_ORNEKSAYISI

    W2=OLCUM_VOLTAJI
    W2=W2/1023
    ADC_KANAL1=ADC_KANAL1*W2
    ADC_KANAL2=ADC_KANAL2*W2
    ADC_KANAL3=ADC_KANAL3*W2
    ADC_KANAL4=ADC_KANAL4*W2

    CALL EKRANI_YAZ

    TEMP1=ADC_ORNEKSAYISI
    ADC_KANAL1=0
    ADC_KANAL2=0
    ADC_KANAL3=0
    ADC_KANAL4=0

    RETURN
    ;********************************************************************
    EKRANI_YAZ:

    'LCDOUT $FE, 1:DELAYMS 30 'LCD CLS
    CLS 'VEYA BU KOMUTTA KULLANILABILIR 30ms

    IF PORTB.0=0 THEN
    LCDOUT $FE, $80 'BIRINCI SATIR BASI
    LCDOUT "1=", DEC1 ADC_KANAL1,"V"
    ENDIF

    IF PORTB.1=0 THEN
    LCDOUT $FE,$88
    LCDOUT "2=",DEC1 ADC_KANAL2,"V"
    ENDIF

    IF PORTB.2=0 THEN
    LCDOUT $FE, $C0 'IKINCI SATIR BASI
    LCDOUT "3=",DEC1 ADC_KANAL3,"V"
    ENDIF

    IF PORTB.3=0 THEN
    LCDOUT $FE,$C8
    LCDOUT "4=",DEC1 ADC_KANAL4,"V"
    ENDIF

    RETURN

    END




    eproje sitesinden buldum

    http://www.eproje.com/modules.php?name=Content&pa=showpage&pid=36







  • Merhaba arkadaşım tam olarak LCD ekranda hangi bilgiyi görmek istiyorsun?

    Bu devrede LCD ekranda örnek 1=12V 2=5V 3=3V 4=9V gibi 4 kanalın çıkış voltajları okunur.
  • Merhaba,
    İlginize teşekkür ederim evet bu bilgileri görebiliyorum fakat 2 kanala düşürüp üst satıra yazı eklemek istiyorum birde voltaj ölçmeyi flaşör gibi yapıyor ekranda onun sürekli olmasını istiyorum ve birinci kanala şöyle yazı eklemek istiyorum örnek olarak, pil voltajı giriş voltajı gibi yazılar eklemek istiyorum veya bir buton yardımı ile 4 kanal ı ayrı ayrı görebilsemde olur her kanal ayrı bir ekran olabilir mesela butona basıcam 1. ölçüm değeri ve yazmasını istediğim bilgiler butona tekrar basıcam 2. ölçüm değeri vs..
    pic yazma konusunda bilgim yok ancak hazır devreyi kurabiliyorum



    < Bu mesaj bu kişi tarafından değiştirildi cturna -- 15 Mart 2009; 15:09:34 >
  •  Pic kontrollü LCD li voltmetre



    çalışırlığını bilmiyorum ısıs ta çalışıyor



    '****************************************************************
    '* Name : UNTITLED.BAS *
    '* Author : [select VIEW...EDITOR OPTIONS] *
    '* Notice : Copyright (c) 2009 [select VIEW...EDITOR OPTIONS] *
    '* : All Rights Reserved *
    '* Date : 15.03.2009 *
    '* Version : 1.0 *
    '* Notes : *
    '* : *
    '****************************************************************
    ' PicBasic Pro program to display result of
    ' 8-bit A/D conversion on LCD
    '
    ' Connect analog input to channel-0 (RA0)

    ' Define LCD registers and bits
    Define LCD_DREG PORTD
    Define LCD_DBIT 4
    Define LCD_RSREG PORTE
    Define LCD_RSBIT 0
    Define LCD_EREG PORTE
    Define LCD_EBIT 1

    ' Define ADCIN parameters
    Define ADC_BITS 8 ' Set number of bits in result
    Define ADC_CLOCK 3 ' Set clock source (3=rc)
    Define ADC_SAMPLEUS 50 ' Set sampling time in uS

    adval var word ' Create adval to store result


    TRISA = %11111111 ' Set PORTA to all input
    ADCON1 = %00000010 ' Set PORTA analog
    Low PORTE.2 ' LCD R/W line low (W)

    Pause 500 ' Wait .5 second

    loop: ADCIN 0, adval ' Read channel 0 to adval

    Lcdout $fe, 1 ' Clear LCD
    Lcdout "Value: ", DEC adval ' Display the decimal value


    Pause 100 ' Wait .1 second

    Goto loop ' Do it forever
    End




  • Pic programlamak için hangi derleyici programı kullanıyorsunuz? Yoksa devrenin hex dosyasınıda hazır olarak yüklediniz?
    program dosyasında değişiklikleri yapıp derleyebilgiğinizi varsayarak şu şekilde açıklayayım.

    1- LCD ye yazı yazdırma işlemi programın sonundaki "EKRANI_YAZ:" bölümünde gerçekleşiyor.

    2- Ölçüm değerinin ekranda flaşör yapması programın ekranı temizleme işleninden kaynaklanıyor olabilir.

    'LCDOUT $FE, 1:DELAYMS 30 'LCD CLS
    CLS 'VEYA BU KOMUTTA KULLANILABILIR 30ms

    Burada ekranı temizleme için 30ms süre verilmiş. sadece LCDOUT $FE, 1 komutunu kullanıp bir deneyin veya süreyi 20ms yapın.

    3- Ekrana yazdırmak istediğiniz yazıya gelince:

    Devrede her kanal için bir anahtar konulmuş ve hangi kanallar seçili ise o kanalın voltajının ekrana gelmesi sağlanıyor.

    IF PORTB.0=0 THEN
    IF PORTB.1=0 THEN
    IF PORTB.2=0 THEN
    IF PORTB.3=0 THEN

    bu işe yarıyor.

    Yazdırmak istediğinin yazının ekranın hangi satıra denk gelmesini istiyorsanız bu değerler ile oynayın $80 değerini 1. sıra $C0 2. sıra başıdır. Yüksettikce yazının başlangıç sırası değişir.

    LCDOUT $FE, $80 'BIRINCI SATIR BASI .PİL-VOLTAJI
    LCDOUT $FE, $81 'BIRINCI SATIR İKİNCİ SIRA . PİL-VOLTAJI
    LCDOUT $FE, $82 'BIRINCI SATIR ÜÇÜNCÜ SIRA . PİL-VOLTAJI

    LCDOUT $FE, $C0 'IKINCI SATIR BASI .CIKIS-VOLTAJI
    LCDOUT $FE, $C1 'IKINCI SATIR İKİNCİ SIRA . CIKIS-VOLTAJI
    LCDOUT $FE, $C2 'IKINCI SATIR ÜÇÜNCÜ SIRA . CIKIS-VOLTAJI

    Ekrana yazdırmak istediğiniz sabit yazıyı yazmanız gereken yer tırnak içindeki bölümdür "1=" . Burada 1= yerine uygun uzunlukda türkçe olmayan büyük veya küçük kelime yazabilirsiniz. Tabi türkçe de yazdırabilirsiniz ama programa eklemeniz gerekir. Bu daha sonraki aşama olsun...

    LCDOUT "1=", DEC1 ADC_KANAL1,"V"

    Programın ölçmüş olduğu değişken ise DEC1 ADC_KANAL1 bu sizin programda değiştirmemeniz gerekiyor.
    Son olarak ölçülen değerin birimi gösteren harfin yazıldı yer ise "V" dir. Yine burada tırnak içindeki yere istediğinizi yazabilir. Örnek "V" verine "Volt" yazılabilir.




  • ilginize teşekkür ederim deniycem fakat bişey i çözmem gerekiyor en kolay şekilde derleyip hex dosyasına hangi program ile getirebilirim ?

    proton ide die bir program indirdim onunla bu kodları oynıyabiliyorum fakat hex dosyasına nasıl ceviricem bilmiyorum
  • sol kösedeki yıldıza basacan
    compile yazar

    benim gönderdiğim sadece volt ölçen devre

    microcode ile yazabilirsin value yazan yere istediğini yaza bilirsin
  • Yapay Zeka’dan İlgili Konular
    220v ile ldr li devre yardım
    17 yıl önce açıldı
    Daha Fazla Göster
  • verdiğin sitedeki program düzgün çalışmıyor ne volt verirsen ver 49,9 gözteriyor siz iyice kontrol ettinizmi
  • hayır tam olarak kontrol etmedim isis de 50 volt verilmiş voltaj değiştirdiğinizde değişme olmuyormu ?
  • ben 12 volt veriyom yine aynı gösteriyor
    batteri den istedim voltu veriyom hep aynı

    benim vediğim devreyi kur ısısa 220v yver gene doğru olcuyor tabiki ısısta denedim devreyi yapmadım programda doğru çalıştırıyor


    adc 8 bit.bas dosyasını kullandım pbp indirirsen için de hazır yazılmış kod var zaten istediğin gibi de değişt

    rebiliyorsun
  • compile etmek için programları indiriyorum 30 dk içinde deniycem çok saol
  • bir türlü compile edemiyorum nasıl hex dosyasına cevirecez microcode studio da?
  • Project menüsü içinde Compile ile yapılıyor. Kısayolu F9. Tabi önce kaydet ile projeyi kaydediyorsun.
  • folder serch diyor yahu :(
  • compile yaptıktan sonra biraz bek le seach folder der o vbekle otomatik arama başlaması lazım

    pbp dosyasını c:\ ye kopyala sonra

    wiev den compile and programs option aç oradan oradan manuel yada otomatik bul de sonra işlemin tamam olur
    kolay gelsin
  • tamamda .bas olarak yapabiliyorum hex olarak nasıl yapıcam :(
  • f9 a basıncamı bas olarak yapıyor

    sol üst tarafta compile only var ona tıkla hex yapmak zorunda kaydet tiğin yere .pbp .hex .mac .asm olarak kaydeder iyi bak oralara
  • microcode studio yüklü sadece ve sürekli .pbc yapıyor veya bas yapıyor başka bir program yüklememgerekiyormu acaba
  • http://www.4shared.com/file/93556901/bacdc9c5/pbpdemo.html


    bu adresse upload ettim oradan indirip kurun siz sanırım sadece micro codeyi kurmuşsunuz önemli olan pic basic pro indirin kurun olacaktır

    gönderdiğim demo işinizi görecektir
  •  Pic kontrollü LCD li voltmetre



    Define LCD_DREG PORTD
    Define LCD_DBIT 4
    Define LCD_RSREG PORTE
    Define LCD_RSBIT 0
    Define LCD_EREG PORTE
    Define LCD_EBIT 1

    ' Define ADCIN parameters
    Define ADC_BITS 10 ' Set number of bits in result
    Define ADC_CLOCK 3 ' Set clock source (3=rc)
    Define ADC_SAMPLEUS 50 ' Set sampling time in uS

    adval var word ' Create adval to store result
    b0 var word
    b1 var word
    TRISA = %11111111 ' Set PORTA to all input
    ADCON1 = %00000010 ' Set PORTA analog
    Low PORTE.2 ' LCD R/W line low (W)

    Pauseus 500 ' Wait .5 second

    loop: ADCIN 0, adval ' Read channel 0 to adval

    b0=adval/100
    b1=adval//100


    Lcdout $fe, 1 ' Clear LCD
    Lcdout "Sonuc: ", #b0,".",#b1 ' Display the decimal value

    Pause 100 ' Wait .1 second

    Goto loop ' Do it forever
    End









    direnc değerleri ile oynayarak net bir ölçüm ayarı yapılabiliyor


    bu devrede ben 0,5v ile 654v denedim sonucu gördüm tabiki ısısta

    mili volt için b0=adval/100 b1=adval//100 yazmısım onları bir buton komutu ile seceneklere AYIRABİLİRSİN




  • 
Sayfa: 12
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.