РАДИОСХЕМЫ



СТАРЫЙ ФОРУМ

ФОРУМ НА ЭЛВО

РАДИОФОРУМЫ


СХЕМЫ И СТАТЬИ
  • БЛОГИ
  • НОВОЕ
  • СХЕМЫ
  • РАЗНОЕ
  • ТЕОРИЯ
  • ТЕЛЕВИДЕО
  • СВЕТОДИОД
  • МЕДТЕХНИКА
  • БЫТТЕХНИКА
  • ИЗМЕРИТЕЛИ
  • СПРАВОЧНИК
  • ТЕХНОЛОГИИ
  • РЕМОНТ СХЕМ
  • МОБИЛЬНИКИ
  • КОМПЬЮТЕРЫ
  • НАЧИНАЮЩИМ
  • ЗАРЯДКИ И АКБ
  • СИГНАЛИЗАЦИИ
  • АУДИОТЕХНИКА
  • АВТОВЕЛОМОТО
  • БЛОКИ ПИТАНИЯ
  • РАДИОПРИЁМНИКИ
  • МЕТАЛЛОИСКАТЕЛИ
  • МИКРОКОНТРОЛЛЕР
  • РАДИОПЕРЕДАТЧИКИ

  • Курс по ускорению работы Мозга на 100%


    • Страница 1 из 2
    • 1
    • 2
    • »
    Архив - только для чтения
    Форум радиолюбителей » СХЕМЫ » МЕТАЛЛОИСКАТЕЛИ » МД импульсный на Arduino (МД импульсный на Arduino)
    МД импульсный на Arduino
    Вс, 29.03.2020, 07:46 | Сообщение # 1        
    autoelectrician
    аватар
      Постов: 47   ОК 
    МД импульсный на Arduino принцип схемы от пирата

    Но есть одно но, надо объединить два разных скетча, я в Arduino wacko сколько не пытался не моё, может кому пригодится и переделают эти скетчи

    Там нужно добавить управление кнопочным потенциометром X9C104S у него 99 положений 100кОм, сильно не пинайте схему набросал я, вроде ошибок нет

    Код
    #define UD  2                          // выходы к которым подключен модуль
    #define INC 3
    #define CS  4

    #define BTN_UP 5    //пины, к которым подключены кнопки. Один конец кнопки - к пину, второй - на землю напрямую. Резисторы никакие не нужны.
    #define BTN_DOWN  6

    int pause = 300;//пауза между переключениями ползунка при удержании кнопки

    void setup()
    {
      pinMode(BTN_UP, INPUT_PULLUP);         //настроил пины с кнопками на ввод информации с кнопок
      pinMode(BTN_DOWN, INPUT_PULLUP);

      pinMode(INC, OUTPUT);
      pinMode(UD, OUTPUT);
      pinMode(CS, OUTPUT);
      digitalWrite(CS, HIGH);                         // выключаем микросхему
    }

    void loop()
    {
      if (!digitalRead(BTN_UP))//если нажата кнопка "вверх"
      {
        delay(20);//антидребезг
        up();//переместили ползунок на единицу вверх
        delay(pause);//антидребезг
      }

      if (!digitalRead(BTN_DOWN))
      {
        delay(20);//антидребезг
        down();//переместили ползунок на единицу вниз
        delay(pause);//антидребезг
      }
    }

    void up()// поднимает ползунок в верх на 1 ступень
    {                            
      digitalWrite(UD, HIGH);             // на U/D подаем единицу
      
      digitalWrite(INC, HIGH);            // и на INC тоже
      digitalWrite(CS, LOW);              // включаем микросхему
      delayMicroseconds(4);               // ждем
      
      digitalWrite(INC, LOW);             // дергаем вход INC
      delayMicroseconds(4);
      digitalWrite(INC, HIGH);
      delayMicroseconds(4);
      
    ///digitalWrite(INC, LOW);                  // в этом случаи положение ползунка записано не будет
      digitalWrite(CS, HIGH);             // выключаем микросхему и записываем положение в EEPROM
    }

    void down()// опускаем ползунок в вниз на 1 ступень
    {                          
      digitalWrite(UD, LOW);
      
      digitalWrite(INC, HIGH);
      digitalWrite(CS, LOW);
      delayMicroseconds(4);
      
      digitalWrite(INC, LOW);
      delayMicroseconds(4);
      digitalWrite(INC, HIGH);
      delayMicroseconds(4);

      digitalWrite(CS, HIGH);
    }

    В схеме не указан сам К157УД2 а только точки соединений к ногам, и за того что при разводки дорожек не задействованные ноги будут мешать и место свободное занимают, будут припаиваться те которые задействованные, и также с Arduino, ниже фото приведён как пример


    В этом скетче генератор и светоиндикация, пару светодиодов удалить они там лишние пики до них не разу не доходили,

    Код
    unsigned int sum_num = 0;
    byte i=0;
    void setup()
    {
    DDRB = 0xFF; // all out
    DDRD = 0xFF; // Устанавливаем цифровые пины как выходы
    pinMode(14,INPUT); // Устанавливаем аналоговый пин A0 как цифровой вход
    }
    void loop()
    {
    PORTD = 0;
    PORTB = B11110000; // переводим пины порта B в 1, открывая т.о. ключ (turn on)
    delayMicroseconds(200); // wait 200 микросекунд
    PORTB = 0; // закрывааем ключ, прерывая ток в поисковой катушке (turn off - interrupt circut in search coil )
    for ( i=0; i<255; i++){
    sum_num = sum_num + digitalRead(14);
    }
    PORTD = sum_num; // посылаем на индикатор send to LEDs
    delay (4);
    sum_num = 0;
    }


    В той и этой схеме задействованы те же ноги на Arduino nano, у меня сейчас работают два Arduino nano на первом управление потенциометром на втором всё остальное, и всё это у меня стабильно работает чуйка та же, кнопка автонастройки мне не нужна как в других схемах применена обработка через Arduino, родной звук от операционного к157уд2, и почему цифровой потенциометр ? чтоб до точности иногда можно была за грубить чуйку и тд

    Потом когда скетч будет готов и какие пины будут задействованы, сделаю разводки дорожек и тд, а если нет то нет facepalm

    Этот вариант больше подойдёт для начинающих юных учеников любителей по сборке на Arduino залить скетч и воткнуть ножками на плату урезоного пирата
    Файлы: 8953474.png (129.7 Kb) · 4066106.txt (0.6 Kb) · tsifrovoy_potan.txt (2.0 Kb) · 2537512.jpg (56.5 Kb) · 1351740.jpg (158.2 Kb)
    Вс, 29.03.2020, 08:45 | Сообщение # 2        
    melan
    аватар
      Постов: 999   Друзья 
    Цитата autoelectrician ()
    обрубок от пирата

    И зачем??? Разве как лабораторная работа.
    Вс, 29.03.2020, 09:28 | Сообщение # 3        
    apeks
    аватар
      Постов: 2197   Друзья 
    питон есть теперь надо пиарду lol
    ардуина даже для клона "жирная"
    Вс, 29.03.2020, 11:32 | Сообщение # 4        
    atoll07
    аватар
      Постов: 574   U 
    Цитата autoelectrician ()
    Нужна помощь, надо объединить два разных скетча

    ..не вдаваясь в совершенно правильно поставленный вопрос:
    Цитата melan ()
    И зачем???

    (так как параметры MD Пират, не только не улучшаются, но и могут быть несколько ухудшены)...
    ..писать я за вас программу я не имею возможности (но некоторым не зависящим от меня обстоятельствам), но могу сделать подсказку:
    1) организация требуемого импульса накачки (в вашем случае 200мкС и 4 мС прописано в скетче) обязательно через прерывания по таймеру (подпрограмма обработки прерываний)..
    2) регулировка чувствительности кнопками, должна быть реализована через внешние прерывания (подпрограмма обработки внешних прерываний)..
    .. и еще, если уж использовали микроконтроллер, то просто (в основной теле скетча) пропишите
    красивый многотональный звук (используйте условия и стандартную функцию "тон").. избавите Пирата от одного его существенного недостатка - раздражающего рева динамика..
    Вс, 29.03.2020, 15:01 | Сообщение # 5        
    -vlad-
    аватар
      Постов: 569   U 
    autoelectrician, Скетч, Вам писать ни кто не будет(на халяву).Принципиалку, по которой Вам нужно продвигаться прикрепляю:
    Я бы в таком направлении двигался и управление X9C104S возложил бы на ардуино,мне кажется это самое верное предложение.
    Файлы: 5267002.gif (44.1 Kb) · 104.pdf (235.1 Kb)
    Вс, 29.03.2020, 16:30 | Сообщение # 6        
    autoelectrician
    аватар
      Постов: 47   ОК 
    -vlad-, зря старались с обрисовкой фотографии, я там описал почему их в схеме к157уд2 и Arduino не указаны, а только точки соединений к ним
    Файлы: 3755856.jpg (158.2 Kb)
    Вс, 29.03.2020, 18:27 | Сообщение # 7        
    -vlad-
    аватар
      Постов: 569   U 
    autoelectrician, Повторюсь, скетч Вам писать ни кто не будет просто так, а в крации все зависит от напряжения которые вы будете указывать на ардуино,то есть изменение напряжения на выходе. Это все указывается в скетче при отрицательных импульсах, я же вам отправил даташит по микре.
    Пн, 30.03.2020, 10:16 | Сообщение # 8        
    atoll07
    аватар
      Постов: 574   U 
    -vlad-,
    Цитата -vlad- ()
    Скетч, Вам писать ни кто не будет

    ..в этом деле самое ценное - написать скетч самостоятельно smile
    autoelectrician,
    ..без мероприятий предложенных в пост № 4 вы не сможете объединить два скетча в одном Ардуино (кстати, какой используете?)..
    чтобы не потерять в чуйке, мое мнение - импульсы с выхода компаратора (ОР2) должны заводится на порт с внешним прерыванием (и обрабатываться программой обработки прерываний), так как опрос в цикле может пропускать короткие импульсы от компаратора (а это неизбежно снижает чуйку)..
    ..в дешевых ардуино, насколько мне помнится только 2 внешних прерывания.. sad
    Пн, 30.03.2020, 12:27 | Сообщение # 9        
    autoelectrician
    аватар
      Постов: 47   ОК 
    atoll07, я использую два Arduino nano, есть pro mini и uno, все они на ATmega328P
    Файлы: 8454636.jpg (183.4 Kb)
    Пн, 30.03.2020, 14:54 | Сообщение # 10        
    atoll07
    аватар
      Постов: 574   U 
    autoelectrician,
    ..во всех вами приведенных платах Ардуино используется контроллер - ATmega328, у которого:
    Внешние прерывания: выводы 2 и 3. Могут служить источниками прерываний, возникающих при фронте, спаде или при низком уровне сигнала на этих выводах. Для получения дополнительной информации см. функцию attachInterrupt().
    ..вот на эти входы (на 2 или 3) и нужно подать сигнал от компаратора, а управление кнопками уже тогда мутить программно (то есть без использования внешнего прерывания)... или другой вариант - использовать Ардуино Леонардо... (4 внешних прерывания)...
    Форум радиолюбителей » СХЕМЫ » МЕТАЛЛОИСКАТЕЛИ » МД импульсный на Arduino (МД импульсный на Arduino)
    • Страница 1 из 2
    • 1
    • 2
    • »
    Поиск:

    Внимание! Форум переехал на Tehnodium.ru



    © 2010-2022 "Форум Радиосхемы". All Rights Reserved  Почта  PDA