v1.2.0
This commit is contained in:
+27
-21
@@ -2,13 +2,16 @@
|
||||
* LDR-schakelaar berging
|
||||
* Author: Michel Bats
|
||||
* Website: www.batssoft.nl
|
||||
* Revision: 20141202
|
||||
* Version: 1.2.0
|
||||
* Revision: 20141211
|
||||
*
|
||||
* Used libraries:
|
||||
* Adafruit_GFX
|
||||
* Adafruit_SSD1306
|
||||
* NewRemoteTransmitter
|
||||
* NewRemoteSwitch library v1.0.0 (20121229) for Arduino 1.0
|
||||
* Adafruit_SSD1306\Adafruit_SSD1306 by adafruit
|
||||
* https://github.com/adafruit/Adafruit_SSD1306
|
||||
* Adafruit-GFX-Library\Adafruit_GFX by adafruit
|
||||
* https://github.com/adafruit/Adafruit-GFX-Library
|
||||
* NewRemoteSwitch\NewRemoteTransmitter by fuzzillogic
|
||||
* https://bitbucket.org/fuzzillogic/433mhzforarduino/wiki/Home
|
||||
*************************************/
|
||||
|
||||
// Bibliotheken
|
||||
@@ -19,7 +22,7 @@
|
||||
#include <Adafruit_SSD1306.h>
|
||||
|
||||
// Bepalingen
|
||||
#define ledPin 13 // Debug LED (13 is standaard on-board)
|
||||
#define ledPin 13 // Debug-LED (13 is standaard on-board)
|
||||
#define sensorLdr A0 // Input van LDR
|
||||
#define potSwitch A1 // Input van potmeter voor schakelpunt
|
||||
#define potThreshold A2 // Input van potmeter voor hysteresis
|
||||
@@ -38,6 +41,7 @@ Adafruit_SSD1306 display(OLED_RESET);
|
||||
|
||||
// Aanmaken benodigde variabelen
|
||||
int sensorLdrValue;
|
||||
int currentSensorLdrValue;
|
||||
int potSwitchValue;
|
||||
int potThresholdValue;
|
||||
int potDimValue;
|
||||
@@ -50,9 +54,6 @@ int dimLevel;
|
||||
int dimLevelPercent;
|
||||
int currentState;
|
||||
int currentDimLevel = -1;
|
||||
int currentsensorLdrValue;
|
||||
int oledConnected;
|
||||
byte iicError;
|
||||
|
||||
// 32x32 icoon voor licht aan.
|
||||
#define BULB32_ON_HEIGHT 32
|
||||
@@ -136,6 +137,9 @@ void setup() {
|
||||
display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR,HEX);
|
||||
display.clearDisplay();
|
||||
|
||||
// Start debug-led
|
||||
pinMode(ledPin, OUTPUT);
|
||||
|
||||
// Opstartscherm
|
||||
// Lamp laten knipperen op het opstartscherm en op de daadwerkelijke schakelaar/dimmer.
|
||||
display.setTextSize(1);
|
||||
@@ -143,16 +147,19 @@ void setup() {
|
||||
display.setCursor(0,0);
|
||||
display.println("VERLICHTING");
|
||||
display.println("");
|
||||
display.println("v1.2.0 (beta)");
|
||||
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.0.0 (20141116)");
|
||||
digitalWrite(ledPin, LOW);
|
||||
transmitter.sendUnit(kakuUnit, false);
|
||||
currentState = 0;
|
||||
display.drawBitmap(97, 0, bulb32_off_bmp, 32, 32, 1);
|
||||
display.display();
|
||||
delay(1000);
|
||||
digitalWrite(ledPin, HIGH);
|
||||
transmitter.sendUnit(kakuUnit, true);
|
||||
currentState = 1;
|
||||
display.drawBitmap(97, 0, bulb32_on_bmp, 32, 32, 1);
|
||||
@@ -161,11 +168,8 @@ void setup() {
|
||||
display.display();
|
||||
display.clearDisplay();
|
||||
|
||||
// Start debug-led
|
||||
pinMode(ledPin, OUTPUT);
|
||||
|
||||
// initieel ophalen van LDR-waarde
|
||||
currentsensorLdrValue = analogRead(sensorLdr);
|
||||
currentSensorLdrValue = analogRead(sensorLdr);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
@@ -176,17 +180,17 @@ void loop() {
|
||||
potDimValue = analogRead(potDim); // De potmeter voor het dim-niveau
|
||||
|
||||
// In geval van abrupte wijziging in LDR waarde dit opvangen door niet meer als 1 waarde afwijken van vorige meting
|
||||
if (sensorLdrValue > currentsensorLdrValue){
|
||||
currentsensorLdrValue++;
|
||||
sensorLdrValue = currentsensorLdrValue;
|
||||
if (sensorLdrValue > currentSensorLdrValue){
|
||||
currentSensorLdrValue++;
|
||||
sensorLdrValue = currentSensorLdrValue;
|
||||
}
|
||||
else if (sensorLdrValue < currentsensorLdrValue){
|
||||
currentsensorLdrValue--;
|
||||
sensorLdrValue = currentsensorLdrValue;
|
||||
else if (sensorLdrValue < currentSensorLdrValue){
|
||||
currentSensorLdrValue--;
|
||||
sensorLdrValue = currentSensorLdrValue;
|
||||
}
|
||||
|
||||
// Huidige LDR-waarde opslaan voor de volgende ronde.
|
||||
currentsensorLdrValue = sensorLdrValue;
|
||||
currentSensorLdrValue = sensorLdrValue;
|
||||
|
||||
// Berekenen van de hysteresis en de waarde niet onder/boven de min/max LDR-waarde uit laten komen.
|
||||
switchValueHigh = potSwitchValue+(potThresholdValue/2);
|
||||
@@ -261,7 +265,8 @@ void loop() {
|
||||
display.display();
|
||||
display.clearDisplay();
|
||||
|
||||
//delay(long(1000)*long(60));
|
||||
// 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);
|
||||
}
|
||||
|
||||
@@ -271,4 +276,5 @@ void loop() {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user