Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

PWM generation for TRIAC control through an optocoupler with PIC16F877A

Status
Not open for further replies.

john120

Banned
Full Member level 5
Joined
Aug 13, 2011
Messages
257
Helped
11
Reputation
22
Reaction score
10
Trophy points
1,298
Visit site
Activity points
0
Hello,there can you please help me to generate a pwm signal for controlling a TRIAC which deals with bulb light control and use its duty cycle as the value of Potentiometer connected to the analog input .

please help see the codes and poteus circuits.
PHP:
#include<16f877a.h>
#device ADC = 10         // Need to tell compiler ADC is configured for 10-bit reading
#fuses HS,NOWDT
#use delay(clock=12000000)
#include<stdio.h>
#include<STDLIB.H>
#use standard_io(A)
#use standard_io(B)
#use standard_io(D)
#define PORTB
#DEFINE PORTC
#define PORTA
//byte const digit[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

//char display[3];
int value;
//unsigned long volt;
//unsigned int value2;

void main(){
   set_tris_A(0xFF);
   set_tris_B(0X00);
   set_tris_D(0x00);
   output_b(0);
   output_d(0);

   setup_comparator(NC_NC_NC_NC);
   setup_adc(ADC_CLOCK_INTERNAL);
   setup_adc_ports(AN0);
   set_adc_channel(0);
   setup_vref(FALSE);

   setup_ccp1(CCP_PWM);       
   setup_timer_2(T2_DIV_BY_1, 25, 1); 
    set_pwm1_duty(volt);



   while(TRUE)
{
      delay_us(100);
      //value=read_adc(); //Not required
      read_adc(ADC_START_ONLY);
      delay_us(100);
      value=read_adc(ADC_READ_ONLY);

      volt=(value*5)/1023; 
      

   }
}
,the circuit is here

Please help.
 

Attachments

  • TRIAC.zip
    20.5 KB · Views: 110

Triac must use phase angle control rather than PWM, variable delay with respect to mains voltage zero crossing. There are pretty much hard- and software examples at edaboard
 

can you please guide me on how controlling the triac using that technique you are saying?

I am using PIC16F877A

Thanks.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top