Lab_interaccio/2021/Dilalica/Dilalica.ino

172 lines
6.1 KiB
Arduino
Raw Permalink Normal View History

2025-02-25 21:29:42 +01:00
#define TIME_PULSE 100
int NeonA[3] = {23, 22, 25};
int NeonB[3] = {24, 27, 26};
int NeonC[5] = {29, 28, 31, 30, 33};
void setup() {
// put your setup code here, to run once:
for(int i=0; i<16; i++)
{
pinMode(22 + i, OUTPUT);
digitalWrite( 22 + i, HIGH);
}
for(int i=0; i<3; i++)
{
digitalWrite( NeonA[i], LOW);
//delay(1000);
}
pinMode(12, INPUT_PULLUP);
// for(int i=0; i<3; i++)
// {
// digitalWrite( NeonB[i], LOW);
// //delay(1000);
// }
// for(int i=0; i<5; i++)
// {
// digitalWrite( NeonC[i], LOW);
// //delay(1000);
// }
}
unsigned long time_sec1_A = millis();
void secuencia1()
{
if ((millis()-time_sec1_A)>=3000)
{
if ((millis()-time_sec1_A)<4000) digitalWrite(NeonA[0], HIGH);
else if ((millis()-time_sec1_A)<(4000 + TIME_PULSE))
{
digitalWrite(NeonA[0], LOW);
digitalWrite(NeonA[1], HIGH);
}
else if ((millis()-time_sec1_A)<8000) digitalWrite(NeonA[1], LOW);
else if ((millis()-time_sec1_A)<9000) digitalWrite(NeonA[2], HIGH);
else if ((millis()-time_sec1_A)<10000) digitalWrite(NeonA[2], LOW);
else if ((millis()-time_sec1_A)>=15000) time_sec1_A = millis();
}
else
{
for(int i=0; i<3; i++) digitalWrite( NeonA[i], LOW);
}
}
unsigned long time_sec2_A = millis();
void secuencia2()
{
if ((millis()-time_sec2_A)>=1000)
{
if ((millis()-time_sec2_A)<(1000 + TIME_PULSE)) digitalWrite(NeonB[0], HIGH);
else if ((millis()-time_sec2_A)<4000) digitalWrite(NeonB[0], LOW);
else if ((millis()-time_sec2_A)<(4000 + TIME_PULSE)) digitalWrite(NeonB[1], HIGH);
else if ((millis()-time_sec2_A)<5000) digitalWrite(NeonB[1], LOW);
else if ((millis()-time_sec2_A)<6000) digitalWrite(NeonB[2], HIGH);
else if ((millis()-time_sec2_A)<7000) digitalWrite(NeonB[2], LOW);
else if ((millis()-time_sec2_A)<(7000 + TIME_PULSE)) digitalWrite(NeonB[2], HIGH);
else if ((millis()-time_sec2_A)<10000) digitalWrite(NeonB[2], LOW);
else if ((millis()-time_sec2_A)>=15000) time_sec2_A = millis();
}
else
{
for(int i=0; i<3; i++) digitalWrite( NeonB[i], LOW);
}
}
unsigned long time_sec3_A = millis();
void secuencia3()
{
if ((millis()-time_sec2_A)>=2000)
{
if ((millis()-time_sec3_A)<(2000 + TIME_PULSE)) digitalWrite(NeonC[1], HIGH);
else if ((millis()-time_sec3_A)<6000) digitalWrite(NeonC[1], LOW);
else if ((millis()-time_sec3_A)<(6000 + TIME_PULSE)) digitalWrite(NeonC[2], HIGH);
else if ((millis()-time_sec3_A)<7000) digitalWrite(NeonC[2], LOW);
else if ((millis()-time_sec3_A)<8000) digitalWrite(NeonC[0], HIGH);
else if ((millis()-time_sec3_A)<9000) digitalWrite(NeonC[0], LOW);
else if ((millis()-time_sec3_A)<(9000 + TIME_PULSE)) digitalWrite(NeonC[2], HIGH);
else if ((millis()-time_sec3_A)<10000) digitalWrite(NeonC[2], LOW);
else if ((millis()-time_sec3_A)<(10000 + TIME_PULSE)) digitalWrite(NeonC[4], HIGH);
else if ((millis()-time_sec3_A)<15000) digitalWrite(NeonC[4], LOW);
else time_sec3_A = millis();
}
else
{
for(int i=0; i<5; i++) digitalWrite( NeonC[i], LOW);
}
}
void secuencia1B()
{
if ((millis()-time_sec1_A)>=2000)
{
if ((millis()-time_sec1_A)<(2000 + 500)) digitalWrite(NeonA[0], HIGH);
else if ((millis()-time_sec1_A)<4000) digitalWrite(NeonA[0], LOW);
else if ((millis()-time_sec1_A)<(4000 + TIME_PULSE)) digitalWrite(NeonA[0], HIGH);
else if ((millis()-time_sec1_A)<10000) digitalWrite(NeonA[0], LOW);
else if ((millis()-time_sec1_A)<(10000 + TIME_PULSE)) digitalWrite(NeonA[0], HIGH);
else if ((millis()-time_sec1_A)<20000) digitalWrite(NeonA[0], LOW);
else if ((millis()-time_sec1_A)>=20000) time_sec1_A = millis();
}
else
{
digitalWrite( NeonA[0], LOW);
}
}
void secuencia2B()
{
if ((millis()-time_sec1_A)>=1000)
{
if ((millis()-time_sec1_A)<(1000 + TIME_PULSE)) digitalWrite(NeonA[1], HIGH);
else if ((millis()-time_sec1_A)<3000) digitalWrite(NeonA[1], LOW);
else if ((millis()-time_sec1_A)<(3000 + 1000)) digitalWrite(NeonA[1], HIGH);
else if ((millis()-time_sec1_A)<5000) digitalWrite(NeonA[1], LOW);
else if ((millis()-time_sec1_A)<(5000 + TIME_PULSE)) digitalWrite(NeonA[1], HIGH);
else if ((millis()-time_sec1_A)<8000) digitalWrite(NeonA[1], LOW);
else if ((millis()-time_sec1_A)<(8000 + 500)) digitalWrite(NeonA[1], HIGH);
else if ((millis()-time_sec1_A)<20000) digitalWrite(NeonA[1], LOW);
else if ((millis()-time_sec1_A)>=20000) time_sec1_A = millis();
}
else
{
digitalWrite( NeonA[1], LOW);
}
}
void secuencia3B()
{
if ((millis()-time_sec1_A)>=2000)
{
if ((millis()-time_sec1_A)<(2000 + TIME_PULSE)) digitalWrite(NeonA[2], HIGH);
else if ((millis()-time_sec1_A)<6000) digitalWrite(NeonA[2], LOW);
else if ((millis()-time_sec1_A)<(6000 + TIME_PULSE)) digitalWrite(NeonA[2], HIGH);
else if ((millis()-time_sec1_A)<7000) digitalWrite(NeonA[2], LOW);
else if ((millis()-time_sec1_A)<(7000 + TIME_PULSE)) digitalWrite(NeonA[2], HIGH);
else if ((millis()-time_sec1_A)<10000) digitalWrite(NeonA[2], LOW);
else if ((millis()-time_sec1_A)<(10000 + 500)) digitalWrite(NeonA[2], HIGH);
else if ((millis()-time_sec1_A)<20000) digitalWrite(NeonA[2], LOW);
else if ((millis()-time_sec1_A)>=20000) time_sec1_A = millis();
}
else
{
digitalWrite( NeonA[2], LOW);
}
}
void loop() {
if (digitalRead(12))
{
secuencia1B();
secuencia2B();
secuencia3B();
}
else
{
for(int i=0; i<3; i++) digitalWrite(NeonA[i], LOW);
}
// put your main code here, to run repeatedly:
}