아두이노

Table Tennis

내동 2021. 8. 17. 00:28

탁구공 발사기 제작

#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

 

'아두이노' 카테고리의 다른 글

감 깍는 모타  (0) 2021.10.29
바운스 버턴  (0) 2021.10.15
Pid  (0) 2021.06.13
controlling N20 Micro gear motor with encoder using arduino  (0) 2021.05.29
rope  (0) 2021.03.11