Sida 3 av 3
Re: Arduino stegmotor
Postat: 10 juli 2013, 08:05:14
av slatten
Steg ett i projektet klart mitsumi 42SP-7 mystiska färgkoder lösta
Lindning1: Brun/svart
Lindning2: Gul/orange
Mitt:Röd
Nu återstår programmering och lösningen med att sätta stegmotorräknaren till noll.
Re: Arduino stegmotor
Postat: 13 juli 2013, 06:58:20
av slatten
Så var man igång med lite programmering och gick naturligtvis på pumpen. Men det är nog inte så konstigt
bristande kunskap är förklaringen. Men kanske kan få lite hjälp här. Försöker få stegmotorn att gå ett steg i taget
för att när sedan I=100 stega tillbaka 100 steg, men lyckas ej kompilera klart.
#include <AFMotor.h>
AF_Stepper motor(48, 2); // 48 steg per varv port #2
void setup() {
//Serial.begin(9600);
//Serial.println("test");
int I;
motor.setSpeed(100); // 10 rpm
}
void loop() {
if(I < 100, I=I+1)
{
motor.step(1, FORWARD, SINGLE);
}
else
{
motor.step(100, BACKWARD, SINGLE);
}
hpskanner.ino: In function 'void loop()':
hpskanner:15: error: 'I' was not declared in this scope
hpskanner:19: error: 'else' without a previous 'if'
hpskanner:22: error: expected `}' at end of input
Arduino Uno
Adafruit stegmotorkort.
Re: Arduino stegmotor
Postat: 13 juli 2013, 08:48:39
av Andax
Du har deklarerat variabeln I i inuti setup() men använder den i loop(). Antingen lägger du int I ovanför setup eller i loop.
Re: Arduino stegmotor
Postat: 13 juli 2013, 10:53:58
av slatten
tack Andax såg det nu när du sa det och sedan en } på slutet fick coden att compilera.
Skrev en for-loop under tiden den fick jag att fungera, så nu äntligen har man
börjat sin bana inom C men inte lätt när man e gammal. Behöver nog mer hjälp
vad det lider.
Re: Arduino stegmotor
Postat: 13 juli 2013, 11:08:23
av swapper
Kan rekommendera detta biblotek för att hantera stegmotorer
http://www.airspayce.com/mikem/arduino/AccelStepper/
Det har stöd för acceleration m.m.
Men framförallt har det stöd för stegdrivare som tar steg + riktning.
klasser för att hantera antal steg att gå och även att läsa nuvarande läge ser det ut som.
http://www.airspayce.com/mikem/arduino/ ... 3eb14c69c1
http://www.airspayce.com/mikem/arduino/ ... 8886bf6fc5
Re: Arduino stegmotor
Postat: 13 juli 2013, 11:35:09
av slatten
oj swapper där fanns det saker. Men jag är just nu på nivån att tända och släcka lysdioder.
Så jag e mäkta stolt att ens få en stegmotor att att gå fram och åter. Men lär mig lite varje dag.
Re: Arduino stegmotor
Postat: 14 juli 2013, 19:38:57
av slatten
Nya framsteg och en del fel har söndagen erbjudit. Får stegmotorn att förflytta sig framåt x antal steg om jag skriver 1 och
omvänt om jag skriver 0 i monitorn, så långt allting väl. Men jag skulle vilja kunna fylla i antal steg när jag startar programmet.
Gjorde tre codrader som jag blankat ut med // är jag på rätt väg eller ska dom raderna ligga i mainloopen? Jag vill ju bara skriva
in steg när jag startar programmet. Sedan ska ju raden "motor.step(50, FORWARD, SINGLE); " bytas mot "motor.step(i, FORWARD, SINGLE);"
Kod: Markera allt
#include <AFMotor.h>
// Connect a stepper motor with 48 steps per revolution (7.5 degree)
// to motor port #2 (M3 and M4)
AF_Stepper motor(48, 2);
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("Stepper test!");
motor.setSpeed(100); // 100 Varv/min
// while (Serial.available() == 0);
//Serial.println("Steg?");
//int i = Serial.read();
}
void loop()
{
while (Serial.available() == 0);
int val = Serial.read() - '0';// minskar decimalvärdet
if (val == 1)
{
Serial.println("50 steg fram");
motor.step(50, FORWARD, SINGLE);
//delay(5000);
}
else if (val == 0)
{
Serial.println("50 steg bak");
motor.step(50, BACKWARD, SINGLE);
// delay(1000);
}
else
{
Serial.println("Fel input");
}
Serial.flush();
}
Re: Arduino stegmotor
Postat: 15 juli 2013, 11:26:07
av slatten
Hej kommit en bit på väg, men fastnat i ett inmatningsproblem skriver in "1" får jag som retur decimalvärdet "10",
som en lösning hittade jag följande som hjälper med siffrorna 0-9.
int i = Serial.read() - '0';
Men hur gör jag om jag vill ha större talvärden?
Re: Arduino stegmotor
Postat: 15 juli 2013, 12:27:13
av sodjan
Om du använder code-taggarna så blir koden också läsbar...
Re: Arduino stegmotor
Postat: 15 juli 2013, 12:39:54
av slatten
"Om du använder code-taggarna så blir koden också läsbar..."
Det får du allt förklara för en amatör som jag.
Re: Arduino stegmotor
Postat: 15 juli 2013, 12:41:59
av sodjan
Kod: Markera allt
[code]
#include <AFMotor.h>
// Connect a stepper motor with 48 steps per revolution (7.5 degree)
// to motor port #2 (M3 and M4)
AF_Stepper motor(48, 2);
[/code]
Re: Arduino stegmotor
Postat: 15 juli 2013, 12:44:58
av slatten
tack då ska jag naturligtvis göra det i fortsättningen.
Re: Arduino stegmotor
Postat: 17 juli 2013, 20:58:04
av slatten
Efter en stunds famlande i mörkret, så har jag trixat fram följande code som i alla fall kompilerar och verkar
fungera. Ska testa den live i morgon har inga stegmotorer hemma. Lite kosmetika ska fixas till men synpunkter
på coden tages tacksamt emot. Och var var det sodjan nu sa ja visst ja codetaggar, ler.
Kod: Markera allt
#include "math.h" // include the Math Library
#include <AFMotor.h>
// Connect a stepper motor with 48 steps per revolution (7.5 degree)to motor port #2 (M3 and M4)
AF_Stepper motor(48, 2);
float a;
int c;
int d ;
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
motor.setSpeed(100); // 100 Varv/min
Serial.println("Steg?");
while (Serial.available() == 0);
a = Serial.parseFloat(); // new command in 1.0 forward
Serial.print("a = ");
Serial.println(a, DEC);
}
void loop()
{
while (Serial.available() == 0);
int val = Serial.read() - '0';// minskar decimalvärdet
if (val == 1)
{
Serial.println(a);
motor.step(a, FORWARD, SINGLE);
d = d + 1;
c = a * d;
}
else if (val == 0)
{
Serial.print( c );
Serial.println( " steg backwards" );
motor.step(c, BACKWARD, SINGLE);
}
else
{
Serial.println("Fel input");
}
Serial.flush();
}