Initial commit
This commit is contained in:
@@ -0,0 +1,5 @@
|
|||||||
|
.pio
|
||||||
|
.vscode/.browse.c_cpp.db*
|
||||||
|
.vscode/c_cpp_properties.json
|
||||||
|
.vscode/launch.json
|
||||||
|
.vscode/ipch
|
||||||
Vendored
+10
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
// See http://go.microsoft.com/fwlink/?LinkId=827846
|
||||||
|
// for the documentation about the extensions.json format
|
||||||
|
"recommendations": [
|
||||||
|
"platformio.platformio-ide"
|
||||||
|
],
|
||||||
|
"unwantedRecommendations": [
|
||||||
|
"ms-vscode.cpptools-extension-pack"
|
||||||
|
]
|
||||||
|
}
|
||||||
Vendored
+11
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"[cpp]": {
|
||||||
|
"editor.formatOnSave": true
|
||||||
|
},
|
||||||
|
"[ignore]": {
|
||||||
|
"editor.formatOnSave": true
|
||||||
|
},
|
||||||
|
"[jsonc]": {
|
||||||
|
"editor.formatOnSave": true
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
[env:nanoatmega328]
|
||||||
|
platform = atmelavr
|
||||||
|
board = nanoatmega328
|
||||||
|
framework = arduino
|
||||||
+348
@@ -0,0 +1,348 @@
|
|||||||
|
#include <Arduino.h>
|
||||||
|
|
||||||
|
#define PIN_1 9
|
||||||
|
#define PIN_2 10
|
||||||
|
|
||||||
|
// In Wave pattern
|
||||||
|
void patternInWave(uint8_t pin1, uint8_t pin2, int times = 8, int delayMil = 6)
|
||||||
|
{
|
||||||
|
for (int i = 0; i <= times - 1; i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j <= 80; j++)
|
||||||
|
{
|
||||||
|
digitalWrite(pin1, HIGH);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, 80, 0, ((6 * 1000) / 2)));
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, HIGH);
|
||||||
|
delayMicroseconds(map(j, 0, 80, ((6 * 1000) / 2), 0));
|
||||||
|
}
|
||||||
|
for (int j = 80; j >= 0; j--)
|
||||||
|
{
|
||||||
|
digitalWrite(pin1, HIGH);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, 80, 0, ((6 * 1000) / 2)));
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, HIGH);
|
||||||
|
delayMicroseconds(map(j, 0, 80, ((6 * 1000) / 2), 0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i <= (times * 2) - 1; i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j <= 40; j++)
|
||||||
|
{
|
||||||
|
digitalWrite(pin1, HIGH);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, 40, 0, ((6 * 1000) / 2)));
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, HIGH);
|
||||||
|
delayMicroseconds(map(j, 0, 40, ((6 * 1000) / 2), 0));
|
||||||
|
}
|
||||||
|
for (int j = 40; j >= 0; j--)
|
||||||
|
{
|
||||||
|
digitalWrite(pin1, HIGH);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, 40, 0, ((6 * 1000) / 2)));
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, HIGH);
|
||||||
|
delayMicroseconds(map(j, 0, 40, ((6 * 1000) / 2), 0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sequential pattern
|
||||||
|
void patternSequential(uint8_t pin1, uint8_t pin2, int times = 4, int delayMil = 1346)
|
||||||
|
{
|
||||||
|
for (int i = 0; i <= times - 1; i++)
|
||||||
|
{
|
||||||
|
delayMil = delayMil / 2;
|
||||||
|
|
||||||
|
for (int j = 0; j <= (times * pow(2, i)) - 1; j++)
|
||||||
|
{
|
||||||
|
digitalWrite(pin1, HIGH);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delay(delayMil);
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, HIGH);
|
||||||
|
delay(delayMil);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Slo Glo pattern
|
||||||
|
void patternSloGlo(uint8_t pin1, uint8_t pin2, int times = 3, int delayMil = 6)
|
||||||
|
{
|
||||||
|
int numberLoops = 1350;
|
||||||
|
|
||||||
|
for (int i = 0; i <= times - 1; i++)
|
||||||
|
{
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
for (int j = 0; j <= numberLoops; j++)
|
||||||
|
{
|
||||||
|
|
||||||
|
digitalWrite(pin1, HIGH);
|
||||||
|
delayMicroseconds(map(j, 0, numberLoops, 0, (delayMil * 1000)));
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, numberLoops, (delayMil * 1000), 0));
|
||||||
|
}
|
||||||
|
for (int j = numberLoops; j >= 0; j--)
|
||||||
|
{
|
||||||
|
|
||||||
|
digitalWrite(pin1, HIGH);
|
||||||
|
delayMicroseconds(map(j, 0, numberLoops, 0, (delayMil * 1000)));
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, numberLoops, (delayMil * 1000), 0));
|
||||||
|
}
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
for (int j = 0; j <= numberLoops; j++)
|
||||||
|
{
|
||||||
|
|
||||||
|
digitalWrite(pin2, HIGH);
|
||||||
|
delayMicroseconds(map(j, 0, numberLoops, 0, (delayMil * 1000)));
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, numberLoops, (delayMil * 1000), 0));
|
||||||
|
}
|
||||||
|
for (int j = numberLoops; j >= 0; j--)
|
||||||
|
{
|
||||||
|
|
||||||
|
digitalWrite(pin2, HIGH);
|
||||||
|
delayMicroseconds(map(j, 0, numberLoops, 0, (delayMil * 1000)));
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, numberLoops, (delayMil * 1000), 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
numberLoops = numberLoops / 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Chasing / Flash patters
|
||||||
|
void patternChasingFlash(uint8_t pin1, uint8_t pin2, int times = 1, int delayMil = 375)
|
||||||
|
{
|
||||||
|
for (int i = 0; i <= 2; i++)
|
||||||
|
{
|
||||||
|
digitalWrite(pin1, HIGH);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delay(delayMil / 4);
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
delay(delayMil / 4);
|
||||||
|
}
|
||||||
|
for (int i = 0; i <= 2; i++)
|
||||||
|
{
|
||||||
|
digitalWrite(pin1, HIGH);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delay(delayMil / 2);
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, HIGH);
|
||||||
|
delay(delayMil / 2);
|
||||||
|
}
|
||||||
|
for (int i = 0; i <= 2; i++)
|
||||||
|
{
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, HIGH);
|
||||||
|
delay(delayMil / 4);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delay(delayMil / 4);
|
||||||
|
}
|
||||||
|
for (int i = 0; i <= 2; i++)
|
||||||
|
{
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, HIGH);
|
||||||
|
delay(delayMil / 2);
|
||||||
|
digitalWrite(pin1, HIGH);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delay(delayMil / 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Slow Fade pattern
|
||||||
|
void patternSlowFade(uint8_t pin1, uint8_t pin2, int times = 1, int delayMil = 10)
|
||||||
|
{
|
||||||
|
int delayMic = delayMil * 1000;
|
||||||
|
|
||||||
|
for (int i = 0; i <= 1; i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j <= 425; j++)
|
||||||
|
{
|
||||||
|
|
||||||
|
digitalWrite(pin1, HIGH);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, 425, 0, delayMic / 2));
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, 425, delayMic, 0));
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, HIGH);
|
||||||
|
delayMicroseconds(map(j, 0, 425, 0, delayMic / 2));
|
||||||
|
}
|
||||||
|
for (int j = 425; j >= 0; j--)
|
||||||
|
{
|
||||||
|
digitalWrite(pin1, HIGH);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, 425, 0, delayMic / 2));
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, 425, delayMic, 0));
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, HIGH);
|
||||||
|
delayMicroseconds(map(j, 0, 425, 0, delayMic / 2));
|
||||||
|
}
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delay(375);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i <= 1; i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j <= 178; j++)
|
||||||
|
{
|
||||||
|
|
||||||
|
digitalWrite(pin1, HIGH);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, 178, 0, delayMic / 2));
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, 178, delayMic, 0));
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, HIGH);
|
||||||
|
delayMicroseconds(map(j, 0, 178, 0, delayMic / 2));
|
||||||
|
}
|
||||||
|
for (int j = 178; j >= 0; j--)
|
||||||
|
{
|
||||||
|
digitalWrite(pin1, HIGH);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, 178, 0, delayMic / 2));
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, 178, delayMic, 0));
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, HIGH);
|
||||||
|
delayMicroseconds(map(j, 0, 178, 0, delayMic / 2));
|
||||||
|
}
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delay(375);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i <= 3; i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j <= 99; j++)
|
||||||
|
{
|
||||||
|
|
||||||
|
digitalWrite(pin1, HIGH);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, 99, 0, delayMic / 2));
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, 99, delayMic, 0));
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, HIGH);
|
||||||
|
delayMicroseconds(map(j, 0, 99, 0, delayMic / 2));
|
||||||
|
}
|
||||||
|
for (int j = 99; j >= 0; j--)
|
||||||
|
{
|
||||||
|
digitalWrite(pin1, HIGH);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, 99, 0, delayMic / 2));
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
delayMicroseconds(map(j, 0, 99, delayMic, 0));
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, HIGH);
|
||||||
|
delayMicroseconds(map(j, 0, 99, 0, delayMic / 2));
|
||||||
|
}
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delay(375);
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Twinkle Flash pattern
|
||||||
|
void patternTwinkleFlash(uint8_t pin1, uint8_t pin2, int times = 6, int delayMil = 118)
|
||||||
|
{
|
||||||
|
for (int i = 0; i <= times - 1; i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j <= 2; j++)
|
||||||
|
{
|
||||||
|
digitalWrite(pin1, HIGH);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delay(delayMil / 2);
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
delay(delayMil / 2);
|
||||||
|
}
|
||||||
|
for (int j = 0; j <= 2; j++)
|
||||||
|
{
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, HIGH);
|
||||||
|
delay(delayMil / 2);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delay(delayMil / 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Steady On pattern
|
||||||
|
void patternSteadyOn(uint8_t pin1, uint8_t pin2, int times = 1600, int delayMil = 1)
|
||||||
|
{
|
||||||
|
int delayMic = delayMil * 1000;
|
||||||
|
|
||||||
|
for (int i = 0; i <= times - 1; i++)
|
||||||
|
{
|
||||||
|
digitalWrite(pin1, HIGH);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
delayMicroseconds(delayMic / 2);
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, HIGH);
|
||||||
|
delayMicroseconds(delayMic / 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Off pattern
|
||||||
|
void patternOff(uint8_t pin1, uint8_t pin2)
|
||||||
|
{
|
||||||
|
digitalWrite(pin1, LOW);
|
||||||
|
digitalWrite(pin2, LOW);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Combination pattern
|
||||||
|
void patternCombination(uint8_t pin1, uint8_t pin2)
|
||||||
|
{
|
||||||
|
// 2. In Wave
|
||||||
|
patternInWave(pin1, pin2);
|
||||||
|
// 3. Sequential
|
||||||
|
patternSequential(pin1, pin2);
|
||||||
|
// 4. Slo Glo
|
||||||
|
patternSloGlo(pin1, pin2);
|
||||||
|
// 5. Chasing / Flash
|
||||||
|
patternChasingFlash(pin1, pin2);
|
||||||
|
// 6. Slow Fade
|
||||||
|
patternSlowFade(pin1, pin2);
|
||||||
|
// 7. Twinkle Flash
|
||||||
|
patternTwinkleFlash(pin1, pin2);
|
||||||
|
// 8. Steady On
|
||||||
|
patternSteadyOn(pin1, pin2);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
|
pinMode(PIN_1, OUTPUT);
|
||||||
|
pinMode(PIN_2, OUTPUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop()
|
||||||
|
{
|
||||||
|
patternCombination(PIN_1, PIN_2);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user