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

CodeArduinoMachKichTriacBangPWM

Uploaded by

namnguyen014724
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
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
We take content rights seriously. If you suspect this is your content, claim it here.
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