Lab_interaccio/2009/STROBE_09/applet/STROBE_09.cpp

121 lines
2.1 KiB
C++
Raw Normal View History

2025-02-25 21:21:58 +01:00
#define on 18
#define off 19
#define power_on 13
#define MINUTE 62609
//#define MINUTE 1000
#define temp 20
#include "WProgram.h"
void setup();
void loop();
unsigned long time=0;
unsigned long time_off=0;
byte flag=0;
byte flag_off=0;
//int i=1;
int i=1;
int time1=2;
int time2=5;
int time3=10.5;
int time4=5;
int time5=5;
int TIME=time1;
int e;
void setup() {
Serial.begin(19200); // set up Serial library at 9600 bps
Serial.println("Empezamos");
pinMode(on, INPUT);
pinMode(off, INPUT);
pinMode(power_on, OUTPUT);
digitalWrite(on,HIGH);
digitalWrite(off,HIGH);
digitalWrite(power_on,HIGH);
}
void loop() {
if (!digitalRead(on))
{
//delay(200);
flag_off=1;
if (flag==0)
{
flag=1;
for (e=0; e<5; e++)
{
Serial.print(i,BYTE);
delay(temp);
}
TIME=time1;
i=i+2;
}
//else if (flag==1) flag=0;
time=millis();
}
else if(!digitalRead(off))
{
if (flag_off==0)
{
time_off=millis();
flag_off=1;
}
else if ((millis()-time_off)>=10*1000)
{
for (e=0; e<5; e++)
{
Serial.print(0x00,BYTE);
delay(temp);
}
flag=0;
i=1;
}
}
else flag_off=0;
if (flag==1)
{
if ((millis()-time)>=MINUTE*TIME)
//if ((millis()-time)>=5000)
{
time=millis();
for (e=0; e<5; e++)
{
Serial.print(i-1,BYTE);
delay(temp);
}
for (e=0; e<5; e++)
{
if (i<0x0B) Serial.print(i,BYTE);
else Serial.print(0x00,BYTE);
delay(temp);
}
if (i==3) TIME=time2;
else if (i==5) TIME=time3;
else if (i==7) TIME=time4;
else if (i==9) TIME=time5;
i=i+2;
if (i==13)
{
i=1;
flag=0;
}
}
}
}
int main(void)
{
init();
setup();
for (;;)
loop();
return 0;
}