Dla pamięci:
Jest to wtyczka taka jak ta: https://www.ebay.com/itm/233182744320
strona prywatna
Zdemontowany prawdopodobnie z jakiegoś telewizora dla p.cz.
Tak się prezentuje filtr po otwarciu:
Tutaj zdjęcia struktury w powiększeniu:
A tutaj pomiar na analizatorze:
Jak widać, jest to filtr pasmowo-przepustowy o dosyć wysokim tłumieniu i paśmie ok. 33-38,6 MHz. Ciekawe, czy stąd wynika jego nazwa?
Autopsja syrenki alarmowej.
Zasilanie: 12V DC. Syrenka wydaje zmodulowany ton. Goneracją głownego tonu zajmuje się VCO z układu scalonego 4046, a modulacja powstaje na wzmacniaczu operacyjnym LM358 pracującym w roli generatora przebiegu zbliżonego do trójkątnego – zgrubnie scałkowany przebieg prostokątny o niskiej częstotliwości.
Na wyjściu VCO anajduje się tranzystor NPN, który wysterowuje transformator o przekładni ok. 3,66:1. Indukcyjności zwojów to odpowiednio 107mH i 8mH, mierzone dla 1KHz. Transformator podwyższa napięcie, lub jak kto woli dopasowuje impedancję przetwornika piezoakustycznego.
Transformator w syrence zalany jest w obudowie czymś w rodzaju masy epoksydowej, przy wyjmowaniu się uszkodził, ale udało mi się go naprawić, po czym zagrzałem go w rurce termokurczliwej z klejem. Transformator ma 3 wyprowadzenia, jedno z nich (środkowe) jest wspólne dla obu uzwojeń. Z konstrukcyjnego punktu widzenia jest to więc cewka z odczepem.
Z ciekawości podpiąłem sam przetwornik piezoakustyczny pod tester rezonatorów kwarcowych:
Uzyskałem oscylację na częstotliwości dużo wyższej, niż się spodziewałem, bo ok. 112MHz:
Ciekawe.
Testowi zostały poddane:
Złączki obciążyłem prądem 3A z zasilacza warsztatowego (w trybie regulacji prądu). Na przewodzie naciąłem izolację, aby móc dostać się do żyły. Użyty przewód to MXC1000HF 1,00m2.
Uzyskane wyniki z pomiaru miliwoltomierzem:
Co daje oporności odpowiednio:
W zasadzie pierwszy program GUI napisany w Javie. Prymitywny kalkulator.

Pobierz [calc.zip]
Poniższy algorytm oblicza pierwiastek kwadratowy metodą babilońską. Metoda polega na:
1. Zgadnięciu jakiejś liczby, im bliżej prawdziwej wartości pierwiastka, tym lepiej; W poniższym przykładzie brana jest liczba dwukrotnie mniejsza od pierwiastkowanej;
2. Obliczeniu wartości dzielenia pierwiastkowana/”strzał”;
3. Wyznaczeniu średniej arytmetycznej z tych liczb i użycie jej jako kolejnego „strzału”;
4. Powtarzaniu pkt. 2-3; Rozstrzał pomiędzy tymi liczbami z każdą iteracją kurczy się, a średnia przybliża się do realnej wartości pierwiastka.
W poniższym kodzie matlab użytkownik podaje ilość iteracji, jaką ma wykonać program.
% Program obliczajacy wartosc pierwiastka kwadratowego metoda babilonska
% Autor: Aleksander Kaweczynski e.vt0.pl
% 2017-12-17
clc; clear all; close all; format compact;
a=input('Podaj liczbe, z ktorej policzyć pierwiastek: ');
b=a/2; % aktualny 'strzal';
n=input('Podaj ilosc iteracji (liczba calkowita >2)');
c=0; % dzielenie a/strzal
d=0; % srednia z obu
for i=1:n
c=a/b;
d=(b+c)/2;
b=d;
disp(['Iteracja nr ', int2str(i), ' wynik: ', num2str(b)]);
end
Zamieszczam również wersję w Javascript:
document.getElementById('calculatebabylon').onclick=function(){
var a = document.getElementById('babylonvalue').value;
var b=a/2; // aktualny 'strzal';
var n=10;
var c=0; // dzielenie a/strzal
var d=0; // srednia z obu
document.getElementById('babylonsquare').innerHTML = '';
for(var i=1;i<=n;++i) {
c=a/b;
d=(b+c)/2;
b=d;
document.getElementById('babylonsquare').innerHTML += 'Iteracja nr '+ i + ' wynik: ' + b +'<br />';
}
document.getElementById('babylonsquare').innerHTML += 'Faktyczna wartosc: ' + Math.sqrt(a);
};
Inspiracja:
Kod źródłowy:
var angle = 3.14/5;
var proportion = 0.67;
var canvasWidth = 500;
var canvasHeight = 500;
function setup() {
var canvas = createCanvas(500, 500);
background(0,0,10);
colorMode(HSB);
frameRate(10);
}
function draw() {
angle = PI*(abs(mouseX % canvasWidth)/canvasWidth);
//proportion = 0.67;
proportion = ((abs(mouseY % canvasHeight)/2)/canvasHeight+0.5)*0.75;
background(0,0,10);
stroke(255);
translate(canvasWidth/2, canvasHeight);
branch(150, 1);
}
function branch(len, generation) {
strokeWeight(20/generation);
stroke(generation*10+100, 100, 100);
line(0, 0, 0, -len);
translate(0, -len);
if (len > 4) {
push();
rotate(angle+ randomGaussian(1)/30);
branch(len * proportion, generation+1);
pop();
push();
rotate(-angle + randomGaussian(1)/30);
branch(len * proportion, generation+1);
pop();
}
else
{
noFill();
ellipse(0,0,3);
}
}
Zachęcam do własnych prób.