Lab_interaccio/2009/particula/applet/particula.cpp

99 lines
1.6 KiB
C++
Raw Normal View History

2025-02-25 21:21:58 +01:00
#include "WProgram.h"
void setup();
void loop();
byte flag=0;
int ledState = 0;
int interval = 1000;
int previousMillis = 0;
int rele = 10;
int led = 14;
int pulsador = 15;
int gnd = 16;
int mode = 17;
int clock_pin = 8;
int clock_gnd = 9;
byte val =0x00;
void setup() {
Serial.begin(19200);
pinMode(rele, OUTPUT);
pinMode(pulsador, INPUT);
pinMode(led, OUTPUT);
pinMode(mode, INPUT);
pinMode(gnd, OUTPUT);
pinMode(clock_pin, OUTPUT);
pinMode(clock_gnd, OUTPUT);
digitalWrite(rele, LOW);
digitalWrite(pulsador, HIGH);
digitalWrite(led, HIGH);
digitalWrite(mode, HIGH);
digitalWrite(gnd, LOW);
digitalWrite(clock_gnd, LOW);
digitalWrite(clock_pin, HIGH);
delay(100);
digitalWrite(clock_pin, LOW);
}
void loop() {
if (!digitalRead(pulsador))
{
Serial.print(0, BYTE); // activado
}
else if (digitalRead(pulsador))
{
Serial.print(1, BYTE); // desactivado
}
if (!digitalRead(mode))
{
Serial.print(2, BYTE); // modo automatico
if (millis() - previousMillis > interval) {
previousMillis = millis();
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
digitalWrite(led, ledState);
}
}
else if (digitalRead(mode))
{
Serial.print(3, BYTE); // modo manual
}
delay(100);
if(Serial.available() > 0)
{
val = Serial.read();
if (val==0x10) digitalWrite(rele,HIGH);
else if (val==0x20) digitalWrite(rele, LOW);
else if (val==0x30)
{
digitalWrite(clock_pin, HIGH);
delay(100);
digitalWrite(clock_pin, LOW);
}
}
}
int main(void)
{
init();
setup();
for (;;)
loop();
return 0;
}