UNIDAD 2.- SENSORES.TIPOS DE SENSORES Y SU CLASIFICAIÓN
Arduino: Control de tubo Arduino nixie
1. CONTROL DE TUBO ARDUINO NIXIE
Controla un tubo nixie con Arduino y BJT simples. En este tutorial, demostraré cómo usar
un tubo de la era soviética IN-16 (ИН-16), pero cualquier otro tubo con características
similares funcionará bien: IN-14 (ИН-14) e IN-3 (ИН-3) ) por ejemplo. Antes de comenzar,
debe familiarizarse con el tubo Nixie. Cada dígito del tubo tiene un alfiler final en la parte
inferior. Si alguno de estos cables está conectado a tierra, el dígito brillará. Por supuesto,
eso se proporciona al ánodo del tubo con ~ 170 a 180 voltios. Este "voltaje de encendido"
difiere para cada tubo, pero generalmente se encuentra en este rango.
Parte 1: Empezando con un tubo Nixie
Puede ubicar fácilmente el ánodo del tubo, ya que generalmente se encuentra en la parte
posterior y en la parte inferior del tubo, generalmente está marcado con una flecha. Debe
verse un refuerzo de estructura blanco ancho. Esto lo hace muy distinguible de los otros
pines.
ADVERTENCIA: Nunca conecte su tubo entre una fuente de alto voltaje y el suelo. 170 V +
es un voltaje muy alto. Siempre conecte una resistencia limitadora de corriente entre el
ánodo y su fuente de energía. 20k es un buen valor para el IN-16. En cualquier caso,
¡proceda con precaución!
2. Parte 2 - Fuente de energía
Para alto voltaje usaré un módulo que podría crear 170V y usted podría comprarlo en eBay.
Toma de 5 a 15 V como entrada y genera los 170 V necesarios para los tubos. Puedes ver
cómo hacer uno y el esquema en este otro tutorial aquí. De todos modos, siéntase libre de
usar un módulo de eBay barato, pero si ese es el caso, le recomiendo usar 12V como
entrada. Las fuentes de alimentación nixie de baja calidad pueden afirmar que funcionan
directamente con 5 V, pero la realidad es que a menudo la fuente de alimentación se lleva
al límite y probablemente no dure mucho. Para un solo tubo, un conector USB sólido (5V /
500mA) es lo suficientemente seguro. Si planea conectar otros tubos, debe usar una fuente
de alimentación de banco y obtenga una corriente más alta, o usar algo más robusto (5V /
2A por ejemplo).
Parte 3.1 - Los transistores
Los transistores utilizados en este tutorial deben tener un Vce (emisor de colector de voltaje)
por encima de la marca de 170 V para estar seguros. En la práctica, los transistores de
300V son extremadamente comunes y por eso los usaremos. Numerosas empresas de
semiconductores los producen y se pueden encontrar con varios nombres. Los nombres
más comunes son MPSA42 y KSP42. También existen copias chinas baratas ya que el
diseño de este transistor es tan ubicuo.
3. Parte 3.2 - Transistores BJT
Solo tenga cuidado con el pinout; dependiendo de si el transistor está frente a usted o no.
Para usar estos transistores, simplemente conectamos a tierra el emisor y conectamos el
colector a un cable de dígitos del tubo (cátodo). El Arduino luego controla la base. Si el
transistorestá encendido, efectivamente conectamos atierra el cátodo; que a su vez ilumina
el dígito seleccionado. ¡Es tan simple como eso!
4. Parte 4.1 - Cableadode todo junto y esquemas
Se necesita mucho cableado para que esto funcione, ya que tenemos muchas conexiones
para cada transistor. Puntos clave:
- No olvide la resistencia de 15 a 20k entre el alto voltaje y el ánodo del tubo.
- Conecte el pin 2 de Arduino al dígito 0 del tubo, el pin 3 de Arduino al dígito 1 del tubo,
etc., hasta el pin 11 de Arduino que coincida con el dígito 9 del tubo.
- Si usa 5V, conecte la fuente de alimentación a "5V" en el Arduino
- Si usa 12V, conecte la fuente de alimentación a "Vin" en el Arduino
Parte 4.2 - Conexiones en protoboard
5. Parte 5 - CódigoArduino
El siguiente código es un contador simple de 0 a 9. En 0, activamos el pin 2 y desactivamos
todos los demás pines. En 1, activamos el pin 3 y apagamos todos los demás pines, etc.,
etc.
int nixie_pins[10]; //Array holding all our pins
//function that translates a 0-9 digit into which pin to turn on/off
void displayDigit(int digit){
for(int i=0; i < 10; i++){
if(i == digit){
digitalWrite(nixie_pins[i], HIGH);
}
else{
digitalWrite(nixie_pins[i], LOW);
}
}
}
void setup(){
//Define all our pins as output and add them to array
//This could be dramatically shortened with a for loop,
//but this verbosity exposes in a simpler way what we
//are achieving.
pinMode(2, OUTPUT); nixie_pins[0] = 2;
pinMode(3, OUTPUT); nixie_pins[1] = 3;
pinMode(4, OUTPUT); nixie_pins[2] = 4;
pinMode(5, OUTPUT); nixie_pins[3] = 5;
pinMode(6, OUTPUT); nixie_pins[4] = 6;
pinMode(7, OUTPUT); nixie_pins[5] = 7;
pinMode(8, OUTPUT); nixie_pins[6] = 8;
pinMode(9, OUTPUT); nixie_pins[7] = 9;
6. pinMode(10, OUTPUT); nixie_pins[8] = 10;
pinMode(11, OUTPUT); nixie_pins[9] = 11;
}
void loop(){
//Count from 0 to 9
for(int i=0; i < 10; i++){
displayDigit(i);
delay(500);
}
}
Parte 6 - Conclusión
¡Eso es todolo que hay que hacer para controlarun tubo! Por supuesto,dadoque necesitamos10
IO para un solotubo,rápidamente se vuelvepocopráctico.Estaes la razónpor la que se inventóel
decodificador 74141 BCD: reduce los pines necesariosde 10 a 4. Sin embargo, puede hacerlo aún
mejor: al usar 74595 bit shifters, solo necesita una conexión SPI de 3 pines para controlar tantos
pinescomonecesite. Este principio se ha aplicado en el diseño de mi controlador nixie en serie.