Real waktu Memonitor tegangan AC dengan Atmel

G

gie_b_hsb

Guest
Dear all,

please help me to make real time pemantauan tegangan AC dengan atmel Microcontroller .....?

thank's untuk semua perhatian dan kerjasama.rgrds,Gie

 
gie_b_hsb wrote:

please help me to make real time pemantauan tegangan AC dengan atmel Microcontroller .....?
 
maaf tentang "pemantauan" istilah.
I mean, saya ingin mengukur tegangan ac (termasuk AC sekarang) AC baris dalam jaringan agar dapat melihat tegangan ac pada besar atau tujuh segmen serupa....thks ....rgdrs,Gie

 
AVR ATAU PIC telah membaca tegangan untuk ADC.

AVR '* Nama Proyek:
'ADC pada lcd
'* Penulis:
'MikroElektronika, September 2006.
'* Keterangan:
"Program ini menunjukkan bagaimana menggunakan ADC perpustakaan.
'* Test konfigurasi:
'MCU: ATmega16
'Dev.Board: Mudah AVR 3
'Osilator: Eksternal, 8 MHz
'Ext.Modul:
'SW: mikroBasic untuk AVR 4,00
'* CATATAN:
'Potentiometer menyambung ke MCU
'
Program adc_on_lcd
redup data sebagai kata
teks sebagai string [7]
utama:
Lcd_Init (PORTC, 4, 2, porta, LCD_HI_NIBBLE)
Lcd_Cmd (LCD_CURSOR_OFF)
Lcd_Out (1,1, "Analog Voltage:")
sementara benar
'ADC input PORTA.1
data = Adc_Read (1)
WordToStr (data, teks)
Lcd_Out (2,5, teks)
Delay_ms (10)
pergi
akhir.

'========================

PIC
'(*
'* Nama Proyek:
'Adconlcd2
'* Copyright:
'(C) mikroElektronika, 2005 - 2006
'* Riwayat Revisi:
'20050312:
'- Rilis awal.
'* Keterangan:
'Kode ini menunjukkan bagaimana cara menggunakan fungsi perpustakaan ADC_read, dan perpustakaan
'Prosedur dan fungsi untuk layar LCD (4 bit interface)
'* Test konfigurasi:
'MCU: PIC16F877A
'Dev.Board: EasyPIC4
'Osilator: HS, 8,000 MHz
'Ext.Modules: Tidak ada
'SW: mikroBasic v5.0 atau lebih tinggi
'* CATATAN:
'- Jika anda menggunakan EasyPIC4, gunakan peloncat diberikan atas hak untuk menyambung potentiometer ke RA2
'*)
Program AdcOnLcd2

redup ch sebagai byte
CurrentValue, LastValue sebagai kata
Sebagai char teks [10]
qqqq, rrrr sebagai pelampungsub prosedur WordToStrWithZeros2 (sebagai kata input_ redup, redup byref output sebagai char [4])
redup len_, tmp sebagai byte

len_ = 1
jika input_> 9 maka
Inc (len_)
akhir jika
input_ jika> 99 maka
Inc (len_)
akhir jika
jika input_> 999 maka
Inc (len_)
akhir jika
output = "0000" 'kanan dibenarkan
Desember (FSR)
sementara len_> 0
tmp = (input_ mod 10) 48
INDF tmp =
Desember (FSR)
input_ = input_ div 10
Desember (len_)
pergi
end sub

utama:
PORTB = 0 'jelas portb
INTCON = 0 'menonaktifkan semua interrupts
OPTION_REG = $ 80
ADCON1 = $ 82 'mengkonfigurasi VDD sebagai Vref, dan analog channel
TRISA = $ FF 'menetapkan port sebagai masukan

Lcd_Init (PORTD) 'initialize (4-bit interface sambungan)
Lcd_Cmd (LCD_CURSOR_OFF) 'mengirim perintah ke LCD (kursor off)
Lcd_Cmd (LCD_CLEAR) 'mengirim perintah ke LCD (LCD jelas)
Lcd_Out (1,1, "mikroElektronika") 'mencetak string yang LCD, 1st baris, kolom 1.
Lcd_Out (2,1 "LCD contoh") 'mencetak string yang LCD, 2nd baris, kolom 1.
Delay_ms (2000)
Lcd_Out (2, 1, "tegangan") 'mencetak string yang LCD, 2nd baris, kolom 1.
Lcd_Chr (2, 15, "V") 'Message "V" keluar dari lingkaran, karena tidak pernah berubah

LastValue = 0 'Inititalize LastValue

sementara benar

CurrentValue = ADC_read (2) 'mendapatkan nilai ADC dari saluran No.2

jika CurrentValue <> LastValue kemudian 'melakukan konversi hanya jika mereka berbeda

rrrr = CurrentValue * (5000.0/1024.0) '5 Volts 1024 tingkat atas (10-bit konversi)

CurrentValue = rrrr 'tugas ini akan dikonversi ke kata hanyut

WordToStrWithZeros2 (CurrentValue, Teks) 'Konversikan ke string kata dengan angka nol (kanan dibenarkan)

Teks [4] = Teks [3] "Ini akan urutan
Teks [3] = Teks [2] 'memasukkan "."karakter
Teks [2] = Teks [1] 'setelah char pertama dalam Teks.
Teks [1] = "."
Teks [5] = 0 'string yang selalu berakhir dengan 0

Lcd_Out (2, 9, Teks) 'Write diformat teks

LastValue = CurrentValue 'menyamakan mereka jadi lain kali kami tidak menulis nilai yang sama
akhir jika
pergi
akhir.

 
Thank's masud58 untuk solusi tetapi
saya masih confuse tentang kode ini,
apakah anda keberatan jika anda memberikan contoh sirkuit dan sirkuit ..... cos
saya tidak mengerti tentang MCU ....

 
Menggunakan transformator ke langkah menurunkan tegangan lebih rendah dari 5V AC.Make it DC menggunakan jembatan rectifiers.Menggunakan resistor dan kapasitor dalam rangkaian sebagai berikut:

------^_^_^-------------------------
|
|
==
==
|
|
----------------------------------------

untuk membuat penyaring sirkuit.menggunakan nilai kapasitor kecil sehingga dapat menyaring suara dan tidak menyimpan banyak biaya untuk memberikan data real-time.

Baca DC melalui ADC pin
menjalankan ADC pada satu lingkaran dan menampilkan tegangan setelah kalibrasi

 
I guess anda tidak tertarik pada instantenous nilai dari tegangan AC (atau sekarang).sebagai nilai perubahan instantenous oleh freuency dari 50Hz.sehingga nonesense untuk menampilkan nilai seperti pada tujuh segmen.
I guess yang Anda cari "True RMS pengukuran".ok lakukan langkah berikut:

1 - divider menggunakan tegangan AC untuk mengurangi voltase ke 2,5 V (sesuai untuk 311V) dan 2.5V (sesuai ke-311V)

2 - Gunakan sebuah instrumental amplifier (AD620 misalnya) untuk beralih ke tegangan yang diukur
nilai antara 5V (sesuai untuk 311V) dan 0 (sesuai ke-311V)

3 - Gunakan ADC untuk mengukur nilai instantenous

4 - Intergrate dan menghitung nilai True RMS

5 - Kirim diukur nilai segmen ke tujuh

jika Anda perlu untuk mengukur rata-rata nilai True RMS, bukan untuk Anda dapat menggunakan rectifier dan kapasitor besar sebelum tegangan pembatas.

Salam
Ahmed Salah

 
Dear ahmedsalah00

I think, i instantenous menarik dengan nilai dari tegangan AC (atau saat ini) sehingga saya bisa mengetahui kekuatan stabilitas di dalam kamar saya .... mungkin anda dapat memberikan sirkuit atau link ke web ini bulid pengukuran ...... thk's untuk solusi n informasi ....

 
Anda akan dengan senang hati melihat tujuh segmen kerlip 50 kali kedua?RMS adalah benar apa yang anda butuhkan.

 
i think you menggunakan ture RMS to DC converter untuk hasil yang terbaik ...i used it and i got very good hasil chip # AD736

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 
ashad: can you help-me?Saya telah berusaha untuk menggunakan kedua ad736 dan ad636, dan juga ad736, tetapi saya tidak mendapatkan hasil ...Anda dapat mengirimkan sirkuit?thanx

 
Dear kuku,

maaf terlambat untuk membalas ..........i was sibuk, i am pengiriman diuji sirkuit sempurna untuk bekerja ur help<img src="http://images.elektroda.net/7_1169452086.GIF" border="0" alt=""/>u lebih lanjut jika ada permintaan maka jangan ragu untuk meminta

 

Welcome to EDABoard.com

Sponsor

Back
Top