Spisu treści:
- Krok 1: Tło
- Krok 2: Wejścia
- Krok 3: Wynik
- Krok 4: Zrozumienie wyniku
- Krok 5: Więcej projektów
- Krok 6: Kod źródłowy
Wideo: Jak osiągnąć dowolny opór/pojemność przy użyciu komponentów, które już posiadasz!: 6 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:26
To nie jest tylko kolejny kalkulator rezystancji szeregowej/równoległej! Ten program oblicza, jak połączyć rezystory/kondensatory, które obecnie musisz osiągnąć, aby osiągnąć docelową wartość rezystancji/pojemności, której potrzebujesz.
Czy kiedykolwiek potrzebowałeś konkretnego rezystora lub kondensatora, którego nie masz lub który nie istnieje? Nie bać się! Prawdopodobnie możesz uzyskać tę konkretną wartość rezystancji lub pojemności, używając komponentów, które już masz. Zamiast rozwiązywać ogromny problem optymalizacji wielu zmiennych z milionami różnych kombinacji, użyj tego programu!
Po prostu wybierz rezystor lub kondensator, wprowadź wartość docelową, wprowadź maksymalną liczbę komponentów, których chcesz użyć, wprowadź listę wartości komponentów, które masz, i kliknij oblicz! Program wypisze jakich komponentów użyć i jak je połączyć, aby osiągnąć docelową wartość.
Aby wypróbować kalkulator, odwiedź tę aplikację internetową.
Aby wyświetlić kod źródłowy, odwiedź to repozytorium Github.
Daj mi znać, jeśli masz jakieś sugestie dotyczące dalszej poprawy użyteczności tego narzędzia do projektowania!
Krok 1: Tło
Ta aplikacja internetowa została stworzona z konieczności. Istnieje wiele różnych obwodów, które konstruuję, które wymagają bardzo specyficznego rezystora lub kondensatora. Wiele razy nie mam rezystora ani kondensatora o tej konkretnej wartości. Czasami nawet nie wytwarzają elementu o tak wyjątkowej wartości! Zamiast zrezygnować lub zadowolić się czymś, co jest mniej niż idealne, postanowiłem napisać program, który przeanalizuje każdą możliwą kombinację rezystorów (każdą możliwą wartość i czy są one połączone szeregowo czy równolegle) i zwróci najlepszą kombinację.
Projektując obwód dla moich organów w ramach mojego projektu „Battle of the Bands Instructable Project”, musiałem spróbować ręcznie obliczyć najlepszą kombinację kondensatorów, aby osiągnąć określoną częstotliwość. Ten proces był niesamowicie żmudny i ostatecznie po prostu się poddałem i wybrałem kombinacje kondensatorów, które wytwarzały dowolną ilość słyszalnej częstotliwości. Teraz dzięki tej aplikacji internetowej mogę zaprojektować moje organy na określoną częstotliwość i dostroić je do nut na klawiaturze! Poniższe równanie służy do obliczania określonej częstotliwości i jest omówione w innym projekcie Instructables.
f = 1 / (0,693×C×(R1 + 2×R2))
Używając tego równania, gdzie R1 = 100 kOhm i R2 = 10 kOhm, obliczyłem, że kondensator 27,33 nF wytworzy nutę A4 (częstotliwość 440 Hz). Używając mojego programu, byłem w stanie obliczyć równoważną wartość pojemności w granicach 0,001 nF (znacznie mniej niż tolerancja na standardowym kondensatorze), którą mogę stworzyć za pomocą kondensatorów, które już miałem. Wynikowe dane wyjściowe i konfigurację opisano poniżej. Teraz jestem w stanie znacznie wydajniej i efektywniej dostroić mój organ do dokładnych częstotliwości standardowych dźwięków. Żałuję, że nie zrobiłem tego na początku. Moja piosenka demo na organach prawdopodobnie brzmiałaby znacznie lepiej.
Najbliższa wartość: 27,329 nF Różnica: 0,001 nFC Konfiguracja kondensatora: C0=0,068 nF || C1=30 nF + C2=300 nF
Równania równoważności kondensatorów rezystorowych
Dla porównania poniżej znajdują się równania równoważności dotyczące łączenia rezystorów i kondensatorów w obwodzie.
- Rezystory szeregowe (R1 + R2): Req = R1 + R2
- Rezystory równolegle (R1 || R2): Req = 1 / (1/R1 + 1/R2)
- Kondensatory szeregowo (C1 + C2): Ceq = 1 / (1/C1 + 1/C2)
- Kondensatory równolegle (C1 || C2): Ceq = C1 + C2
Krok 2: Wejścia
Musisz podać 4 dane wejściowe:
- Niezależnie od tego, czy obliczasz wartość rezystora, czy kondensatora.
- Docelowa wartość rezystancji lub pojemności i jednostki.
- Maksymalna liczba elementów, których chciałbyś użyć, aby osiągnąć docelową wartość (tzn. nie chciałbym używać więcej niż 3 rezystorów, aby osiągnąć docelową wartość rezystancji).
- Lista wartości rezystorów/kondensatorów, które obecnie posiadasz. Te wartości powinny być w tych samych jednostkach, co wartość docelowa (tj. jeśli wartość docelowa wynosiła 110 nF, wszystkie wartości powinny być podane w nF).
Krok 3: Wynik
Otrzymasz 3 wyniki dla swojego wyniku:
- Najbliższa wartość - najbliższa wartość rezystancji/pojemności, jaką udało ci się osiągnąć przy swoich parametrach.
- Różnica - jak daleko Twoja najbliższa wartość była od wartości docelowej.
- Konfiguracja rezystora/kondensatora - lista wartości rezystorów/kondensatorów do użycia oraz ich konfiguracja.
Krok 4: Zrozumienie wyniku
Dane wyjściowe konfiguracji używają standardowej notacji. „+” oznacza, że komponenty są połączone szeregowo, a „||” oznacza, że komponenty są równoległe. Operatory mają równe pierwszeństwo i są kojarzone od lewej do prawej, co oznacza, że terminy grupuje się, zaczynając od lewej i przesuwając się w prawo.
Na przykład spójrz na następujący wynik:
Konfiguracja rezystora: R0=15 omów + R1=470 omów || R2=3300 omów + R3=15000 omów
Jeśli zastosujesz się do wskazówek omówionych powyżej, zobaczysz, że jest to równoważne poniższemu równaniu i obrazowi powyżej.
((R0+R1)||R2)+R3
Krok 5: Więcej projektów
Więcej projektów znajdziesz na moich stronach:
- https://dargen.io/
- https://github.com/mjdargen
- https://www.instructables.com/member/mjdargen/
Krok 6: Kod źródłowy
Aby wyświetlić kod źródłowy, odwiedź to repozytorium Github lub zobacz poniższy JavaScript.
/* --------------------------------------------------------------- */
/* skrypty kalkulatora r/c */ /* --------------------------------------- -------------------------*/ var najbliższa_val; // najbliższa jak dotąd wartość var najbliższa_diff = 1000000.00; // diff val i docelowej var najbliższej = ; // tablica ze szczegółowymi wartościami komponentów var ser_par_config = ; // tablica ze szczegółami serial/parallel var outputStr = ""; function CalculatorClick() { // wyczyść wartości globalne dla każdego nowego kliknięcia Najbliższa_val = 0; najbliższa_różnica = 1000000.00; najbliższy = ; ser_par_config = ; var ResultDisplay = document.getElementById("resultRow"); var exampleDisplay = document.getElementById("exampleRow"); var calcOutput = document.getElementById("calcOutput"); var targetTextObj = document.getElementById('targetText'); var numCompTextObj = document.getElementById('numCompText'); var compValsTextObj = document.getElementById('compValsText'); var target = parseFloat(targetTextObj.value); var numComp = parseInt(numCompTextObj.value); var compValsStr = compValsTextObj.value; var compVals = ; compVals[0] = ""; zmienna i = 0; var flaga błędu = 0; // błąd w parsowaniu wartości docelowej if (isNaN(target)) { outputStr = "Sprawdź błąd input 'Wartość docelowa'! " } // błąd w parsowaniu liczby komponentów else if (isNaN(numComp)){ outputStr = "Sprawdzenie błędów Dane wejściowe „Liczba składników”! " } // else if brak błędu w obiekcie docelowym lub numComp else if (!isNaN(target) && !isNaN(numComp)) { while (compValsStr.indexOf(", ") != -1) { var comma = compValsStr.indexOf(", "); var newInt = parseFloat(compValsStr.substring(0, przecinek)); // błąd w parsowaniu listy wartości komponentów, ustaw flagę if (isNaN(newInt)) { errFlag = 1; przerwa; } compValsStr = compValsStr.substring(przecinek+1, compValsStr.length); compVals = newInt; i++; } var newInt = parseFloat(compValsStr); // błąd w parsowaniu listy wartości komponentów, ustaw flagę if (isNaN(newInt)) { errFlag = 1; } compVals = newInt; if (errFlag == 0) { if (document.getElementById("resRadio").checked) { rezystor(target, numComp, compVals); } else if (document.getElementById("capRadio").checked) { kondensator(target, numComp, compVals); } } // błąd w parsowaniu listy wartości komponentów else { outputStr = "Sprawdzenie błędu input 'Lista wartości komponentów'!" } } calcOutput.innerHTML = outputStr; wynikDisplay.style.display = "blok"; exampleDisplay.style.display = "flex"; // przewiń w dół do wyniku window.scrollTo(0, exampleDisplay.scrollHeight); } /* Pobiera i drukuje najlepszą konfigurację rezystorów * target - docelowa wartość rezystancji * numComp - całkowita liczba rezystorów dozwolona do osiągnięcia docelowej val * compVals - tablica wartości rezystorów */ function rezystor(target, numComp, compVals) { // długość wartości rezystancji var num_res = compVals.length; // przeprowadź wszystkie możliwe liczby komponentów for (var i=1; i<=numComp; i++) { var data = ; resCombination(compVals, num_res, i, 0, data, target); } var jednostki = document.getElementById("selected_unit").value; // wypisuj wyniki outputStr = "Najbliższa wartość: " + najbliższa_wartość.toFixed(3) + " " + jednostki + " "; outputStr += "Różnica: " + najbliższy_różnic.toFixed(3) + " " + jednostki + " "; outputStr += "Konfiguracja rezystora: "; for (var i=0; i<numComp; i++) { if (i<najbliższa.długość) { outputStr += "R" + i + "=" + najbliższe + " " + jednostki + " "; if (i+1<najbliższa.długość) { if (ser_par_config[i+1]) outputStr += "|| "; w przeciwnym razie outputStr += "+ "; } } inny przerwa; } } /* Oblicza najlepszą kombinację rezystorów do osiągnięcia wartości docelowej. * res - wejściowa tablica wartości rezystorów * num_res - rozmiar wejściowej tablicy wartości rezystorów * num_comb - dozwolona liczba rezystorów * index - indeks comb * comb - tablica aktualnej kombinacji * target - wartość docelowa * Brak zwracanej wartości - przekazuje bieżącą najlepszą kombinację do wartości globalnych */ function resCombination(res, num_res, num_comb, index, comb, target) { // bieżąca kombinacja jest kompletna if (index == num_comb) { var ser_par_size = Math.pow (2, liczba_grzebień); // 2^(liczba składników) var ser_par = ; // tablica bool określająca szeregowy lub równoległy dla każdego komponentu var calc; // obliczona równoważna wartość rezystancji // przejdź przez każdą możliwą konfigurację szeregową/równoległą aktualnej kombinacji dla (var j=0; j
Zalecana:
Jak stworzyć swoje pierwsze proste oprogramowanie przy użyciu Pythona: 6 kroków
Jak zrobić swoje pierwsze proste oprogramowanie przy użyciu Pythona: Cześć, witaj w tej instrukcji. Tutaj opowiem jak stworzyć własne oprogramowanie. Tak, jeśli masz pomysł… ale wiesz, jak wdrożyć lub jesteś zainteresowany tworzeniem nowych rzeczy, to jest dla Ciebie… Wymagania wstępne: Powinieneś mieć podstawową wiedzę z
Neopixel Ws2812 Rainbow LED Glow z M5stick-C - Uruchamianie Rainbow na Neopixel Ws2812 przy użyciu M5stack M5stick C przy użyciu Arduino IDE: 5 kroków
Neopixel Ws2812 Rainbow LED Glow z M5stick-C | Uruchamianie Rainbow na Neopixel Ws2812 Używając M5stack M5stick C Używając Arduino IDE: Cześć chłopaki, w tej instrukcji dowiemy się, jak używać neopikselowych ws2812 LED lub taśmy LED lub matrycy LED lub pierścienia LED z płytką rozwojową m5stack m5stick-C z Arduino IDE i zrobimy wzór tęczy z nim
Jak sprawić, by kontroler Xbox migał niektórymi diodami, ale już się nie trzęsie: 4 kroki
Jak sprawić, by twój kontroler Xbox migał niektórymi diodami, ale już się nie trzęsie: PILOT BĘDZIE MIGAĆ, ALE NIE BĘDZIE JUŻ WIBROWAĆ, PONIEWAŻ W TYM PROJEKCIE MUSISZ WYJĄĆ SILNIK
DIY lutownica na gorące powietrze przy użyciu 12-18 woltów prądu stałego przy 2-3 amperach: 18 kroków (ze zdjęciami)
DIY lutownica na gorące powietrze przy użyciu 12-18 woltów prądu stałego przy 2-3 amperach: to moja pierwsza publikacja eva artykułu o majsterkowaniu w Internecie. Więc przepraszam za literówki, protokoły itp. Poniższe instrukcje pokazują, jak zrobić PRACOWĄ lutownicę na gorące powietrze odpowiednią do WSZYSTKICH zastosowań wymagających lutowania. To lutowanie gorącym powietrzem
Konwertuj (prawie) dowolny plik multimedialny na (prawie) dowolny inny plik multimedialny za darmo!: 4 kroki
Konwertuj (prawie) dowolny plik multimedialny na (prawie) dowolny inny plik multimedialny za darmo!: Mój pierwszy instruktażowy, pozdrawiam! W każdym razie szukałem w Google darmowego programu, który przekonwertowałby moje pliki Youtube.flv do formatu, który jest bardziej uniwersalny, jak.wmv lub.mov.Przeszukałem niezliczone fora i strony internetowe, a następnie znalazłem program o nazwie