Devreye uygun bir başlık oldu pic16f877 ile 2×16 lcd göstergeli basit bir voltmetre ya da vumetre devresi yapabilirsiniz sistem neredeyse aynı yazılım picbasic ile hazırlanmış lcd, pic ve bir kaç pasif eleman ile devre kuruluyor.
Uygulamanın oluşturulması çok basittir: temsil etmek istediğiniz büyüklüğün ölçümlerini yapabilmek için analog girişi olan herhangi bir mikrodenetleyici ile yapılır. Her zaman farklı olan, mikrodenetleyicinin girişinden önceki aşama olacaktır, ancak nihai amaç, görüntülenecek verileri 0 ile 5 Volt arasında bir sapmaya sahip bir değişkene dönüştürmektir. Her zaman olduğu gibi mikrodenetleyiciyi korumak için girişte 5.1 Volt veya 5.6 Volt zener diyot kullanmanızı öneririz.
Geliştirmeyi basit bir voltaj göstergesi olarak kullanmak istiyorsanız, seviyeleri seçilen mikrodenetleyici tarafından desteklenenlere uyarlamak için bir giriş dirençli bölücü yapmak yeterli olacaktır. Değerlendirilecek büyüklük başka ise (sıcaklık, akım, RF sinyali vb.), o enerjiyi 0 ile 5 Volt arasında değişken bir voltaja dönüştürebilen bir devre eklemelisiniz.
Olasılık yelpazesi olası tüm uygulamaları kapsamayacak kadar geniş olduğundan, yapınızın ihtiyaçlarına göre en uygun giriş arayüzünü seçmelisiniz. Ardından, istediğiniz kadar karakter olabilen alfanümerik bir ekrana ve elbette geliştirmek istediğiniz devreye göre bir güç kaynağına basit bir dört bitlik bağlantı gerekir.
Kullanılacak PIC’i ve ilgili kristalini tanımlıyoruz; daha sonra LCD bağlantısı, analog-dijital dönüştürücünün çalışma parametreleri ve program içerisinde kullanacağımız değişkenler. Buraya kadar her şey çok klasik. Listelemede görebildiğimiz “farklı” komutlar PRINT $FE ve PRINT $0 yönergeleri ile başlamaktadır. Bir YAZDIR komutunun ardından bir konum göstergesi gelmediğinde, LCD’ye doğrudan bir komut haline gelir. PRINT $FE özel durumunda, ekranda yanıp sönen bir imleç (aralıklı görüş) ile gerçekleştirmeye çalıştığımız herhangi bir etkinliği ifade eder.
Örneğin, PRINT $FE, 1, CLS (ekranı temizle) ifadesine eşdeğer olacaktır; PRINT $FE, $0E, ekrandaki her karakterin altında yanıp sönen bir imlecin (alt çizgiye öykünerek) görüneceği anlamına gelir. Bunlar gibi, tüm özel PRINT $FE komutları derleyicilerin (bu durumda Proton Lite) yardımıyla iyi bir şekilde açıklanmıştır. Öte yandan PRINT $0, doğrudan ekranın CGRAM’ına yazacağımızı belirtirken, talimatın sonundaki $0 sonlandırma, gönderilen veri dizisini sonlandırma (NULL) işlevini yerine getirir. Bu komutlar içerisinde REP c/n bize c karakterini ekrana n kez göndereceğimizi söyler.
Ölçüm döngüsü içinde yapacağımız şey, 0 ile 5 Volt arasında bir gezintiye sahip olacak ve PIC içinde 0 ile 1023 arasında bir sayısal değer alacak olan seçilen analog girişteki mevcut değeri almaktır. Doğru dönüşüm için aşağıdaki matematiksel hesaplamayı kullanmalıyız:
VERİ = (VERİ * 500)/1024
500 ile çarpma işlemini yaparken bir WORD değişkeninin kapasitesini bırakıyor olacağımızdan Proton’un bize sunduğu matematiksel işlemi “*/” (Multiply Middle Operator) kullanarak her zaman değişkenin boyut limiti içinde kalacağız. . Buna göre, ifadenin sonucu aşağıdaki gibidir:
VERİ = (VERİ */ 500) >> 2
Bu şekilde, kesirlerle çalışmak tek bir komutta kısaltılır ve kullanılan BYTE miktarında değerli yer kaplayacak ve bazen israf etmeyi göze alamayız.
Ardından SAMPLE değişkeninin içine LCD’mizin kaplayacağı segment sayısını giriyoruz. 16 karakter olması durumunda 48 olacaktır. Bu nedenle, elde edilen örneğin 3’e bölünmesiyle elde edilen sonucun TAM karakter sayısı (üç segmentli) ortaya çıkarken, PARTIAL değişkenini işgal eden sonuçlar kalan sıfıra eşit bir bölüm elde etmeyenler. Bu, Basic’te “MODULUS //” işlemi olarak bilinir. Burada iki ve bir tek segmenti olan karakterler girecektir. Son olarak PAD değişkenine sığacak kadar boşluk bırakarak gösterimi tamamlıyoruz. Satırın baskısını birleştirirken, tam karakterleri tekrarlayarak yerleştiriyoruz (REP $03\COMPLETOS); sonra KISMİ gelir, bu her zaman yalnızca bir olur (ya bir parça ya da iki); ve son olarak satırın sonuna kadar PAD (boş alanlar) tekrarı gelir.
Bu, Basic’te (Proton) bir seviye gösterge çubuğu oluşturmanın birçok olası yolundan biri olacaktır. Böylece, bir ses vumetresi, bir su seviyesi göstergesi, radyo sinyallerinin yoğunluğunu ölçen bir alet, bir voltmetre ve hislerin soğuk sayısal bilgilere üstün geldiği dinamik bir ölçüm aleti gerektiren her şeyi bir araya getirebiliriz.
Kaynak: pic16f877-lcd
Şifre-Pass: 320volt.com
Yayım tarihi: 2010/07/10 Etiketler: lcd volt metre, lcd vumetre, microchip pic projeleri, PIC16F877 örnekleri
3 özel karakter tanımla.
ADC’den genliği oku.
Ona göre LCD’ye bas.
Oldukça kolay..
Selam
bu devrenin hex dosyasını buraya yüklermisiniz . yardım edecek arkadaşlardan şimdiden teşekkürler …
Güzel projeymiş. Görseldeki kodu proton basic ile derledim ama denemedim. Osman usta, isiste veya gerçekte kontrol edilmesi lazım. Deneyip durumu bildirisiniz. İyi çalışmalar.
Hex dosyası: ADC-HEX.zip