Stappenmotor

Arduino specifieke Software
Berichten: 16
Geregistreerd: 21 Feb 2021, 18:46

Stappenmotor

Berichtdoor Armira » 21 Feb 2022, 20:42

goedenavond
kan iemand mij helpen kom er niet uit
ben bezig met stappenmotor aan te sturen met rc besturing en arduino mega
mijn code is:
Code: Alles selecteren
  #include <AccelStepper.h>
#define FULLSTEP 4
#define HALFSTEP 8
// motor pins
#define motorPin1  A0     // Blue   - 28BYJ48 pin 1
#define motorPin2  A1     // Pink   - 28BYJ48 pin 2
#define motorPin3  A2     // Yellow - 28BYJ48 pin 3
#define motorPin4  A3     // Orange - 28BYJ48 pin 4                     
#define motorPin5  A4     // Blue   - 28BYJ48 pin 1
#define motorPin6  A5     // Pink   - 28BYJ48 pin 2
#define motorPin7  A6   // Yellow - 28BYJ48 pin 3
#define motorPin8  A7 

AccelStepper stepper1(FULLSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
AccelStepper stepper2(FULLSTEP, motorPin5, motorPin7, motorPin6, motorPin8);
double channel[15];
const int pwmPIN[]={6,7,8,9,10,11,12,13,16,17,18,19,20,21}; // an array to identify the PWM input pins (the array can be any length)
int RC_inputs = 0;
void setup() {
  stepper1.setMaxSpeed(1000.0);
  stepper1.setAcceleration(50.0);
  stepper2.setMaxSpeed(1000.0);
  stepper2.setAcceleration(50.0);
}
void loop(){
channel[0]=pulseIn(7, HIGH,50000);
channel[1]=pulseIn(8, HIGH,50000);
stepper1.setSpeed(500); stepper1.runSpeed();
 stepper2.setSpeed(500); stepper2.runSpeed();
}

heb de code even vereenvoudigd
beide stappenmotors werken prima zolang ik de regel voor de rc kanalen weglaat
channel[0]=pulseIn(7, HIGH,50000);
channel[1]=pulseIn(8, HIGH,50000);
deze kanalen heb ik echter nodig om de motoren te bedienen maar deze blokkeren op een of andere manier de libary en de stappenmotors willen niet meer draaien

Advertisement

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: Stappenmotor

Berichtdoor Gij Kieken » 21 Feb 2022, 21:01

Hey, Armira
Met een stukje sketch kunnen we niet veel aanvangen.
Een ding is zeker door gebruik te maken van pulseIn blokkeer je eigenlijk jouw code.
pulseIn is een zogeheten blocking function.
De bibliotheek op zich kan daar ook al problemen mee hebben.
Dus kort verwoord ,gebruik geen blocking functions zolals b.v. pulseIn.
Afhankelijk van wat je wilt doen,gebruik liever iets met millis.

Berichten: 16
Geregistreerd: 21 Feb 2021, 18:46

Re: Stappenmotor

Berichtdoor Armira » 21 Feb 2022, 21:12

Gij Kieken schreef:Hey, Armira
Met een stukje sketch kunnen we niet veel aanvangen.
Een ding is zeker door gebruik te maken van pulseIn blokkeer je eigenlijk jouw code.
pulseIn is een zogeheten blocking function.
De bibliotheek op zich kan daar ook al problemen mee hebben.
Dus kort verwoord ,gebruik geen blocking functions zolals b.v. pulseIn.
Afhankelijk van wat je wilt doen,gebruik liever iets met millis.

Hoe moet ik dan RC kanalen definiëren met Milles ??

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

Re: Stappenmotor

Berichtdoor shooter » 25 Feb 2022, 11:49

in de loop hoef je alleen maar de step te herhalen (zo vaak als mogelijk, want dan kijkt de stappenmotor of het tijd is voor een stap, dus dit moet je elke milli seconde eigenlijk wel doen om de motoren een beetje snel te laten draaien
en als je daar dan een pulsein inzet die 50 milliseconden duurt dan gaat het fout.
dat kun je dan beter oplossen met een interupt en dan kijken hoe lang met millis of met micros.
paul deelen
shooter@home.nl

Berichten: 16
Geregistreerd: 21 Feb 2021, 18:46

Re: Stappenmotor

Berichtdoor Armira » 06 Mrt 2022, 17:30

heb probleem inmiddels opgelost door de kanalen in te lezen dmv interrups

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 15 gasten