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);
}