|
МД импульсный на Arduino
| |
| Вс, 29.03.2020, 07:46 | Сообщение # 1
|
autoelectrician
Постов: 47
ОК |
МД импульсный на Arduino принцип схемы от пирата
Но есть одно но, надо объединить два разных скетча, я в Arduino сколько не пытался не моё, может кому пригодится и переделают эти скетчи
Там нужно добавить управление кнопочным потенциометром 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, и почему цифровой потенциометр ? чтоб до точности иногда можно была за грубить чуйку и тд
Потом когда скетч будет готов и какие пины будут задействованы, сделаю разводки дорожек и тд, а если нет то нет
Этот вариант больше подойдёт для начинающих юных учеников любителей по сборке на Arduino залить скетч и воткнуть ножками на плату урезоного пирата
|
|
| Вс, 29.03.2020, 08:45 | Сообщение # 2
|
melan
Постов: 999
Друзья |
Цитата autoelectrician ( ) обрубок от пирата И зачем??? Разве как лабораторная работа.
|
|
| Вс, 29.03.2020, 09:28 | Сообщение # 3
|
apeks
Постов: 2197
Друзья |
питон есть теперь надо пиарду ардуина даже для клона "жирная"
|
|
| Вс, 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 возложил бы на ардуино,мне кажется это самое верное предложение.
|
|
| Вс, 29.03.2020, 16:30 | Сообщение # 6
|
autoelectrician
Постов: 47
ОК |
-vlad-, зря старались с обрисовкой фотографии, я там описал почему их в схеме к157уд2 и Arduino не указаны, а только точки соединений к ним
|
|
| Вс, 29.03.2020, 18:27 | Сообщение # 7
|
-vlad-
Постов: 569
U |
autoelectrician, Повторюсь, скетч Вам писать ни кто не будет просто так, а в крации все зависит от напряжения которые вы будете указывать на ардуино,то есть изменение напряжения на выходе. Это все указывается в скетче при отрицательных импульсах, я же вам отправил даташит по микре.
|
|
| Пн, 30.03.2020, 10:16 | Сообщение # 8
|
atoll07
Постов: 574
U |
-vlad-,
Цитата -vlad- ( ) Скетч, Вам писать ни кто не будет ..в этом деле самое ценное - написать скетч самостоятельно autoelectrician, ..без мероприятий предложенных в пост № 4 вы не сможете объединить два скетча в одном Ардуино (кстати, какой используете?).. чтобы не потерять в чуйке, мое мнение - импульсы с выхода компаратора (ОР2) должны заводится на порт с внешним прерыванием (и обрабатываться программой обработки прерываний), так как опрос в цикле может пропускать короткие импульсы от компаратора (а это неизбежно снижает чуйку).. ..в дешевых ардуино, насколько мне помнится только 2 внешних прерывания..
|
|
| Пн, 30.03.2020, 12:27 | Сообщение # 9
|
autoelectrician
Постов: 47
ОК |
atoll07, я использую два Arduino nano, есть pro mini и uno, все они на ATmega328P
|
|
| Пн, 30.03.2020, 14:54 | Сообщение # 10
|
atoll07
Постов: 574
U |
autoelectrician, ..во всех вами приведенных платах Ардуино используется контроллер - ATmega328, у которого: Внешние прерывания: выводы 2 и 3. Могут служить источниками прерываний, возникающих при фронте, спаде или при низком уровне сигнала на этих выводах. Для получения дополнительной информации см. функцию attachInterrupt(). ..вот на эти входы (на 2 или 3) и нужно подать сигнал от компаратора, а управление кнопками уже тогда мутить программно (то есть без использования внешнего прерывания)... или другой вариант - использовать Ардуино Леонардо... (4 внешних прерывания)...
|
|
Внимание! Форум переехал на Tehnodium.ru
|
|