mirror of
https://gitlab.com/fabinfra/fabhardware/absaugungsklappensteuerung.git
synced 2025-03-12 23:01:52 +01:00
PWM auf einen Pin am Arduino Nano umgebaut. Schaltplan und Software angepasst.
This commit is contained in:
parent
6449358671
commit
6a4fff7f01
@ -8,6 +8,11 @@ void Ablauf();
|
|||||||
void AblaufSekunde();
|
void AblaufSekunde();
|
||||||
|
|
||||||
KlappenSteuerung klappe1 (M1A , M1B , M1SENSE , 5 );
|
KlappenSteuerung klappe1 (M1A , M1B , M1SENSE , 5 );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//KlappenSteuerung klappe2 (M2A , M2B , M2SENSE , 2 );
|
//KlappenSteuerung klappe2 (M2A , M2B , M2SENSE , 2 );
|
||||||
//KlappenSteuerung klappe3 (M3A , M3B , M3SENSE , 23 );
|
//KlappenSteuerung klappe3 (M3A , M3B , M3SENSE , 23 );
|
||||||
//KlappenSteuerung klappe4 (M4A , M4B , M4SENSE , 1 );
|
//KlappenSteuerung klappe4 (M4A , M4B , M4SENSE , 1 );
|
||||||
@ -16,6 +21,7 @@ KlappenSteuerung klappe1 (M1A , M1B , M1SENSE , 5 );
|
|||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
// put your setup code here, to run once:
|
// put your setup code here, to run once:
|
||||||
|
KlappenSteuerung::setMotorPwmPin(TIMER1_PWM_PIN);
|
||||||
KlappenSteuerung::setup();
|
KlappenSteuerung::setup();
|
||||||
pinMode(LED_BUILTIN , OUTPUT);
|
pinMode(LED_BUILTIN , OUTPUT);
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
uint8_t Motor::pinPwm;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -12,11 +12,16 @@ void Motor::setMotorPins(uint8_t pinA , uint8_t pinB){
|
|||||||
this->pinB = pinB;
|
this->pinB = pinB;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Motor::setMotorPwmPin(uint8_t pinPwm){
|
||||||
|
Motor::pinPwm = pinPwm;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Motor::setup(){
|
void Motor::setup(){
|
||||||
ArduinoAnpassung::setup();
|
ArduinoAnpassung::setup();
|
||||||
Timer1.initialize(100); // 10kHz
|
Timer1.initialize(1000); // 10kHz
|
||||||
Timer1.attachInterrupt(Motor::interruptEinsprung);
|
//Timer1.attachInterrupt(Motor::interruptEinsprung);
|
||||||
|
Timer1.pwm(Motor::pinPwm, (0)); // 1023
|
||||||
//digitalWrite(LED_BUILTIN , 0 );
|
//digitalWrite(LED_BUILTIN , 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,64 +49,43 @@ void Motor::memberLoop(){
|
|||||||
else
|
else
|
||||||
test --;
|
test --;
|
||||||
}
|
}
|
||||||
setSollSpeed( test / 64);
|
setSollSpeed( test / 128);
|
||||||
//setSollSpeed(100);
|
//setSollSpeed(100);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Motor::setSollSpeed(int16_t speed){
|
void Motor::setSollSpeed(int16_t speed){
|
||||||
if(speed > 256)
|
uint16_t pwm;
|
||||||
speed = 256;
|
|
||||||
if((speed < 100) && (speed > -100))
|
|
||||||
speed = 0;
|
|
||||||
if(speed < -256)
|
|
||||||
speed = -256;
|
|
||||||
|
|
||||||
sollSpeed = speed;
|
if(speed >255)
|
||||||
|
speed = 255;
|
||||||
}
|
if(speed < -255)
|
||||||
|
speed = -255;
|
||||||
|
|
||||||
|
|
||||||
void Motor::interruptEinsprung(){
|
if(speed > 0)
|
||||||
MyList *zeiger;
|
|
||||||
zeiger = ArduinoAnpassung::getErstesElement();
|
|
||||||
while(zeiger){
|
|
||||||
((Motor*)zeiger)->memberInterruptEinsprung();
|
|
||||||
zeiger = zeiger->getNachfolgerElement();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void Motor::memberInterruptEinsprung(){
|
|
||||||
interruptBerechnungen();
|
|
||||||
timer ++;
|
|
||||||
//digitalWrite(LED_DEBUG , (timer & 0x100) != 0 );
|
|
||||||
//digitalWrite(LED_BUILTIN , 1 );
|
|
||||||
}
|
|
||||||
|
|
||||||
void Motor::interruptBerechnungen(){
|
|
||||||
summeSpeed += sollSpeed;
|
|
||||||
if(summeSpeed >= 256)
|
|
||||||
{
|
{
|
||||||
summeSpeed -= 256;
|
pwm = 512 + speed * 2;
|
||||||
digitalWrite(pinA , 0);
|
digitalWrite(pinA , 0);
|
||||||
digitalWrite(pinB , 1);
|
digitalWrite(pinB , 1);
|
||||||
digitalWrite(LED_BUILTIN , 0 );
|
|
||||||
|
|
||||||
}else if (summeSpeed <= -256){
|
}else if (speed < 0){
|
||||||
summeSpeed += 256;
|
pwm = 512 - speed * 2;
|
||||||
digitalWrite(pinA , 1);
|
digitalWrite(pinA , 1);
|
||||||
digitalWrite(pinB , 0);
|
digitalWrite(pinB , 0);
|
||||||
digitalWrite(LED_BUILTIN , 1 );
|
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
|
pwm = 1023;
|
||||||
digitalWrite(pinA , 0);
|
digitalWrite(pinA , 0);
|
||||||
digitalWrite(pinB , 0);
|
digitalWrite(pinB , 0);
|
||||||
digitalWrite(LED_BUILTIN , 0 );
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Timer1.pwm(Motor::pinPwm, pwm);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,21 +15,21 @@ public:
|
|||||||
static void setup();
|
static void setup();
|
||||||
|
|
||||||
void setMotorPins(uint8_t pinA , uint8_t pinB);
|
void setMotorPins(uint8_t pinA , uint8_t pinB);
|
||||||
|
static void setMotorPwmPin(uint8_t pinPwm);
|
||||||
|
|
||||||
void setSollSpeed(int16_t speed);
|
void setSollSpeed(int16_t speed);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
static Motor *letztesElement;
|
|
||||||
Motor *vorherElement;
|
|
||||||
|
|
||||||
|
static uint8_t pinPwm;
|
||||||
|
|
||||||
|
|
||||||
void memberSetup();
|
void memberSetup();
|
||||||
void memberLoop();
|
void memberLoop();
|
||||||
|
|
||||||
static void interruptEinsprung();
|
//static void interruptEinsprung();
|
||||||
void memberInterruptEinsprung();
|
//void memberInterruptEinsprung();
|
||||||
//void InterruptEinsprung();
|
//void InterruptEinsprung();
|
||||||
|
|
||||||
void interruptBerechnungen();
|
void interruptBerechnungen();
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
#define PINS_H
|
#define PINS_H
|
||||||
|
|
||||||
|
|
||||||
|
#define TIMER1_PWM_PIN 9
|
||||||
|
|
||||||
#define M1A 2
|
#define M1A 2
|
||||||
#define M1B 3
|
#define M1B 3
|
||||||
@ -16,15 +17,15 @@
|
|||||||
#define M3SENSE A3
|
#define M3SENSE A3
|
||||||
|
|
||||||
#define M4A 8
|
#define M4A 8
|
||||||
#define M4B 9
|
#define M4B 10
|
||||||
#define M4SENSE A4
|
#define M4SENSE A4
|
||||||
|
|
||||||
#define M5A 10
|
#define M5A 11
|
||||||
#define M5B 11
|
#define M5B 12
|
||||||
#define M5SENSE A5
|
#define M5SENSE A5
|
||||||
|
|
||||||
#define M6A 12
|
#define M6A 13
|
||||||
#define M6B 13
|
#define M6B 14
|
||||||
#define M6SENSE A6
|
#define M6SENSE A6
|
||||||
|
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user