E

Yardım

Başlatan EYT, 01 Kasım 2015, 21:06:51

EYT

Arkadaşlr bu kod tam olark ne işe yarıyor

#include <Servo.h>

#define BAUDRATE 57600
#define DEBUGOUTPUT 0
#define powercontrol 10

// checksum variables
byte generatedChecksum = 0;
byte checksum = 0;
int payloadLength = 0;
byte payloadData[64] = {
  0};
byte poorQuality = 0;
byte attention = 0;
byte meditation = 0;

// system variables
long lastReceivedPacket = 0;
boolean bigPacket = false;


Servo myservo1; 
Servo myservo2;
Servo myservo3;
Servo myservo4;
Servo myservo5;
//Servo myservo6;
//////////////////////////
// Microprocessor Setup //
//////////////////////////
void setup() {
  Serial.begin(BAUDRATE);           // USB

   //myservo6.attach(6);
   myservo1.attach(8)
   myservo2.attach(9);
   myservo3.attach(10);
   myservo4.attach(11);
   myservo5.attach(12);
}

////////////////////////////////
// Read data from Serial UART //
////////////////////////////////
byte ReadOneByte() {
  int ByteRead;

  while(!Serial.available());
  ByteRead = Serial.read();

#if DEBUGOUTPUT 
  Serial.print((char)ByteRead);   
#endif

  return ByteRead;
}

/////////////
//MAIN LOOP//
/////////////
void loop() {


  // Look for sync bytes
  if(ReadOneByte() == 170) {
    if(ReadOneByte() == 170) {

      payloadLength = ReadOneByte();
      if(payloadLength > 169)                     
          return;

      generatedChecksum = 0;       
      for(int i = 0; i < payloadLength; i++) { 
        payloadData = ReadOneByte();           
        generatedChecksum += payloadData;
      }   

      checksum = ReadOneByte();                     
      generatedChecksum = 255 - generatedChecksum; 

        if(checksum == generatedChecksum) {   

        poorQuality = 200;
        attention = 0;
        meditation = 0;

        for(int i = 0; i < payloadLength; i++) {   
          switch (payloadData) {
          case 2:
            i++;           
            poorQuality = payloadData;
            bigPacket = true;           
            break;
          case 4:
            i++;
            attention = payloadData;                       
            break;
          case 5:
            i++;
            meditation = payloadData;
            break;
          case 0x80:
            i = i + 3;
            break;
          case 0x83:
            i = i + 25;     
            break;
          default:
            break;
          } // switch
        } // for loop

#if !DEBUGOUTPUT

        // *** Add your code here ***

        if(bigPacket) {
          Serial.print("PoorQuality: ");
          Serial.print(poorQuality, DEC);
          Serial.print(" Attention: ");
          Serial.print(attention, DEC);
          Serial.print(" Time since last packet: ");
          Serial.print(millis() - lastReceivedPacket, DEC);
          lastReceivedPacket = millis();
          Serial.print("\n");




   
   
    int servoAng1=(attention / 10)*20;
    if(servoAng1>180){servoAng1=180;}   
    myservo1.write(servoAng1);
   
    int servoAng2=(attention / 10)*20;
    if(servoAng2>180){servoAng2=180;}   
    myservo2.write(servoAng2);
   
    int servoAng3=(attention / 10)*20;
    if(servoAng3>180){servoAng3=180;}   
    myservo3.write(servoAng3);
   
    int servoAng4=(attention / 10)*20;
    if(servoAng4>180){servoAng4=180;}   
    myservo4.write(servoAng4);
   
    int servoAng5=(attention / 10)*20;
    if(servoAng5>180){servoAng5=180;}   
    myservo5.write(servoAng5);
   
    Serial.print(servoAng1);Serial.print(servoAng2);Serial.print(servoAng3);Serial.print(servoAng4);Serial.print(servoAng5);Serial.print("");

/*
    int servoAng6=(attention / 10)*20;
    if(servoAng6>180){servoAng6=180;}   
    myservo6.write(servoAng6);
 
*/ 




         
               
        }
#endif       
        bigPacket = false;       
      }
      else {
        // Checksum Error
      }  // end if else for checksum
    } // end if read 0xAA byte
  } // end if read 0xAA byte
}

Powered by EzPortal