
-----------------------------------
Remus Boldis
30 Noi 2020 16:23


-----------------------------------
Pun si sketch-ul pentru axa RA, comanda in IR

#include <IRremote>

const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
unsigned long key_value = 0;
const int stepPin = 10;
const int dirPin = 11;

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn();
  irrecv.blink13(true);
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
  digitalWrite(stepPin, LOW);
  digitalWrite(dirPin, LOW);
}

void loop() {

manual:
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    if (results.value == 0XFFFFFFFF)
      results.value = key_value;

    switch (results.value) {
      case 0xFFC23D: //Keypad button "RIGHT"
        digitalWrite(dirPin, HIGH);
        digitalWrite(stepPin, HIGH);
        delay(1);
        digitalWrite(stepPin, LOW);
        delay(1);
        digitalWrite(stepPin, HIGH);
        delay(1);
        digitalWrite(stepPin, LOW);
    }

    switch (results.value) {
      case 0xFF22DD: //Keypad button "LEFT"
        digitalWrite(dirPin, LOW);
        digitalWrite(stepPin, HIGH);
        delay(1);
        digitalWrite(stepPin, LOW);
        delay(1);
        digitalWrite(stepPin, HIGH);
        delay(1);
        digitalWrite(stepPin, LOW);
    }

    switch (results.value) {
      case 0xFF02FD: //Keypad button "OK"
        goto trak;
    }

    key_value = results.value;
    irrecv.resume();

    goto manual;


trak:
    digitalWrite(stepPin, LOW);
    digitalWrite(dirPin, LOW);
    digitalWrite(13, LOW);
    digitalWrite(dirPin, HIGH);
    digitalWrite(stepPin, HIGH);
    digitalWrite(13, HIGH);
    delay(500);
    digitalWrite(stepPin, LOW);
    digitalWrite(dirPin, LOW);
    digitalWrite(13, LOW);

    if (irrecv.decode(&results)) {
      Serial.println(results.value, HEX);
      if (results.value == 0XFFFFFFFF)
        results.value = key_value;

      switch (results.value) {
        case 0xFF4AB5: //Keypad button "0"
          goto manual;
      }

    }
    key_value = results.value;
    irrecv.resume();
    goto trak;

  }
}
