0% found this document useful (0 votes)
4 views

CodeArduinoMachKichTriacBangPWM

Uploaded by

namnguyen014724
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

CodeArduinoMachKichTriacBangPWM

Uploaded by

namnguyen014724
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2

#define TRIAC_PIN 7

float thoigian;
int i,j,output;
double adc;
/*Khai bao 3 chan transitor va ket noi chan ic 74hc595*/
int Tranled1 = 5;
int Tranled2 = 4;
int Tranled3 = 3;
int latchpin = 9;
int clockpin = 10;
int datapin = 8;
int flagstate=0;
char MA7DOAN[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int madem;
int Thoigianquet=1;

/*HAM DIEU KHIEN TRIAC*/


void TriacControl()
{
QuetLed();
if(output<100) output=100;
thoigian=output/100;
delayMicroseconds((10-thoigian)*1000);
digitalWrite(TRIAC_PIN,HIGH);
delayMicroseconds(100);
digitalWrite(TRIAC_PIN,LOW);
QuetLed();
}
void setup()
{
Serial.begin(9600);
pinMode(TRIAC_PIN,OUTPUT);
attachInterrupt(0, TriacControl, RISING);
pinMode(Tranled1,OUTPUT);
pinMode(Tranled2,OUTPUT);
pinMode(Tranled3,OUTPUT);
pinMode(latchpin , OUTPUT);
pinMode(clockpin, OUTPUT);
pinMode(datapin, OUTPUT);
output=100;
digitalWrite(latchpin, LOW);
madem=MA7DOAN[0];
shiftOut(datapin, clockpin, MSBFIRST,(madem));
digitalWrite(latchpin, HIGH);
}
void loop()
{
adc=0;
for(i=0;i<1000;i++)
adc+=analogRead(A0);
adc=adc/1000;
output=map(adc,0,1023,100,900);
}
/*HIEN THI THOI GIAN SANG CUA DEN TRONG NUA CHU KY (MS)*/
void QuetLed()
{
Thoigianquet++;
if(Thoigianquet>3) Thoigianquet=1;
if(Thoigianquet==1)
{
digitalWrite(latchpin, LOW);
madem=MA7DOAN[output/100];
shiftOut(datapin, clockpin, MSBFIRST,(madem-128));
digitalWrite(latchpin, HIGH);
digitalWrite(Tranled3,HIGH);
digitalWrite(Tranled1,LOW);
}
else if(Thoigianquet==2)
{
digitalWrite(latchpin, LOW);
madem=MA7DOAN[output/10%10];
shiftOut(datapin, clockpin, MSBFIRST,(madem));
digitalWrite(latchpin, HIGH);
digitalWrite(Tranled1,HIGH);
digitalWrite(Tranled2,LOW);
}
else
{
digitalWrite(latchpin, LOW);
madem=MA7DOAN[output%10];
shiftOut(datapin, clockpin, MSBFIRST,(madem));
digitalWrite(latchpin, HIGH);
digitalWrite(Tranled2,HIGH);
digitalWrite(Tranled3,LOW);
}
}

You might also like