Preamplificador Valvular

Este circuito se realiza en base a la vieja y conocida válvula doble triodo 12AX7, la cual es muy utilizada en audio, ya sea instrumental u hogareño.
Como se trata de una válvula de baja potencia la usaremos como preamplificador, el circuito es muy básico ya que la idea era agregar esta etapa a un amplificador integrado de bajo ruido.
En el diagrama solo se observa un canal, pero dentro de la misma válvula se puede utilizar el otro canal sobrante copiando el circuito con los pines faltantes de la válvula.
Se eligió la configuración de 12V en su filamento porque en realidad es el transformador que tenia a mano., pero se pueden poner en paralelo y alimentar con 6,3V, ya verán en el diagrama que los dos filamentos están en serie con una toma central, eso nos permite configurarlo en 12V o en 6,3V.
 
Algunos datos técnicos de la válvula 12AX7:
 
Factor de Amplificación:  100 veces
Tensión del Ánodo:        250 V
Corriente del Ánodo:      1.2 mA
Tensión de Polarización:  -2 V
Impedancia del Ánodo:     62500 ohms
Tensión del filamento:    6.3 V






Switch


Es una estructura de control empleada dentro de las condiciones comunes como el famoso if. podría ser un reemplazo de los if anidados, por ejemplo si se requiere testear una variable la cual puede tomar múltiples valores, sera mas eficiente el uso del switch ya que emplear if anidados creara mayor cantidad de código.  
Se puede utilizar para testear una sola variable por ejemplo switch(variable) donde esta puede tomar valores numéricos los cuales seleccionaremos mediante case, por ejemplo si sabemos que dentro de variable podría venir el valor 64, o 128,  o 256, podemos utilizar case 64:, case 128: o case 256:, esto es para valores fijos. en nuestro ejemplo utilizamos intervalos abiertos, pero podrían ser abiertos, cerrados o ambos. esto nos sirve para tomar un delta.
notese que en la sintaxis se utiliza break; esto indica que ahí terminaran las operaciones dentro de la condición case.
A continuación se mostrara un ejemplo, el mismo encenderá los leds del puerto B gradualmente según el valor de entrada del adc.



#include <16F883.h>
#device adc=8
#FUSES NOWDT
#FUSES INTRC
#FUSES NOPUT
#FUSES NOMCLR
#FUSES NOPROTECT
#FUSES NOCPD
#FUSES NOBROWNOUT
#FUSES IESO
#FUSES FCMEN
#FUSES NOLVP
#FUSES NODEBUG
#FUSES NOWRT
#FUSES BORV40
#use delay(int=4000000)
void main()
{
   setup_adc_ports(sAN0|sAN1|VSS_VDD);
   setup_adc(ADC_CLOCK_DIV_2);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_ccp1(CCP_OFF);
   setup_comparator(NC_NC_NC_NC);
   int16 salida;
   while(true){
      set_adc_channel(0);
      delay_us(10);
      salida = read_adc();
      switch(true){
      case (salida >  0  && salida < 32):
         output_b(0b00000001);
         break;
      case (salida >  32 && salida < 64):
         output_b(0b00000011);
         break;
      case (salida >  64 && salida < 96):
         output_b(0b00000111);
         break;
      case (salida >  96 && salida < 128):
         output_b(0b00001111);
         break;
      case (salida > 128 && salida < 160):
         output_b(0b00011111);
         break;
      case (salida > 160 && salida < 192):
         output_b(0b00111111);
         break;
      case (salida > 192 && salida < 224):
         output_b(0b01111111);
         break;
      case (salida > 224 && salida < 256):
         output_b(0b11111111);
         break;        
      }  
   }
}