РАДИОСХЕМЫ



РАДИОФОРУМЫ


СХЕМЫ И СТАТЬИ



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

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

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

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

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

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



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