PDA

View Full Version : [help]Chiết áp, pic16f877A, đèn


mu199x
31-10-2012, 05:22 PM
em mới học vđk gặp đề tài thiết kế mạch hiển thị độ sáng đèn thông qua mạch chiết áp pic16f877a. mong ace giúp thiết kế hộ nhé!

nhiot081290
14-11-2012, 12:17 AM
chiết áp nối vào ADC => đọc ADC về Hiển thị ra (LCD hay led 7 đoạn ) đồng thời dùng PWM để điều khiển độ sáng đèn. cơ bản là vậy.
Bạn điều khiển đèn gì: AC hay DC công suất bao nhiêu => làm mạch điều khiển riêng.
bạn nêu rõ hơn đề tài của bạn được không.
Thân,

youaremylife
14-11-2012, 01:01 AM
Vào giúp sức mà chẳng có chút thông tin nào cả, đề tài sử dụng ADC và PWM hết

mu199x
20-11-2012, 09:21 PM
em có mạch này mong các bác giúp! mục đích là điều khiển đèn sáng tối bằng chiết áp.
#include<16f877A.h>
#device *=16 ADC=10
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
#include<def_877a.h>

unsigned int16 value=0, temp=0;

unsigned int16 doc_adc()
{
int8 i ;
for(i=0;i<5;i++)
{
temp+=(unsigned int16)read_adc();
}
value = temp/5;
return(value);
}

void main()
{
byte value;
setup_ccp1(CCP_PWM); // Configure CCP1 as a PWM
setup_timer_2(T2_DIV_BY_4, 255, 16);
// giá tr? b? chia t?n s? timer 2 là 4.
// Th?i gian m?t chu k?: (255+1)*4*4/20 = 204.8 (us)
setup_port_a(ALL_ANALOG,ADC_VDD_VSS);
setup_adc(adc_clock_internal);
set_adc_channel( 0 );

while( TRUE )
{
value=read_adc(); //??c giá tr? t? chi?t áp ?i?u ch?nh t?c ??
set_pwm1_duty(doc_adc()); // Thi?t l?p ?? r?ng xung
} // Th?i gian ?? r?ng xung = value*4/20 (us)
}