/*
Flipled.
Erik Simons
30/05/2024
*/
// Bibliotheken
#include <AltSoftSerial.h>
#include "Led.h"
#include "Knop.h"
#include "Pot.h"
//Constanten
const int PIN_ROOD = 12;
const int PIN_GROEN = 6;
const int PIN_POT = A0;
const int PIN_KNOP = 7;
const int PIN_nRE_DE = 10; // RS-485 module
//Variabelen
int aanUit;
int dimming = 0;
int oudeDimming = 0;
// speciale variabelen
status flanK ;//flanK kan nu enkel de waarden RIJZEND, HOOG, DALEND en LAAG hebben
// Zie de uitleg in de "Knop.h" biliotheek
//Aanmaken van objecten
Led Groen(PIN_GROEN, OUTPUT);
Knop Digitaal(PIN_KNOP, aanUit, flanK);
Pot Dim(PIN_POT, 0, 255);
AltSoftSerial altSerial; // We maken een nieuwe UART aan
void setup() {
// put your setup code here, to run once:
Serial.begin (9600);
altSerial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
Groen.aan();
Digitaal.lees();
oudeDimming= dimming;
dimming = Dim.lees();
//De te versturen gegevens updaten.
if (oudeDimming != dimming){// Als de pot van stand veranderd is.
//Doe nog niks
}
//Zenden van de knopgegevens
if (Digitaal.flanK == RIJZEND) { // Als de knop ingedrukt WORDT ...
digitalWrite(PIN_nRE_DE, HIGH); // ... zetten we de driver aan ...
delay(1); // ... wachten we voor de driver om actief te worden...
altSerial.print('T'); // ... sturen we een 'T' uit ...
delay(2); // ... wachten we tot het karakter verzonden is ...
digitalWrite(PIN_nRE_DE, LOW); // ... en zetten we de driver uit. zodat we weer kunnen ontvangen.
}
// Gegevens ontvangen van aansluiting
while (altSerial.available() > 0) {
char c = altSerial.read();
if (c == 'T') {
Groen.toggle(); //ledWaarde = not ledWaarde;
}
}
Serial.print(" Dimming->");
Serial.println(dimming + 65); Serial.println(int(dimming));
analogWrite(PIN_ROOD, dimming);
delay(100);
}