mirror of
https://github.com/bitlair/bitlair_doorduino.git
synced 2025-05-13 12:20:07 +02:00
updated bitlair_doorduino to direct motor drive
This commit is contained in:
parent
d3cfe7e904
commit
d5fcd80cef
1 changed files with 49 additions and 21 deletions
|
@ -7,9 +7,10 @@
|
||||||
#include "Entropy.h"
|
#include "Entropy.h"
|
||||||
#include "sha1.h"
|
#include "sha1.h"
|
||||||
|
|
||||||
#define PIN_HORN 6
|
|
||||||
#define PIN_OPEN 5
|
|
||||||
#define PIN_CLOSE 4
|
#define PIN_CLOSE 4
|
||||||
|
#define PIN_OPEN 5
|
||||||
|
#define PIN_LOCK 6
|
||||||
|
#define PIN_UNLOCK 7
|
||||||
|
|
||||||
#define PIN_1WIRE 13
|
#define PIN_1WIRE 13
|
||||||
#define PIN_LEDGREEN 10
|
#define PIN_LEDGREEN 10
|
||||||
|
@ -147,7 +148,8 @@ void setup()
|
||||||
|
|
||||||
pinMode(PIN_OPEN, OUTPUT);
|
pinMode(PIN_OPEN, OUTPUT);
|
||||||
pinMode(PIN_CLOSE, OUTPUT);
|
pinMode(PIN_CLOSE, OUTPUT);
|
||||||
pinMode(PIN_HORN, OUTPUT);
|
pinMode(PIN_LOCK, OUTPUT);
|
||||||
|
pinMode(PIN_UNLOCK, OUTPUT);
|
||||||
|
|
||||||
pinMode(PIN_LEDGREEN, OUTPUT);
|
pinMode(PIN_LEDGREEN, OUTPUT);
|
||||||
pinMode(PIN_LEDRED, OUTPUT);
|
pinMode(PIN_LEDRED, OUTPUT);
|
||||||
|
@ -492,8 +494,45 @@ void ParseCMD(char* cmdbuf, uint8_t cmdbuffill)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define TOGGLE_TIME 2500
|
void OpenLock() {
|
||||||
#define BUTTON_TIME 250
|
// Lock motor has 200ms lead time and 200ms overlap
|
||||||
|
digitalWrite(PIN_LOCK, HIGH);
|
||||||
|
DelayLEDs(200);
|
||||||
|
digitalWrite(PIN_OPEN, HIGH);
|
||||||
|
DelayLEDs(200);
|
||||||
|
digitalWrite(PIN_LOCK, LOW);
|
||||||
|
DelayLEDs(4800);
|
||||||
|
digitalWrite(PIN_OPEN, LOW);
|
||||||
|
DelayLEDs(100);
|
||||||
|
|
||||||
|
// Back up a bit
|
||||||
|
digitalWrite(PIN_CLOSE, HIGH);
|
||||||
|
DelayLEDs(400);
|
||||||
|
digitalWrite(PIN_CLOSE, LOW);
|
||||||
|
DelayLEDs(100);
|
||||||
|
|
||||||
|
// Unlock motor
|
||||||
|
digitalWrite(PIN_UNLOCK, HIGH);
|
||||||
|
DelayLEDs(100);
|
||||||
|
digitalWrite(PIN_UNLOCK, LOW);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CloseLock() {
|
||||||
|
// Lock motor has 200ms lead time and 200ms overlap
|
||||||
|
digitalWrite(PIN_LOCK, HIGH);
|
||||||
|
DelayLEDs(200);
|
||||||
|
digitalWrite(PIN_CLOSE, HIGH);
|
||||||
|
DelayLEDs(200);
|
||||||
|
digitalWrite(PIN_LOCK, LOW);
|
||||||
|
DelayLEDs(4800);
|
||||||
|
digitalWrite(PIN_CLOSE, LOW);
|
||||||
|
DelayLEDs(100);
|
||||||
|
|
||||||
|
// Unlock motor
|
||||||
|
digitalWrite(PIN_UNLOCK, HIGH);
|
||||||
|
DelayLEDs(100);
|
||||||
|
digitalWrite(PIN_UNLOCK, LOW);
|
||||||
|
}
|
||||||
|
|
||||||
void ToggleLock()
|
void ToggleLock()
|
||||||
{
|
{
|
||||||
|
@ -501,25 +540,13 @@ void ToggleLock()
|
||||||
{
|
{
|
||||||
g_lockopen = false;
|
g_lockopen = false;
|
||||||
Serial.println("closing lock");
|
Serial.println("closing lock");
|
||||||
for (uint8_t i = 0; i < 3; i++)
|
CloseLock();
|
||||||
{
|
|
||||||
digitalWrite(PIN_CLOSE, HIGH);
|
|
||||||
DelayLEDs(BUTTON_TIME);
|
|
||||||
digitalWrite(PIN_CLOSE, LOW);
|
|
||||||
DelayLEDs(TOGGLE_TIME - BUTTON_TIME);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
g_lockopen = true;
|
g_lockopen = true;
|
||||||
Serial.println("opening lock");
|
Serial.println("opening lock");
|
||||||
for (uint8_t i = 0; i < 3; i++)
|
OpenLock();
|
||||||
{
|
|
||||||
digitalWrite(PIN_OPEN, HIGH);
|
|
||||||
DelayLEDs(BUTTON_TIME);
|
|
||||||
digitalWrite(PIN_OPEN, LOW);
|
|
||||||
DelayLEDs(TOGGLE_TIME - BUTTON_TIME);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DelayLEDs(4000);
|
DelayLEDs(4000);
|
||||||
|
@ -529,7 +556,8 @@ void ToggleLock()
|
||||||
|
|
||||||
bool HasMainsPower()
|
bool HasMainsPower()
|
||||||
{
|
{
|
||||||
return digitalRead(PIN_MAINS_POWER) == HIGH;
|
return true;
|
||||||
|
//return digitalRead(PIN_MAINS_POWER) == HIGH;
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop()
|
void loop()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue