Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int sendLedPin = D7;
- int inputPin = D4;
- int inputPin2 = D3;
- int receiveLedPin = D0;
- int lastVal = 0;
- int lastVal2 = 0;
- int sendLedVal = 0;
- int sendLedVal2 = 0;
- void ledTwoToggle(const char *toggle, const char *onOff); //handler function for Spark.subscribe()
- void setup()
- {
- pinMode(receiveLedPin, OUTPUT);
- pinMode(sendLedPin, OUTPUT);
- pinMode(inputPin2, INPUT_PULLUP);
- pinMode(inputPin, INPUT_PULLUP);
- digitalWrite(sendLedPin, LOW);
- digitalWrite(receiveLedPin, LOW);
- Spark.publish("Core2Toggle", "State", 0);
- Spark.publish("Core3Toggle", "State", 0);
- Spark.subscribe("Core1Toggle", ledTwoToggle);
- }
- void loop()
- {
- static unsigned long lastPressTime =0;
- int val = digitalRead(inputPin);
- if (val == LOW && lastVal == HIGH)
- {
- if (millis() - lastPressTime > 25UL) //less primitive (non-blocking) debounce time
- {
- sendLedVal = !sendLedVal;
- digitalWrite(sendLedPin, sendLedVal ? HIGH : LOW);
- Spark.publish("Core2Toggle", sendLedVal ? "ON" : "OFF");
- }
- lastPressTime = millis();
- }
- lastVal = val;
- static unsigned long lastPressTime2 =0;
- int val2 = digitalRead(inputPin2);
- if (val2 == LOW && lastVal2 == HIGH)
- {
- if (millis() - lastPressTime2 > 25UL) //less primitive (non-blocking) debounce time
- {
- sendLedVal2 = !sendLedVal2;
- digitalWrite(sendLedPin, sendLedVal2 ? HIGH : LOW);
- Spark.publish("Core3Toggle", sendLedVal2 ? "ON" : "OFF");
- }
- lastPressTime2 = millis();
- }
- lastVal2 = val2;
- }
- void ledTwoToggle(const char *toggle, const char *onOff)
- {
- if (strcmp(onOff, "OFF") == 0)
- {
- digitalWrite(receiveLedPin, LOW);
- }
- else if (strcmp(onOff, "ON") == 0)
- {
- digitalWrite(receiveLedPin, HIGH);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement