IN-33上的VU计

首先,是时候用新的放大器代替我的放大器了。我不能说升级后Vega的表现不佳,但是有最后期限。您可能需要根据限制法规对它进行完全分类,或者...制作一个新的。但这是一首单独的歌。同时,我想向新放大器添加一个信号指示器。

一切都会好起来的,但是LED不喜欢它。不,它们是现代,简单,漂亮的……而且非常无聊。我想要点温暖的灯离子。我一直对离子灯有缺点。
因此,在别墅中,ILT6-30M灯的灯块被打开了。但是我很不高兴-原来有人有时间在我之前燃烧它。
现在,在考虑如何更换控制单元时,我偶然发现了IN-33灯。

图片

这一切都发生了...

找不到灯。当在圣彼得堡的一家商店购物时,他们惊讶地问我-我是否知道我要买什么?
但是购买是一半的麻烦。找不到原始控制方案。更有趣的是-灯需要130伏和250伏的恒定功率!
最可悲的是,关于它的信息很少。在SLVvik的RadioKot上有一篇文章,在该文章上做了一个项目并列出了该方案。在一篇德国文章中,有人在上面做了一个项目,并列出了该方案的工作算法和源代码。但是灯有8针,而我的是10针。是的,针脚不适合!有一本美国类似灯的手册。但也有指示8针!

一个小题外话。
灯有200段!每个人都可以单独点亮。结论只有10个。“他们是如何成功的?!”
这是最有趣的事情,例如,我什至没有听到:
灯是十进制计数器

控制思想很简单:我们“点亮”位于灯泡开始处的“种子”部分。然后,我们将相邻元素的第一个阴极接地,然后流从种子元素“跳转”到新的元素。这时,“熄灭”种子,现在第二部分着火了。现在我们将第二个阴极接地,水流跳到它,第三个部分点亮。我们熄灭第一个阴极。我们对第三个阴极也做同样的事情。在他之后,第一,第二,第三。事实证明,这是一种“运行中”的指示灯。而且我们将他带到了我们需要的水平。当他“达到”我们需要的水平时,我们关闭阳极并再次重复所有操作。

根据指示器上的美国手册得出:
图片

所以。一切似乎都与理论相符。该指标掌握在我们手中,该练习了。

首先,您需要获得130和250伏特的电压。有个疯狂的主意是要“从出口”。我拿了一个二极管电桥,在电容器上放了一个电容器,从电流220中得到了310的振幅,将其通过齐纳二极管降下,然后……至少我抓住了它,不小心抓住了设备的接地和加热电池。痛苦的。高度。

因此,在处理没有白炽灯丝的离子灯时要格外小心!高电压不是开玩笑。拆焊后的电路板必须用助焊剂彻底清洗。如果您没有足够的电子技术经验,最好不要组装此设备!

总的来说,我不得不放弃从网点进餐的想法。收集脉冲增强器很懒。但是随后的想法便是从LCD显示器的背光中采用现成的通用逆变器。它的价格为每块150卢布,很容易将变压器拆解并倒回我们需要的电压。对于我的,对于130V绕组,结果为200匝,对于250伏特,结果为240匝。

仍然会欺骗变频器的安全系统,否则3秒钟后它将关闭。为此,对于DF6109A芯片,必须将电阻器从第13脚接地到12K。

然后很简单:一个二极管,一个电容器,现在我们已经准备好130和250V。的确,逆变器的电源电压必须提高到15V,否则绕组必须更多地缠绕。如果您用较粗的匝数缠绕较细的电线,则也可以从12 V供电,但我没有较细的电线。

所以-一切准备就绪。我们制作一块板,在其上安装一个逆变器,然后根据方案焊接按键。
图片

方案(最小值,重做版本。原始信息来自SLvik):
图片

灯管引出线
图片

1第一阳极
2第一组的 阴极
3第二组的
阴极4复位的第一阴极
5 复位的第二阴极
6第一辅助阳极
7第二辅助阳极
8辅助阴极
9第三组阴极
第二组

固件的10个阳极
是时候记住arduino了。似乎在图中它并没有特别发光。但它是。Aki是地鼠,
事实是我很懒。对于玩具项目,通过UART进行草绘并填充草图要比用干净的C沐浴并享受ISP的乐趣要快。是的,对于初学者来说更方便。

这个想法是这样的。我们采用arduino duemilanove,绘制草图,挑选芯片,将其焊接到板上,仅此而已。作为交换,我们以150卢布的价格在ebee上购买了一个新的卢布。方便。



#define pA1 9
#define pA2 10 // -  
#define pK1 8  // - ! 
#define pK2 7
#define pK3 6
#define pKR 5

#define SumCounterMax 13   // .   -   .
#define InputMultiplier 8  //  .    -   .

int Avg1[SumCounterMax];
int Avg2[SumCounterMax];
byte nAvg = 0;

const byte Log_Conv[256] = {0,2,4,5,7,9,10,12,13,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,32,33,33,34,35,36,37,37,38,39,40,40,41,42,42,43,44,44,45,45,46,47,47,48,48,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,57,58,58,59,59,60,60,60,61,61,62,62,63,63,63,64,64,64,65,65,66,66,66,67,67,67,68,68,68,69,69,69,70,70,70,71,71,72,73,73,73,74,74,74,74,75,75,75,76,76,76,76,77,77,77,78,78,78,78,79,79,79,79,80,81,81,82,82,82,82,83,83,83,83,84,84,84,84,84,85,85,86,86,87,87,87,87,88,88,88,88,88,89,89,89,89,90,90,90,90,90,91,91,91,91,92,93,93,93,93,93,94,94,94,94,94,95,95,95,95,95,96,96,96,96,96,96,97,97,97,97,97,98,98,98,98,98,98,99,99,99,100,100,100,101,101,101,101,101,101,102,102,102,102,102,102,103,103,103,103,103,103,104,104,104,104,104,104,104,105,105,105,105,105,105,106,106,106,106,106,106,106,107,107,107,107,107,107,107};

void setup()
{
	pinMode(pA1, OUTPUT);
	pinMode(pA2, OUTPUT);
	pinMode(pK1, OUTPUT);
	pinMode(pK2, OUTPUT);
	pinMode(pK3, OUTPUT);
	pinMode(pKR, OUTPUT);

	digitalWrite(pA1, LOW);
	digitalWrite(pA2, LOW);
	digitalWrite(pK1, LOW);
	digitalWrite(pK2, LOW);
	digitalWrite(pK3, LOW);
	digitalWrite(pA1, LOW);
	digitalWrite(pA2, LOW);
	digitalWrite(pKR, HIGH);

	delay(100);
	analogReference(INTERNAL);
}

void loop()
{
	//reset
	digitalWrite(pA1, LOW);
	digitalWrite(pA2, LOW);
	digitalWrite(pK1, LOW);
	digitalWrite(pK2, LOW);
	digitalWrite(pK3, LOW);
	digitalWrite(pA1, LOW);
	digitalWrite(pA2, LOW);
	
	// "" .
	digitalWrite(pKR, HIGH);
	digitalWrite(pA1, HIGH);
	digitalWrite(pA2, HIGH);

	//  . *      =)
	nAvg ++;
	if (nAvg == SumCounterMax)
	{
		nAvg = 0;
	}
	Avg1[nAvg] = min(analogRead(4) * InputMultiplier, 255);
	Avg2[nAvg] = min(analogRead(5) * InputMultiplier, 255);
	unsigned long sn1 = 0;
	unsigned long sn2 = 0;
	for(byte i = 0; i < SumCounterMax; i++)
	{
		sn1 += Avg1[i];
		sn2 += Avg2[i];
	}
	int n1 = Log_Conv[sn1 / SumCounterMax];
	int n2 = Log_Conv[sn2 / SumCounterMax];
	
	// - .
	for (int i = 0; i < max(max(n1, n2), 60) ; i++)
	{
		if ((i + 0) % 3 == 0)
		{
			digitalWrite(pK1, HIGH);
			digitalWrite(pKR, LOW);
			digitalWrite(pK3, LOW);
		}
		if ((i + 2) % 3 == 0)
		{
			digitalWrite(pK2, HIGH);
			digitalWrite(pK1, LOW);
		}
		if ((i + 1) % 3 == 0)
		{
			digitalWrite(pK3, HIGH);
			digitalWrite(pK2, LOW);
		}

		if (i > n1)
		{
			digitalWrite(pA1, LOW);
		}

		if (i > n2)
		{
			digitalWrite(pA2, LOW);
		}
		delayMicroseconds(90);
	}
}





好吧,最后:

图片

在工人的要求下,视频:



PS. , :
1) — , ? .
2) — . / ?
. .

Source: https://habr.com/ru/post/zh-CN385391/


All Articles