Kod: Zaznacz cały
/**
* Author tig33r
* Inicjalizacja dwóch tmc2130 + kontrola wentylatora (zwiększenie prędkości przy informacji o przegrzewaniu się.
*/
#define EN_PIN 16 // Nano v3: 16 Mega: 38 //enable (CFG6)
#define DIR_PIN 18 // 19 55 //direction
#define STEP_PIN 17 // 18 54 //step
#define X_CS_PIN 10
#define Y_CS_PIN 9
#define FAN_PIN 6
#define TMC2130DEBUG
#define maxFanSpeed 255 // maksymalna prędkość wentylatora
#define minFanSpeed 175 // minimalna prędkość wentylatora
#define delta 5
byte fanSpeed = maxFanSpeed;
#include <TMC2130Stepper.h>
TMC2130Stepper TMC2130X = TMC2130Stepper(EN_PIN, DIR_PIN, STEP_PIN, X_CS_PIN);
TMC2130Stepper TMC2130Y = TMC2130Stepper(EN_PIN, DIR_PIN, STEP_PIN, Y_CS_PIN);
void setup() {
Serial.begin(9600);
TMC2130X.begin(); // Initiate pins and registeries
TMC2130X.rms_current(1100); // wartość prądu stepsticka
TMC2130X.stealthChop(1); // bezgłośny tryb pracy
TMC2130X.stealth_freq(1);
TMC2130X.stealth_autoscale(1);
TMC2130X.microsteps(256); // mikrokrok
TMC2130Y.begin(); // Initiate pins and registeries
TMC2130Y.rms_current(1100); // wartość prądu stepsticka
TMC2130Y.stealthChop(1); // bezgłośny tryb pracy
TMC2130Y.stealth_freq(1);
TMC2130Y.stealth_autoscale(1);
TMC2130Y.microsteps(256); // mikrokrok
analogWrite(FAN_PIN, maxFanSpeed);
Serial.println("Setup done");
}
void loop() {
if (TMC2130X.checkOT() == true || TMC2130Y.checkOT() == true) {
if (fanSpeed < maxFanSpeed) {
fanSpeed = fanSpeed + delta;
}
else {
fanSpeed = maxFanSpeed;
}
}
else {
if (fanSpeed > minFanSpeed) {
fanSpeed = fanSpeed - delta;
}
else {
fanSpeed = minFanSpeed;
}
}
analogWrite(FAN_PIN, fanSpeed);
Serial.println(TMC2130X.checkOT());
Serial.println(TMC2130Y.checkOT());
Serial.println(fanSpeed);
delay(100);
}