初始化提交
This commit is contained in:
94
arduino-cli/libraries/QDPDCMOTOR/QDPDCMOTOR.cpp
Normal file
94
arduino-cli/libraries/QDPDCMOTOR/QDPDCMOTOR.cpp
Normal file
@@ -0,0 +1,94 @@
|
||||
#include "QDPDCMOTOR.h"
|
||||
QDPDCMOTOR::QDPDCMOTOR(uint8_t port)
|
||||
{
|
||||
if (port == 1) {
|
||||
Mport1 = 7;
|
||||
Mport2 = 6;
|
||||
Iport = 3;
|
||||
pinMode(7, OUTPUT);
|
||||
pinMode(6, OUTPUT);
|
||||
pinMode(3, INPUT);
|
||||
} else {
|
||||
Mport1 = 4;
|
||||
Mport2 = 5;
|
||||
Iport = 2;
|
||||
pinMode(4, OUTPUT);
|
||||
pinMode(5, OUTPUT);
|
||||
pinMode(2, INPUT);
|
||||
}
|
||||
|
||||
}
|
||||
void QDPDCMOTOR::run(int speed)
|
||||
{
|
||||
speed = speed > 255 ? 255 : speed;
|
||||
speed = speed < -255 ? -255 : speed;
|
||||
|
||||
if (speed >= 0)
|
||||
{
|
||||
digitalWrite(Mport1, HIGH);
|
||||
analogWrite(Mport2, abs(speed));
|
||||
}
|
||||
else
|
||||
{
|
||||
digitalWrite(Mport1, LOW);
|
||||
analogWrite(Mport2, abs(speed));
|
||||
}
|
||||
|
||||
}
|
||||
void QDPDCMOTOR::stop()
|
||||
{
|
||||
digitalWrite(Mport1, LOW);
|
||||
analogWrite(Mport2, 0);
|
||||
flag1 = 0;
|
||||
}
|
||||
void QDPDCMOTOR::PulseINI(long pulsenum, int speed, long _lowpulse, int _lowspeed) {
|
||||
setcount = pulsenum;
|
||||
count = 0;
|
||||
setspeed = speed;
|
||||
lowpulse = _lowpulse;
|
||||
lowspeed = _lowspeed;
|
||||
flag = 1;
|
||||
flag1 = 1;
|
||||
}
|
||||
void QDPDCMOTOR::PulseRun(uint8_t num) {
|
||||
run(setspeed);
|
||||
if(num)
|
||||
DcMotorfinish();
|
||||
|
||||
}
|
||||
void QDPDCMOTOR::DcMotorCount1() {
|
||||
count++;
|
||||
if (flag == 1 & setcount - count < lowpulse ) {
|
||||
analogWrite(Mport2, abs(lowspeed));
|
||||
flag = 0;
|
||||
}
|
||||
if (count >= setcount) {
|
||||
//flag1 = 0;
|
||||
detachInterrupt(digitalPinToInterrupt(3));
|
||||
stop();
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
void QDPDCMOTOR::DcMotorCount2() {
|
||||
|
||||
count++;
|
||||
if (flag == 1 & setcount - count < lowpulse ) {
|
||||
analogWrite(Mport2, abs(lowspeed));
|
||||
flag = 0;
|
||||
}
|
||||
if (count >= setcount) {
|
||||
//flag1 = 0;
|
||||
detachInterrupt(digitalPinToInterrupt(2));
|
||||
stop();
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
void QDPDCMOTOR::DcMotorfinish() {
|
||||
while(flag1){
|
||||
delay(1);
|
||||
//Serial.println(flag1);
|
||||
|
||||
}
|
||||
}
|
||||
27
arduino-cli/libraries/QDPDCMOTOR/QDPDCMOTOR.h
Normal file
27
arduino-cli/libraries/QDPDCMOTOR/QDPDCMOTOR.h
Normal file
@@ -0,0 +1,27 @@
|
||||
#include "arduino.h"
|
||||
|
||||
|
||||
|
||||
#ifndef QDPDCMOTOR_cpp
|
||||
#define QDPDCMOTOR_cpp
|
||||
|
||||
class QDPDCMOTOR {
|
||||
public:
|
||||
QDPDCMOTOR(uint8_t port);
|
||||
void run(int speed);
|
||||
void stop();
|
||||
void PulseINI(long pulsenum, int speed,long _lowpulse,int _lowspeed);
|
||||
void DcMotorCount1();
|
||||
void DcMotorCount2();
|
||||
void PulseRun(uint8_t num);
|
||||
void DcMotorfinish();
|
||||
bool flag,flag1;
|
||||
private:
|
||||
uint8_t Mport1, Mport2, Iport;
|
||||
int setspeed;
|
||||
long count, setcount, lowpulse;
|
||||
int lowspeed;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user