One sensor to rule them all? Motorstopp

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
fosfor
Inlägg: 453
Blev medlem: 13 februari 2013, 05:43:15
Kontakt:

One sensor to rule them all? Motorstopp

Inlägg av fosfor »

Hej!

Om jag har en motor som kan flytta en hylla upp och ner. Som en lift.
Så har jag också EN ir-sensor som kan stoppa den här hyllan när den kommer glidande från uppifrån eller nedifrån.
Det jag skulle vilja ha är att farten sänks de sista låt säga 1 sekund innan den når sitt definitiva stopp, hur skulle man kunna lösa detta?
Tidigare har jag kört 3 sensorer, så att den ena sensorn från ena hållet aktiverar det lägre fartläget för att sen stoppa helt på sensorn som sitter i mitten.
Det vore mer praktiskt, och känns som att det borde gå med en sensor.
Man vill även att det utan problem ska gå att rejsa ifrån denna position. Med eller utan lägre fart spelar mindre roll.
Men den får ju inte fastna på denna position så att säga.

Ett problem som uppstår om man har en timer t.ex. är ju att man kan få den funka bra om den kommer uppifrån men då blir det
en avståndskillnad när den istället kommer nedifrån.

Några idéer eller bra exempel man kan kika på?

Mvh U
Användarvisningsbild
Platis
Inlägg: 2464
Blev medlem: 24 november 2009, 20:19:28
Ort: Ljungby

Re: One sensor to rule them all? Motorstopp

Inlägg av Platis »

Vad är det för typ av motor?
Användarvisningsbild
fosfor
Inlägg: 453
Blev medlem: 13 februari 2013, 05:43:15
Kontakt:

Re: One sensor to rule them all? Motorstopp

Inlägg av fosfor »

Det är en motor med rotary encoder.
Så jag har tillgång till pulserna som den räknar upp och ner osv.
Det är där jag kanske tänker mig att man kan göra något.
Men det är knepigare än man först tänker sig.
Användarvisningsbild
Icecap
Inlägg: 26105
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: One sensor to rule them all? Motorstopp

Inlägg av Icecap »

Om du har abs. position på hyllan ska det väl inte vara ett problem. Abs. position får man ju när hyllan passerar sensorn och sedan räknar styrningen ju.

Vid uppstart kan man dock bli tvungen att se till att hyllan kommer till sensorn för att "nolla" in räkningen och varje gång man startar om styrenheten kommer den att behöva "nolla".
Användarvisningsbild
fosfor
Inlägg: 453
Blev medlem: 13 februari 2013, 05:43:15
Kontakt:

Re: One sensor to rule them all? Motorstopp

Inlägg av fosfor »

Icecap: Åhå, spännande!
Men vad är abs.position?? En särskild funktion?
(Observera, nybörjare här)
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43148
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: One sensor to rule them all? Motorstopp

Inlägg av sodjan »

"Absolut position". Nu vet jag att hyllan är exakt *här*.
Det kan vara bottenläget, toppläget eller var som helst
som är en känd och fast position.

Motsatsen är "relativ position", då man bara vet att nu
borde jag vara 15 cm (eller något) från nollpunkten.

Inte exakt så (även en relativ position kan vara ganska exakt
om den kommer från bra puls-givare eller liknande).

Den där IR-sensorn, ger den bara ett on/off eller är det en sådan
som ger en avstånd som ett mätvärde ut?
FormerMazda
Inlägg: 6066
Blev medlem: 27 februari 2006, 14:59:36
Ort: Tranås (Jönköping)

Re: One sensor to rule them all? Motorstopp

Inlägg av FormerMazda »

Du kör din motor till nåt som säger åt din uC att en gräns är nådd.
Där nollar du din räknare i programmet, sen kan du utgå från att pulserna är lika med din position.

Om du har en IR-sensor så har du två signaler:
TILL - Hyllan aktiverar din IR = kör till signal försvinner - stanna - nolla
FRÅN - Hyllan aktiverar inte din IR = kör till signal kommer - stanna - nolla

Sen kan du veta att x-pulser är y-millimeter.

"Problemet" är att veta om nollning behövs / har utförts på ett säkert sätt.
Användarvisningsbild
fosfor
Inlägg: 453
Blev medlem: 13 februari 2013, 05:43:15
Kontakt:

Re: One sensor to rule them all? Motorstopp

Inlägg av fosfor »

sodjan: Den skickar bara on/off dessvärre.

FormerMazda: Problemet är ju att jag skulle vilja slippa att den behöver rekalibrerar sig på något vis.
Den behöver kunna stängas av med sin hylla i en position, och minnas den positionen när den startas upp igen :-/
FormerMazda
Inlägg: 6066
Blev medlem: 27 februari 2006, 14:59:36
Ort: Tranås (Jönköping)

Re: One sensor to rule them all? Motorstopp

Inlägg av FormerMazda »

Då kan du lagra positionen i non-volataile minne och hoppas på att hyllan inte rört sig.
Men detta är ju inget direkt bra tips.

Du behöver en återföring på positionen, antingen mekaniskt eller optiskt.
Användarvisningsbild
fosfor
Inlägg: 453
Blev medlem: 13 februari 2013, 05:43:15
Kontakt:

Re: One sensor to rule them all? Motorstopp

Inlägg av fosfor »

Det går inte att använda EEPROM minnet mer då?
Lagra positionen så att den återläses?

Kruxet är väl bara det att man vill inte skriva så mkt till minnet.
Om den ska minnas sin position så kanske enda sättet är att göra så att den sparar sin nya position efter varje gång den flyttas...

Sätta konding/batteri i anslutning till chipet? Så att den aldrig "förlorar"/glömmer sin siffra den står på kanske?
FormerMazda
Inlägg: 6066
Blev medlem: 27 februari 2006, 14:59:36
Ort: Tranås (Jönköping)

Re: One sensor to rule them all? Motorstopp

Inlägg av FormerMazda »

Allt det är möjliga sätt att lagra ett värde.
Problemet är att lagrat värde kanske inte motsvarar verkligt värde. Vad händer när den är spänningslös och inte kan uppdatera positionsändring?

Edit, glömde ett ord..
motsvarar värde -> motsvarar verkligt värde
Senast redigerad av FormerMazda 21 maj 2018, 14:35:02, redigerad totalt 1 gång.
Användarvisningsbild
Icecap
Inlägg: 26105
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: One sensor to rule them all? Motorstopp

Inlägg av Icecap »

fosfor: du tänker fel - eller svarar inte på rätt sak.

Scenario 1:
1: Om det finns en "känd" position och det är sparat information om att allt är synkroniserat hoppas till steg 4.
2: Enheten startas och hyllan körs upp/ner till sensorn "får tag i den". Sensorn kan t.ex sitta längst ner och ha en avkänning som är "lång". Vid första start känns det av på sensorn om den är påverkad - och då ska köra uppåt - eller om den är opåverkad och då ska köra neråt.
3: Hyllan kör till sensorn ändrar sig - och just vid ändringen har man en känd position som räknaren sedan laddas med. Det är fullt möjligt att den räknar hur många steg den kör INNAN och då - efter synkroniseringen - kör tillbaka till samma position. Alltså "hmmmm - efter 1001 steg kom den kända kanten av sensorn. Fint, nu har jag ställd kända positionen till X och kör sedan 1001 steg tillbaka och saken är biff."
4: Om ställningen ändras sparas positionen en kort stund (5 sek?) efter att man har släppt knappen.

Scenario 2:
Samma som ovan men medan styrningen är avstängd glider hyllan ur position av någon anledning (handvev, dålig konstruktion, pallyftare, whatever). Vid uppstart av styrningen "vet" den inte vilken position den egentligen har, bara vad den "tror". I det läge ska det ske en kalibrering vid varje spänningspåslag, bara för att säkerställa positionen.

I scenario 2 kan man alltså INTE hoppa över synkroniseringen så den verkliga position inte är känd från början.
Användarvisningsbild
fosfor
Inlägg: 453
Blev medlem: 13 februari 2013, 05:43:15
Kontakt:

Re: One sensor to rule them all? Motorstopp

Inlägg av fosfor »

FormerMazda & Icecap:

En fördel med maskinen är att position på hyllan i avstängt läge är nästintill omöjlig att flytta på, den låser fast sig mekaniskt, och hela maskinen är batteridriven, dör elektroniken så kommer den fastna vid senast sparade position, även om den inte minns elektroniskt vart den var när man startar igen.
Så den lär inte starta rent mekaniskt på en annan position för att den varit avstängd, så den sparade positionen kommer i chipet om sånt sparats alltid med mycket stor sannolikhet vara densamma som den mekaniska delen isåfall. Vidare så vore det inte katastrof OM den är någon cm fel eller råkar kalibrera ur sig på något vänster med tid. Det är helt enkelt inte livsviktigt att detta fungerar till 110%.

Anledningen till att den ska minnas vilken position den stängdes av vid, är för att den hamna rätt när man åker till den sparade paus-positionen som jag i nuläget kan ha. Där hyllan pausar vid en "favorithöjd" som man sparat sedan tidigare. Denna funktion fungerar just nu. Men den hamnar ju någon helt annanstans när man slår av och på maskinen eftersom maskinen inte minns alls vart den var när den stängdes av. Därför måste man varje gång vid off/on spara om sin favorithöjdsposition vilket kan bli lite irriterande på sikt.

Sen vill jag ju, som trådrubriken antyder, att en sensor/eller favoritposition via kod, ska förstå att den ska sakta in sista centimetrarna.
Så att den inte kommer i full spätta och tvärnitar.

Många förslag om huruvida maskinen ska minnas sin position när den stängdes av har kommit fram.
Typ att:
1. Maskinen går bara i sleepmode, och den delen som har positionen i minnet har ström.
2. Någon form av batteri/konding som ser till att den delen med positionen inte dör.
3. Någon form av skrivning till EEPROM så att den kan tvärdö, men endå minnas sin position.

Vad tror ni blir bäst i mitt fall? :humm:
FormerMazda
Inlägg: 6066
Blev medlem: 27 februari 2006, 14:59:36
Ort: Tranås (Jönköping)

Re: One sensor to rule them all? Motorstopp

Inlägg av FormerMazda »

Ja då är det som du säger, du kan inte till 100% lita på att den kommer ha rätt position, men gör det inget så är det "eget ansvar". :)

Lagra din position i EEPROM efter varje körning:
https://www.arduino.cc/en/Tutorial/EEPROMRead

EEPROMet har en begränsad skirv/läs-livslängd och är kanske inte bästa lösningen, men är detta ett problem för dig i praktiken? <--Ställ dig den frågan.

Så bygg ditt program att veta var hyllan är baserat på pulserna från enkodern. Varje gång hyllan stannat, spara position till EEPROM.
Sätt dig din IR-givare på lämplig plats, typ en position som hyllan ska gå till, låt programmet nolla position efter det så lär den vara hyggligt i fas hela tiden.
Användarvisningsbild
fosfor
Inlägg: 453
Blev medlem: 13 februari 2013, 05:43:15
Kontakt:

Re: One sensor to rule them all? Motorstopp

Inlägg av fosfor »

Icecaps idé om att spara positionen efter typ 5 sekunders inaktivitet var annars rätt bra? Om inte en väldigt bra idé till och med?
Då slipper man ju en jättestor del skrivningar till minnet?
Eller om man kan ha att den skriver in sin position precis innan den går in i standbyläge/strömsnålsviloläge?

Eller kan jag ha missat någon grov nackdel med detta? :humm:

Hålls positionen i minnet vid liv när Arduino UNO går in i viloläge?
Isåfall behövs ju inte ens positionen sparas och hämtas från någonstans.
Och dör maskinen efter lång inaktivetet så får man helt enkelt spara om sin favorit hylleposition.
Senast redigerad av fosfor 22 maj 2018, 15:03:54, redigerad totalt 3 gånger.
Skriv svar