https://youtu.be/85fL1b7mWlY?t=1
2026-05-25
2026-03-28
SI5351-IRF510
Igonin
3МГц 3Ват 300км вебсдр
| 74ACT541 /74ACT540inverting | 8 каналов параллельно |
. | . |
74ACT244 |
2 × 4-bit buffers |
. | . |
| . | . | ||
| 74ACT125 | 4 lines — Шинный буфер, очень быстрый и мощный. (Четыре буфера с тремя состояниями)Если нет 541-й или 244-й, эта микросхема — следующий кандидат. | . | . |
74ACT125 / 74ACT00 / 74ACT08 |
(четыре элемента И-НЕ) | . | . |
| 74AC04 / 74AC14 | kHz?— (6 инверторов) Самый доступный вариант. Соедините все 6 каналов параллельно. Триггер Шмитта отлично убирает звон и шум с выхода синтезатора. | . | . |
| . | . | ||
74LVC1G125 |
— Крошечный, но очень «злой» буфер, способный работать на сотнях МГц. 1 канал |
. | . |
74LVC125AD |
(Четыре буфера) Дает самый чистый и мощный импульс. |
. | . |
74LVC14AD |
(Шесть инверторов с триггером Шмитта) |
. | . |
74LVC00AD |
(Четыре элемента И-НЕ) |
. | . |
Итоговый рейтинг (от лучшего к хорошему): 74ACT541 / 74ACT540 (8 каналов, идеальная разводка). 74ACT244 (8 каналов, очень мощная). 74ACT04 / 74ACT14 (6 каналов, компактно). 74ACT125 / 74ACT00 / 74ACT08 (4 канала, «программа минимум»). Важное напоминание про серию «F» Если вдруг увидите в магазине микросхемы серии 74F... (например, 74F244), берите не задумываясь! Буква F означает Fast. Это старая биполярная логика, которая потребляет больше тока, но «жарит» на высоких частотах просто невероятно. Она была королем КВ-драйверов до появления современной ACT-серии.74LVC125AD/74LVC14AD/74LVC00AD1 место: 74LVC125AD (Четыре буфера) Это шинный буфер. У него самая мощная выходная каскадная структура из всего списка. Плюс: Дает самый чистый и мощный импульс. 2 место: 74LVC14AD (Шесть инверторов с триггером Шмитта) Отличный вариант за счет того, что внутри целых 6 каналов. Плюс: Триггер Шмитта «подчистит» сигнал от Si5351, если дорожки длинные и насасывают помехи. 3 место: 74LVC00AD (Четыре элемента И-НЕ) Чуть слабее, чем 125-я, но тоже рабочая схема. Как соединить: У каждого элемента два входа (A и B). Соединяем их вместе (A=B), тогда элемент работает как инвертор. Затем все 4 получившихся инвертора соединяем параллельно.
https://www.aliexpress.com/item/1005009320073049.html?spm=a2g0o.productlist.main.24.3129617c2OOfgl&algo_pvid=226b0971-3e43-481b-8e61-03630a2c9add&algo_exp_id=226b0971-3e43-481b-8e61-03630a2c9add-18&pdp_ext_f=%7B%22order%22%3A%227%22%2C%22eval%22%3A%221%22%2C%22fromPage%22%3A%22search%22%7D&pdp_npi=6%40dis%21EUR%210.43%210.43%21%21%210.48%210.48%21%40211b819117747328365581641e31a0%2112000048738150720%21sea%21SK%21139857366%21X%211%210%21n_tag%3A-29919%3Bd%3A9afaa231%3Bm03_new_user%3A-29895&curPageLogUid=6pWV1OZ9uH5l&utparam-url=scene%3Asearch%7Cquery_from%3A%7Cx_object_id%3A1005009320073049%7C_p_origin_prod%3A
https://www.aliexpress.com/item/1005009971062999.html?spm=a2g0o.detail.0.0.2f707Lpg7Lpg2h&mp=1&pdp_npi=6%40dis%21EUR%21EUR%200.15%21EUR%200.14%21%21EUR%200.14%21%21%21%40210385bb17747333715685840e3b91%2112000050724985184%21ct%21SK%21139857366%21%211%210%21
2025-02-18
balun
https://www.youtube.com/watch?v=nn8hNtysaxw&t=8s
https://www.youtube.com/watch?v=Ec0UeZMximU
2024-12-27
rf
12V 28MHz
pamp
| ток | сопр | индук | вит | |
|---|---|---|---|---|
| 24 | 500 | 2.85 | 21.2 | |
| 120 | 100 | 0.57 | 7.2 | |
| 500 | 24 | 0.14 | 3 |
2024-12-15
2024-12-14
sdr
msi.sdr: sdrplay
https://groups.io/g/SDRPlayUsers/topic/rsp1_on_ubuntu_20_04_no_joy/91588947
https://github.com/pothosware/SoapySDRPlay3/wiki#troubleshooting
--------------------------
rtl-sdr: https://www.rtl-sdr.com/V4/ #Linux (Debian)
sudo apt-get install libusb-1.0
1412 sudo touch /etc/modprobe.d/rtl-sdr.conf
1417 sudo touch /etc/udev/rules.d/20.rtlsdr.rules
https://github.com/dernasherbrezon/rtlSpectrum?tab=readme-ov-file
2024-11-30
React Native
youtube: Codevolution,
Expo CLI vs React Native CLI
youtube:Programming with Mosh
VS Code plugins: React Native Tools, React-Native/React/Redux, Prettier,Material Icon Theme
Settings: formatonsave
npx expo run:android
https://docs.expo.dev/workflow/android-studio-emulator/#set-up-android-studio
expo init test1
npx expo run:android
./gradlew assembleDebug ? https://docs.expo.dev/workflow/android-studio-emulator/#set-up-android-studio
npx create-expo-app@latest npm run reset-project
2024-08-17
Links
https://nomadmania.com/my_map/
const response = await fetch('https://jsonplaceholder.typicode.com/posts/1'); // Fetch data from API2024-08-06
Selenium
https://googlechromelabs.github.io/chrome-for-testing/#stable
unzip & copy to /opt/chromedriver
download latest chrome.deb;
sudo dpkg -i google-chrome-stable_current_amd64.deb
pom.xml:
<dependencies>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.23.0</version>
</dependency>
</dependencies>
System.setProperty("webdriver.chrome.driver", "/opt/chromedriver");
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");
2024-06-18
React forms
Working with form data in React can be approached in several ways, depending on the complexity of the form and the specific requirements of your application. Here are some common methods:
1. Controlled Components
In controlled components, form data is handled by the React component’s state. This is the most common method for managing form data in React.
Example
jsximport React, { useState } from 'react';
const ControlledForm = () => {
const [formData, setFormData] = useState({
name: '',
email: '',
});
const handleChange = (e) => {
const { name, value } = e.target;
setFormData((prevData) => ({
...prevData,
[name]: value,
}));
};
const handleSubmit = (e) => {
e.preventDefault();
console.log(formData);
};
return (
<form onSubmit={handleSubmit}>
<div>
<label>Name:</label>
<input
type="text"
name="name"
value={formData.name}
onChange={handleChange}
/>
</div>
<div>
<label>Email:</label>
<input
type="email"
name="email"
value={formData.email}
onChange={handleChange}
/>
</div>
<button type="submit">Submit</button>
</form>
);
};
export default ControlledForm;
2. Uncontrolled Components with Refs
Uncontrolled components store form data in the DOM itself and use refs to access the data. This approach is useful for simple forms or when integrating with non-React libraries.
Example
jsximport React, { useRef } from 'react';
const UncontrolledForm = () => {
const nameRef = useRef();
const emailRef = useRef();
const handleSubmit = (e) => {
e.preventDefault();
console.log({
name: nameRef.current.value,
email: emailRef.current.value,
});
};
return (
<form onSubmit={handleSubmit}>
<div>
<label>Name:</label>
<input type="text" ref={nameRef} />
</div>
<div>
<label>Email:</label>
<input type="email" ref={emailRef} />
</div>
<button type="submit">Submit</button>
</form>
);
};
export default UncontrolledForm;
3. Using Form Libraries
Form libraries like Formik and React Hook Form can simplify form management by handling validation, state, and submission more efficiently.
Formik Example
jsximport React from 'react';
import { Formik, Form, Field, ErrorMessage } from 'formik';
import * as Yup from 'yup';
const SignupForm = () => {
return (
<Formik
initialValues={{ name: '', email: '' }}
validationSchema={Yup.object({
name: Yup.string().required('Required'),
email: Yup.string().email('Invalid email address').required('Required'),
})}
onSubmit={(values, { setSubmitting }) => {
console.log(values);
setSubmitting(false);
}}
>
<Form>
<div>
<label htmlFor="name">Name:</label>
<Field name="name" type="text" />
<ErrorMessage name="name" component="div" />
</div>
<div>
<label htmlFor="email">Email:</label>
<Field name="email" type="email" />
<ErrorMessage name="email" component="div" />
</div>
<button type="submit">Submit</button>
</Form>
</Formik>
);
};
export default SignupForm;
React Hook Form Example
jsximport React from 'react';
import { useForm } from 'react-hook-form';
const HookForm = () => {
const { register, handleSubmit, formState: { errors } } = useForm();
const onSubmit = (data) => {
console.log(data);
};
return (
<form onSubmit={handleSubmit(onSubmit)}>
<div>
<label>Name:</label>
<input {...register('name', { required: 'Name is required' })} />
{errors.name && <span>{errors.name.message}</span>}
</div>
<div>
<label>Email:</label>
<input {...register('email', { required: 'Email is required', pattern: { value: /^\S+@\S+$/i, message: 'Invalid email address' } })} />
{errors.email && <span>{errors.email.message}</span>}
</div>
<button type="submit">Submit</button>
</form>
);
};
export default HookForm;
4. Custom Hooks
For more complex forms, you can create custom hooks to manage form state and validation logic.
Example
jsximport React, { useState } from 'react';
const useForm = (initialValues) => {
const [values, setValues] = useState(initialValues);
const handleChange = (e) => {
const { name, value } = e.target;
setValues((prevValues) => ({
...prevValues,
[name]: value,
}));
};
const resetForm = () => {
setValues(initialValues);
};
return [values, handleChange, resetForm];
};
const CustomHookForm = () => {
const [formData, handleChange, resetForm] = useForm({ name: '', email: '' });
const handleSubmit = (e) => {
e.preventDefault();
console.log(formData);
resetForm();
};
return (
<form onSubmit={handleSubmit}>
<div>
<label>Name:</label>
<input
type="text"
name="name"
value={formData.name}
onChange={handleChange}
/>
</div>
<div>
<label>Email:</label>
<input
type="email"
name="email"
value={formData.email}
onChange={handleChange}
/>
</div>
<button type="submit">Submit</button>
</form>
);
};
export default CustomHookForm;
Summary
- Controlled Components: Use when you want React to manage form state.
- Uncontrolled Components: Use when you prefer to keep form data in the DOM and access it with refs.
- Form Libraries (Formik, React Hook Form): Use for complex forms that require robust validation and state management.
- Custom Hooks: Use for custom form logic and state management.











