hazır güç kaynağına LCD display yapmak

Başlatan sekoli, 31 Ekim 2008, 11:05:28

sekoli

Selamlar,

Bundan 1 yıl kadar önce satın aldığım 0-15v ayarlı güç kaynağıma voltajı gösteren bir LCD display eklemek istiyorum. Hazır devre linki verebilecek arkadaşlar varsa sevinirim, kendim yapacak bilgim yok maalesef.

sebo

sadece çıkıştaki voltajı görmek istiyorsan lcd yerine displey de kullanabilirsin. ICL 7107 işini görebilir.

berkay_yalan

Alıntı yapılan: "sebo"sadece çıkıştaki voltajı görmek istiyorsan lcd yerine displey de kullanabilirsin. ICL 7107 işini görebilir.

fakat güç kaynağı yüke bindiğinde uçları arasındaki gerilim değeri voltmetreyi, voltmetre ise kullanıcıyı yanıltabilir.

Bu şekilde olduğunu varsayarsak önce voltajı ayarlayıp sonra yükü bağlaması gerekir. Bu da tamamen amatörce olur.

Profesyonel bir şekilde olmasını istiyorsa tasarımı mikrodenetleyici ile baştan yapması gerekir.

sekoli

Esasında cok hassas bir ölçüme gerek yok, ama ilave olarak bide ampermetre olsa iyi olurdu. Fakat başlangıç için voltajı göstermekle yetineyim.


sebo

Alıntı yapılan: "berkay_yalan"
Alıntı yapılan: "sebo"sadece çıkıştaki voltajı görmek istiyorsan lcd yerine displey de kullanabilirsin. ICL 7107 işini görebilir.

fakat güç kaynağı yüke bindiğinde uçları arasındaki gerilim değeri voltmetreyi, voltmetre ise kullanıcıyı yanıltabilir.

Bu şekilde olduğunu varsayarsak önce voltajı ayarlayıp sonra yükü bağlaması gerekir. Bu da tamamen amatörce olur.

Profesyonel bir şekilde olmasını istiyorsa tasarımı mikrodenetleyici ile baştan yapması gerekir.

öncelikle ben bir profesyonel değil bir amatörüm o yüzden soruyorum.
@berkay_yalan ustam voltmetreler nerdeki gerilimi ölçüyor? benim şimdiye kadar gördüğüm bildiğim hep çıkıştaki voltajı ölçüyorlardı. ben çıkıştaki voltajı şimdiye kadar voltmetre ile ölçüp çalışıyordum demekki yıllardır hata yapıyormuşum.  ben voltmetrede gördüğüm değere göre hareket etmek ile hatamı yapıyorum acaba?

güç kaynağını önce ayarlamak sonra ayarlamak bunlarmı profesyonelliği etkileyen şeyler. ben şimdi bir güç kaynağı alsam mikrolu lcd li mavi ışıklı olanlarından yatsam sabah kalktığımda bende bir profesyonel olurmuyum? bu durum işyerimdeki maaşımı etkilermi?

ipek

profesyonel güc kaynaklarında cıkış 4 terminallidir atıyorum 1.5metrelik bir pozitif kablonuz var buna paralel bir o kadarda referans kablonuz vardır kablo üzerinde düşen gerilim bir geri besleme ile sürekli olarak düzeltilir onu'mu demek istedi acep...???

timpati

kendin yapamıyorsun, hazır olarak al o zaman. 8 YTL'ye minik, LCD'li voltmetre-paneller var piyasada.

bu arada, o mikroişlemcili kısım beni de irkiltti (türkçe bilmeyenler için "irrite etti" diyeyim bari). ne yani, mikroişlemci diye bir şey icat edilmeden önce güç kaynağı yok muydu? olanların hepsi amatörce miydi? çeşitli sitelerde görüyorum, pic programlama yapıp da çıkışlarıyla bir röleyi nasıl süreceğini soranlar var.
why mr. anderson, why ?

sekoli

Aslında elektronik bilgim çok az, ama biraz yardımla yapabilirim sanırım. Asıl amacım birşeyler öğrenmek, o yüzden hazırını almak istemedim. Zaten güç kaynağım işini görüyor, sadece biraz boş vaktim var ve hobi masamdaki güç kaynağıma bir güzellik yapayım demiştim.

Dün gece türk ve yabancı siteleri inceledim. Tahminimce zor olmayacak. Denemelerimi buraya yazmak istiyorum eğer üstadlarım yardımcı olacaklarsa.

Bazı sorularım sizlere saçma yada basit gelebilir, o yüzden lütfen mazur görün.

timpati

Alıntı yapılan: "sekoli"...
Bazı sorularım sizlere saçma yada basit gelebilir, o yüzden lütfen mazur görün.

ortada özür falan yok ki mazur görelim; bilakis memnun oluruz efeem.  :D
zaten bunun için burdayız, hevesli herkes yardım alacağından emin olabilir. bilenler bildiğince, bilmeyenler sorularıyla, daha sonra sorunlarıyla en sonra da çözümleriyle...paylaşmak için burdayız.
why mr. anderson, why ?

sekoli

Tekrar Merhaba,

Biraz inceleme ve araştırma sonucu LCD display ve ADC kullanımını da ana hatları ile öğrenmiş oldum. Evdeki 15V luk güç kaynağıma yapacağım devreyi ISIS te simüle ettim. Önce devreyi 16f628 ile yaparım demiştim fakat ADC olmadığını öğrenince 16f88 i seçtim.
Ayrca devreyi LCD değil de 7 segment lerle yaparsam daha güzel olacağını düşündüm.
Malzemelerin siparişini verdim, devreyi değiştirdiğim zaman buraya yine koyarım.
Ustalarımın tavsiyelerini bekliyorum. Eğer devrede yada kodda eksik yada gereksiz yerler varsa söylerseniz sevinirim.



#include <htc.h>
#include <stdio.h>
#include <stdlib.h>
#include "delay.h"
#include "lcd.h"

__CONFIG(0x3f10);

unsigned char str[16]="";
unsigned int carpan = 3;
float volt;

float read_adc(void)
{
    unsigned int val;
	
    GODONE = 1;      
    while(GODONE==1);  
	
    val = ADRESL;
    val += ((unsigned int)ADRESH * 256);
	
    return (5./1023) * val;	
}


void
main(void)
{
	//TODO Auto-generated main function
	OSCCON = 0b01110000;
	CMCON = 0b00000111;
	TRISA = 0b00000001;
	TRISB = 0x00;
	ADCON1 = 0b10000000; 
	ADCON0 = 0b00000001; 
	ANSEL  = 0b00000001; 
	
	lcd_init(FOURBIT_MODE);
	DelayMs(250);
	
	while (1)
	{
		volt = read_adc();
		volt = volt * carpan;
		lcd_clear();
		sprintf(str, "V= %2.1f", volt);
		lcd_puts(str);
		DelayMs(250);
	}
}

JKramer

Ekranın tamamını bu kadar sık yenilediğinizde dalgalanma olmuyor mu? Öyleyse çözüm olarak; ölçülen volt değeri, önceki ölçülen değerle aynıysa ekrana yazmasın.

sekoli

Aslında yapıyor, ama üzerinde durmadım , çünkü vakit bulunca LCD yerine 7segment display kullanarak yapacağım. Güç kaynağının üzerinde daha şık duracak gibi.

sekoli

projenin son hali. Artık devresini yapmaya geçiyorum. O bitince, onun da resmini koyarım.



#include <pic.h>
#include "delay.h"

__CONFIG(0x3f10);

#define seg1 RA1
#define seg2 RA2
#define seg3 RA3

int volt;
unsigned char ledCharSet[] = {
	0b00111111, 0b00000110, 0b01011011, 0b01001111,	// 0123
	0b01100110, 0b01101101, 0b01111101, 0b00000111,	// 4567
	0b01111111, 0b01101111, 0b00000000 };			// 89 - boş

int read_adc(void)
{
	unsigned int val;
	float deger;
    GODONE = 1;      
    while(GODONE==1); 
	val = ADRESL;
	val += ((unsigned int)ADRESH * 256);
	deger = (((5./1023) * val) * 30);
	return (int)deger;
}

void goster(int value)
{
	int i;
	//yüzler basamagi
	seg1 = 1;
    i = (int)value/100;
    if (i == 0) 	// ilk karakter sıfır ise gösterme 
        PORTB = ~ledCharSet[10];
       else
        PORTB = ~ledCharSet[(int)value/100];
	DelayMs(10);
	seg1 = 0;
	PORTB = 0xFF;
	//onlar basamagi
	seg2 = 1;
	PORTB = ~(ledCharSet[((int)(value/10)) - ((int)(value/100)*10)] | 128);  	// noktayıda koyalım
	DelayMs(10);
	seg2 = 0;
	PORTB = 0xFF;
	//birler basamagi
	seg3 = 1;
	PORTB = ~ledCharSet[value - (((int)(value/10))*10)];
	DelayMs(10);
	seg3 = 0;
	PORTB = 0xFF;
}


void main(void)
{
	//TODO Auto-generated main function
	OSCCON = 0b01110000;
	CMCON = 0b00000111;
	TRISA = 0b00000001;
	TRISB = 0x00;
	ADCON1 = 0b10000000; 
	ADCON0 = 0b00000001; 
	ANSEL  = 0b00000001; 
	
	while (1)
	{
		// degeri oku
		volt = read_adc();

		// segmente yaz
		goster(volt);
	}
}

alikfaster

Selamlar aynı şeyi bende düşünüyorum arkadaşım elimdeki güç kaynağına panelmetre takmayı. Eğer projen bittiyse hex kodu ile burada yayınlayabilirmisin..Teşekkürler...