Pages: [1]   Go Down
Author Topic: Modifica motorino servo da 180 ad infinito con controllo delle rotazioni  (Read 866 times)
0 Members and 1 Guest are viewing this topic.
Senago - Milano
Offline Offline
God Member
*****
Karma: 3
Posts: 508
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti volevo condividere con tutti una cosa che ho fatto, magari ho fatto una boiata, o magari ho fatto qualcosa che potrebbe servire.
Per un progetto ho dovuto modificare un servo con rotazione di 180° a rotazione infinita per poter avvolgere un filo [guida di riferimento http://www.sentex.net/~mec1995/gadgets/servos/servomod.html].
Oltre a questo però avevo la necessità di controllare la quantità di filo avvolto e quindi ho smontato un mini-mouse usb non funzionante, mi aspettavo di trovare la rotella che passa attraverso un sensore ottico, invece c'era una sorta di trimmer simile a questo:

il componente è un rotatory encoder [http://www.arduino.cc/playground/Main/RotaryEncoders]
Ho fatto una cosa spartana collegando solo il ground ed una sola uscita invece che 2, in questo modo non ho il controllo del verso della rotazione (valore positivo o negativo), ma siccome sono io che piloto il servo non ne avevo bisogno, e poi per il progetto su cui lavoravo ho dovuto lesinare sui cavi.
Ho quindi usato il seguente codice (praticamente lo stesso di esempio ma usando solo il pin 2):

Code:
#define encoderPinA 2

volatile unsigned int encoderPos = 0;

void setup() {
  pinMode(encoderPinA, INPUT);
  digitalWrite(encoderPinA, HIGH);
 
  attachInterrupt(0, doEncoder, CHANGE);
  Serial.begin(9600);
}

void loop () {
 
}

void doEncoder(){
  if (digitalRead(encoderPinA) == HIGH) {
      encoderPos = encoderPos +1;
  }

  Serial.println (encoderPos, DEC);


}

La cosa bella è che sono riuscito a mettere il tutto dentro il servo, quindi a parte il filo in più che esce è paro paro ad un servo normale!
A seguire alcune foto (penose purtroppo, ma è stata una cosa fatta di fretta, infatti non ho nemmeno io il servo):

Modifica a rotazione infinita: http://www.lorenzoboasso.it/arduino/sermod1.jpg
Adattatore encoder-servo: http://www.lorenzoboasso.it/arduino/sermod2.jpg
Modifica completata: http://www.lorenzoboasso.it/arduino/sermod3.jpg
Servo collegato al circuito: http://www.lorenzoboasso.it/arduino/sermod4.jpg

spero sia di aiuto per qualcuno!
Logged

Pages: [1]   Go Up
Jump to: