v1.2.1
This commit is contained in:
+30
-14
@@ -1,9 +1,9 @@
|
||||
/*************************************
|
||||
* LDR-schakelaar berging
|
||||
* LDR-schakelaar isr0
|
||||
* Author: Michel Bats
|
||||
* Website: www.batssoft.nl
|
||||
* Version: 1.2.0
|
||||
* Revision: 20141211
|
||||
* Revision: 20150207
|
||||
*
|
||||
* Used libraries:
|
||||
* Adafruit_SSD1306\Adafruit_SSD1306 by adafruit
|
||||
@@ -33,6 +33,8 @@
|
||||
// Bepalingen Display
|
||||
#define OLED_ADDR 60 // 60 = 0x3C / 61 = 0x3D
|
||||
#define OLED_RESET 4
|
||||
// Interupts
|
||||
#define displaySwitch 0 // ISR adres van de drukknop om het scherm te activeren. (ISR0 = Pin2)
|
||||
|
||||
// Initialisatie NewRemoteTransmitter
|
||||
NewRemoteTransmitter transmitter(kakuAddr, 11, 260, 4);
|
||||
@@ -53,6 +55,7 @@ int sensorLdrValueDispPos;
|
||||
int dimLevel;
|
||||
int dimLevelPercent;
|
||||
int currentState;
|
||||
int displayOn = 60;
|
||||
int currentDimLevel = -1;
|
||||
|
||||
// 32x32 icoon voor licht aan.
|
||||
@@ -147,11 +150,13 @@ void setup() {
|
||||
display.setCursor(0, 0);
|
||||
display.println("VERLICHTING");
|
||||
display.println("");
|
||||
display.println("v1.2.0 (beta)");
|
||||
display.println("v1.2.1 (20150207)");
|
||||
display.println("v1.2.0 (20141211)");
|
||||
display.println("v1.1.3 (20141202)");
|
||||
display.println("v1.1.2 (20141118)");
|
||||
display.println("v1.1.1 (20141117)");
|
||||
display.println("v1.1.0 (20141116)");
|
||||
//display.println("v1.1.1 (20141117)");
|
||||
//display.println("v1.1.0 (20141116)");
|
||||
display.println("|");
|
||||
display.println("v1.0.0 (20141116)");
|
||||
digitalWrite(ledPin, LOW);
|
||||
transmitter.sendUnit(kakuUnit, false);
|
||||
@@ -170,6 +175,9 @@ void setup() {
|
||||
|
||||
// initieel ophalen van LDR-waarde
|
||||
currentSensorLdrValue = analogRead(sensorLdr);
|
||||
|
||||
// Aanmaken interupt
|
||||
attachInterrupt(0, isr0, RISING);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
@@ -203,9 +211,10 @@ void loop() {
|
||||
}
|
||||
|
||||
// Dim-niveau volgens potmeter omzetten in waarden voor de KAKU-dimmer
|
||||
dimLevel = map(potDimValue, 0, 1023, 0, 15); // 0 t/m 1023 omzetten naar 0 t/m 15.
|
||||
// 1023 is 1020 geworden. Potmeters komen nooit helemaal op maximaal (niet stabiel althans) daarrom iets onder de maximaal-waarde.
|
||||
dimLevel = map(potDimValue, 0, 1020, 0, 15); // 0 t/m 1020 omzetten naar 0 t/m 15.
|
||||
// Dim-niveau volgens potmeter omzetten in procenten voor weergave op het scherm
|
||||
dimLevelPercent = map(potDimValue, 0, 1023, 0, 100); // 0 t/m 1023 omzetten naar 0 t/m 100.
|
||||
dimLevelPercent = map(potDimValue, 0, 1020, 0, 100); // 0 t/m 1020 omzetten naar 0 t/m 100.
|
||||
|
||||
// Aanschakelen KAKU-dimmer als deze (volgens het programma) uit zou zijn mits aan de voorwaarden wordt voldaan.
|
||||
if (sensorLdrValue <= switchValueLow && currentDimLevel != dimLevel) {
|
||||
@@ -227,6 +236,10 @@ void loop() {
|
||||
currentState = 0;
|
||||
}
|
||||
|
||||
if (displayOn > 1) {
|
||||
// displayOn in mindering brengen
|
||||
displayOn--;
|
||||
|
||||
// Gegevens voor het display.
|
||||
// Potmeter-waarden omzetten naar scherm-posities.
|
||||
switchValueLowDispPos = map(switchValueLow, 0, 1023, 0, 127);
|
||||
@@ -262,19 +275,22 @@ void loop() {
|
||||
display.drawLine(0, 63, 127, 63, WHITE);
|
||||
display.fillRect(switchValueLowDispPos, 48, switchValueHighDispPos - switchValueLowDispPos + 1, 9, WHITE);
|
||||
display.drawLine(sensorLdrValueDispPos, 40, sensorLdrValueDispPos, 63, WHITE);
|
||||
}
|
||||
|
||||
// Display uitvoer zolang er data is.
|
||||
if (displayOn > 0) {
|
||||
// Uitvoer naar display en display-buffer leegmaken.
|
||||
display.display();
|
||||
display.clearDisplay();
|
||||
}
|
||||
|
||||
// 1000ms (1sec) wachten voor het starten van de volgende ronde.
|
||||
// Wordt vooral gebruikt om het abrupt wijzigen van de LDR tegen te gaan.
|
||||
delay(1000);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void isr0() //interrupt service routine
|
||||
{
|
||||
displayOn = 120;
|
||||
}
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user