Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

Lucrare practică Nr.

4
Tema:Semafor la intersecție

#define k 4000
#define j 2000
#define z 3000
unsigned long time=0;
byte state = 1;

int k1=11;
int j1=12;
int z1=13;
int kp1=10;
int zp1=9;
int k2=8;
int j2=7;
int z2=6;
int kp2=5;
int zp2=4;
int btn = 2;
int st = 0;
void setup()
{

CPB.71420.04.04
Mod Coala Nr.document Semnat Data
Elaborat Corotaș Iosif Lit. Coala Coli
Verificat Rișcovoi Alina 1 1
Tema:Semafor la interseție
A-218
pinMode(k1, OUTPUT);
pinMode(j1, OUTPUT);
pinMode(z1, OUTPUT);
digitalWrite(k1, state);
pinMode(kp1,OUTPUT);
pinMode(zp1,OUTPUT);
digitalWrite(kp1, state);
pinMode(k2,OUTPUT);
pinMode(j2,OUTPUT);
pinMode(z2, OUTPUT);
digitalWrite(z2, state);
pinMode (kp2,OUTPUT);
pinMode(zp2, OUTPUT);
pinMode(btn, INPUT);
digitalWrite(zp2, state);
}

void loop()
{
st = digitalRead(btn);
if (st == 1)
{
for (int i=0; i<10; i++)
{
digitalWrite(k1, 0);
digitalWrite(k2, 0);
digitalWrite(z1, 0);
digitalWrite(z2, 0);
digitalWrite(zp2, 0);
digitalWrite(zp1, 0);
digitalWrite(kp1, 0);
digitalWrite(kp2, 0);
digitalWrite(j2, 1);
digitalWrite(j1, 1);
delay(1000);
digitalWrite(j2, 0);
digitalWrite(j1, 0);
delay(1000);
}
}
else
{
switch(state)
{
case 1:
if(millis()-time>j)
{
time=millis();
//выводит количество миллисекунд с момента начала выполнения
программы
digitalWrite(k1, 1);
digitalWrite(z2, 1);
digitalWrite(zp2,1);
digitalWrite(kp1,1);
digitalWrite(j1,0);
digitalWrite(j2,0);
state=2;
}
break;

Coala
2
Mod Coala Nr.document Semnat Data
case 2:
if(millis()-time>1000)
{
time=millis();
digitalWrite(z2,0);
digitalWrite(zp2,0);
state=3;
}
break;
case 3:
if(millis()-time>1000)
{
time=millis();
digitalWrite(z2,1);
digitalWrite(zp2,1);
state=4;
}
break;
case 4:
if(millis()-time>1000)
{
time=millis();
digitalWrite(z2,0);
digitalWrite(zp2,0);
state=5;
}
break;
case 5:
if(millis()-time>1000)
{
time=millis();
digitalWrite(z2,1);
digitalWrite(zp2,1);
state=6;
}
break;
case 6:
if(millis()-time>1000)
{
time=millis();
digitalWrite(z2,0);
digitalWrite(zp2,0);
state=7;
}
break;
case 7:
if(millis()-time>1000)
{
time=millis();
digitalWrite(z2,1);
digitalWrite(zp2,1);
state=8;
}
break;

Coala
3
Mod Coala Nr.document Semnat Data
case 8:
if(millis()-time>1000)
{
time=millis();
digitalWrite(z2,0);
digitalWrite(zp2,0);
digitalWrite(kp2,1);
digitalWrite(j2,1);
state=9;
}
break;
case 9:
if(millis()-time>k)
{
time=millis();
digitalWrite(k2,1);
digitalWrite(j2,0);
state=10;
}
break;
case 10:
if(millis()-time>j)
{
time=millis();
digitalWrite(j1,1);
state=11;
}
break;
case 11:
if(millis()-time>z)
{
time=millis();
digitalWrite(j1,0);
digitalWrite(k1,0);
digitalWrite(kp1,0);
digitalWrite(z1,1);
digitalWrite(zp1,1);
state=12;
}
break;
case 12:
if(millis()-time>1000)
{
time=millis();
digitalWrite(z1,0);
digitalWrite(zp1,0);
state=13;
}
break;
case 13:
if(millis()-time>1000)
{
time=millis();
digitalWrite(z1,1);
digitalWrite(zp1,1);
state=14;
}
break;

Coala
4
Mod Coala Nr.document Semnat Data
case 14:
if(millis()-time>1000)
{
time=millis();
digitalWrite(z1,0);
digitalWrite(zp1,0);
state=15;
}
break;
case 15:
if(millis()-time>1000)
{
time=millis();
digitalWrite(z1,1);
digitalWrite(zp1,1);
state=16;
}
break;
case 16:
if(millis()-time>1000)
{
time=millis();
digitalWrite(z1,0);
digitalWrite(zp1,0);
state=17;
}
break;
case 17:
if(millis()-time>1000)
{
time=millis();
digitalWrite(z1,1);
digitalWrite(zp1,1);
state=18;
}
break;
case 18:
if(millis()-time>1000)
{
time=millis();
digitalWrite(z1,0);
digitalWrite(zp1,0);
digitalWrite(kp1,1);
digitalWrite(j1,1);
state=19;
}
break;
case 19:
if(millis()-time>k)
{
time=millis();
digitalWrite(j1,0);
digitalWrite(k1,1);
digitalWrite(kp1,1);
digitalWrite(z1,0);
digitalWrite(zp1,0);
state=20;
}
break;

Coala
5
Mod Coala Nr.document Semnat Data
case 20:
if(millis()-time>j)
{
time=millis();
digitalWrite(j2,1);
state=21;
}
break;

case 21:
if(millis()-time>z)
{
time=millis();
digitalWrite(j2,0);
digitalWrite(k2,0);
digitalWrite(kp2,0);
digitalWrite(z2,1);
digitalWrite(zp2,1);
state=22;
}
break;
case 22:

state=1;
}
break;

}
}
delay(20);
}

Concluzii:În urma acestei lucrări practice am căpătat deprinderi de a conecta led-


urile la placa Arduino pentru a obține un semafor la intersecție.

Coala
6
Mod Coala Nr.document Semnat Data

You might also like