Перейти к содержанию

Yurkin2015

Members
  • Постов

    2 286
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Весь контент Yurkin2015

  1. @Кандрат Кандратыч Для контура с источником тока контурное уравнение не составляется. Поэтому в решении на листочке в клеточку уравнения I и IV неправильные. Надо просто написать, что контурный ток I11 равен току источника тока 1, а контурный ток I44 равен G*I5*R5 и использовать оставшиеся уравнения.
  2. Да, отвечает, я просто не досидел до конца кино, а бросился спрашивать, посмотрев только половину фильма. Всё-таки вода в качестве обкладок конденсатора - плохой вариант, т.к. не является проводником в полном смысле. Это заметно, кстати, во второй части, когда, казалось бы, конденсатор полностью разрядился до нуля, затем рука дрогнула и разомкнула цепь, а при опускании бутылки обратно в воду шуп кратковременно снова коснулся и зафиксировал ступеньку напряжения, время 3:05. Думаю, что фиксируется напряжение вокруг центральной проволоки в бутылке, там же локально и происходит разряд, а не полный разряд по всему объему. При размыкании цепи оставшиеся заряды в воде перемешиваются и восстанавливают напряжение обратно до некоторой степени. Если обкладки конденсатора расположены на стенках бутылки, то было бы интересно вытащить саму проволоку из бутылки наполовину и понаблюдать на свойствами конденсатора.
  3. @v1ct0r Хороший эксперимент! Не могли бы Вы его дополнить немного на втором этапе с высунутой бутылкой? Когда при разряде напряжение упадёт наполовину, быстро вернуть бутылку обратно в воду. Что при этом произойдёт с напряжением?
  4. Этот 16-битный компилятор использует тип int для констант, поэтому число 0x80 на самом деле есть 0x0080. Сравнивать надо одинаковые типы. Поэтому перед сравнением компилятор преобразует char тоже в int. Для char было 0x80 = -128, перед самым сравнением стало int 0xff80 = -128. Очевидно, что 0xff80 не равно 0x0080.
  5. Переменная типа char от -128 до 127. А величина 0х80 = 128. Поэтому условие никогда не выполняется. Надо использовать unsigned char.
  6. @shaxel Идея в том, что сопротивления проводников rxx пропоциональны длинам кабеля между точками измерения. Например, слева - направо, от токовой клеммы до потенциальной длина кабеля 2 метра, между потенциальными клеммами 1 метр, и от потенциальной до правой токовой пусть будет 3 метра. Всего 6 метров. Тогда можно рассчитать величины малых резисторов r: r11 = 2/6 R1 = 1/3 R1 r21 = 2/6 R2 = 1/3 R2 r31 = 2/6 R3 = 1/3 R3 Соотвественно напряжения на этих резисторах: U11 = I1 * r11 = I1 * 1/3 R1 = 1/3 I1 * R1 = 1/3 UR1 U21 = I2 * r21 = I2 * 1/3 R2 = 1/3 I2 * R2 = 1/3 UR2 U31 = I3 * r31 = I3 * 1/3 R3 = 1/3 I3 * R3 = 1/3 UR3 Получается, что если напряжения на резисторах R1, R2 и R3 равны между собой: UR1 = UR2 = UR3, то и напряжения на r11, r21, r31 будут тоже равны между собой, несмотря на разные токи и сопротивления: U11 = U21 = U31 Точно так же можно посчитать и падения напряжения на остальных резисторах. И получится, что измерять падение на 1 метре можно между любыми средними точками схемы - результат будет один и тот же.
  7. Без разницы. Падение на проводниках будет одинаковым даже при разных диаметрах и сопротивлениях. Все они зажаты в двух токовых клеммах по краям, и в этих точках все проводники имеют одно и то же напряжение. Поэтому от края до края напряжение будет линейно изменяться по длине одинаково для всех проводников, и в любых других двух точках падение будет одинаковое. Главное, чтобы диаметр проводника не изменялся по длине.
  8. Нельзя так БП1 и БП2 соединять - будет короткое замыкание обмотки трансформатора через диоды. Для двухполярного нужно на каждый БП - свою обмотку транса.
  9. @DoG70 Как это нет? Напряжение это разность потенциалов двух точек в пространстве. Вот путь между точками как раз и есть то, что нужно.
  10. Спору нет - можно и на резисторах. Только в 10 раз ухудшается чувствительность. Лучше поставить опер с питанием 30 В, в дифференциальном включении, и скидывать напряжение шунта с плюса питания на землю.
  11. MCP3421 это 18-битный АЦП. Получается, что максимальный выходной код = 262144. При опорном напряжении 2.048 В получаем 4.096 / 262144 = 16 мкВ на один шаг АЦП. Плюс имеется внутренний усилитель К = 8. В результате максимальная чувствительность АЦП равна 16 / 8 = 2 мкВ. Это в идеале. В реальности есть шум АЦП, который составляет, типа, 10 мкВ в размахе, так что в реале эти 2 мкВ не увидите.
  12. Не прав. Напряжение на БЭ переходе у всех транзисторов будет какое надо напряжение, не больше 1 В.
  13. Это пояснение на пальцах почему у @Kotto микросхемы сгорают. Какбэ разговор об этом шёл в на предыдущей странице
  14. Если у МСР3421 напряжение питание равно +5 В, а на вход подаёте +30 В, то микросхема сгорит.
  15. Гальваническая развязка силовой части означает, что ни один провод не должен пересекать пунктирную линию. А тут +5V как раз нарушает границу. Это нехорошо.
  16. 1. Транзистор Q1 гальванически связан с сетью - управление RUN должно быть через оптоизолятор! 2. Сигнал Alarm не потянет реле K1 - надо добавить транзистор для управления реле. 3. Почему на входе дискретного управления +5В ? 4. Микропроцессор питается от 3.3 В. Почему для RS485 интерфейса выбран 5-ти вольтовый МАХ?
  17. Ну, ладно. Всего делов-то передвинуть первую строчку цикла на последнее место. Уже поправил, спасибо за замечание.
  18. Задача очень проста, непонятно, почему народ гнёт пальцы и пытается воспитать из ТС выдающегося программиста . Надо сделать код по-простому, шаг за шагом, никаких прерываний. #define F_CPU 8000000UL // Работаем от внутреннего генератора 8МГц. #include <avr/io.h> #include <util/delay.h> int main(void) { //Настройка портов ввода вывода****************************************************************** DDRB = 0b11111111; // Настраиваем порт B на выход. DDRD &= ~(1 << 2); // Настраиваем ножку порта PD2 на вход PORTD |= (1 << 2); // Подтягиваем PD2 внутренним резистором к +5в. PORTB = 0x00; while (1) { // Первый диод PORTB = 0x01; // работает диод1 _delay_ms(3000); PORTB = 0x00; // выкл while (!(PORTD & 0x04)){}; // Ждём, если чё, пока не отпущена кнопка _delay_ms(50); // Второй диод while (PORTD & 0x04){}; // Ждём, пока не нажата кнопка PORTB = 0x02; // работает диод2 _delay_ms(1500); PORTB = 0x00;// выкл while (!(PORTD & 0x04)){}; // Ждём, пока не отпущена кнопка _delay_ms(50); // Третий диод while (PORTD & 0x04){}; // Ждём, пока не нажата кнопка PORTB = 0x04; // работает диод3 _delay_ms(1500); PORTB = 0x00;// выкл while (!(PORTD & 0x04)){}; // Ждём, пока не отпущена кнопка _delay_ms(50); while (PORTD & 0x04){}; // Ждём, пока не нажата кнопка } }
  19. Сначала расположили в линейку 5 пар, затем свернули в гармошку.
  20. @DVF Можно проще сделать. Надо сдвинуть левый конец резистора R1' на +1 В вверх, например, вот так. Тогда входной диапазон 0...2 В сдвинется на вольт вниз -1 ...+1 В.
  21. @Архип Бирюков Какой-то стрёмный способ записи полубайтов. GPIOB->ODR &= ~(b & 0xF0); К примеру, нужно записать верхний полубайт 0х33. Сначала отделяем 0х30. Затем инвертируем 0хСF. Потом эндим с портом, в котором уже стоят все единички. Получаем в порту 0хСF заместо тройки. Фигня какая-то ...
  22. @ummagumma Нало сначала очистить MUX биты, а потом уже устанавливать номер канала. ADMUX &= 0xF0 ADMUX |= ((0<<MUX3)|(1<<MUX2)|(0<<MUX1)|(0<<MUX0)); //выбор канала АЦП MUX4
×
×
  • Создать...