bLINK/Blink/Blink.ino

279 lines
4.8 KiB
C++

const int L = 3;
const int I = 5;
const int N = 4;
const int K = 6;
long randomTime;
void setup() {
pinMode(L, OUTPUT);
pinMode(I, OUTPUT);
pinMode(N, OUTPUT);
pinMode(K, OUTPUT);
}
void loop() {
klinik(150);
off();
int l1[] = {L,I,N,K};
order(l1, 4, 150, true);
order(l1, 3, 150, true);
order(l1, 2, 150, true);
order(l1, 1, 150, true);
off();
//fromLeft(100);
//toRight(100);
}
void off() {
digitalWrite(L, HIGH);
digitalWrite(I, HIGH);
digitalWrite(N, HIGH);
digitalWrite(K, HIGH);
delay(200);
digitalWrite(L, LOW);
digitalWrite(I, LOW);
digitalWrite(N, LOW);
digitalWrite(K, LOW);
delay(1000);
}
void startLetter(int letter, int time) {
digitalWrite(letter, HIGH);
delay(2 * time);
}
void endLetter(int letter, int time) {
delay(2 * time);
digitalWrite(letter, LOW);
}
void schng(int from, int to, int time) {
delay(2 * time);
digitalWrite(to, HIGH);
delay(time);
digitalWrite(from, LOW);
delay(2 * time);
}
void order(int list[], int length, int time, bool keepEnd) {
if(length == 0) {
return;
}
startLetter(list[0], time);
for (byte i = 1; i < length; i++) {
schng(list[i-1], list[i], time);
}
if(keepEnd) {
return;
}
endLetter(list[length], time);
}
void singleOn(int delayTime) {
digitalWrite(L, HIGH);
delay(delayTime);
digitalWrite(L, LOW);
digitalWrite(I, HIGH);
delay(delayTime);
digitalWrite(I, LOW);
digitalWrite(N, HIGH);
delay(delayTime);
digitalWrite(N, LOW);
digitalWrite(K, HIGH);
delay(delayTime);
digitalWrite(K, LOW);
}
void MiamiMidnight() {
digitalWrite(L, HIGH);
digitalWrite(I, HIGH);
digitalWrite(N, HIGH);
digitalWrite(K, HIGH);
randomTime = random(1000, 10000);
delay(randomTime);
digitalWrite(K, LOW);
delay(200);
digitalWrite(K, HIGH);
delay(400);
digitalWrite(I, LOW);
delay(200);
digitalWrite(I, HIGH);
delay(300);
digitalWrite(K, LOW);
delay(900);
}
void klinik(int time) {
int length = 6;
int letters[] = {K, L, I, N, I, K};
order(letters, length, time, false);
delay(1000);
}
void fromLeft(int del) {
digitalWrite(L, HIGH);
delay(del);
digitalWrite(I, HIGH);
delay(del/4);
digitalWrite(L, LOW);
delay(del);
digitalWrite(N, HIGH);
delay(del/4);
digitalWrite(I, LOW);
delay(del);
digitalWrite(K, HIGH);
delay(del/4);
digitalWrite(N, LOW);
delay(del*2);
digitalWrite(L, HIGH);
delay(del);
digitalWrite(I, HIGH);
delay(del/4);
digitalWrite(L, LOW);
delay(del);
digitalWrite(N, HIGH);
delay(del/4);
digitalWrite(I, LOW);
delay(del*2);
digitalWrite(L, HIGH);
delay(del);
digitalWrite(I, HIGH);
delay(del/4);
digitalWrite(L, LOW);
delay(del*2);
digitalWrite(L, HIGH);
delay(3000);
}
void fromRight(int del) {
digitalWrite(K, HIGH);
delay(del);
digitalWrite(N, HIGH);
delay(del/4);
digitalWrite(K, LOW);
delay(del);
digitalWrite(I, HIGH);
delay(del/4);
digitalWrite(N, LOW);
delay(del);
digitalWrite(L, HIGH);
delay(del/4);
digitalWrite(I, LOW);
delay(del*2);
digitalWrite(K, HIGH);
delay(del);
digitalWrite(N, HIGH);
delay(del/4);
digitalWrite(K, LOW);
delay(del);
digitalWrite(I, HIGH);
delay(del/4);
digitalWrite(N, LOW);
delay(del*2);
digitalWrite(K, HIGH);
delay(del);
digitalWrite(N, HIGH);
delay(del/4);
digitalWrite(K, LOW);
delay(del*2);
digitalWrite(K, HIGH);
delay(3000);
}
void toLeft(int del) {
digitalWrite(L, HIGH);
digitalWrite(I, HIGH);
digitalWrite(N, HIGH);
digitalWrite(K, HIGH);
digitalWrite(L, LOW);
delay(del*2);
digitalWrite(L, HIGH);
delay(del/4);
digitalWrite(I, LOW);
delay(del);
digitalWrite(L, LOW);
delay(del*2);
digitalWrite(I, HIGH);
delay(del/4);
digitalWrite(N, LOW);
delay(del);
digitalWrite(L, HIGH);
delay(del/4);
digitalWrite(I, LOW);
delay(del);
digitalWrite(L, LOW);
delay(del*2);
digitalWrite(N, HIGH);
delay(del/4);
digitalWrite(K, LOW);
delay(del);
digitalWrite(I, HIGH);
delay(del/4);
digitalWrite(N, LOW);
delay(del);
digitalWrite(L, HIGH);
delay(del/4);
digitalWrite(I, LOW);
delay(del);
digitalWrite(L, LOW);
delay(3000);
}
void toRight(int del) {
digitalWrite(L, HIGH);
digitalWrite(I, HIGH);
digitalWrite(N, HIGH);
digitalWrite(K, HIGH);
digitalWrite(K, LOW);
delay(del*2);
digitalWrite(K, HIGH);
delay(del/4);
digitalWrite(N, LOW);
delay(del);
digitalWrite(K, LOW);
delay(del*2);
digitalWrite(N, HIGH);
delay(del/4);
digitalWrite(I, LOW);
delay(del);
digitalWrite(K, HIGH);
delay(del/4);
digitalWrite(N, LOW);
delay(del);
digitalWrite(K, LOW);
delay(del*2);
digitalWrite(I, HIGH);
delay(del/4);
digitalWrite(L, LOW);
delay(del);
digitalWrite(N, HIGH);
delay(del/4);
digitalWrite(I, LOW);
delay(del);
digitalWrite(K, HIGH);
delay(del/4);
digitalWrite(N, LOW);
delay(del);
digitalWrite(K, LOW);
delay(3000);
}