Skip to content

Instantly share code, notes, and snippets.

@mbeloshitsky
Created February 19, 2017 17:24
Show Gist options
  • Save mbeloshitsky/b0d3fde9be1e98f789f2fd274fcc1804 to your computer and use it in GitHub Desktop.
Save mbeloshitsky/b0d3fde9be1e98f789f2fd274fcc1804 to your computer and use it in GitHub Desktop.
/* КПТшечка */
#include <pt.h>
#define PT_SLEEP(interval) timestamp=millis();PT_WAIT_UNTIL(pt, millis()-timestamp>=interval)
int RELAY_1 = 8;
int RELAY_2 = 9;
int RELAY_3 = 10;
int RELAY_4 = 11;
static int kod_kzh(struct pt * pt) {
static int timestamp;
PT_BEGIN(pt);
while(1) {
digitalWrite(RELAY_1, HIGH);
PT_SLEEP(230);
digitalWrite(RELAY_1, LOW);
PT_SLEEP(570);
}
PT_END(pt);
}
static int kod_zh(struct pt * pt) {
static int timestamp;
PT_BEGIN(pt);
while(1) {
digitalWrite(RELAY_2, HIGH);
PT_SLEEP(380);
digitalWrite(RELAY_2, LOW);
PT_SLEEP(120);
digitalWrite(RELAY_2, HIGH);
PT_SLEEP(380);
digitalWrite(RELAY_2, LOW);
PT_SLEEP(720);
}
PT_END(pt);
}
static int kod_z(struct pt * pt) {
static int timestamp;
PT_BEGIN(pt);
while(1) {
digitalWrite(RELAY_3, HIGH);
PT_SLEEP(350);
digitalWrite(RELAY_3, LOW);
PT_SLEEP(120);
digitalWrite(RELAY_3, HIGH);
PT_SLEEP(220);
digitalWrite(RELAY_3, LOW);
PT_SLEEP(120);
digitalWrite(RELAY_3, HIGH);
PT_SLEEP(220);
digitalWrite(RELAY_3, LOW);
PT_SLEEP(570);
}
PT_END(pt);
}
static int kod_mig(struct pt * pt) {
static int timestamp;
PT_BEGIN(pt);
while(1) {
digitalWrite(RELAY_4, HIGH);
PT_SLEEP(750);
digitalWrite(RELAY_4, LOW);
PT_SLEEP(750);
}
PT_END(pt);
}
static struct pt pts[4];
void setup() {
pinMode(RELAY_1, OUTPUT);
pinMode(RELAY_2, OUTPUT);
pinMode(RELAY_3, OUTPUT);
pinMode(RELAY_4, OUTPUT);
PT_INIT(&pts[0]);
PT_INIT(&pts[1]);
PT_INIT(&pts[2]);
PT_INIT(&pts[3]);
}
void loop() {
kod_kzh(&pts[0]);
kod_zh(&pts[1]);
kod_z(&pts[2]);
kod_mig(&pts[3]);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment