Arduino stegmotor

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
slatten
Inlägg: 47
Blev medlem: 29 maj 2013, 07:16:21
Ort: Kungsbacka

Arduino stegmotor

Inlägg av slatten »

Hej försöker lära mig lite om programering och stegmotorer.
Kör en Arduino uno R3
Det värde(position) som stegmotorn har vid avstängning kan jag
spara det värdet någonstans för att sedan återkalla vid uppstart?

Slatten
Användarvisningsbild
Klas-Kenny
Inlägg: 11759
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Arduino stegmotor

Inlägg av Klas-Kenny »

Absolut, läs på lite om EEPROM.
slatten
Inlägg: 47
Blev medlem: 29 maj 2013, 07:16:21
Ort: Kungsbacka

Re: Arduino stegmotor

Inlägg av slatten »

Tack Klas-Kenny för ett snabbt och informativt svar.

Då har jag följande lösning på min fråga, läser på och lär mig c eller c++.
Som steg två åker till bibban och lånar en tjock jävla bok helst på engelska
om EPROM är jag på rätt väg? Fan att jag inte kom på det själv.
Användarvisningsbild
Klas-Kenny
Inlägg: 11759
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Arduino stegmotor

Inlägg av Klas-Kenny »

Att låna en tjock bok om EEPROM är att överdriva. :)

Om du bara vill spara ett par värden i en mikrokontroller, behövs inte mycket kunskap om EEPROM i sig. I princip det enda man behöver veta är att EEPROM inte förlorar data vid strömlöshet, och sen hur man skriver data till det i mikrokontrollern i fråga.

På just Arduino finns det som till allt annat, färdiga bibliotek för hela uppgiften.
http://arduino.cc/en/Reference/EEPROM
slatten
Inlägg: 47
Blev medlem: 29 maj 2013, 07:16:21
Ort: Kungsbacka

Re: Arduino stegmotor

Inlägg av slatten »

Jo jag hittade just den länken, men det som förvånade mig mest var att Eprom har en mycket begränsad
skrivbarhet.

Citerar:An EEPROM write takes 3.3 ms to complete. The EEPROM memory has a specified life of 100,000 write/erase cycles, so you may need to be careful about how often you write to it.

Om jag nu bygger en räknare i mainloppen måste jag ju skriva efter varje steg till Epromet vet ju inte när tex ett
strömavbrott kommer och controllern tappar sitt positionsvärde.
svanted
Inlägg: 5244
Blev medlem: 30 augusti 2010, 21:20:38
Ort: Umeå

Re: Arduino stegmotor

Inlägg av svanted »

sätt en konding som driver arduinon ngn halvsekund så att du hinner skriva stegmotorvärdet innan den blir kraftklös.,



edit...menar kratfslös, krastflös.... äh... :oops:
slatten
Inlägg: 47
Blev medlem: 29 maj 2013, 07:16:21
Ort: Kungsbacka

Re: Arduino stegmotor

Inlägg av slatten »

svanted ja men om jag just flyttat stegmotorn så kanske skrivningen till epromet inte hinns med, då måste
jag ju känna av när matningsspänningen faller och skriva för att sedan inte ge mer stegkommandon.
Och 100.000 Steg till en motor e ju ganska snabbt avklarat, så om jag fattar det rätt kan man ta en IO pinne
och känna av inmatningsspänningen och om den faller under ett visst värde så skrivs det till Eprom?

Mitt problem är att jag vill styra en ventil med stegmotorn och ventilen har ju två dödlägen fullt stängd och
fullt öppen. Kan man läsa av när stegmotorn når ventilens stängda läge? Ström/spänning, så är ju problemet löst.
Dvs vid varje start av Arduinon stegar man sakta ned stegmotorn och när den når stängt läge borde ju ström/spänning
förändras och man har sitt 0 läge för stängd ventil fullt öppen är ju redan känt
Senast redigerad av slatten 7 juli 2013, 18:31:54, redigerad totalt 1 gång.
Användarvisningsbild
Icecap
Inlägg: 26610
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Arduino stegmotor

Inlägg av Icecap »

Inget skrivs till EEPROM'et om det inte sker från programmet!

Om du ska stega motorn 100k steg ska du SÅKLART inte spara positionen för varje steg!

Sedan är det bara en önskedröm att spara det, det behöver inte ha något med verkligheten att göra. Motorn kan flyttas manuellt, det kan vara ett stopp den inte kommer förbi eller liknande och ingen återmatning finns på det!

Alltså kommer värden man sparar att vara "förhoppningsvis" värden.
Användarvisningsbild
swapper
Inlägg: 1076
Blev medlem: 14 augusti 2012, 23:18:15
Ort: Helsingborg

Re: Arduino stegmotor

Inlägg av swapper »

Mina förslag är nog

1. Sätt ett ändläge där ventilen är fullt stängd eller fullt öppen.
Vid uppstart så kör enheten alltid mot ändläget och blir nollad där.

2. Absolutencoder med batteribackup som alltid vet var den är i ett antal dagar. (dyrt)

Här verkar vara ett liknande projekt.
http://thingsimdoing.wordpress.com/2012 ... g-arduino/

De använder encoder, dock troligen inte batteribackad.
slatten
Inlägg: 47
Blev medlem: 29 maj 2013, 07:16:21
Ort: Kungsbacka

Re: Arduino stegmotor

Inlägg av slatten »

Encoder vill helst slippa det, vill göra det enkelt. Men batteribackupp och en pinne på Arduinon som känner av
om matningen försvinner och sedan sparar stegposition och stänger av. Men som jag sa tidigare borde man inte kunna
känna av stoppläget vid stängd ventil?
Maalobs
Inlägg: 1304
Blev medlem: 3 februari 2005, 14:35:15
Ort: Stockholm

Re: Arduino stegmotor

Inlägg av Maalobs »

På PC-moderkort och på routers/switchar brukar man spara viss typ av konfiguration i NVRAM, som hålls igång av klockbatteri.
Exempelvis BIOS-inställningar på datorer och Configuration Register på Cisco-prylar.

Det är RAM, så det finns ingen begränsning i antal read/write-cycles som på EEPROM, så det kanske är ett praktiskt alternativ i ditt tänkta fall där du vill spara varenda utförd positionsändring?
Det verkar finnas lite färdigt därute:
http://www.google.se/#q="nvram"+arduino

Hur du ska garantera att stegmotorns verkliga position i alla lägen överensstämmer med det sparade värdet, är en annan femma. :)
Användarvisningsbild
SeniorLemuren
Inlägg: 8332
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Arduino stegmotor

Inlägg av SeniorLemuren »

Förslag 1 från swapper är ju den enklaste lösningen och väldigt vanlig.. Sätt en liten mikrobrytare i ena ändläget t.ex vid stängd ventil. När du startar upp datorn så har du en rutin som först kör stegmotorn mot mikrobrytaren och nollställer räknaren, innan du fortsätter i programmet.

Bilden visar regulator som jag byggde till min braskamin, där jag använder en mikrobrytare som nollställer stegmotorn vid stängt spjäll.
regulator.JPG
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
slatten
Inlägg: 47
Blev medlem: 29 maj 2013, 07:16:21
Ort: Kungsbacka

Re: Arduino stegmotor

Inlägg av slatten »

SeniorLemuren jo funderat mycket på mikrobrytare, det vore iof en lösning. Ser dock lite problem
med just den. Nålventilen jag ska styra har mindre än 0,5mm gängstigning. Så det blir svårt att justera den
exakt och min erfarenhet av mikrobrytare är att dom flyttar på sig ibland och har en begränsad mekanisk
livslängd. Funderar på att åka bort och låna ett oscilloskop för att se vad som händer när jag stegar ner mot
stängd ventil. Och kanske utnyttja den effekten för att nollställa stegräknaren. Men har för liten erfarenhet och jag kanske tänker fel?
Användarvisningsbild
SeniorLemuren
Inlägg: 8332
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Arduino stegmotor

Inlägg av SeniorLemuren »

Du kan ju alltid välja en induktiv givare med bra repeterbar noggrannhet i stället för en mikrobrytare.
Användarvisningsbild
Icecap
Inlägg: 26610
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Arduino stegmotor

Inlägg av Icecap »

Rätt monterat är mikrobrytare ett utmärkt alternativ men det finns andra sätt också.

Det man ska ha klart för sig är att man inte måste ha mikrobrytaren exakt på nollpunkten, iaf. inte om man har en stegmotor. Det går alldeles utmärkt att man kan kalibrera så att styrningen kan "resonera": "Nu kom skiftet, jag stegar åt rätt håll, alltså är det xx steg kvar innan stopp".

Om man då ska återställa till start är det bara att räkna hur många steg som det stegas ner, när nollpunkten nås stegar man upp samma antal steg och den är återställd och har känd position.

Ska det vara än mer noga kan man ha en liten skiva på stegmotorns axel som man kombinerar med ändlägesbrytaren: Först ska ändläget aktiveras och när indikatorn på skivan sedan aktiveras är det ett definitivt känd punkt med hög upplösning.
Skriv svar