Řízení rychlosti krokového motoru potenciometrem


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

Další podobné články

ROBOTICKÉ RAMENO

Stavebnice obsahuje všechny potřebné díly na sestavení robotnického ramene včetně spojovacího materiálu, pouze je nutné dokoupit čtyři kusy MIKRO SERV SG90. Dále je nutné dokoupit řídící jednotku já jsem použil domácí zásoby ARDUINO NANO a pro něho pak modul ARDUINO NANO IO SHIELD pro jednoduchost zapojení. Díly pro sestavení ramene jdou dobře tzv. vylamovat „vypadávají skoro sami. K servům pokud použijete nové tak doporučuji je před montáží odzkoušet zda jsou funkční v plném rozsahu tj. od 0° do 180°, po namontování a zjištění že servo nefunguje to pak opravdu dost zahýbá s nervy. 

Electronic TiltMaze

Cílem tohoto projektu je vytvoření jednoduchého ovládacího systému, který umožňuje naklápění dvou servomotorů pomocí analogového joysticku. Platforma řízená servomotory může simulovat pohyb například v ose X a Y — tedy naklánění doleva/doprava a dopředu/dozadu. Tento systém může sloužit jako základ pro různé aplikace:

- Manuální ovládání kamery nebo senzoru (např. na pohyblivé konstrukci nebo robotovi)
- Interaktivní ovládací panel pro školní projekty nebo herní ovladač