Heeft iemand een kant en klare stepper besturing sketch ?

Als U een gezamenlijk project wil starten of aan projecten van anderen mee wilt werken.
Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Heeft iemand een kant en klare stepper besturing sketch

Berichtdoor shooter » 21 Dec 2020, 21:31

met een nano en een paar drivers, met de 4988 erop hoef je helemaal niks te solderen en kun je met een paar draadjes de hele zaak klaar krijgen. je kent de arduino software dus dat zal geen groot probleem zijn.
paul deelen
shooter@home.nl

Advertisement

Gebruikers-avatar
Berichten: 256
Geregistreerd: 05 Apr 2018, 00:44
Woonplaats: ALKMAAR

Re: Heeft iemand een kant en klare stepper besturing sketch

Berichtdoor Gompy » 05 Jan 2021, 00:49

Veel geprobeerd, 2 easydrivers stuk, maar kom er met die stepper toch niet uit.
Het lijkt zo makkelijk, maar ervaring met steppers ontbreekt om wat zinnigs te doen.
Voorbeelden zat, maar met drie schakelaars, start linksom, stop, start rechtsom en dat zijn twee schakelaartjes teveel.
In mijn bedieningspaneel zit nog net een plaatsje voor een trogle schakelaar, maar daar houdt het ook bij op.

Eén trogle schakelaar on-off-on, easydriver, nano, Nema17 (5 Volt).
Schakelaartje omhoog, laserbed omhoog, schalelaartje naar beneden laserbed naar beneden.
Snelheid is onbelangrijk geworden, als ik dat in de nano eenmalig kan instellen want de dat kan ik regelen met tandriempoelies.

Krijg de servo wel draaiende, maar laten draaien zolang je vast houdt lukt me niet.
Wie geeft me even een duwtje de goede richting op ?

Gebruikers-avatar
Berichten: 256
Geregistreerd: 05 Apr 2018, 00:44
Woonplaats: ALKMAAR

Re: Heeft iemand een kant en klare stepper besturing sketch

Berichtdoor Gompy » 05 Jan 2021, 14:37

De sketch zoals ik hem nu heb.
BTW, de Nema is 12 Volt en niet 5 Volt zoals eerder vermeldt.

Code: Alles selecteren
#define stepPin 9
#define dirPin 8
#define button1 2
#define button2 3
 

void setup()
{
  pinMode(stepPin , OUTPUT); // STEP
  pinMode(dirPin , OUTPUT); // DIR
  pinMode(button1, INPUT_PULLUP); // UP
  pinMode(button2, INPUT_PULLUP); // DOWN
  digitalWrite(stepPin , LOW);
  digitalWrite(dirPin , LOW);
}
void loop()
{
  if (digitalRead(button1) == LOW && digitalRead(button2) == HIGH)
{
    digitalWrite(dirPin, LOW); // move in the LOW direction
}
  else if (digitalRead(button1) == HIGH && digitalRead(button2) == LOW)
{
    digitalWrite(dirPin, HIGH); // move in HIGH direction
}
  if (digitalRead(button1) == LOW || digitalRead(button2) == LOW)
{
    digitalWrite(stepPin , HIGH);
    delay(50);
    digitalWrite(stepPin , LOW);
    delay(50);
}
}

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Heeft iemand een kant en klare stepper besturing sketch

Berichtdoor shooter » 05 Jan 2021, 17:03

op 5 Volt werkt die driver toch niet, dus je arduino kun je op 12 Volt aansluiten via de Vin ingang, en de ingangen van de driver kan ook op 12 Volt.
dan een verbinding van de 5 Volt die uit de arduino komt naar de logica ingang van de driver, alle gnd kan aan elkaar.
en je programma is prima, en zou moeten werken

ik zou dat steppen overigens in beide if statements zetten, dus als jij op een knop duwt begint het te bewegen,
dus als een ingang1 aan is dan bewegen
en als ingang 2 aan is dan andere kant op,
als er niks aan is dan ook niet bewegen.
Code: Alles selecteren
{
  if (digitalRead(button1) == LOW )
{
    digitalWrite(dirPin, LOW); // move in the LOW direction
    digitalWrite(stepPin , HIGH);
    delay(50);
    digitalWrite(stepPin , LOW);
    delay(50);
}
 if (digitalRead(button2) == LOW)
{
    digitalWrite(dirPin, HIGH); // move in HIGH direction
    digitalWrite(stepPin , HIGH);
    delay(50);
    digitalWrite(stepPin , LOW);
    delay(50);
}
}

is weliswaar dubbel maar simpeler
als je beide knoppen indrukt, beweegt hij telkens 1 stap op en 1 stap neer.
maar als jij een toggle schakelaar hebt dan is dat prima
paul deelen
shooter@home.nl

Gebruikers-avatar
Berichten: 256
Geregistreerd: 05 Apr 2018, 00:44
Woonplaats: ALKMAAR

Re: Heeft iemand een kant en klare stepper besturing sketch

Berichtdoor Gompy » 05 Jan 2021, 17:39

Helaas pindakaas, als ik nu een button puls blijft hij aanstaan en nogmaals drukken uit.
Daarnaast gaat de steppen niet draaien maar trekt wel 1,5A uit de voeding.
Zo simpel en toch geen beweging in te krijgen.....dat is waarom ik steppers haat.
Het is dat ik niet meer ruimte heb ander had ik er een motor met reductor in gezet.

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Heeft iemand een kant en klare stepper besturing sketch

Berichtdoor shooter » 06 Jan 2021, 15:00

dan kijk eens naar de schakelaar, blijft die in een stand staan? dat kun je snel zien door de toestand af en toe (elke seconde op de serieel monitor te zetten.
paul deelen
shooter@home.nl

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Heeft iemand een kant en klare stepper besturing sketch

Berichtdoor shooter » 06 Jan 2021, 15:07

en ja een stepper trekt stroom omdat er altijd een coil aan blijft staan, en die moet je echt beperken want je motor verbrand anders,
paul deelen
shooter@home.nl

Gebruikers-avatar
Berichten: 256
Geregistreerd: 05 Apr 2018, 00:44
Woonplaats: ALKMAAR

Re: Heeft iemand een kant en klare stepper besturing sketch

Berichtdoor Gompy » 06 Jan 2021, 15:19

Schakelaar veert gewoon terug en blijft niet plakken, was het eerste wat ik heb gemeten.
Voor de zekerheid schakelaars nog tijdelijk vervangen voor normale drukkers, maar zelfde effect.
Pas na een paar keer drukken zie ik op de voeding dat de stroom terug gaat van 1,2A naar 60mA.

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Heeft iemand een kant en klare stepper besturing sketch

Berichtdoor shooter » 06 Jan 2021, 20:34

#define stepPin 9
#define dirPin 8
#define button1 2
#define button2 3


void setup()
{Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
//dan kun je wat zien op je monitor
pinMode(stepPin , OUTPUT); // STEP
pinMode(dirPin , OUTPUT); // DIR
pinMode(button1, INPUT_PULLUP); // UP
pinMode(button2, INPUT_PULLUP); // DOWN
digitalWrite(stepPin , LOW);
digitalWrite(dirPin , LOW);
}
void loop()
{
if (digitalRead(button1) == LOW && digitalRead(button2) == HIGH)
{
digitalWrite(dirPin, LOW); // move in the LOW direction
step=step+1;
digitalWrite(stepPin , HIGH);
delay(50);
digitalWrite(stepPin , LOW);
delay(50);
serial.println (step);
}
else if (digitalRead(button1) == HIGH && digitalRead(button2) == LOW)
{
digitalWrite(dirPin, HIGH); // move in HIGH direction
step=step-1;

digitalWrite(stepPin , HIGH);
delay(50);
digitalWrite(stepPin , LOW);
delay(50);
serial.println (step);
}

}
paul deelen
shooter@home.nl

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Heeft iemand een kant en klare stepper besturing sketch

Berichtdoor shooter » 06 Jan 2021, 20:41

#define stepPin 9 // je kunt ook 13 gebruiken dan kun je wat zien
#define dirPin 8 // op sommige is step en dir omgedraaid
#define button1 2 // dit zijn dus de inputs die naar gnd moeten schakelen dus , dat kan dus ook met een draadje om even te proberen
#define button2 3
/*dus draadje van pin naar de gnd gaat de ingang LOW en dan stapt het elke 100 milliseconden

void setup()
{Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
//dan kun je wat zien op je monitor
pinMode(stepPin , OUTPUT); // STEP
pinMode(dirPin , OUTPUT); // DIR
pinMode(button1, INPUT_PULLUP); // UP
pinMode(button2, INPUT_PULLUP); // DOWN
digitalWrite(stepPin , LOW);
digitalWrite(dirPin , LOW);
}
void loop()
{
if (digitalRead(button1) == LOW && digitalRead(button2) == HIGH)
{
digitalWrite(dirPin, LOW); // move in the LOW direction
step=step+1;
digitalWrite(stepPin , HIGH);
digitalWrite (13,HIGH);
delay(50);
digitalWrite(stepPin , LOW);
digitalWrite (13,LOW);// dit laat het ledje knipperen telkens als er een step gedaan wordt
delay(50);
serial.println (step);
}
else if (digitalRead(button1) == HIGH && digitalRead(button2) == LOW)
{
digitalWrite(dirPin, HIGH); // move in HIGH direction
step=step-1;

digitalWrite(stepPin , HIGH);
digitalWrite (13,HIGH);
delay(50);
digitalWrite(stepPin , LOW);
digitalWrite (13,LOW);
delay(50);
serial.println (step);
}

}
nogmaals een simpele code die zou moeten werken
de knoppen moeten naar gnd schakelen en de
paul deelen
shooter@home.nl

VorigeVolgende

Terug naar Gezamenlijke projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 5 gasten