Maskinistens Twitter-flöde  Stöd Maskinisten via Patreon  Maskinistens nätverk - information på svenska  Maskinistens nätverk - information på finska  Maskinistens nätverk - information på norska  Maskinistens nätverk - information på danska  Maskinistens nätverk - information på isländska
Forumindex

ForumindexForumindexMaskin-databasFotoalbumKalender-informationKöp & SäljDownloadsLexikonKontaktregisterEfterlysningarShop

Åkerman-register
Visa forum för mobila enheter

ForumindexVerkstadsforumAllmänt[Allmänt] El/elektronik

Försöker lära mej Arduino

369 inlägg • Sida 24 av 25
Diskutera el/elektronik i allmänhet här

Janson1

#346 » 09:44:37, 06-04-2019
  • Överför markerat ord till lexikonet

Först: pulstid = pulseIn(inpin, LOW);
Sen: varvtalmotor = (1000000/pulstid)*30.06;
Nu kommer vi till kruxet, jag kommer inte ihåg hur det blev, men jag har för mig den räknade rätt?
Detta bygger på 2 pulser per varv. HIGH eller LOW kan ha betydelse...

1 person gillar det här inlägget.
Janson1
Fler än 500 inlägg
 
Blev medlem: 12:50:52, 21-03-2010
Ort: Västra Götaland
Sverige
Maskintyp: Grävmaskin (larvburen)
Maskin: Bobcat X125 (2.3 ton)
case cx15 (Kubota kx41)
+ div. flygplan, helikoptrar
Senaste renoveringsobjekten:
Piper PA-24 Comanche från -64 (flyger nu)
Ferguson Grålle/VW diesel 1952/2002 (rullar nu)
En båt, Safir Kabin som skall få en VW-diesel så småningom...

GLIDLAGER - LEDLAGER - BUSSNINGAR - KULLAGER - RULLAGER - TÄTNINGAR - LÄNKHUVUDEN
www.debearings.se


AN (trådstartaren)

#347 » 11:51:39, 06-04-2019
  • Överför markerat ord till lexikonet

Lite seriösare nu kanske :uupps:
Bild
Borde kanske fräst ut mer än en tand, men borde det inte kunna fungera?
Går väl ev att svetsa dit, och fila till en till om det behövs.

När tanden passerar går ju signalen låg. Så med pulseln, räknas tiden från att signalen går låg tills att den går låg nästa gång då väl? Blir lite fundersam då jag läser på arduino-sidan.

Returns
the length of the pulse (in microseconds) or 0 if no pulse started before the timeout (unsigned long)


Känns nästan som att det är längden på hög-pulsen eller låg-pulsen som mäts? Då skulle ju bredden på tanden spela stor roll väl?
Men det är alltså längden från start av låg-puls, till start av nästa låg-puls som man mäter väl?( eller från hög-puls till hög-puls då beroende på kod)



Janson1 skrev:Först: pulstid = pulseIn(inpin, LOW);

Här mäts ju pulstiden i mikrosekunder.


Janson1 skrev:Sen: varvtalmotor = (1000000/pulstid)*30.06;

1000000/pulstiden ger väl då tiden i sekunder, mellan pulserna?
Multiplicera med 30 är väl för att få minuter?
30 kommer väl av 60/2=30, då det är två tänder?
.06 är jag inte riktigt med på :klia: Men det måste väl iaf vara ett komma-tal, när det är floating?

Med koden ovan kommer man väl fram till tiden mellan två pulser uttryckt i minuter :klia:
rpm = antal varv/tid, så det känns att det ska bli 1/pulseln-värdet?
Men när jag testar koden med triggerskivan i skruvdragaren, så får jag ett värde som inte är helt orimligt att det skulle kunna vara rätt varvtal?
Vad är det jag missar? :klia:
AN
Fler än 500 inlägg
 
Blev medlem: 21:19:02, 09-12-2009
Ort: Värmland
Sverige

joakim72

#348 » 12:24:12, 06-04-2019
  • Överför markerat ord till lexikonet

AN skrev:Lite seriösare nu kanske :uupps:
Bild
Borde kanske fräst ut mer än en tand, men borde det inte kunna fungera?
Går väl ev att svetsa dit, och fila till en till om det behövs.

När tanden passerar går ju signalen låg. Så med pulseln, räknas tiden från att signalen går låg tills att den går låg nästa gång då väl? Blir lite fundersam då jag läser på arduino-sidan.

Returns
the length of the pulse (in microseconds) or 0 if no pulse started before the timeout (unsigned long)


Känns nästan som att det är längden på hög-pulsen eller låg-pulsen som mäts? Då skulle ju bredden på tanden spela stor roll väl?
Men det är alltså längden från start av låg-puls, till start av nästa låg-puls som man mäter väl?( eller från hög-puls till hög-puls då beroende på kod)



Janson1 skrev:Först: pulstid = pulseIn(inpin, LOW);

Här mäts ju pulstiden i mikrosekunder.


Janson1 skrev:Sen: varvtalmotor = (1000000/pulstid)*30.06;

1000000/pulstiden ger väl då tiden i sekunder, mellan pulserna?
Multiplicera med 30 är väl för att få minuter?
30 kommer väl av 60/2=30, då det är två tänder?
.06 är jag inte riktigt med på :klia: Men det måste väl iaf vara ett komma-tal, när det är floating?

Med koden ovan kommer man väl fram till tiden mellan två pulser uttryckt i minuter :klia:
rpm = antal varv/tid, så det känns att det ska bli 1/pulseln-värdet?
Men när jag testar koden med triggerskivan i skruvdragaren, så får jag ett värde som inte är helt orimligt att det skulle kunna vara rätt varvtal?
Vad är det jag missar? :klia:


Ta och kör ut trigingången direkt till en led så du ser vad datorn ser som första åtgärd, går även att ta den till skärmen men serial kan ge låsningar så övrig tidtagning blir fel.

1 person gillar det här inlägget.
joakim72
Fler än 100 inlägg
 
Blev medlem: 14:14:17, 15-03-2011
Maskintyp: Ej angivet
Maskin: CNC

Ulf

#349 » 09:19:48, 14-04-2019
  • Överför markerat ord till lexikonet

Lite intressant i sammanhanget roterande mojänger https://youtu.be/FTs9GygRQ-U
Inte arduino. Givaren ger 4096 pulser per minut, spindeln roterar med 2400rpm. Det blir 168340 pulser i sekunden!!
Kommer du med problem, eller är du en del av det?

1 person gillar det här inlägget.
Användarvisningsbild
Ulf
Fler än 500 inlägg
 
Blev medlem: 16:04:18, 05-03-2004
Ort: Kil
Maskintyp: Traktor
Maskin: Nuffield 460 -61

Janson1

#350 » 06:51:20, 15-04-2019
  • Överför markerat ord till lexikonet

ang varvtalsvisningen. egentligen skall det vara 30.0 men arduinon tappar x antal uS vid varje mätning, om man gångrar med 30.06 istället så kompenseras detta.(har jag för mig?)

1 person gillar det här inlägget.
Janson1
Fler än 500 inlägg
 
Blev medlem: 12:50:52, 21-03-2010
Ort: Västra Götaland
Sverige
Maskintyp: Grävmaskin (larvburen)
Maskin: Bobcat X125 (2.3 ton)
case cx15 (Kubota kx41)
+ div. flygplan, helikoptrar
Senaste renoveringsobjekten:
Piper PA-24 Comanche från -64 (flyger nu)
Ferguson Grålle/VW diesel 1952/2002 (rullar nu)
En båt, Safir Kabin som skall få en VW-diesel så småningom...

Ulf

#351 » 08:16:14, 16-04-2019
  • Överför markerat ord till lexikonet

Ulf skrev:Lite intressant i sammanhanget roterande mojänger https://youtu.be/FTs9GygRQ-U
Inte arduino. Givaren ger 4096 pulser per minut, spindeln roterar med 2400rpm. Det blir 168340 pulser i sekunden!!


Öh, ser nu att jag skrev fel givaren ger 4096 pulser per varv, inget annat!
Kommer du med problem, eller är du en del av det?
Användarvisningsbild
Ulf
Fler än 500 inlägg
 
Blev medlem: 16:04:18, 05-03-2004
Ort: Kil
Maskintyp: Traktor
Maskin: Nuffield 460 -61

sm6ywk

#352 » 08:57:58, 16-04-2019
  • Överför markerat ord till lexikonet

Vanligt för givare är att de reagerar olika fort på negativ respektive positiv flank.
I databladet för honeywell givaren
http://www.mouser.com/ds/2/187/honeywel ... 947405.pdf
står att fall-time max 1 us, rise-time max 5 us.
Om man ligger nära max för givaren (10 kHz) och har en kuggkrans som är lika mycket kugg som spår så skulle signalen i den bästa av världar bli 50 us on och 50 us off. Då är 5 us 10% felkälla, vilket är lite mer än man vill ha.
Jag kan väldigt lite om hallgivare, har egentligen bara läst i databladet samt ett annat papper jag hittade från Honeywell
https://sensing.honeywell.com/hallbook.pdf
titta på sidan 35, fig 5-7.
Här ser man att off alltid är längre än on. Off är tandbredden plus något, on är spårbredden minus något. Detta kan dock vara kompenserat när man fräst kransen.
Vart jag vill komma med allt detta är att, anledningen till att man helst inte vill mäta positiv till negativ flank (eller tvärt om), utan alltid positiv till positiv eller i detta fallet hellre negativ till negativ eftersom falltiden är mer distinkt än stigtiden.
Det är det som är risken med att använda pulsein(), jag skulle också tro att det är anledningen till att janson1 inte kunde använda 30 utan 30.06 då det blev en konstant i hans system. Den konstanten kan ändra sig med en annan givare.
Inte därmed sagt att det är fel att mäta pos flank till neg flank, det går ju att kompensera till viss del, dessutom kanske det inte spelar någon roll för applikationen.

Detta kan med med fördel använda interrupt till
https://www.arduino.cc/reference/en/lan ... interrupt/
Jag ska erkänna att jag inte provat interrupt på en arduino, men det borde fungera på samma sätt som vanligt.
Man har sin loop() som jobbar på som vanligt, när en ändring sker på en interrupt-pinne så pausar man loop() och hoppar till interrupt-rutinen, här ska man passa sig för att göra saker som tar tid.
Lämpligt i detta fallet är att spara tiden just nu och jämföra den med tiden för förra interruptet, detta ger tiden mellan två kuggar.
Ofta så sätter man en variabel som berättar att man just har mätt tiden.
När interruptet är färdigt hoppar arduinon automatiskt tillbaka till loop() och fortsätter där den slutade sist.
På detta sättet kan man utföra massa kod utan att processorn behöver stanna upp för att vänta på att en signal ska gå hög eller låg.
Jag vet inte om det gick att hänga med i mitt svammel som ingen bett om.
Orkade du läsa ändå hit är jag imponerad av dig!

2 personer gillar det här inlägget.
sm6ywk
Fler än 10 inlägg
 
Blev medlem: 12:40:41, 10-03-2013
Ort: Ale kommun, Västra Götaland
Maskintyp: Traktor
Maskin: BM 650

Janson1

#353 » 12:43:00, 16-04-2019
  • Överför markerat ord till lexikonet

Skall väl nämna att jag hade problem med kombinationen pulseIn() och den ena hallgivaren pos/neg flank. Jag tror också det beror på fall/stigtid. Ibland kan man labba med olika pullup/pulldownmotstånd tills det blir tillräckligt bra...

1 person gillar det här inlägget.
Janson1
Fler än 500 inlägg
 
Blev medlem: 12:50:52, 21-03-2010
Ort: Västra Götaland
Sverige
Maskintyp: Grävmaskin (larvburen)
Maskin: Bobcat X125 (2.3 ton)
case cx15 (Kubota kx41)
+ div. flygplan, helikoptrar
Senaste renoveringsobjekten:
Piper PA-24 Comanche från -64 (flyger nu)
Ferguson Grålle/VW diesel 1952/2002 (rullar nu)
En båt, Safir Kabin som skall få en VW-diesel så småningom...

AN (trådstartaren)

#354 » 11:40:37, 19-04-2019
  • Överför markerat ord till lexikonet

Det är alltså längden på pulsen jag mäter med pulsln, från att den går låg, tills den går låg nästa gång? :klia:
Jag är väl inte så kräsen än, utan nöjd att jag får utslag överhuvudtaget :smile:
Lär man sej detta med programmering, givare, olika ställdon, kan man ju göra mycket kul saker. :smile:
AN
Fler än 500 inlägg
 
Blev medlem: 21:19:02, 09-12-2009
Ort: Värmland
Sverige

sm6ywk

#355 » 12:08:00, 19-04-2019
  • Överför markerat ord till lexikonet

Nej, det är från det att den går hög (positiv flank) tills den går låg (negativ flank) eller negativ till positiv flank. Beroende på vilket argument du ger i funktionsanropet, HIGH eller LOW.
Enligt databladet sänker givaren utgången när en tand kommer.
Vill du veta hur lång tid som tanden är framför givaren använder du pulsein(pin,LOW), vill du veta hur lång tid som tanden inte är framför givaren använder du pulsein(pin,HIGH). För att omvandla det till varvtal behöver du mäta hur stor del av omkretsen som är tand och dividera tiden (i sekunder) med detta tal (ser ut att vara runt 0.05, eller något i den storleksordningen).
Gick det att hänga med?

1 person gillar det här inlägget.
sm6ywk
Fler än 10 inlägg
 
Blev medlem: 12:40:41, 10-03-2013
Ort: Ale kommun, Västra Götaland
Maskintyp: Traktor
Maskin: BM 650

AN (trådstartaren)

#356 » 11:31:16, 04-05-2019
  • Överför markerat ord till lexikonet

Ska testa lite till med den där hallgivaren. Men en annan tanke dök upp.
Hur fungerar varvtalsgivare i industrin, då ger väl ofta 4-20mA ut?
Om vi tex har en drift som ska hålla en viss hastighet, så sitter ju kanske en varvtalsgivare på en hydraulmotor, som sedan ett PLC system läser, och sedan ger en ny 4-20mA signal ut till hydraulpumpens styrkort, för att öka eller minska flödet på pumpen. Lite förenklat kan man väl säga att det går till så? Så inte bara varvtalsgivare, utan även tempgivare, tryckgivare och flödesgivare ger väl 4-20mA ut? Kanske inte så enkelt att förklara på några rader på ett forum, men kanske finns några dokument på nätet ni känner till för att man ska kunna lära sej lite mer om givare allmänt.
AN
Fler än 500 inlägg
 
Blev medlem: 21:19:02, 09-12-2009
Ort: Värmland
Sverige

joakim72

#357 » 12:22:06, 04-05-2019
  • Överför markerat ord till lexikonet

varför inte använda interrupt? Då kan du mäta på uppåtgånede eller neråtgående flank och får ett mera exakt resultat.

2 personer gillar det här inlägget.
joakim72
Fler än 100 inlägg
 
Blev medlem: 14:14:17, 15-03-2011
Maskintyp: Ej angivet
Maskin: CNC

Towil

#358 » 13:20:38, 04-05-2019
  • Överför markerat ord till lexikonet

Varvtal brukar väl vara pulsgivare.

1 person gillar det här inlägget.
Användarvisningsbild
Towil
Moderator
Moderator
 
Blev medlem: 20:00:40, 18-08-2007
Ort: Nybro
Sverige

joakim72

#359 » 14:00:38, 04-05-2019
  • Överför markerat ord till lexikonet

Towil skrev:Varvtal brukar väl vara pulsgivare.


Ja, Men det är hur man läser in det i maskinen. Själv skulle jag använda flanktriggning i detta fallet för då kan man räkna över direkt till rpm, och detta bjuder arduino på via interrupt-ingången.

1 person gillar det här inlägget.
joakim72
Fler än 100 inlägg
 
Blev medlem: 14:14:17, 15-03-2011
Maskintyp: Ej angivet
Maskin: CNC

Towil

#360 » 17:25:38, 04-05-2019
  • Överför markerat ord till lexikonet

Jo, men det var inte dit svar jag menade, utan det ovan.

AN skrev:Hur fungerar varvtalsgivare i industrin, då ger väl ofta 4-20mA ut?

Det vi bukar pillar med är det närmast hårdvaran, så normalt inga 4-20 värden från pulsgivare. Om du nu inte gör en krets som ger detta som utvärde.

Är mera analoga givare som kan ge en 4-20mA utsignal. Men köper man bara färdiga givare anpassade för styr och regler kan man ju lika väl använda en PLC.
Det vi pillar med är ofta vägen inte målet det viktiga. Skall du ha en grej som måste funka vid tiden X så är oftast inte arduino vägen att gå.

1 person gillar det här inlägget.
Användarvisningsbild
Towil
Moderator
Moderator
 
Blev medlem: 20:00:40, 18-08-2007
Ort: Nybro
Sverige


Återgå till [Allmänt] El/elektronik

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 2 gäster



BA Trading AB

Trucking

Älmeboda Maskinservice

trailerbeg

OilQuick

Alftaprodukter

TK Traktordelar

Hammars verkstad AB

D&E Bearings AB

http://www.RESERVdelar24.SE

Bildelar24.com

Briggsparts

Klaravik

Beck Maskin

Crazyride

Ygsbostudios

Kilremslagret

Bra Verktyg

UniCarriers

Rotec

Lunna Teknik

https://www.AUTOdoc.SE

SSL Certificates