lengte en aantal stappen met arduino uno
hallo,
ik ben stanley en ben bezig met mijn stageopdracht en dat het maken van een bandkabelknipmachine.
ik heb het mechanische frame al af en heb de elektronica ook al aangesloten alleen nu ben ik bij het programmeren aangekomen. ik maak gebruik van lichtluizen om de bandkabel te detecteren. ook wordt een lichtsluis gebruikt om de pulsen te tellen van een encoder wiel. het verplaatsen van de bandkabel wordt gedaan door een stappenmotor.
ik heb al geprogrammeerd dat de motor niks doet als er geen bandkabel gedetecteerd en dat als er bandkabel gedetecteerd dat de motor dan gaat draaien.
zou iemand me verder kunnen helpen met het programmeren van de aantal stappen die de stappenmotor moet zetten.
dit mijn code tot nu toe:
zou iemand me verder kunnen helpen.
alvast bedankt
stanley
ik ben stanley en ben bezig met mijn stageopdracht en dat het maken van een bandkabelknipmachine.
ik heb het mechanische frame al af en heb de elektronica ook al aangesloten alleen nu ben ik bij het programmeren aangekomen. ik maak gebruik van lichtluizen om de bandkabel te detecteren. ook wordt een lichtsluis gebruikt om de pulsen te tellen van een encoder wiel. het verplaatsen van de bandkabel wordt gedaan door een stappenmotor.
ik heb al geprogrammeerd dat de motor niks doet als er geen bandkabel gedetecteerd en dat als er bandkabel gedetecteerd dat de motor dan gaat draaien.
zou iemand me verder kunnen helpen met het programmeren van de aantal stappen die de stappenmotor moet zetten.
dit mijn code tot nu toe:
code: [select]
int sensor_1 = 0;
int sensor1pin = a0;
int d = 20;
int stepcount = 0;
int steplengthinmm = 1;
int neededsteps;
int wantedlengthinmm;
int sensor_2 = 0;
int sensor2pin = 3;
int wantedquantity = 0;
int start = 5;
int ;
const int stepsperrevolution = 200;
void setup() {
pinmode(dir_a, output);
pinmode(dir_b, output);
pinmode(pwm_a, output);
pinmode(pwm_b, output);
pinmode(sensor1pin, input);
neededsteps=wantedlengthinmm/steplengthinmm;
serial.begin(9600);
}
void loop() {
digitalread(i);
serial.println(i);
(int = 0; <(neededsteps); i++)
{
serial.print("steps");
serial.println(stepcount);
delay(100);
}
sensor_1 = analogread(sensor1pin);
serial.println(sensor_1);
if(sensor_1>300 && sensor_1<650)
{
serial.println("cable detected");
digitalwrite(dir_a, low);
digitalwrite(pwm_a, high);
digitalwrite(dir_b, high);
digitalwrite(pwm_b, high);
delay(d);
digitalwrite(dir_a, low);
digitalwrite(pwm_a, high);
digitalwrite(dir_b, low);
digitalwrite(pwm_b, high);
delay(d);
digitalwrite(dir_a, high);
digitalwrite(pwm_a, high);
digitalwrite(dir_b, low);
digitalwrite(pwm_b, high);
delay(d);
digitalwrite(dir_a, high);
digitalwrite(pwm_a, high);
digitalwrite(dir_b, high);
digitalwrite(pwm_b, high);
delay(d);
}
else
{digitalwrite(dir_a, low);
digitalwrite(pwm_a, low);
digitalwrite(dir_b, low);
digitalwrite(pwm_b, low);
serial.println("no cable");
delay(100);
}
}
zou iemand me verder kunnen helpen.
alvast bedankt
stanley
hoi stanley.
heel toevallig er al zo'n vraag in het engelstalige gedeelte, die precies on dit onderwerp gaat (klik !)
misschien verstandig om daar eerst maar eens te gaan kijken ?
de code die je tot nog toe hebt, wel heel kort.
je gaat daarin wat dingen instellen.
dan reken je iets uit.
dan ga je iets naar de seriële poort sturen on wat er gedaan moet worden (gebaseerd op dat wat er berekend is), en dat naar de seriële poort sturen doe je net zo lang als het gewenste aantal malen dat dat iets gedaan moet worden.
als je klaar bent met kijken of er iets gedaan moet worden, ga je iets doen, dan nog iets doen, weer iets doen en dan voor deze ronde de laatste keer nog maar eens iets doen.
daarna gaat alles weer voor de volgende ronde beginnen.
jouw probleem heel duidelijk aanwezig in jouw code.
het een heel veelvuldig voorkomend probleem.
en het ook heel eenvoudig op te lossen.
als je heel goed de beschrijving van jouw code hier boven in deze post doorleest, zou je misschien kunnen zien wat er fout gaat.
overigens levert jouw programmaatje wel een blokkerende code op.
als er niets meer moet gebeuren als dit dan dat niet zo'n heel groot probleem.
maar als er wat anders bij zou komen dan word het wel problematisch.
heel toevallig er al zo'n vraag in het engelstalige gedeelte, die precies on dit onderwerp gaat (klik !)
misschien verstandig om daar eerst maar eens te gaan kijken ?
de code die je tot nog toe hebt, wel heel kort.
je gaat daarin wat dingen instellen.
dan reken je iets uit.
dan ga je iets naar de seriële poort sturen on wat er gedaan moet worden (gebaseerd op dat wat er berekend is), en dat naar de seriële poort sturen doe je net zo lang als het gewenste aantal malen dat dat iets gedaan moet worden.
als je klaar bent met kijken of er iets gedaan moet worden, ga je iets doen, dan nog iets doen, weer iets doen en dan voor deze ronde de laatste keer nog maar eens iets doen.
daarna gaat alles weer voor de volgende ronde beginnen.
jouw probleem heel duidelijk aanwezig in jouw code.
het een heel veelvuldig voorkomend probleem.
en het ook heel eenvoudig op te lossen.
als je heel goed de beschrijving van jouw code hier boven in deze post doorleest, zou je misschien kunnen zien wat er fout gaat.
overigens levert jouw programmaatje wel een blokkerende code op.
als er niets meer moet gebeuren als dit dan dat niet zo'n heel groot probleem.
maar als er wat anders bij zou komen dan word het wel problematisch.
Arduino Forum > International > Nederlands (Moderators: Jantje, JO3RI) > lengte en aantal stappen met arduino uno
arduino
Comments
Post a Comment