Untitled

 avatar
unknown
plain_text
22 days ago
1.7 kB
3
Indexable
#include <Servo.h>

const int numberOfStations = 3;
int channel;
Servo servos[numberOfServos] = {};
int angles[numberOfServos] = {};
int currentAngles[numberOfServos] = {};
char inputLine[64];
int currentPosition = 0;
int reading = false;
char first;
char last;
int parsed;
bool changeAngles = false;
long time = millis();

void setup() {
  // put your setup code here, to run once:
  for(int i = 2; i < numberOfServos+2; i++){
    pinMode(i, OUTPUT);
    servos[i-2].attach(i);
  }
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  inputFunction();
  timeFunction();
}

void inputFunction(){
    while(Serial.available()){
    char letter = Serial.read();
    if (letter == 'S'){
      currentPosition = 0;
      inputLine[currentPosition++] = letter;
      reading = true;
    }
    else if(reading){
      if(letter == 'X'){
        inputLine[currentPosition] = letter;
        reading = false;
        changeAngles = true;
      }
      else inputLine[currentPosition++] = letter;
    }
  }
}

void encodingInputLine(){
    message = Serial.readString();
    parsed = sscanf(message.c_str(), "%c %d %d %d %d %d %d %c", &first, &channel, &angles[0], &angles[1], &angles[2], &angles[3], &angles[4], &last);
    if(parsed == 8 && first == 'S' && last == 'X' && channel == 1){
      for(int i = 0; i < numberOfServos; i++) servos[i].write(angles[i]);
      Serial.println("Radi");
    }
}

void motorFunction(){
    if(millis() > time+6){
        for(int i = 0; i < 5; i++){
            
        }
    }
}

void timeFunction(){
    if(millis() < 0 && time > 0){
        time = millis();
    }
}
Editor is loading...
Leave a Comment