Moje vize je taková, že bych chtěl jedním Arduinem Nano ovládat dva krokové motory 28BYJ-48
s příslušnými ovladači a to buď dvěma potenciometry na řízení rychlosti otáček a k tomu dvě tlačítka na změnu směru otáčení
a nebo pouze dvěma potenciometry s tím že by polovina dráhy každého potenciometru ovládala
rychlost otáček na jednu stranu a druhá polovina dráhy potenciometru rychlost otáček na druhou
stranu, na internetu jsem našel ovládání které popisuji jako první možnost, ale bohužel je vytvořeno
pouze pro jeden krokový motor a já neumím udělat to aby se stejným způsobem ovládali dva
krokové motory.....Našel by se tu někdo ochotný mi s tím pomoci? Pořídil jsem si astronomický
dalekohled a chtěl bych ho tímto způsobem ovládat ve dvou osách aby bylo možné potenciometry
řídit rychlost natáčení dalekohledu a tlačítky směr, což je nutné k tomu aby byl dalekohled schopen zůstat stále
"namířen" na jeden bod na obloze a svým pomalým natáčením kompenzoval zemskou rotaci.....
Přikládám kód do Arduina který se mi podařilo vypátrat a který mi perfektně vyhovuje, bohužel
je však jen pro jeden motor.......
Přeji pěkný den všem a bastlení zdar

/*
* Unipolar stepper motor speed and direction control with Arduino.
* Full step control.
* This is a free software with NO WARRANTY.
* https://simple-circuit.com/
*/
//Odkaz na návod:
// https://simple-circuit.com/arduino-unip ... r-control/
//Popis zapojení ovladače krokového motoru:
// IN1 k Arduino pin 11
// IN2 k Arduino pin 10
// IN3 k Arduino pin 9
// IN4 k Arduino pin 8
//Potenciometr 10k ohm se používá k řízení rychlosti krokového motoru,
// jeho výstupní pin je připojen k analogovému pinu 0 Arduino.
//Tlačítko, které je spojeno s Arduino pinem 4, se používá ke změně směru otáčení krokového motoru.
//Krokovým motorem, který jsem použil v tomto projektu, je 28BYJ-48 ,
// tento motor je vybaven redukcí rychlosti 1/64. Vnitřní motor má 32 kroků na jednu otáčku,
// což znamená, že vnější hřídel má 2048 kroků na jednu otáčku (64 x 32).
// Počet kroků je definován v kódu, jak je uvedeno níže....
//Použití funkce stepper.step (direction_) krokového motoru se pohybuje v závislosti
// na proměnné direction_ , v tomto případě je tato proměnná může být 1 nebo -1.
// Pokud směr_ = 1, motor se bude pohybovat v prvním směru a pokud směr_ = -1,
// motor se bude pohybovat v opačném směru.
// Při každém stisknutí tlačítka bude proměnný směr_ převrácen (1 nebo -1).
// PROGRAM:
// include Arduino stepper motor library
#include <Stepper.h>
// change this to the number of steps on your motor
#define STEPS 32
// create an instance of the stepper class, specifying
// the number of steps of the motor and the pins it's
// attached to
Stepper stepper(STEPS, 8, 10, 9, 11);
const int button = 4; // direction control button is connected to Arduino pin 4
const int pot = A0; // speed control potentiometer is connected to analog pin 0
void setup()
{
// configure button pin as input with internal pull up enabled
pinMode(button, INPUT_PULLUP);
}
int direction_ = 1, speed_ = 0;
void loop()
{
if ( digitalRead(button) == 0 ) // if button is pressed
if ( debounce() ) // debounce button signal
{
direction_ *= -1; // reverse direction variable
while ( debounce() ) ; // wait for button release
}
// read analog value from the potentiometer
int val = analogRead(pot);
// map digital value from [0, 1023] to [2, 500]
// ===> min speed = 2 and max speed = 500 rpm
if ( speed_ != map(val, 0, 1023, 2, 500) )
{ // if the speed was changed
speed_ = map(val, 0, 1023, 2, 500);
// set the speed of the motor
stepper.setSpeed(speed_);
}
// move the stepper motor
stepper.step(direction_);
}
// a small function for button debounce
bool debounce()
{
byte count = 0;
for(byte i = 0; i < 5; i++) {
if (digitalRead(button) == 0)
count++;
delay(10);
}
if(count > 2) return 1;
else return 0;
}