Stegmotor styra utmatning av frö på såmaskin

Robot, CNC, Pneumatik, Hydraulik, mm
Användarvisningsbild
Icecap
Inlägg: 26139
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Stegmotor styra utmatning av frö på såmaskin

Inlägg av Icecap »

Själva Arduinon klarar jobbet utan att svettas - men programmet och sättet det är satt upp på är ganska säkert orsaken till problemen.

Jag vet ju inte hur det är byggt upp och hur du har försökt lösa uppgiften - och jag ids inte heller pille i Arduino-kod.

Min lösning hade varit att koppla upp Capture-funktionen (hårdvara i ųCn) och då läsa traktorns hastighet. En viktig detalj där är att man ska ha någon timeout till att nolla vid stillestånd.

Sedan hade jag ställd upp en timer til att ge pulser ut (om traktorn kör) och de pulser kommer med en hastig som motsvarar traktorns * en faktor.

Den faktor kan vara ett potentiometer som avläsas av en A/D-ingång för enkel justering, väl vetande att potentiometer inte är mekanisk stabila.

Arduinos sätt att uppbygga programmer är ett hinder i mer avancerade/realtids applikationer.
vralegin
Inlägg: 23
Blev medlem: 15 september 2021, 16:22:34

Re: Stegmotor styra utmatning av frö på såmaskin

Inlägg av vralegin »

Det funkade hyfsat även med Arduino o diverse olika program men som sagt är jag inte kompetent nog att optimera o hitta diverse buggar i koden.
Förstår inte heller vad du menar med "koppla upp Capture-funktionen (hårdvara i ųCn)"? myCn betyder väl microcontroller o syftar på Arduino gissar jag men koppla upp Capture funktionen fattar jag inget om. Är Capture någon form av "signalinsamling"?
Fortsätter jag pilla med Arduino eller liknande skaffar jag mig nog ett enkelt oscilloskop så jag kan se vad det är för signal jag skapat med olika program.
/nabe
Användarvisningsbild
Icecap
Inlägg: 26139
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Stegmotor styra utmatning av frö på såmaskin

Inlägg av Icecap »

Capture-funktionen är hårdvara som är inbyggd i processorn.
Med den kan man mäta tid mellan pulser med bra upplösning - vilket betyder att man mycket enkelt kan mäta hastigheten i ditt fall.

Man kan lösa detta utan interrupts med lite omtanke men med interrupts inblandat blir livet mycket enklare.

Men nu blir Arduino-systemet problemet, vad jag har sett är det inte hjälpande med interrupt osv.
vralegin
Inlägg: 23
Blev medlem: 15 september 2021, 16:22:34

Re: Stegmotor styra utmatning av frö på såmaskin

Inlägg av vralegin »

Uppdatering
Själva principen med stegmotorn o pulserna direkt från traktorn fungerar jättebra o även ombyggnationen med att jag gjort om såmaskinen till buren o breddning till 6m för att stämma med radhackan.
Det är även väldigt skönt att slippa den långa kraftuttagsaxeln till fläkten.

Men måste tyvärr konstatera att jag är för röten på elektronik o programmering varför alla mina försök att justera pulsfrekvensen "on the fly" har misslyckats.
Jag har köpt ett texas kort "Launchxl" o skall försöka göra det som Icecap förslog med att m.h.a capture på något sätt påverka tiden mellan pulserna för att på detta sätt kunna justera hastigheten/utmatningen.
Tyvärr tror jag startsträckan bara för att kunna grunderna är lång?
Fortsättning följer o vet ni något ställe som någorlunda enkelt beskriver grunderna för att programera detta kort (speciellt capture:) får ni gärna tipsa.
/m
vralegin
Inlägg: 23
Blev medlem: 15 september 2021, 16:22:34

Re: Stegmotor styra utmatning av frö på såmaskin

Inlägg av vralegin »

Kollade lite närmare på kortet jag köpt o tror det är fel pryl till denna applikation, så röten är jag på detta.
/m
Användarvisningsbild
grym
EF Sponsor
Inlägg: 16768
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Re: Stegmotor styra utmatning av frö på såmaskin

Inlägg av grym »

det är därför jag förespråkade analogt allternativ,
programering är jobbigt om man inte hållt på med det tillräckligt mycket
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14850
Blev medlem: 16 april 2006, 17:04:10

Re: Stegmotor styra utmatning av frö på såmaskin

Inlägg av mrfrenzy »

Om det är kämpigt med Arduinoprogrammeringen kanske du skulle köpa en liten PLC istället?
Där används grafisk programmering och det blir ett väldigt enkelt litet program som du säkert kan visa skärmdumpar på här och få hjälp med. Det går också simulera på datorn så man ser vad som händer i alla steg.

Du skulle ju också kunna lägga upp programmet som nästan funkar här så vi kan kika. Om jag förstår rätt så lyckas du redan ta in pulser från traktorn och skicka ut till stegmotorn, endast justering via potentiometern är kvar att lösa?
vralegin
Inlägg: 23
Blev medlem: 15 september 2021, 16:22:34

Re: Stegmotor styra utmatning av frö på såmaskin

Inlägg av vralegin »

Nuvarande "lösning" som inte är någon riktig lösning är att jag låter traktorns hastighetssignaler gå direkt in i drivaren :)
Strömförsörjning o avstägning vid lyft mm funkar bra o med 400p/r ger utmatningen acceptabel giva med nuvarande utsäde.
Problemet med programmen som nästan funkat är att bl.a att de varit ryckiga o ojämna p.g.a amatörmässig programmering av mig.
Har bl.a använt mig av Delay funktion vilket inte funkat något vidare.

Jag tror jag nu förstått lite o hittat en lämplig kod (delar av) som jag tror är vad jag behöver om jag använder Capture funktionen på Arduinon.
Den mäter i princip tiden mellan pulserna vilken är den jag vill kunna påverka lite o sedan skicka vidare till drivsteget.
Syntaxen för att läsa ett värde från poten o eventuellt "skala" om detta till lämplig storlek tror jag att jag klarar nu?

Det jag inte kan (ännu) är att när jag får ett värde på "Input capture" mha Timer1 så vet jag inte hur syntaxen skall vara?
Gissar att jag under "void loop" skall köra analog read o ev skalning av potvärdet vilket sedan används för att justera "Input capture" värdet?
Sedan skall jag vidarebefordra detta till drivaren som en puls via en Output pin?
Frågan är bara hur :D
ha det
m
Användarvisningsbild
Icecap
Inlägg: 26139
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Stegmotor styra utmatning av frö på såmaskin

Inlägg av Icecap »

Med Capture kan du låta hårdvaran läsa traktorns hastighet.

Detta värde ska du sedan - medelst en faktor - omvandla till en utfrekvens.

Och viktigast är att du har en time-out som stopper pulser ut när traktorn står stilla.

μCn i en Arduino klarar enkelt detta jobb men frågan är om Arduino-systemet medger detta.
Du MÅSTE använda en timer och dens interrupt, du MÅSTE kunde använda samma timers PWM-utgång och du MÅSTE ha en timer bredvid för time-out.

Jag har fixat att göra en frekvensgenerator som körte från en bra bit under vad lägsta PWM-frekvens var till högsta hastighet. Det var förvisso en annan μC och den gjorde 3 oberoende frekvenser samtidig men tekniken kan jag.
vralegin
Inlägg: 23
Blev medlem: 15 september 2021, 16:22:34

Re: Stegmotor styra utmatning av frö på såmaskin

Inlägg av vralegin »

När traktorn står still går ju ingen signal till Capture funktionen o maximala värdet är väl ca 4 sekunder (ca 65000 "steg") o när jag lyfter går en signal till "Enable" på drivsteget?
Jag klistrar in koden här om ni orkar kolla den men hinner nog inte "torrtesta" den förrän tidigast till helgen.


float utsignal; //unsigned long?
float potvarde;

void setup() {
Serial.begin(9600); //Bara under torrtest

pinMode(13,OUTPUT);

//Insignal digitalpin 8
//programming timer1 for input interrupt. 1 clockperiod är 64 mikrosekunder så 125 pulser (8 millisekunder) borde ge ett värde på ca 125
noInterrupts();
TCCR1A=0;
TCCR1B=0;
TCCR1B |=0b11000101;
TIMSK1|=0b00100000;
TCNT1=0;
interrupts();
}

ISR(TIMER1_CAPT_vect) // borde inte härifrån stå under void loop istället?

{
input_capture=ICR1; // blir ca frekvensen i Hz 125?
}
void loop()
{
potvarde=analogRead(A0)/50.; // 0-1023 Borde ge ett värde 0-20,46
utsignal=500./(input_capture+potvarde); // Capture värdet multipliceras med 64 microsekunder blir ca 64y-6*125=0,008=8millisekunder.
digitalWrite(13,HIGH);
delay utsignal;
digitalWrite(13,LOW);
delay utsignal;

Serial.println(utsignal); //Bara under torrtest
}
//så fort ny signal kommer från traktor (ca 125Hz) så kör den detta igen?
vralegin
Inlägg: 23
Blev medlem: 15 september 2021, 16:22:34

Re: Stegmotor styra utmatning av frö på såmaskin

Inlägg av vralegin »

Kom på att bifogade kod ovan nog inte kommer funka?
När "andra" input capture sker ges inte tiden från föregående utan från cykelstart hos Timer1 o värdet kommer bara öka upp till ca 65000 när en ny cykel startar tror jag?
Får återkomma med nytt utkast på kod
/m
vralegin
Inlägg: 23
Blev medlem: 15 september 2021, 16:22:34

Re: Stegmotor styra utmatning av frö på såmaskin

Inlägg av vralegin »

Visserligen bara "torrkört" men tror jag fått till det :shock:
(frånsett en lite detalj som jag enkelt fixar, är "tvärtom". Ökar frekvensen från traktorn så ökar "delay" men skall minska :mrgreen: )
Kör denna kod

float utsignal;
float potvarde;
volatile unsigned int C1=0,C2=0,period,i;
void setup() {
Serial.begin(9600); //Bara under torrtest
pinMode(13,OUTPUT);
//Insignal digitalpin 8

noInterrupts();
TCCR1A=0;
TCCR1B=0;
TCNT1=0;
TCCR1B |=0b11000101;
TIMSK1|=0b00100000;

interrupts();
}

ISR(TIMER1_CAPT_vect)
{
i++;
if(i==1) C1=ICR1;
if(i==2)
{
C2=ICR1;
period=C2-C1;
C1=0;C2=0;i=0;
}
}


void loop()
{
potvarde=analogRead(A0)/50.; // 0-1023 Borde ge ett värde 0-20,46
utsignal=500./(period+potvarde);
digitalWrite(13,HIGH);
delay(utsignal);
digitalWrite(13,LOW);
delay(utsignal);

Serial.println(utsignal);
}
//så fort ny signal kommer från traktor (ca 125Hz) så kör den detta igen?
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14850
Blev medlem: 16 april 2006, 17:04:10

Re: Stegmotor styra utmatning av frö på såmaskin

Inlägg av mrfrenzy »

För att få en stabil mätning med hög noggrannhet kanske du borde mäta tiden mellan 10 eller 50 pulser. Om du bara mäter mellan två pulser kan störningar eller små variationer i när koden körs göra stor skillnad på resultatet.

För att med potentiometern kunna justera in ett "antal frön per meter" så borde matematiken någonstans vara
konstant./(period*potvarde)
vralegin
Inlägg: 23
Blev medlem: 15 september 2021, 16:22:34

Re: Stegmotor styra utmatning av frö på såmaskin

Inlägg av vralegin »

Ja men å andra sidan läses väl ett nytt värde in direkt så "felvärdet" verkar väldigt kort tid?
Skall också testa med "map" funktionen för att skala om potvärdet.
Är klar med sådden nu så skall ta hem motorn o testa mer.
Skall också försöka få till en filmsnutt eller bilder då jag själv uppskattar det när jag kikar i olika trådar.
/m
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14850
Blev medlem: 16 april 2006, 17:04:10

Re: Stegmotor styra utmatning av frö på såmaskin

Inlägg av mrfrenzy »

I all styrning av detta slag har man någon form av filter eller medelvärde på insignalen. Det förbättrar funktionen rejält.
Det finns ingen anledning att styrenheten ska reagera på 50 millisekunder när det tar 500 millisekunder för traktorn att ändra hastighet märkbart.
Skriv svar