Sida 2 av 3

Re: Styra motor m ljussensorer / encoder via Arduino kod

Postat: 2 januari 2018, 14:29:17
av fosfor
Visade sig att det var mitt Oscilloskop (som är av den billigaste sort) inte riktigt hängde med när det kom till att vara automatisk :bravo:
Jag var tvungen att trycka lite på knapparna för att se fyrkantsvågen.
Så här har vi dom :shock:
S1 ger en liten fyrkantsvåg.
S2 ger en avlång fyrkantsvåg.

Nästa fråga, kan jag få Arduinon att förstå dessa två signaler så att jag kan styra motorn på nåt smidigt sätt via dessa? :humm:

Re: Styra motor m ljussensorer / encoder via Arduino kod

Postat: 6 januari 2018, 10:23:35
av KLset
Hej fosfor, gör du några framsteg?

Re: Styra motor m ljussensorer / encoder via Arduino kod

Postat: 6 januari 2018, 10:37:34
av lond
Dessa länkar kanske kan vara till hjälp:

https://github.com/misan/dcservo
https://www.youmagine.com/designs/dc-mo ... l-software

Skaparen till koden finns även här på forumet: misan

/// Marcus

Re: Styra motor m ljussensorer / encoder via Arduino kod

Postat: 8 januari 2018, 10:40:34
av fosfor
Tjosan!

Sakta men osäkert :shock: Jag har nu lyckats koppla in den till Arduinon så att jag ska kunna läsa pulserna från
kanal 1 och 2 från motorn. Men tyvärr flimrar pulserna på displayen, och den läser dom inte korrekt. Den flimrar upp och ner och stannars oftast på noll.
Jag tror jag måste göra nåt slags finlir i koden. Några förslag?
Sitter och donar med det just nu. :humm:

Tack för länkarna! Ska kolla in dom strax också. :tumupp:

Re: Styra motor m ljussensorer / encoder via Arduino kod

Postat: 8 januari 2018, 12:46:59
av Icecap
Pulserna kommer väldigt snabbt och om du skriver ut antalet på displayen finns det inte en suck i världen att det hinns med.

Re: Styra motor m ljussensorer / encoder via Arduino kod

Postat: 8 januari 2018, 13:30:54
av fosfor
Det här är ett program som räknar pulserna, så det borde stå t.ex. 250 Pulses om det har passerat 250 åt ena hållet
och det borde stå Pulses -250 om den går åt andra hållet.

Jag har bekräftat att den kan räkna, genom att koppla in en annan sensor. Då flimrar inte värdena kvar på ett och samma.
Däremot blir det nåt annat fel, så de rusar åt fel håll. Men de registreras iaf på skärmen.
Problemet här (se foto) är med denna sensor så registrar den pulser fastän inget passerar sensorn :shock: :humm:
Hur tusan kan det bli så?

Re: Styra motor m ljussensorer / encoder via Arduino kod

Postat: 8 januari 2018, 13:36:45
av fosfor
Testar igen med motorn som har inbyggd encoder.
Jag får dessa värden på kanalerna ut med multimeter

Kabel 1 - Sensor 1/2 Långsamt handrullat switchar den mellan 1,3V - 2,5V Med motorn igång 1.8V
Kabel 3 - Sensor 2/2 Långsamt handrullat switchar den mellan 0,7V - 3,3V Med motorn igång 2V

Den verkar inte registrera Sensor 1 alls på Arduinon, och med Sensor 2 så flimrar den, eller stannar ibland.
Kan det vara att det behövs större skillnad mellan låg och högt på varje sensor?

När jag testade de andra sensorna (de svarta) som ligger mellan 0.2V och 5V så funkade det inte heller.
Men då bara sprutar signalerna åt andra hållet istället. Men räknaren stannar om jag blockerar sensorerna.

Jag har följt den här guiden och använder hans pulsräknarprogram.

Re: Styra motor m ljussensorer / encoder via Arduino kod

Postat: 8 januari 2018, 13:43:15
av fosfor
Nu verkar jag ha fått de svarta sensorklossarna att fungera.
De som växlar mellan 0.2V och 5V som signaler.

Jag testade att köra både jord och 5V från Arduinon istället för att köra det separat.
Och då verkar de registrera signalerna helt korrekt. Ska testa lite närmre.

Då borde det bara vara en programmeringsfråga att få Arduinon att förstå de annorlunda signalerna som kommer från
motorn med inbyggd rotaryencoder?
Den växlar signaler mellan 1.3V - 2.5V och 0.7V - 3.3V.
Vilket kanske då är lite för nära varandra för att Arduinons befintliga programmering ska förstå det?
Kanske till och med så att Arduinons ingångar inte kan läsa det eller? :doh:

Re: Styra motor m ljussensorer / encoder via Arduino kod

Postat: 8 januari 2018, 14:06:21
av Icecap
GND i de två system ska ALLTID vara den samma/ihopkopplat! Annars blir det ingen referens som kan användas.

Re: Styra motor m ljussensorer / encoder via Arduino kod

Postat: 8 januari 2018, 14:34:25
av hawkan
2.5V är för lågt för att registreras som "hög" på en digital ingång.

Re: Styra motor m ljussensorer / encoder via Arduino kod

Postat: 8 januari 2018, 14:40:06
av fosfor
Finns det något sätt jag kan göra så att den här 3.3V sensorn, motorn med inbyggd encoder.
Skickar under 1V och 5V till den digitala ingången?

Re: Styra motor m ljussensorer / encoder via Arduino kod

Postat: 8 januari 2018, 15:09:19
av Icecap
Ja. Det är så enkelt som att - för varje signal - ta en NPN-transistor och två motstånd.

Ena motståndet (4,7k - 10k) mellan 3,3V signalen och basen.
Emitter till GND.
Andra motståndet mellan kollektor och +5V.

Ta ut signal på kollektorn. Det är fasvänd men likaväl användbart.

Re: Styra motor m ljussensorer / encoder via Arduino kod

Postat: 8 januari 2018, 15:26:01
av fosfor
Ok strålande, skall testas, tack!

MEN det finns ingen risk att transistorn "slöar ner" signalen då?

Re: Styra motor m ljussensorer / encoder via Arduino kod

Postat: 8 januari 2018, 16:04:05
av Icecap
Njooo... vid ung. ett par MHz ska man fundera lite på motståndsvärden och kopplingens strökapacitanser men vid detta där det rör sig om området kring 10kHz är det knappast ett problem.

Man kan göra en emitterkopplat nivåomvandlare men den är inte helt enkel om man inte har bra koll på det hela (samma antal komponenter) och den lär följa med bra långt upp i frekvens.

Det definitivt långsammaste element i denna totala kopplingen är fotodioden i sensorn...

Re: Styra motor m ljussensorer / encoder via Arduino kod

Postat: 8 januari 2018, 16:31:37
av fosfor
Ser nu att ena signalen ligger mellan 0.7V och 3.3V

Men den problematiska signalen ligger mellan 1V och 2.5V
efter att jag satt på större motstånd, dvs fick ner lägsta Volt med 0.3V

Tror du att den signalen skulle fungera som en nolla kanske?