Yurkin2015

Members
  • Публикации

    1 225
  • Зарегистрирован

  • Посещение

Репутация

315 Хороший

2 подписчика

О Yurkin2015

  • Звание
    Живу я тут

Информация

  • Пол
    Мужчина

Электроника

  • Стаж в электронике
    Более 20 лет

Посетители профиля

3 430 просмотров профиля
  1. Простые вопросы новичка.

    Ну, ещё чуть-чуть осталось. В функции segchar() кладите в переменную dat свои нолики-единички и затем посылайте data_submit(dat). Кстати, на всякий случай, для единички число 0b10011111 равно 0x9F, для двойки число 0b00100101 равно 0x25, для тройки число 0b00001101 = 0x0D и т.д. Это просто разные формы записи одних и тех же чисел: двоичная запись и шестнадцатеричная запись. У Вас в коде эти числа уже записаны в segchar(). Правда немного другие, для двойки и тройки по крайней мере. Надо бы проверить.
  2. Простые вопросы новичка.

    На колу мочало - начинай с начала? Где Вы были всё это время? Выходили покурить? Мы уже 23 часа назад обсудили порт С и осудили его использование в switch(seg)
  3. Простые вопросы новичка.

    Ну, тогда нужно просто всё сделать по порядку - в цикле сначала преобразуем j в сегментный код, затем отправляем на 74НС595, потом пауза 500мс for (int j=0;j<10;j++) { segchar(j); data_submit(dat); __delay_ms(500); }
  4. Простые вопросы новичка.

    Этот flag совсем не нужен, нет в нём никакого смысла. Он всегда будет равен 1 после выполнения data_submit(dat); Что нужно в программе-то сделать? Вы так и не объяснили. Нужно вывести на индикатор цифры от 0 до 9 через промежутки 0.5 секунды?
  5. Простые вопросы новичка.

    Это никогда не случится. Переменная i всегда будет меньше 8.
  6. Схема подключения К155ИЕ5

    А, и, правильно. В Гугле есть ответы на все вопросы. Надо сразу давать ссылку на источник в Интернете и этим ограничиться, ничего более. К тому же эта мера позволит избежать всяких вредных советов, типа такого
  7. Простые вопросы новичка.

    При чём тут PORTC ? У Вас ноги порта RC3, RC4, RC5 используются для передачи информации в 74HC595. А Вы целиком в порт записываете байты! unsigned int segchar(unsigned int seg){ switch (seg){ case 0 : PORTC =0x0C;break; case 1 : PORTC =0x9F;break; case 2 : PORTC =0x4A;break; При такой записи ноги порта дёргаются и вводят в заблуждение 74НС595. Заведите какую-нибудь переменную, например int dat, и складывайте в эту dat полученные коды для сегментов в функции segchar. void segchar(unsigned int seg){ switch (seg){ case 0 : dat =0x0C;break; case 1 : dat =0x9F;break; case 2 : dat =0x4A;break; case 3 : А потом уже передавайте эту dat seg_595(dat);
  8. Схема подключения К155ИЕ5

    Эт-точно.
  9. Схема подключения К155ИЕ5

    Вангую, потом дедок поставит R1=1кОм - и ничего не заработает. Уж лучше кнопку с нормально замкнутыми контактами использовать, на разрыв нуля.
  10. Схема подключения К155ИЕ5

    К155ИЕ5 считает только, если хотя бы на одном из входов R присутствует 0. На Вашей схеме счёт будет только при нажатой кнопке KN1.
  11. Простые вопросы новичка.

    В коде вызывается функция с пустыми скобками, это - ошибка. seg_595(); Нужно в скобки вставить параметр, какой нужно передать.
  12. Подбор фоточувствительного элемента

    Я думаю, что задержка происходит по другой причине, оптоэлектроника тут не при чём. Дело в том, что ток в катушке не может увеличиться мгновенно от 0 до максимума, такие физические законы в нашем мире - увеличению тока мешает индуктивность катушки. Скорость нарастания тока равна напряжение разделить на индуктивность катушки. Например, в пушке используется катушка с индуктивностью 100 мГн. Нужно получить в ней ток 1А для создания ускоряющего магнитного поля. При разгоне пули оптрон очень быстро сработал, и мосфет без задержки подключил катушку к напряжению 100В, например. Казалось бы, задержка равна 0. Но электрический ток в катушке всё равно будет плавно нарастать и достигнет 1А максимума только через 1 мс после срабатывания оптоэлектроники. То есть придётся отодвигать оптрон как раз на 10см, чтобы при подлёте пули ток успел увеличиться до нужного. Для уменьшения дилея (задержки) нужно увеличивать напряжение на катушке. Например, если на катушку подавать 1000В, то отодвигать оптрон придётся уже только на 1 см. Или умешьшить индуктивность катушки, отмотать большую часть витков соленоида. Тоже вариант. Вот, к примеру, какие индуктивности и напряжения у Ваших спец соленоидов используются?
  13. Правильный выход с TDA7442D

    Не надо отсекать. Просто на выход ТДА поставьте делитель 1:3 из двух резисторов и подавайте сигнал на АЦП STM32 через этот делитель. А уже в программе STM32 можно и постоянку отсечь и определить амплитуду сигнала программным способом.
  14. У датчика маски скорее всего есть некоторый порог света, с которого маска начинает затемнять светофильтр. При малой освещённости маска просто не сработает. Потребуется охрененный светидиод, чтобы осветить и датчик маски и светофильтр достаточным количеством света. Может проще использовать обыкновенную фотовспышку от фотоаппарата? Длительности вспышки в пару миллисекунд должно хватить для таких измерений. Ставите за светофильтром быстрый фотодиод, пыхаете вспышкой перед маской и измеряете длительность сигнала с фотодиода. Это и будет время срабатывания маски.
  15. Первое. Только надо добавить ещё один резистор от базы транзистора на землю.