Cílem projektu je navrhnout a sestavit obvod s krokovým motorem, který umožní řízení jeho rychlosti pomocí potenciometru. Tato technologie bude využitelná například při výrobě filamentu z PET lahví pro 3D tisk. Projekt zahrnuje výběr vhodného motoru, ovladače, potenciometru a mikrokontroléru, které budou propojeny a naprogramovány pro optimální funkci.
Zapojení:
kód pro Arduino:
// Include the Arduino Stepper Library #include <Arduino.h> #include <AccelStepper.h> // Define Constants #define IN1 8 #define IN2 9 // #define IN2 10 je na arduinu připojen na pin 9 pro NEMA17 // pro 24BYJ #define IN2 9 je připojen na pin 9 #define IN3 10 // #define IN3 9 je na arduinu připojen na pin 10 pro NEMA17 // pro 24BYJ #define IN3 10 je připojen na pin 10 #define IN4 11 // Number of steps per output rotation const int STEPS_PER_REV = 200; const int SPEED_CONTROL = A0; // The pins used are 1,2,3,4 // Connected to L298N Motor Driver In1, In2, In3, In4 // Pins entered in sequence 1-2-3-4 for proper step sequencing AccelStepper stepper_NEMA17(AccelStepper::FULL4WIRE, IN1, IN3, IN2, IN4); void setup() { // Initialize the stepper motor speed to zero stepper_NEMA17.setMaxSpeed(500); } void loop() { // Read the sensor value int sensorReading = analogRead(SPEED_CONTROL); // Map it to a range from 0 to 100 int motorSpeed = map(sensorReading, 0, 1023, 0, 400); // Set the motor speed if (motorSpeed > 15) { stepper_NEMA17.enableOutputs(); stepper_NEMA17.setSpeed(motorSpeed); // Run the motor at the set speed stepper_NEMA17.runSpeed(); } else { // Stop the motor stepper_NEMA17.disableOutputs(); stepper_NEMA17.stop(); } // Display sensor and motor speed values for debugging Serial.print("Potenciometr: "); Serial.print(sensorReading); Serial.print(" , Rychlost motoru: "); Serial.println(motorSpeed); }