Add different puls length for reset type
This commit is contained in:
parent
54ffd02ab4
commit
3ac09781e5
@ -1,7 +1,7 @@
|
|||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <Wire.h>
|
#include <Wire.h>
|
||||||
|
|
||||||
void resetPuzzles();
|
void resetPuzzles(bool easy);
|
||||||
|
|
||||||
/* ========================================================= */
|
/* ========================================================= */
|
||||||
const uint8_t ARCHIV_ADDR = 0x10;
|
const uint8_t ARCHIV_ADDR = 0x10;
|
||||||
@ -70,21 +70,23 @@ ISR(PCINT1_vect)
|
|||||||
}
|
}
|
||||||
lastState = state;
|
lastState = state;
|
||||||
}
|
}
|
||||||
|
uint8_t inputPattern = 0;
|
||||||
void handleEncoderMovement()
|
void handleEncoderMovement()
|
||||||
{
|
{
|
||||||
long diff = encoderPostion - lastClickPosition;
|
long diff = encoderPostion - lastClickPosition;
|
||||||
if (abs(diff) >= stepsPerClick)
|
if (abs(diff) >= stepsPerClick)
|
||||||
{
|
{
|
||||||
resetPuzzles();
|
|
||||||
if (diff > 0)
|
if (diff > 0)
|
||||||
{
|
{
|
||||||
selectedIndex = (selectedIndex + 1) % 8;
|
selectedIndex = (selectedIndex + 1) % 8;
|
||||||
|
inputPattern = ((inputPattern << 1) | 1) & 0xFF;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
selectedIndex = (selectedIndex + 7) % 8;
|
selectedIndex = (selectedIndex + 7) % 8;
|
||||||
|
inputPattern = ((inputPattern << 1) | 0) & 0xFF;
|
||||||
}
|
}
|
||||||
|
resetPuzzles(inputPattern == 0b10101010);
|
||||||
setDrawerLight(selectedIndex);
|
setDrawerLight(selectedIndex);
|
||||||
lastClickPosition = encoderPostion;
|
lastClickPosition = encoderPostion;
|
||||||
}
|
}
|
||||||
@ -133,13 +135,16 @@ const int puzzleResetPins[3] = {7, 8, 9};
|
|||||||
bool puzzlesSolved[3] = {false, false, false};
|
bool puzzlesSolved[3] = {false, false, false};
|
||||||
bool allSolvedSent = false;
|
bool allSolvedSent = false;
|
||||||
|
|
||||||
void resetPuzzles()
|
void resetPuzzles(bool easy)
|
||||||
{
|
{
|
||||||
for (size_t i = 0; i < 3; i++)
|
for (size_t i = 0; i < 3; i++)
|
||||||
{
|
{
|
||||||
puzzlesSolved[i] = false;
|
|
||||||
digitalWrite(puzzleResetPins[i], HIGH);
|
digitalWrite(puzzleResetPins[i], HIGH);
|
||||||
delay(30);
|
puzzlesSolved[i] = false;
|
||||||
|
}
|
||||||
|
delay(30 * (easy * 10)); //delay 30 or 300ms
|
||||||
|
for (size_t i = 0; i < 3; i++)
|
||||||
|
{
|
||||||
digitalWrite(puzzleResetPins[i], LOW);
|
digitalWrite(puzzleResetPins[i], LOW);
|
||||||
}
|
}
|
||||||
allSolvedSent = false;
|
allSolvedSent = false;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user