Výsledné zapojení
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í:

schéma 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);
}
FB tw

Další podobné články