15/11/17 11:46
Thejuster
Salve ragazzi, dopo un pò di lavoraccio effettuato su quel macchinario.
Ho trovato da un amico questo encoder.
L'ho preso perché me lo ha regalato, ai fronte di 300€ del suo costo originale.
distrelec.it/it/trasduttore-di-velocita-angolare-24-vdc-200-omron-industrial-automation-e6b2-cwz6c-200p-2m/p/…
E' un encoder ad uso industriale quindi andrà benissimo per quello che sto facendo.
s17.postimg.org/qxy1lcq1b/…
s17.postimg.org/5csyxab5r/…
s17.postimg.org/d5jmppju7/…
In una delle foto c'è un sensore di prossimità.
Credevo che andava bene, ma invece no.
Perché la misurazione che mi serve e a decimi di millimetro e non a centimetri.
il sensore ti legge bene i centimetri ma non i millimetri quindi l'ho scartato.
C'è un solo problema o dubbio.
Prima di iniziare con l'installazione
e la riprogrammazione di tutto il progetto, non vorrei andare a casaccio
Questo encoder ha 6 cavi.
Non sò perché ne ha così tanti, ma andiamo avanti.
sempre su quel sito, ho trovato questo schema
distrelec.it/Web/Downloads/_t/ds/…
Da quel che ho letto, correggetemi se sbaglio.
Dovrebbe collegarsi in questo modo
Color Terminal
Brown Power supply
(+Vcc)
Black Output phase
A
White Output phase
B
Orange Output phase
Z
Blue 0 V (common)
Quindi Marrone e Blu per la corrente
A e B Sarebbe il passo che legge se non erro.
Fatto questo ho trovato questo esempio in rete
andrà bene o i valori vengono letti diversamente?
Ho trovato da un amico questo encoder.
L'ho preso perché me lo ha regalato, ai fronte di 300€ del suo costo originale.
distrelec.it/it/trasduttore-di-velocita-angolare-24-vdc-200-omron-industrial-automation-e6b2-cwz6c-200p-2m/p/…
E' un encoder ad uso industriale quindi andrà benissimo per quello che sto facendo.
s17.postimg.org/qxy1lcq1b/…
s17.postimg.org/5csyxab5r/…
s17.postimg.org/d5jmppju7/…
In una delle foto c'è un sensore di prossimità.
Credevo che andava bene, ma invece no.
Perché la misurazione che mi serve e a decimi di millimetro e non a centimetri.
il sensore ti legge bene i centimetri ma non i millimetri quindi l'ho scartato.
C'è un solo problema o dubbio.
Prima di iniziare con l'installazione
e la riprogrammazione di tutto il progetto, non vorrei andare a casaccio
Questo encoder ha 6 cavi.
Non sò perché ne ha così tanti, ma andiamo avanti.
sempre su quel sito, ho trovato questo schema
distrelec.it/Web/Downloads/_t/ds/…
Da quel che ho letto, correggetemi se sbaglio.
Dovrebbe collegarsi in questo modo
Color Terminal
Brown Power supply
(+Vcc)
Black Output phase
A
White Output phase
B
Orange Output phase
Z
Blue 0 V (common)
Quindi Marrone e Blu per la corrente
A e B Sarebbe il passo che legge se non erro.
Fatto questo ho trovato questo esempio in rete
andrà bene o i valori vengono letti diversamente?
int encoderPin1 = 2; int encoderPin2 = 3; int ledPin1 = 5; // PWM volatile int lastEncoded = 0; volatile long encoderValue = 0; long lastencoderValue = 0; int lastMSB = 0; int lastLSB = 0; void setup() { Serial.begin (9600); pinMode(encoderPin1, INPUT); pinMode(encoderPin2, INPUT); pinMode(ledPin1, OUTPUT); digitalWrite(encoderPin1, HIGH); //turn pullup resistor on digitalWrite(encoderPin2, HIGH); //turn pullup resistor on analogWrite (ledPin1,LOW); attachInterrupt(0, updateEncoder, CHANGE); attachInterrupt(1, updateEncoder, CHANGE); } void loop(){ Serial.println(encoderValue); if ( encoderValue > 255 ) { encoderValue = 255; } if ( encoderValue < 0 ) { encoderValue = 0; } analogWrite(ledPin1,encoderValue); } void updateEncoder(){ int MSB = digitalRead(encoderPin1); //MSB = most significant bit int LSB = digitalRead(encoderPin2); //LSB = least significant bit int encoded = (MSB << 1) |LSB; //converting the 2 pin value to single number int sum = (lastEncoded << 2) | encoded; //adding it to the previous encoded value if(sum == 0b1101 || sum == 0b0100 || sum == 0b0010 || sum == 0b1011) encoderValue ++; if(sum == 0b1110 || sum == 0b0111 || sum == 0b0001 || sum == 0b1000) encoderValue --; lastEncoded = encoded; //store this value for next time }
mire.forumfree.it/ - Mire Engine
C# UI Designer
C# UI Designer