EPS8266 met steppermotor

Software vragen voor ESP chip familie
Berichten: 8
Geregistreerd: 20 Apr 2021, 21:25

EPS8266 met steppermotor

Berichtdoor Japieee » 20 Apr 2021, 21:35

Hallo allemaal,


Ik ben begonnen met het proberen om een EPS8266 draaiende te krijgen op een site. het doel is om de via een site, een button te klikken waarmee de steppermotor een X aantal stappen zet, dit moet dan positie 1 zijn. Er moet dan nog een button komen, waarmee die terug draait naar positie 2. --> positie is dus ook het standaard begin punt.

Nu heb ik een code, waarmee eigenlijk alles werkt, maar nu kan ik hem helemaal rond laten draaien --> Hij moet eigenlijk maar 1x draaien en daarna stoppen.

Tevens wil ik er een endpoint aan toevoegen.

Ik doe alles op basis van een EPS8266, tevens zit ik nog met het verhaal dat mijn stepperdriver 5V moet hebben, maar dit probeer ik op te lossen door een voltage verhogen die ik ertussen wil zetten.

Wie kan mij helpen met dit verhaal? Mochten er op- en/of aanmerkingen zijn, verneem ik het graag.

Dit is de code op dit moment:

Code: Alles selecteren
/*****************************************************
 * Date: 9 july 2018
 * Written by: Usman Ali Butt
 * Property off: microcontroller-project.com
 * ***************************************************/
#include <ESP8266WiFi.h>
const char* ssid = "Marlijn & Jasper";
const char* password = "0623865185";
int Step = 0; //GPIO0---D3 of Nodemcu--Step of stepper motor driver
int Dir  = 2; //GPIO2---D4 of Nodemcu--Direction of stepper motor driver
WiFiServer server(80);
void setup() {
  Serial.begin(115200);
delay(10);
pinMode(Step, OUTPUT); //Step pin as output
pinMode(Dir,  OUTPUT); //Direcction pin as output
digitalWrite(Step, LOW); // Currently no stepper motor movement
digitalWrite(Dir, LOW); 
// Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
// Start the server
  server.begin();
  Serial.println("Server started");
// Print the IP address on serial monitor
  Serial.print("Use this URL to connect: ");
  Serial.print("http://192.168.125.219");    //URL IP to be typed in mobile/desktop browser
  Serial.print(WiFi.localIP());
  Serial.println("/");
}
void loop() {
// Check if a client has connected
  WiFiClient client = server.available();
if (!client) {
return;
  }
// Wait until the client sends some data
  Serial.println("new client");
while(!client.available()){
delay(1);
  }
// Read the first line of the request
  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();
// Match the request
int i=0;
int value = LOW;
if (request.indexOf("/Command=forward") != -1)  { //Move 50 steps forward
digitalWrite(Dir, HIGH); //Rotate stepper motor in clock wise direction
for( i=1;i<=50;i++){
digitalWrite(Step, HIGH);
delay(10);
digitalWrite(Step, LOW);
delay(10);}
    value = HIGH;
  }
if (request.indexOf("/Command=backward") != -1)  { //Move 50 steps backwards
digitalWrite(Dir, LOW); //Rotate stepper motor in anti clock wise direction
for( i=1;i<=50;i++){
digitalWrite(Step, HIGH);
delay(10);
digitalWrite(Step, LOW);
delay(10);}
    value = LOW;
  }
// Return the response
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); //  do not forget this one
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");
  client.println("<h1 align=center>Stepper motor controlled over WiFi</h1><br><br>");
  client.print("Stepper motor moving= ");
if(value == HIGH) {
    client.print("Forward");
  } else {
    client.print("Backward");
  }
  client.println("<br><br>");
  client.println("<a href=\"/Command=forward\"\"><button>Forward </button></a>");
  client.println("<a href=\"/Command=backward\"\"><button>Backward </button></a><br />"); 
  client.println("</html>");
delay(1);
  Serial.println("Client disonnected");
  Serial.println("");
}

Advertisement

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

Re: EPS8266 met steppermotor

Berichtdoor shooter » 21 Apr 2021, 17:49

haal eerst even je telefoonnummer als wachtwoord weg want nu kan iedereen erbij.
en als je een teller erop zet met elke vooruitstap, dan kun je terugtellen tot 0 en dan ben je weer op je oude positie, denk wel een de stapsnelheid want 200 stappen /seconde is veel en dat is dus een 50 milliseconde.
paul deelen
shooter@home.nl

Berichten: 8
Geregistreerd: 20 Apr 2021, 21:25

Re: EPS8266 met steppermotor

Berichtdoor Japieee » 21 Apr 2021, 18:48

Shooter,

bedankt voor je reactie, hoe kan ik dit aanpassen? ik zie nergens knopje bewerken of iets dergelijks.

waar zet je dat precies in de code dan?

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

Re: EPS8266 met steppermotor

Berichtdoor shooter » 22 Apr 2021, 09:20

in je programma staat backward met een klein for next loopje van 50, daar kun je de tijd van de puls als deze LOW is aanpassen van nu 10 naar bijvoorbeeld 100 dan kun je daarna versnellen als nodig is, voor meer controle kijkeens op accelstepper (voor vertragen en versnellen bijv.
paul deelen
shooter@home.nl

Berichten: 8
Geregistreerd: 20 Apr 2021, 21:25

Re: EPS8266 met steppermotor

Berichtdoor Japieee » 22 Apr 2021, 18:24

shooter schreef:in je programma staat backward met een klein for next loopje van 50, daar kun je de tijd van de puls als deze LOW is aanpassen van nu 10 naar bijvoorbeeld 100 dan kun je daarna versnellen als nodig is, voor meer controle kijkeens op accelstepper (voor vertragen en versnellen bijv.



Maar dan vertraag ik toch eigenlijk alleen de draai snelheid?

Ik heb het idee dat er ergens een "loop herhaling" zit. waardoor die steeds weer forward kan.. hij moet eigenlijk van beginpunt X naar eindpunt Y en dan weer naar beginpunt X. Meer keuzes mag die niet hebben.

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

Re: EPS8266 met steppermotor

Berichtdoor shooter » 22 Apr 2021, 20:49

if (request.indexOf("/Command=forward") != -1)&& (value ==0) { //Move 50 steps forward
en dat bij achteruit ook maar dan value==1
paul deelen
shooter@home.nl

Berichten: 8
Geregistreerd: 20 Apr 2021, 21:25

Re: EPS8266 met steppermotor

Berichtdoor Japieee » 28 Apr 2021, 10:53

Hallo,

Ik krijg helaas die code niet voor elkaar.

Heeft foutcode weer met “(“?

Weet jij waar dit in kan zitten?

Berichten: 8
Geregistreerd: 20 Apr 2021, 21:25

Re: EPS8266 met steppermotor

Berichtdoor Japieee » 28 Apr 2021, 14:04

shooter schreef:if (request.indexOf("/Command=forward") != -1)&& (value ==0) { //Move 50 steps forward
en dat bij achteruit ook maar dan value==1


het de regel aangepast naar het volgende:

Code: Alles selecteren
if (request.indexOf("/Command=forward") != -1)&& value ==0; { //Move 50 steps forward 


Ik krijg nu echter de volgende foutmelding:

exit status 1
label 'value' used but not defined

en dit:

exit status 1
ISO C++ forbids comparison between pointer and integer [-fpermissive]

Hoe kan ik dit oplossen?

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

Re: EPS8266 met steppermotor

Berichtdoor shooter » 29 Apr 2021, 18:29

net als dir bovenaan even declareren dus INT value=0;
kijk ook eerst een of DIR ook inderdaad een 1 maakt dus dat de motor inderdaad de andere kant opdraait.
paul deelen
shooter@home.nl

Berichten: 8
Geregistreerd: 20 Apr 2021, 21:25

Re: EPS8266 met steppermotor

Berichtdoor Japieee » 29 Apr 2021, 19:33

Het klinkt vrij makkelijk, maar ik zie niet wat ik fout doe..

De code blijft foutmeldingen geven dat die niet doet, misschien komt het omdat ik dan 2x int value = heb?

Zou je mij de code eens willen maken hoe die volgens jou moet, kun je mijn code toch zo kopiëren?

Alvast bedankt!

Volgende

Terug naar ESP Software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 8 gasten