martes, 27 de febrero de 2024

Fracciones de vuelta en un mecanismo divisor. Tallado de engranajes rectos. División indirecta y división diferencial

Una fresadora universal dispone de un cabezal giratorio para realizar divisiones equiespaciadas de gran precisión, que, por ejemplo, sirve para fresar los dientes de los engranajes. Dicho cabezal puede ser simple (cabezal divisor simple), para realizar divisiones sencillas, que denominamos indirectas, o bien de tipo diferencial (cabezal divisor universal), el cual nos permitirá resolver la mayor parte de los problemas que se pueden presentar y para los que no bastase el procedimiento de la división indirecta, que es el primero que vamos a exponer.

Ejemplo de división indirecta
Ejemplo de una fresa módulo para tallar engranajes

Está formado por un mecanismo giratorio, que consta de un conjunto de tres platos intercambiables, cada uno dividido en varios círculos, con el número de agujeritos que se muestra en la tabla de abajo. Para contar el número de agujeros que debemos tener en cuenta en las divisiones, el cabezal divisor dispone de una alidada giratoria cuya abertura (con el número de agujeros seleccionados) se puede fijar. Por otra parte, el husillo del sistema giratorio es tal que mediante, pongamos que con $40$ vueltas enteras de la manivela la plataforma de sujección dé $1$ vuelta entera. A dicho número de vueltas de la manivela que son necesarias para dar exactamente una vuelta de la plataforma de sujección la denominamos constante $k$ del plato deivisor y, en general, no tiene que ser necesariamente igual a $40$.

División indirecta: Queremos fresar los dientes de un engranaje recto que consta de $Z=26$ dientes, siendo pues $k=40$. Para pasar de un diente a otro, ¿cuál es el número de vueltas enteras y la fracción de vuelta (en el plato apropiado), $d$, que deberemos dar con la manivela del mecanismo divisor?.

[Créditos de esta imagen]

           número de agujeros equiespaciados
plato A        15  16  17  18  19  20
plato B        21  23  27  29  31  33
plato C        37  39  41  43  47  49

De acuerdo con lo explicado en el enunciado, y en buena lógica, tenemos que calcular $d_Z:=\dfrac{40}{Z}$. Entonces, $d_{26}=\dfrac{40}{26}=1+\dfrac{14}{26}=1+\dfrac{7}{13}=1+\dfrac{21}{39}$. Para ocuparnos de la fracción de vuelta podemos colocar el plato $C$, de tal manera que, daremos $1$ vuelta completa al husillo más una fracción de vuelta que corresponde a desplazar $21$ agujeros del círculo que consta de un total de $39$ agujeritos.

Observación importante: Notemos que de querer hacer las divisiones con un simple indicador goniométrico, incluso con el correspondiente nonio, la precisión que éste puede proporcionar es insuficiente, en efecto, el ángulo central entre diente y diente para un engranaje como el supuesto, de $26$ dientes, es igual a $\dfrac{360^\circ}{26}=13^\circ\,50'\,46,15^{''}$: el error que se iría acumulando entre división y división sería excesivo, y el tallaje saldría mal.

En la siguiente imagen se muestra la máquina herramienta fresadora universal:

[Créditos de la imagen: Tecnomaquinaria]

División diferencial: Para fresar $Z$ dientes, en el caso de no encontrar una combinación válida entre el conjunto de platos con sus correspondientes círculos de agujeros, deberíamos recurrir a añadir un tren de engranajes para realizar lo que se conoce como división diferencial. El plato divisor que se utiliza para ello se denomina plato divisor universal, cuya diferencia con el plato divisor sencillo es el añadido de un tren de engranajes entre los ejes paralelos de la manivela y el de la plataforma de giro de la pieza a mecanizar. La siguiente figura lo muestra:

Créditos de la imagen: Monografías

Los pasos a seguir son los siguientes:
  1. Escogemos un número de dientes que se aproxime lo más posible al número de dientes que queremos fresar y con el que sea posible realizar la división indirecta con alguno de los platos intercambiables que tenemos, tal y como se ha visto en el ejemplo de arriba; dicho número de dientes $Z'$ puede ser por defecto o por exceso. Esto nos dará como resultad $d_{Z'}$, que corregiremos añadiendo el tren de engranajes de la lira del plato divisor universal para conectar el eje de la manivela con el eje de la plataforma, de manera que al accionar la manivela se produzca un giro corrector simultáneo.
  2. Calculemos por tanto la correspondiente corrección $d_{dif}:=k\cdot \dfrac{Z'-Z}{Z}$
  3. Buscamos una las ruedas de la lira que permitan montar el tren de engranjes necesario para que $d_{dif}$ sea igual a $\dfrac{R_{i}\times R_{d}}{R'_{i}\times R'_{d}}$, donde se indica con prima las ruedas conducidas, y sin notación prima las ruedas conductoras, y donde los subíndices $i$ y $d$ indican las ruedas que van montadas alineadas a la izquierda y, respectivamente, a la derecha, tal como se muestra en el siguiente esquema del montaje de la lira

Usualmente, se dispone de de un conjunto de ruedas dentadas para esa finalidad (para montar la correspondiente lira), con números de dientes: $\{24,24,28,32,40,48,56,64,72,86,100\}$, con los cuales se debe conectar los dos ejes paralelos de que consta el cabezal divisor con un grupo de, habitualmente, $4$ ruedas, $R_i,R_d,R'_i,R'_d$, más una posible quinta rueda $R''$ intercalada y que gira libremente entre $R_d$ y $R'_d$, al objeto de cambiar el sentido de giro de un eje con respecto a otro, si fuese necesario; el eje que mueve la manivela es el eje conductor, y el eje que mueve la plataforma de sujección de la pieza para el mecanizado de la misma es el eje conducido, de tal manera que se configure $\dfrac{R_{i}\times R_{d}}{R'_{i}\times R'_{d}}$:

Ejemplo de división diferencial: Queremos fresar un engranaje de $Z=53$ dientes, con un plato divisor universal de $k=40$, con el conjunto de platos intercambiables del ejemplo anterior y el conjunto de ruedas que hemos comentado para montar la lira.

Sigamos los pasos indicados:

  1. Calculamos $d_{53}=\dfrac{40}{53}$ y nos damos cuenta de que no encontramos una combinación válidas con los platos intercambiables, así que tomamos $Z'=50$ para la cual sí encontramos dicha combinación: $d_{50}=\dfrac{40}{50}=\dfrac{12}{15}$, esto es, deberemos dar giros de $12$ agujeros tomando el círculo de $15$ agujeros en total del plato A.
  2. Ahora calculamos la corrección diferencial: $d_{dif}=40\cdot \dfrac{50-53}{50}=-\dfrac{12}{5}$
  3. Finalmente, buscamos una combinación equivalente entre las ruedas disponibles para montar la lira, que permita aplicar la corrección diferencial: $d_{dif}=-\dfrac{12}{5}=-\dfrac{4 \times 3}{5 \times 1}=-\dfrac{32 \times 72}{40 \times 24}$, en consecuencia vemos que $R_i=32$, $R'_i=40$, $R_d=72$ y $R'_d=24$. Además al ser $d_{dif}\lt 0$, necesitaremos una rueda más, que girando libremente, iguale el sentido de giro entre $R_2$ y $R'_2$; a esta rueda, que denotamos por $R''$, le asignamos un número de dientes arbitrario (entre el conjunto disponible), pues ese parámetro no afecta en absoluto el resultado, por ejemplo podemos escoger la de $28$ dientes.

$\diamond$

sábado, 24 de febrero de 2024

Encendido de un LED al accionar un pulsador (con resistencia pull-down o normalmente abierto)

/* Encendido de un LED al accionar un pulsador
Utilizo Aduino UNO y el 'shield' Basic I/O
El pulsador 4, en el BasicIO, está conectado
con una resistencia pull-down (normalmente abierto), de manera que
al pulsarlo (se cierra el circuito), el valor de estado del LED se pone
en 1 (HIGH), se cierra el circuito y se enciende 
el LED amarillo; y, al sotarlo (se abre el circuito), 
el valor del estado del LED se pone en 0 (LOW) 
y se apaga el LED. 

Joan Aranès Clua
24/02/2024
*/                  

//Declaración de variables y asignación de valores GPIO
//--------------------------------------------------------------------
//Variable para representar el estado del pulsador
// 1: cierra el circuito; 0: abre el circuito
int Valor;                    

int Pulsador = 4;                //Entrada(digital) del pulsador: D4
int Led_amarillo = 10;           //Salida (digital) del led blanco: D10
//--------------------------------------------------------------------
                    
//Configuración del 'sketch'      
//--------------------------------------------------------------------
void setup() 
{
  pinMode(Pulsador, INPUT);      //La patilla del pulsador se configura como entrada
  pinMode(Led_amarillo, OUTPUT);   //La patilla del led se configura como salida
}
//--------------------------------------------------------------------

//Acciones del 'sketch'
//--------------------------------------------------------------------
void loop() 
{
  Valor=digitalRead(Pulsador);       //Lee el estado, según se pulse 
                                     //o se suelte el pulsador
  digitalWrite(Led_amarillo,Valor);  //Pone el LED en el estado actual
}
Shield Basic I/O montado sobre un Arduino UNO

$\diamond$

Encendido y apagado de los leds rojo, amarillo, verde y blanco del 'shield' Basic I/O

//------------------------------------------------------------------
// Encendido y apagado de los leds rojo, amarillo, verde y blanco 
// del shield Basic I/O 
// Ulitilizo la placa Arduino UNO
// Se encienden y apagan secuencialmente, en el orden:
// rojo -> amarillo -> verde -> blanco
// Joan Aranès Clua
// 22/02/2024
//------------------------------------------------------------------
int led_rojo=11; 
int led_amarillo=10; 
int led_verde=9; 
int led_blanco=6; 
int retardo=100; //valor del retardo (delay) en milisegundos

void setup() {
  pinMode(led_rojo,OUTPUT);
  pinMode(led_amarillo,OUTPUT);
  pinMode(led_verde,OUTPUT);
  pinMode(led_blanco,OUTPUT);

}

void loop() {
  digitalWrite(led_rojo,HIGH);
  delay(retardo);  // put your main code here, to run repeatedly:
  digitalWrite(led_rojo,LOW);
  delay(retardo);
  digitalWrite(led_amarillo,HIGH);
  delay(retardo);  // put your main code here, to run repeatedly:
  digitalWrite(led_amarillo,LOW);
  delay(retardo);
  digitalWrite(led_verde,HIGH);
  delay(retardo);  // put your main code here, to run repeatedly:
  digitalWrite(led_verde,LOW);
  delay(retardo);
  digitalWrite(led_blanco,HIGH);
  delay(retardo);  // put your main code here, to run repeatedly:
  digitalWrite(led_blanco,LOW);
  delay(retardo);
}

Uso del puerto serie y del teclado del ordenador para cambiar el valor del temporizador de retardo en el encendido y apagado de un LED

//------------------------------------------------------------------
// Uso del puerto serie y del teclado del ordenador
// para cambiar el valor del temporizador de retardo 
// ---
// Utilizo la placa Arduino UNO y el shield Basic I/O
// --- 
// Se encienden y apaga el led amarillo
// con duración controlable del parpadeo 
// entre lenta y rápida
// la cual se puede cambiar durante la ejecución del sketchr
// ---
// Joan Aranès Clua
// 23/02/2024
//------------------------------------------------------------------

int led_amarillo=10;//Éste es el LED que utilizaré para hacer la práctica 
int retardo=0;//inicialización a cero del valor del retardo
char caracter_de_control; 

void setup() {
  pinMode(led_amarillo,OUTPUT);
  Serial.begin(9600);  
}

void loop() {
  Serial.println("El led amarillo está encendido"); 
  if (Serial.available()>0){
    caracter_de_control=Serial.read(); //lectura del carácter de control
  }
 if (caracter_de_control=='r'){
   retardo=200; // intervalo de tiempo entre el encendido y el apagado de 0,2 s
   //información de salida por el puerto serie hacia el ordenador:
   Serial.print("parpadeo rápido:"); 
   Serial.println(retardo);
 }
if (caracter_de_control=='l'){
   retardo=1000; // intervalo de tiempo entre el encendido y el apagado de 1 s
   //información de salida por el puerto serie hacia el ordenador:
   Serial.print("parpadeo lento:"); 
   Serial.println(retardo);
 }
  //Encendido 
  digitalWrite(led_amarillo,HIGH);
  delay(retardo);
  //Apagado  
  digitalWrite(led_amarillo,LOW);
  delay(retardo);  
 }

¿Con 350 W basta?

Mi pequeño taladro de columna que tengo puesto encima de un banco