ВячеславЛ

Members
  • Content count

    297
  • Joined

  • Last visited

Community Reputation

39 Обычный

About ВячеславЛ

  • Rank
    Постоялец
  • Birthday 01/18/80

Информация

  • Пол
    Мужчина
  • Интересы
    МД
  • Город
    Ростовская обл

Электроника

  • Стаж в электронике
    Более 20 лет
  • Сфера радиоэлектроники
    Весовое оборудование,МД

Recent Profile Visitors

8820 profile views
  1. Я смотрю все таки не многие. А только те у кого 400в в передающей. Из личных наблюдений большой разницы между 20 и 40 вольтами не заметишь. А тут 400! Рыбу глушить такой" удочкой" в самый раз. У меня при 12в питании сейчас и выходной амплитуде в 40в( для интереса поставил, было 24) потребляемый ток 50мА без звука, 90мА со звуком. Поэтому скорее всего у вас и проблема с компенсацией, но это не точно)
  2. Федор, а как вы относитесь к мк?
  3. Сегодня потестил новую прошивку. С одной стороны получил удовольствие, а с другой я на такую глубину копать не хочу! Режим работы сделал динамическим. Один фильтр отслеживает сигналы за довольно длительный промежуток(около 3 с) второй быстрые изменения сигнала. В итоге при проносе над мишенью путем сравнения выделяем полезный сигнал. Резистор точной подстройки теперь не нужен - при включении один раз выставляем на экране значение АЦП примерно равное 510 и ... забываем про регулировку до конца сеанса. Элементы Д3.3 и Д3.4 не нужны, как и их обвязка. На автомобиль четкое срабатывание с 2 метров, если убрать барьер с 5 до 2 то может и 2.2м. Звук только по делу, ну и куда деваться, от плохой жескости конструкции. Никаких произвольных попискиваний или, не к ночи помянутого, дрожания стрелки. Менял напряжение на передающей катушке. Ставил 18, затем 35 вольт. Разницы не заметил. Скетч // A3-аналоговый вход для вольтметра.Выставляется потенциометром R32. // А4-аналоговый вход для сигнала.Выставляется при минимальном сигнале на D3.2 // резистором R40 для показаний АЦП примерно 510. // 6- вывод зука // 9 - вывод частоты 31200 Гц #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); byte z1[8] = { // значок батарейки 0b01100, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110 }; int countleds = 0; // переменная для хранения значения уровня шкалы float voltage = 0.0; // расчитаное напряжение const int button1 = 7; // кнопка барьер-плюс const int button2 = 8; // кнопка барьер-минус int i = 5; // барьер const float K = 0.1; // фильтр отслеживающий быстрые изменения(коэф. чем меньше тем сильнее) const float L = 0.07; // фильтр отслеживающий изменения за длительное время float sign = 0; // фильтр float noll = 0; void setup(){ lcd.begin(16, 2); // инициализация дисплея lcd.createChar(1, z1); pinMode(9, OUTPUT); pinMode(6, OUTPUT); TCCR1A = TCCR1A & 0xe0 | 2; TCCR1B = TCCR1B & 0xe0 | 0x09; analogWrite(9 , 126); // на выводе 10 ШИМ=50% f=31200Гц //на самом деле для ШИМ = 50% нужно ставить заполнение хотя бы 220, согласно осцилографу //дуина не справляется. Здесь не критично. } void loop() { int buttonState1 = HIGH; // Состояние кнопки один int buttonState2 = HIGH; // Состояние кнопки два int pot = analogRead(A4); // фильтр быстрого изменения сигнала sign = sign*(1-K) + pot*K; noll = noll*(1-L) + sign*L; // фильтр длительного отслеживания сигнала float voltage = map(analogRead (A3),0,1023,0,1500)/100.0; //Вольтметр, построенный на входе А3 if (sign >= noll + i) {countleds = map(sign, noll+i, 1023 , 9, 14); // если полученный рез-т на 9-15 сегмент шкалы tone(6, countleds*100);} if (sign <= noll - i) {countleds = map(sign, 0, noll - i, 0, 7); // если полученный рез-т на 0-7 сегмент шкалы tone(6, countleds*50); } if (sign < noll && sign >= noll - (i-1)) {countleds = 7 ; noTone(6); } //островок виртуального НУЛЯ(7 сегмент) if (sign > noll && sign <= noll + (i-1)) {countleds = 8 ; noTone(6); } //островок виртуального НУЛЯ шкалы(8 сегмент) {lcd.setCursor(countleds, 0); // устанавливаем курсор в колонку countleds, строку 0 lcd.print("\xff"); // закрашенный значок lcd.setCursor(0, 1); // перемещаем во 2 строку, столбец-0 lcd.print(char(1)); // Индикация значка батарейки lcd.setCursor(1, 1); // перемещаем на указание напряжения lcd.print(voltage); // вольтаж lcd.setCursor(7, 0); // 8й столбец 1я строка if (sign < noll ) { lcd.print("{");} // печать lcd.setCursor(8, 0); // 9й столбец 1я строка if (sign > noll ) { lcd.print("}");} // печать lcd.setCursor(7, 1); lcd.print("B="); lcd.setCursor(9, 1); // 11 столбец 2я строка lcd.print(i); // барьер lcd.setCursor(13, 1); // 13й столбец 2я строка lcd.print(sign); // печать усредненного значения значения АЦП delay(10); // ждём buttonState1 = digitalRead(button1); // Чтение состояния кнопки 1 buttonState2 = digitalRead(button2); // Чтение состояния кнопки 2 if (buttonState1 == LOW) { i = i + 1 ; delay(100);} // При нажатой кнопке барьер вырастает на 1. Задержка 50 if (buttonState2 == LOW) { i = i - 1 ; delay(100);} // При нажатой кнопке барьер снижается на 1. Задержка 50 if (i < 2) { i = 2;} // Нижняя граница барьера if (i > 38) {i = 38;} // Верхняя граница барьера lcd.clear(); } } HEX файл под ATmega168. Фьюзы под внешний резонатор на 16 МГц .MD_Rx-Tx03_2019.168.hex HEX файл под ATmega8. Внешний резонатор на 16 МГц. Должна заработать. Сам не пробовал. Скомпилилась без ошибок. MD_Rx-Tx03_2019.ino.standard.hex Настольные испытания Не стреляйте в оператора, он снимает как умеет. На втором видео писк слышно, а как я слева мишень подносил- не видно.
  4. Ардуинкой фазу не покрутишь к сожалению. Надо или брать STM32 или изучать язык С. А жаль. Критику нарисованной схемы? О чем вообще проект и с чем его едят? Что умеет?
  5. Зря грешил и на атмегу и на конденсаторы в контуре. Усиливал устойчивость катушек к изгибу(ребрами жесткости). Ну и усилил. Забыл только ноль контролировать при этом. Прийдется как то переделывать. На печатке две ошибки. Не подведен +питания к 157уд2. А вторая -не помню-сюрприз!
  6. Вышел на улицу, -2°с и не смог скомпенсировать. Либо конденсаторы в контурах не термостабильные либо от температуры плывет ацп у контроллера. Но ведь клон работает при такой температуре, хотя конечно там образыовое напряжение внешнее. Надо попробовать поостой индикатор стрелочный подкинуть и проверить.
  7. Зачетный дизайн! И решение со звуком-простое и незатратное. Эх, а штанга кайфовая.
  8. Можно вопрос, можно фотку штанги, где приобреталась и для чего используется по назначению? Мелкие сработки на дрожание стрелки есть? Регулировать порог звука получается? Все печатки, что я тут наплодил- по сути сырые их еще обтесывать и обтесывать. Но я рад-не зря старался и НАС(тех кто собрал этот прибор) стало больше!
  9. Металлоискатель Quasar Arm

    А схемных изменений нет? ФМ трансмитер и шим выход какой то. У меня аппарат ровесник прошивки 2.0.2 как он с новой начинкой подружится?
  10. Металлоискатель Quasar Arm

    Привет всем квазароводам! Ребят, я пару лет не следил за форумом, скажите какую прошивку лучше поставить, а то у меня 2.0.2. стоит. Зашел к автору, а там уже СТОЛЬКО наворочено! Как тут разобраться?
  11. Спасибо DesAlex, ваша похвала дорогого стоит. Скажу честно, я бы и сам собрал готовое с удовольствием, но ничего похожего не нашел. А глубинник очень хочется. Здесь кстати так вышло, что предметов меньше плоскогубцев он вообще не видит. Можно добавить усиления в приемном тракте, начнет видеть мелочь, но тогда наверное надо булет зону нуля немного расширить, чтоб попискивания было меньше. Дел на 2 минуты. А можно сигнал снять со следующего каскада тл074.А залить скетч в ардуино сможет любой за 1 вечер, нужен лишь переходник usb-rs232.
  12. Все. Я закончил. С меня пока хватит. Вылаживаю все что получилось. Исправленное, дополненное. Если кто будет собирать, смотрите печатку-ее переделывал больше всего. Ардуино про мини 5в, 16МГц, АТмега168 и дисплей исрользовал вот такие. Рядом для масштаба переходник Мини СД- Как уже говорил 1602 стоит 86рублей, ПроМини -82 рубля. При желании можно вообще взять голую АТмегу168, разработать под нее плату и залить скетч прямо в нее. А так я например устанавливал при помощи разьема мама-папа на плату МД. На фото видно у Ардуино штекер на 6 пинов-через него и заливались скетчи прямо на плате. Скетч-MD.Rx-Tx.ProMini.SrednjajaTochka.ino // A3-аналоговый вход для вольтметра // А4-аналоговый вход для сигнала // 6- вывод зука // 10 - вывод частоты 31200 Гц #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // значок батарейки byte z1[8] = { 0b01100, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110 }; int countleds = 0; // переменная для хранения значения уровня шкалы int voltag = 0; //переменная для хранения значения напряжения int noll = 0; //переменная для хранения значения средней точки #define NUM_SAMPLES 10 // 10 аналоговых выборок для чтения int sum = 0; // сумма взятых образцов int sun = 0; // то же, но деленное на 10 unsigned char sample_count = 0; // текущий номер выборки с float voltage = 0.0; // рассчитаное напряжение void setup(){ lcd.begin(16, 2); // инициализация дисплея TCCR1A = TCCR1A & 0xe0 | 2; TCCR1B = TCCR1B & 0xe0 | 0x09; analogWrite(9 ,126); // на выводе 9 ШИМ=50% f=31200Гц lcd.createChar(1, z1); } void loop() { sample_count = 0; //сбрасываем контур кол-ва сложений sum = 0; //сбрасываем сумму 10ти сложений while (sample_count < NUM_SAMPLES) { sum += analogRead(A4); // к сумме плюсуется очередное измерение delay(1); sample_count++; // к номеру измерения плюсуется еденица sun = sum/10;} // находим среднее значение из 10ти измерений noll = analogRead (A3)/2; // средняя точка питания float voltage = map(analogRead (A3),0,1023,0,1500)/100.0; //Вольтметр, построенный на входе А3 if (sun >= noll + 5) {countleds = map(sun, noll+5, noll*2 - 250, 9, 14); // если полученный рез-т на 9-15 сегмент шкалы tone(6, countleds*100);} if (sun <= noll - 5) {countleds = map(sun, 116, noll - 5, 0, 7); // если полученный рез-т на 0-7 сегмент шкалы tone(6, countleds*50); } if (sun < noll && sun >=noll - 4) {countleds = 7 ; noTone(6); } //островок виртуального НУЛЯ(7 сегмент) if (sun > noll && sun <= noll + 4) {countleds = 8 ; noTone(6); } //островок виртуального НУЛЯ шкалы(8 сегмент) // устанавливаем курсор в колонку countleds, строку 0 {lcd.setCursor(countleds, 0); lcd.print("\xff"); // закрашенный значок lcd.setCursor(0, 1); // перемещаем во 2 строку, столбец-0 lcd.print(char(1)); // Индикация значка батарейки lcd.setCursor(1, 1); // перемещаем на указание напряжения lcd.print(voltage); // вольтаж lcd.setCursor(7, 0); // 8й столбец 1я строка if (sun < noll ) { lcd.print("{");} // печать lcd.setCursor(8, 0); // 9й столбец 1я строка if (sun > noll ) { lcd.print("}");} // печать lcd.setCursor(8, 1); // 9й столбец 2я строка lcd.print(countleds); // номер заженного столбца 1я строка lcd.setCursor(13, 1); // 13й столбец 2я строка lcd.print(sun); // печать усредненного значения значения АЦП delay(100); // ждём lcd.clear(); } } Архив-МД на Ардуино.7z Автоноль не использовал.Последние два элемента ТЛ074 остались без дела. Но на схеме и плате они есть. Может появится желание довести их до рабочего состояния чуть позже. Я считаю, что я своего добился. Блок индикации работает чудесно, а именно этого я и хотел добиться. Все остальное зависит от МД. Удачи.
  13. Работает слишком хорошо. Загоняет стрелку за ноль в другой конец шкалы. Заброшу пока это дело. Терпение кончилось. Оформлю пока плату в корпус и буду ждать весны.
  14. Сегодня пробовал 817. Искажает синус на малом сигнале и выходной сигнал сдвинут на, блин , не помню насколько. Или 90 или 180 гр. Уже голова кипит. На сегодня хорош. Завтра попробую оптопару с плавным поджигом на полевике и кондером большой емкости на затворе. Чем фоторезистор хорош- сигнал не искажает. А вот разброс очень большой. Прийдется цифры к каждому подбирать индивидуально. Всем спокойной ночи.
  15. Программно полностью вряд ли. Не такой я крутой программист.)) А вот выдать на вывод шим сигнал со скважностью 10 если допустим отклонение от нуля составило более 0,05в в плюс от нуля или со скважностью, допустим, 30, если отклонение превысило , скажем, 0.3 вольт в плюс. И такие же значения для другого вывода, но только для напряжений ниже нуля. И вот тут главное что бы это напряжение ПОСТЕПЕННО начало влиять на схему компенсации. Может быть попробовать RC фильтры. Сейчас леплю оптопары из фоторезистора и светодиода. При отсутствии упр. напряжения сопротивление на выходе ноль. При полном засвете-несколько кОм