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.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 | % 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:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 | 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:
01020304050607080910111213141516171819202122232425262728293031323334353637383940414243var
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.
Powiadomienia