• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Kierowanie silnikiem krokowym - brak reakcji na Arduino
#1
Cześć!

Ostatnio podjąłem szybką budowę tacy obrotowej napędzanej silnikiem krokowym pod zdjęcia produktowe.
Nie jestem całkowicie zielony w konstrukcjach w Arduino, ale jestem zaledwie mini szczebel wyżej - tzn. nie raz wykorzystywałem Arduino, ale zazwyczaj wykorzystując gotowe kody - w skrajnych przypadkach podmieniając jedynie piny w kodzie.

Silnik jakiego użyłem to otrzymany od znajomego STP-42D253. Z tego co widzę to model z odzysku bez dostępnej dokumentacji. Do niego zastosowałem stepsticka A4899 - wszystko sterowane Arduino Nano. 

Po połączeniu na płytce stykowej - silnik zadziałał. A więc postanowiłem ruszyć krok dalej i dodać potencjometr - niestety nic całkowicie nie zmienił. Zacząłem sprawdzać połączenia, mierzyć napięcia - wszystko wyglądało okej. Stwierdziłem więc, że zmienię delay między krokami - to również nic nie zmieniło - ruch silnika bez zmian. Podłączyłem kilka różnych stepsticków, jak i sprawdziłem to na 3 egzemplarzach Arduino - za każdym razem to samo. Poszedłem więc krok dalej i wgrałem do Arduino "blinka" - silnik nadal działał tak samo, a więc całkowicie "nie przejmuje" się tym co robi Arduino.

Zakładając, że połączenia są poprawne - czy to może być problem samego silnika i jego zmiana na coś standardowego z dokumentacją pomoże, czy problem leży gdzieś indziej - skoro zmiany na poziomie Arduino nie mają wpływu na pracę krokowca?

Poniżej wklejam kod (zdefiniowane piny w Nano rozumiem jako D2 i D3):
Kod:
#define DIR 5
#define STP 6
#define MAX 750
//int delayTime = 100;

void setup() {
  // put your setup code here, to run once:
  pinMode(DIR, OUTPUT);
  pinMode(STP, OUTPUT);
  digitalWrite(DIR, HIGH);
}

void loop() {
  // put your main code here, to run repeatedly:
    digitalWrite(STP, HIGH);
    //delay(delayTime);
    digitalWrite(STP, LOW);
    //delay(delayTime);
    //unsigned int speedRotation = map(analogRead(A1), 0, 123, 0, MAX);
    //tone(STP, speedRotation);
}


Dzięki za rady!
 
Odpowiedź
  


Wiadomości w tym wątku
Kierowanie silnikiem krokowym - brak reakcji na Arduino - przez krzysztof1594@gmail.com - 13-02-2022, 15:55

Skocz do:


Przeglądający: 1 gości