我班上的对象声明与 addafruit 电机库

Object Declaration in my class with addafruit Motor libary

本文关键字:addafruit 电机 声明 对象      更新时间:2023-10-16
 class JAAmtr {
  private:
    boolean lefton;
  public:
    JAAmtr();
    void turnleft();
    void turnright();
    boolean getLefton();
 };

你好我写这个类是为了让我的arduino机器人向左或向右转。

我在哪里放置电机作业的代码(我希望它进入我的类(:

 AF_DCMotor motor1(1);
 AF_DCMotor motor2(2);
 AF_DCMotor motor3(3);
 AF_DCMotor motor4(4); 

我尝试将其作为私有变量,但它不起作用。谢谢你的回答

这是我的代码:

#include <AFMotor.h>

 // pin assignments
 int PhotoR1 = 1;
 int PhotoR2 = 5;
     **//Following 4lines into my class**
     AF_DCMotor motor1(1);
     AF_DCMotor motor2(2);
     AF_DCMotor motor3(3);
     AF_DCMotor motor4(4); 

 class JAAmtr {
  private:
    boolean lefton;
  public:
    JAAmtr();
    void turnleft();
    void turnright();
    boolean getLefton();
 };
void setup(){
 JAAmtr viermotor; 
 pinMode(PhotoR1, INPUT);
 pinMode(PhotoR2, INPUT);
 Serial.begin(9600);  

}
//LOOP:
void loop(){
 int light0 = analogRead(PhotoR1);
 int light1 = analogRead(PhotoR2);
 Serial.print(light0);
 Serial.print(" <-R1 R5-> ");
 Serial.println(light1);
 if( light0 > light1 )
 {
 } else {

}
  delay(500);
}
//END LOOP
JAAmtr::JAAmtr(){  
 motor1.setSpeed(200); //Turn on the Motor
 motor1.run(RELEASE);
 motor2.setSpeed(200); //Turn on the Motor
 motor2.run(RELEASE);
 motor3.setSpeed(200); //Turn on the Motor
 motor3.run(RELEASE);
 motor4.setSpeed(200); //Turn on the Motor
 motor4.run(RELEASE);
}
void JAAmtr::turnleft(){
    if(lefton == false)
    {
        motor1.run(RELEASE);
        motor2.run(RELEASE);
        motor3.run(RELEASE);
        motor4.run(RELEASE);
        delay(500);
        lefton = true;
    }
        motor1.run(BACKWARD);
        motor2.run(BACKWARD);
        motor3.run(FORWARD);
        motor4.run(FORWARD);
}
void JAAmtr::turnright(){
    if(lefton == true)
    {
        motor1.run(RELEASE);
        motor2.run(RELEASE);
        motor3.run(RELEASE);
        motor4.run(RELEASE);
        delay(500);
        lefton = false;
    }
        motor3.run(BACKWARD);
        motor4.run(BACKWARD);
        motor1.run(FORWARD);
        motor2.run(FORWARD);
}
//MOVE FORWARD FUCNTION

在私有部分中,声明成员变量

AF_DCMotor motor1;
AF_DCMotor motor2;
AF_DCMotor motor3;
AF_DCMotor motor4; 

然后在构造函数中,初始化它们

JAAmtr::JAAmtr() : motor1(1), motor2(2), motor3(3), motor4(4)
{  
    motor1.setSpeed(200); //Turn on the Motor
    motor1.run(RELEASE);
    motor2.setSpeed(200); //Turn on the Motor
    motor2.run(RELEASE);
    motor3.setSpeed(200); //Turn on the Motor
    motor3.run(RELEASE);
    motor4.setSpeed(200); //Turn on the Motor
    motor4.run(RELEASE);
}