#include <Servo.h>
#include <Tennis.h>
#define M1 10
#define M2 11
#define Ser1 4
#define Ser2 5
int Pos =1;
Servo ser1;
Servo ser2;
long chat;
int val;
Tennis ten1(1,4,200,200,90); // pos, fre,pwm1,pwm2,ser(중앙)
Tennis ten2(2,4,200,180,60); //좌측
Tennis ten3(3,3,200,200,90); //중앙
Tennis ten4(4,4,200,200,110); //우측
Tennis ten5(5,4,200,200,120); //우측
Tennis ten6(6,4,200,200,150); //우측
Tennis ten7(7,4,200,180,130); //우측
Tennis ten8(8,4,180,200,110); //우측
Tennis ten9(9,4,200,180,90); //중앙
Tennis * Ten;
void setup() {
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
pinMode(Ser1, OUTPUT);
pinMode(Ser2, OUTPUT);
ser1.attach(Ser1);
ser2.attach(Ser2);
ser1.write(0);
}
void loop() {
Ten = GetTennis();
ser1.write(180);
ser2.write(Ten->SER);
int val = Ten-> Fre *1000;
analogWrite (M1, Ten->PWM1);
analogWrite (M2, Ten->PWM2);
wait(val);
ser1.write(90);
delay(500);
ser1.write(0);
delay(1000);
Pos +=1;
if( Pos == 10) Pos=1;
}
Tennis * GetTennis()
{ switch(Pos){
case 1: return &ten1; break;
case 2: return &ten2; break;
case 3: return &ten3; break;
case 4: return &ten4; break;
case 5: return &ten5; break;
case 6: return &ten6; break;
case 7: return &ten7; break;
case 8: return &ten8; break;
default: return &ten9; break;}
}
void wait(long chat)
{ long Pre =millis();
while(true){ long Now=millis();
Now -= Pre;
if(Now >chat) break;}
}
=====Tennis.cpp========
#include "Tennis.h"
Tennis::Tennis(int pos, int fre, int pwm1, int pwm2, int ser)
{ Pos = pos;
Fre = fre;
PWM1 = pwm1;
PWM2 = pwm2;
SER = ser;
}
======Tennis.h=====
#ifndef Tennis_h
#define Tennis_h
#include "Arduino.h"
class Tennis
{ public:
Tennis(int pos, int fre, int pwm1, int pwm2, int ser);
int Pos;
int Fre;
int PWM1;
int PWM2;
int SER;
};
#endif