Возможно ли реализовать на Arduino управление двадцатью реле одновременно?

Logik
Offline
Зарегистрирован: 05.08.2014

Вобще нет перестраховки. 1.5A/4=0,375А в одну ножку. 0,375А*7=2,6А во всю микросхему, что больше пикового допустимого. Микросхема будет сильно грется, а возможно и не долго.

Eniedaplos
Offline
Зарегистрирован: 12.02.2015

Хорошо, я готов пойти на 1.5 / 5 = 0,3А  в одну ножку   0,3 * 7 = 2,1 А 

Плюс к этому нагрузка носит кратковременный характер и вероятность одновременного включения соседних соленоидов крайне мала. (Нет таких аккордов). 

Мне эта реализация кажется простой понятной и дешевой. 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

только про аккорды хотел сказать..... сами сказали

импульс на удар - думаю 100 mSec, а повтор удара - 200....300 mSec - скважность уже 3 !

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Logik пишет:

Вобще нет перестраховки. 1.5A/4=0,375А в одну ножку. 0,375А*7=2,6А во всю микросхему, что больше пикового допустимого. Микросхема будет сильно грется, а возможно и не долго.

корпус держит 3,5 А , предел 2,6 А - это для ноги 9 "общий вывод катодов защитных диодов"

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

в каком формате трэки пишутся, передаются ?

Logik
Offline
Зарегистрирован: 05.08.2014

15 корпусов ULN2003A это просто и дешево? Не знаю как с элементной базой в Ваших краях, но думаю найти  чтото типа такого ao4828 по цене до доллара можно, там 2 канала. А правильная схемотехника позволяет сократить число ключей за счет матричного включения, перенеся  нагрузку в программу, т.е. "вне стоимости" как для самоделки. Но это ИМХО, считать и решать только Вам.

 

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

может и чуть дороже варианта с транзисторами, но зато эксремально быстро и просто:

А вообще, хе-хе, все уже изобретено до нас:
http://www.youtube.com/watch?v=sR3xmof8rZY
http://www.youtube.com/watch?v=j2F-q6Jecdo

А если барабан добавить, вообще бомба получается: 
http://www.youtube.com/watch?v=KBRrM_sTaEw&index=2&list=RDg_hiz-Kx0kM
https://www.youtube.com/watch?v=lm435icmFSQ

vvadim
Offline
Зарегистрирован: 23.05.2012

Последнее видео - бомба.

Правда если часик послушать, то крышу наверно снесёт.

Eniedaplos
Offline
Зарегистрирован: 12.02.2015

Видео действительно забавные, я даже не находил их сам.  Мне почему-то нравится идея механизированных инструментов, и я бы хотел послушать механизированный симфонический оркестр, думаю не такие уж и высокие технлогии потребуются для реализации уровня не отличимого от игры живого оркестра.

А в целом вдохновился на механизацию металлофона, от прекрасных партий на этом инструменте у певицы: Princess Chelsea. 

Вот ее самая популярная песня и клип: http://www.youtube.com/watch?v=4TV_128Fz2g (Металлофоны правда тут не солируют)

В целом идея матричного подключения хороша..., если отойти от необходимости бить по нескольких пластинам одновременно, но боюсь я не отойду от этой идеи. Большого экономического эффекта не вижу..., и 15 корпусов меня почему-то не смущает.

Если подключать  AO4828 после регистра, требуется ли такая же обвязка, как при подключении напрямую?  

В местных радиотоварах  AO4828  доступен за 40 руб.  (ULN2003 - за 28 руб).  

 

в каком формате трэки пишутся, передаются ?

Пока что это тайна покрытая мраком. Я еще не знаю что такое программирование Arduino, и с чем я вообще столкнуть когда прикоснусь к этой теме... так что для начала светодиодами поморгаю, когда получу девайс..., а затем начну задавать вопросы )))

 

Logik
Offline
Зарегистрирован: 05.08.2014

Eniedaplos пишет:

 ... не отличимого от игры живого оркестра.

Если ставить вопрос так "соленоид vs двуногое" то прийдется заметно усложнять софт. Я в школьные годы играл на металофоне и ксилофоне, и наскоко помню, звук из одной пластины можна получить существенно разный в зависимости от силы удара, места удара на пластине, прямой удар или с "протяжкой" и т.д.   Чем то можна и пожертвовать, но отсутствие разной силы удара слышно сразу на соответствующей партии. Так же у живого человека меньше точность ритма и синхронность там разброс в десятки мсек, но тоже сразу заметно. Думаю софтово решаемы оба эти момента.

Eniedaplos пишет:

Если подключать  AO4828 после регистра, требуется ли такая же обвязка, как при подключении напрямую?  

В местных радиотоварах  AO4828  доступен за 40 руб.  (ULN2003 - за 28 руб).  

 

На прямую допускается, но лучше через небольшой резистор как здесь - http://mcu8.ru/wp-gull/mylinks/files/2011/06/nagr-mosfet-300x139.png. Я ставил 75 Ом Почему так? - есть тема на форуме о резисторе в цепи затвора.

Уже дешевле чем ULN2003, и плата меньше и греется слабей и ток через соленоид больший даст, т.к. ключ в открытом состоянии имеет меншее падение напряжение  т.е. сработает чотче.

Eniedaplos пишет:

В целом идея матричного подключения хороша..., если отойти от необходимости бить по нескольких пластинам одновременно

Отходить от "одновременности" не нужно. Нужно подумать о необходимой точности "одновременности" и выбрать правильную частоту сканирования. В общем сейчас куда ни глянь везде "одновременно" - значить с небольшим, допустимым разбросом по времени. Матричные светодиодные табло ведь обнавляются "одновременно"?  А там тысячи светодиодов а не 20 относительно медленных соленоидов. И делается все это для снижения количества управляющих выводов и ключей а это цена деталей, площадь платы, размер корпусов, число раземов и т.д.

 

Eniedaplos пишет:

в каком формате трэки пишутся, передаются ?

Пока что это тайна покрытая мраком.

Формат MIDI смотрите. Гнать его как есть в контролер врядли верно, но стартовать именно от него.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

каждый соленоид отдельно импульс питания 100 mS.

в матрице соленоид получит пачку импульсов шириной 100 mS, параметры импульсов заполнения зависят от частоты опроса матрицы.

как поведёт себя соленоид ?

Logik
Offline
Зарегистрирован: 05.08.2014

SU-27-16 пишет:
каждый соленоид отдельно импульс питания 100 mS. в матрице соленоид получит пачку импульсов шириной 100 mS, параметры импульсов заполнения зависят от частоты опроса матрицы. как поведёт себя соленоид ?
Поведет себя образцево. Не надо боятся питать индуктивность импульсно (это не переменный ток!), она накапливает енергию в магнитном поле, а как туда енергия добавлятся будет - второстепенно. Получится питание импульсным током, т.е ток 1/3 периода опроса матрицы (для варианта матрицы 8*3) наростает и 2/3 медленно снижается т.к. накопленная енергия магнитного поля тратится на разгон довольно инерционного якоря. Ток импульсный, не переменный, энергия идет однонаправленно от цепи питания в енергию магнитного поля и в кинетическую энергию якоря. Из предположения, что не достигнем насыщения получаем что при прочих равных якорь получит енергию в 3 раза меньше, а скорость в 1,7 раза. Т.е. стукнет пластину немного слабей и на десяток милисекунд позже. А учитывая потери, которые наростают с увеличением тока и скорости разница скоростей окажится еще менше. Учитывая падение напряжения на открытом биполярнике 1.5В против 0.1В на MOSFET-е разница будет ещё менше. А возможность поднять ток через MOSFET позволит легко компенсировать различие. В качестве подтверждения слов можна сослатся на распостраненность решения импульсного питания соленоидов - https://www.google.com.ua/search?q=%D1%88%D0%B8%D0%BC+%D1%81%D0%BE%D0%BB...

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

согласен, уболтал :)

Logik
Offline
Зарегистрирован: 05.08.2014

:)

KVadik
KVadik аватар
Offline
Зарегистрирован: 15.06.2014

SU-27-16 пишет:

минимальная ардуина - МК, кварц, 2 кондёра, резистор, кондёры по питанию ( МК лучше брать с прошитым загрузчиком )

ну "минимальная ардуина" это голый МК, остальное выходит за рамки минимально необходимого :)

Eniedaplos
Offline
Зарегистрирован: 12.02.2015

Импульсное питание соленоидов, матричное подключение, -  я черт побери свой первый  проект  делаю, исключительно для развлечения, и в целом очень далек от электроники. И только мне казалось что у меня в голове выстроилась отличная понятная схема реализации... и вы ее рушите =)

Если вы правда хотите чтобы я сделал так, то Вам нужно нарисовать для меня схему, и объяснить принципы программирования такой схемы. 

А в целом я удивлен и выражаю огромную благодарность за столь ярое желание форумчан найти лучший вариант реализации моей идеи.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

всё правильно :

шалабушки уже закупили все ?

как сделать - вам решать, а схему и рассказать - это можно :)

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

схема матричная на 25 соленоидов, верхние ключи - фуфульные ( кто может - дайте ссылку на правильное построение верхних ключей, пожста )

можно и по другому построить.... это просто пример для ТС

Eniedaplos
Offline
Зарегистрирован: 12.02.2015

Вот, купил пока что комплект, для изучения программирования, поморгать диодами.  UNL2003 взял потестить.... регистры к сожалению оказались на другом складе... их в особенности хочется изучить, как менее понятный элемент.

UNO - за 350 руб, в наличии оказалась лишь в исполнении с запаянным МК, но это не большая беда. 

Что можно про UNO сказать? А то цена меня все таки смущает..., как-то дешего для розничной продажи.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

поздравляю !!!!!! :)

что сказать ? главное чобы работала :)

http://arduino.ru/Tutorial/registr_74HC595

Eniedaplos
Offline
Зарегистрирован: 12.02.2015

Боже мой, зачем мне металлофон..., светодиоды так прекрасно моргают ))))))))

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012
Eniedaplos
Offline
Зарегистрирован: 12.02.2015

SU-27-16 пишет:

схема матричная на 25 соленоидов, верхние ключи - фуфульные ( кто может - дайте ссылку на правильное построение верхних ключей, пожста )

можно и по другому построить.... это просто пример для ТС

Я как понимаю тут подразумевается матрица 2х12, хочу еще увидеть вариант Logic'a, где он предлагает:

Матрицу  3х8  и  один 74HC595N к нему 8 MOSFET-ов еще 3 биполярника и 3MOSFET-а для организации матрицы (т.е. коммутировать "+" для соленоидов). И немного искуства программирования по вкусу.

А я вообще вижу матрицу 6х4 самой эффективной. Прав ли я в том что для ее управления можно обойтись 10-ю Мосфетами?

KVadik
KVadik аватар
Offline
Зарегистрирован: 15.06.2014

Eniedaplos пишет:

Что можно про UNO сказать? А то цена меня все таки смущает..., как-то дешего для розничной продажи.

Имхо, нормально, китайцы такие по 2.8 бакса в розницу продают. Работают они стабильно.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Я как понимаю тут подразумевается матрица 2х12

нет, это 5х5

А я вообще вижу матрицу 6х4 самой эффективной. Прав ли я в том что для ее управления можно обойтись 10-ю Мосфетами?

1х24 - 24MOSFET ,  2х12 - 12М+2КЛЮЧ+ , 3х8 - 8М+3К , 4х6 - 6М+4К , 5х5 - 5М+5К >>> 4х6 и 5х5 минимальные, надо 10 ключей , варианты земляных ключей уже обсуждены :)

три ключа по + с управлением от ардуины , регистр для управления земляными ключами - это заберёт у ардуины 6 пинов. для уменьшения задействованных пинов до трёх можно применить второй регистр для три ключа по +

 

в схеме 5х5 убрать два верхних правых ключа и добавить три мосфета внизу - будет вам 3х8

кто может - дайте ссылку на правильное построение верхних ключей, пожста

 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

И немного искуства программирования по вкусу.

программировать #20 очень легко ( позиционный код ), и сами справитесь, а #68 - посложнее будет для начинающего :(

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

сильнее не упростить :) , а вот улучшить - это от опыта и знаний зависит :)

//==========================================================================================================
#define clkReg 8   // такты
#define latchReg 9 // защёлка
#define dataReg 10 // данные
byte record[]={B11111111,B11111111,B11111111,
               B00000000,B00000000,B00000000,
               B00011000,B00011000,B00011000,
               B00000000,B00000000,B00000000,
               B01111000,B01111000,B01111000,
               B00000000,B00000000,B00000000,
               B11111111,B00000000,B00000000,
               B00000000,B00011000,B00011000,
               B00000000,B00011000,B00011000,
               B11111111,B11111111,B11111111};
#define durationShock 100 // импульс на соленоиды 100 mS - НАПРИМЕР
#define tempShock 1000    // темп ударов - 1 секунда
//==========================================================================================================
void setup()
{                
  pinMode(clkReg,OUTPUT);
  pinMode(latchReg,OUTPUT);
  pinMode(dataReg,OUTPUT);
}
//==========================================================================================================
void loop()
{
// первый аккорд
  digitalWrite(latchReg, LOW); // устанавливаем синхронизацию "защелки" на LOW
  shiftOut(dataReg, clkReg, MSBFIRST,record[0]); // передаем на соленоиды 24.....17
  shiftOut(dataReg, clkReg, MSBFIRST,record[1]); // передаем на соленоиды 16.....9
  shiftOut(dataReg, clkReg, MSBFIRST,record[2]); // передаем на соленоиды 8.....1
  digitalWrite(latchReg, HIGH); //"защелкиваем" регистр, тем самым устанавливая значения на выходах
  delay(durationShock); // удар
// отпускаем соленоиды
  digitalWrite(latchReg, LOW); // устанавливаем синхронизацию "защелки" на LOW
  shiftOut(dataReg, clkReg, MSBFIRST,0); // передаем на соленоиды 24.....17
  shiftOut(dataReg, clkReg, MSBFIRST,0); // передаем на соленоиды 16.....9
  shiftOut(dataReg, clkReg, MSBFIRST,0);  // передаем на соленоиды 8.....1
  digitalWrite(latchReg, HIGH); //"защелкиваем" регистр, тем самым устанавливая значения на выходах
  
  delay(tempShock);
  
// второй аккорд
  digitalWrite(latchReg, LOW);
  shiftOut(dataReg, clkReg, MSBFIRST,record[3]); // менять здесь индекс
  shiftOut(dataReg, clkReg, MSBFIRST,record[4]); // менять здесь индекс
  shiftOut(dataReg, clkReg, MSBFIRST,record[5]); // менять здесь индекс
  digitalWrite(latchReg, HIGH);
  delay(durationShock);
  digitalWrite(latchReg, LOW);
  shiftOut(dataReg, clkReg, MSBFIRST,0);
  shiftOut(dataReg, clkReg, MSBFIRST,0);
  shiftOut(dataReg, clkReg, MSBFIRST,0);
  digitalWrite(latchReg, HIGH);
  
  delay(tempShock);
  
// третий аккорд
  digitalWrite(latchReg, LOW);
  shiftOut(dataReg, clkReg, MSBFIRST,record[6]); // менять здесь индекс
  shiftOut(dataReg, clkReg, MSBFIRST,record[7]); // менять здесь индекс
  shiftOut(dataReg, clkReg, MSBFIRST,record[8]); // менять здесь индекс
  digitalWrite(latchReg, HIGH);
  delay(durationShock);
  digitalWrite(latchReg, LOW);
  shiftOut(dataReg, clkReg, MSBFIRST,0);
  shiftOut(dataReg, clkReg, MSBFIRST,0);
  shiftOut(dataReg, clkReg, MSBFIRST,0);
  digitalWrite(latchReg, HIGH);
  
  delay(tempShock);
  
// четвёртый аккорд
// ...........................
// десятый аккорд

  delay(10000); // стоп на 10 секунд и всё сначала
}

 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

а улучшать можно доооооолго


//==========================================================================================================
#define clkReg 8   // такты
#define latchReg 9 // защёлка
#define dataReg 10 // данные
byte record[]={B11111111,B11111111,B11111111,
               B00000000,B00000000,B00000000,
               B00011000,B00011000,B00011000,
               B00000000,B00000000,B00000000,
               B01111000,B01111000,B01111000,
               B00000000,B00000000,B00000000,
               B11111111,B00000000,B00000000,
               B00000000,B00011000,B00011000,
               B00000000,B00011000,B00011000,
               B11111111,B11111111,B11111111};
#define durationShock 100 // импульс на соленоиды 100 mS - НАПРИМЕР
#define tempShock 1000    // темп ударов - 1 секунда
//==========================================================================================================
void setup()
{                
  pinMode(clkReg,OUTPUT);
  pinMode(latchReg,OUTPUT);
  pinMode(dataReg,OUTPUT);
}
//========= процедура-подпрограмма реализации одного аккорда ===============================================
void Shock( byte chord)
{
  digitalWrite(latchReg, LOW);
  shiftOut(dataReg, clkReg, MSBFIRST,record[  chord + 0  ]);
  shiftOut(dataReg, clkReg, MSBFIRST,record[  chord + 1  ]);
  shiftOut(dataReg, clkReg, MSBFIRST,record[  chord + 2  ]);
  digitalWrite(latchReg, HIGH);
  delay(durationShock);
  digitalWrite(latchReg, LOW);
  shiftOut(dataReg, clkReg, MSBFIRST,0);
  shiftOut(dataReg, clkReg, MSBFIRST,0);
  shiftOut(dataReg, clkReg, MSBFIRST,0);
  digitalWrite(latchReg, HIGH);
  delay(tempShock);
}
//==========================================================================================================
void loop()
{
  for(byte n=0;n<10;n++)    // цикл для 10-ти аккордов
  {
    Shock(n);
  }
  delay(10000);
}
//==========================================================================================================
Logik
Offline
Зарегистрирован: 05.08.2014

SU-27-16 пишет:

кто может - дайте ссылку на правильное построение верхних ключей, пожста

Да пожалуйста Вам - http://i270.photobucket.com/albums/jj118/new_clear_days/circuits/pchwnpn....

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

спасибо ! какой полевик предпочтительнее ?

Logik
Offline
Зарегистрирован: 05.08.2014

SU-27-16 пишет:

спасибо ! какой полевик предпочтительнее ?

Предпочтительней краденый :D Не в такой задаче приборами перебирать. Лиш бы дешовый, по току и напряжению проходил и доступен был. Биполярник - KT315 или его потомки.

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

есть успехи?

Eniedaplos
Offline
Зарегистрирован: 12.02.2015

В целом с Ардуинкой побаловался, всякие программы на бегущие огни попробовал... работу с кнопками.

Сейчас делаю механику, точнее как сделать придумал, материалы потихоньку необходимые достаю... 

Схемы подключения которые предлагают SU-27-16 и Logik по прежнему не очень для меня понятны.  Т.е. по всей видимости либо я откажусь от матричного подключения, либо кто-нибудь мне нарисует готовую схему от начала до конца, со всеми нюансами.

 

Logik
Offline
Зарегистрирован: 05.08.2014

Так спрашивайте! А как хорошая иллюстрация принципа работы матрицы - http://www.poprobot.ru/home/ledmatrica8x8iregistry74hc164. И помните, что т.к. все работает очень быстро, то кажется, что все происходит одновременно. Вам скорей всего просто трудно перейти к динамичности процесса, это естественно, все сразу об это спотыкались. 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

схемы нарисованы для обоих вариантов ! вам выбирать....

для простейшей схемы и код вам написал.....

Logik - Так спрашивайте!

Eniedaplos
Offline
Зарегистрирован: 12.02.2015

Я обязательно спрошу Вас.. .когда все дойдет до реального дела..., просто еще сам кажется недостаточно сил потратил чтобы вникнуть в предлагаемые схемы,  а пока что вот,  свежеиспеченные соленоиды:

Напряжение собираюсь на них подавать в диапазоне от 12 до 20 Вольт, определюсь по ходу тестирования на металлофоне.

Итого мы имеем ток:   от 0,8А  до 1,3А

На токе 1А, за 3 минуты нагреваются до 100 гр.C. Считаю нормальным, для режима работы с очень высокой скважностью, большее количество наматывать жалко денег. 

Себестоимость по материалам: 60 руб/шт.

R = 15 Ом, w = 1400 витков, провод = 0,315мм,

внутренний d = 10мм,  наружный D = 21мм, длина = 40мм.

Внутренняя и внешняя оболочка:  фторопластовая (тефлоновая) Лента ФУМ.

Наматываю дрелью, витки считаю велосипедным одометром.

 

Eniedaplos
Offline
Зарегистрирован: 12.02.2015

Версия робота еще достаточно сырая, но он уже работает:

http://www.youtube.com/watch?v=ZvFdzUpWKBQ&feature=youtu.be

Треки пока что записываются в виде одномерного массива, вот ссылка на логику записи, если кому-то интересно.

Все реализовано на К1109КТ22 (аналог ULN2003)   и  регистрах 74HC595N, без использования матричного подключения.

Импульс запуска соленоида:  20 мс

Проблемы:  

1. В городе кончился провод ПЭТВ-2  на 0,315 мм, так что пока что хватило только на 18 соленоидов.

2. Есть некоторое дребезжание, которое надеюсь в ближайшее время устраню.

 

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Eniedaplos пишет:

Версия робота еще достаточно сырая, но он уже работает:

http://www.youtube.com/watch?v=ZvFdzUpWKBQ&feature=youtu.be

Треки пока что записываются в виде одномерного массива, вот ссылка на логику записи, если кому-то интересно.

Все реализовано на К1109КТ22 (аналог ULN2003)   и  регистрах 74HC595N, без использования матричного подключения.

Импульс запуска соленоида:  20 мс

Проблемы:  

1. В городе кончился провод ПЭТВ-2  на 0,315 мм, так что пока что хватило только на 18 соленоидов.

2. Есть некоторое дребезжание, которое надеюсь в ближайшее время устраню.

 

За один только внешний вид устройства снимаю шляпу!

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

да, классно !

Есть некоторое дребезжание, которое надеюсь в ближайшее время устраню.
чего ? и когда ( в какой момент времени ) ?

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

а зачем резинки-поводки на каждый соленоид ? вибрации ненужные устранить ?

когда барабан добавите ? :)

Eniedaplos
Offline
Зарегистрирован: 12.02.2015

SU-27-16 пишет:

а зачем резинки-поводки на каждый соленоид ? вибрации ненужные устранить ?

Резинки это собственно то, что удерживает штоки в начальном положении, и возвращает их туда после удара. Изначально я хотел пружины ставить... но осознав что пружин с нужной мне жесткостью я не найду, пришлось остановиться на доступных канцелярских резинках.

После удара... шток некоторое время колеблется, естественно я это предвидел и запроектировал ограничительную планку сверху с приклеенным уплотнителем. Но планка в виду малой ширины оказалась слишком гибкой, а уплотнитель слишком жестким, в результате чего.... колебания не гасятся, а наоборот передаются всем соседним штокам. В момент пока шток колеблется он соприкасается своими стенками с отверстиями в корпусе, от чего и создается неприятный посторонний звук.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

две или три резинки - не пробовали ? ....настройка, блин....

Eniedaplos
Offline
Зарегистрирован: 12.02.2015

Всяко с резинками пробовал, большее количество резинок приводит к меньшей силе удара, и меньшему ходу штока (т.е. он не может набрать достаточной кинетической энергии для удара).

Ввиду неидеальности всей конструкции (соленоиды, штоки, резинки), при равной длине импульса, удар получается разным, поэтому собираюсь сделать настроечный режим, который будет позволят настривать и записывать в EEPROM длину импульса для каждого соленоида. 

И вопрос:

Правильно ли я понимаю, что флеш-память контроллера  (32кб на UNO)  нельзя использовать для хранения переменных, и доставать их в оперативную память во время выполнения скетча?

Хотел туда залить массивы с треками. Но по всей видимости без SD карты не обойтись.

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

можно использовать внешнюю память типа DS2431 и читать из нее кусками, например, по 64 ноты

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Ввиду неидеальности всей конструкции (соленоиды, штоки, резинки), при равной длине импульса, удар получается разным, поэтому собираюсь сделать настроечный режим, который будет позволят настривать и записывать в EEPROM длину импульса для каждого соленоида.

...по какой схеме вы реализовали управление соленоидами ? через сдвиговые регистры ? ( уже прочитал :)    )
тогда программно невозможно сделать длительность импульса разной для каждого соленоида. между регистрами и ключами можно поставить одновибраторы с управлением длительностью импульса подстроечным потенциометром....

bwn
Offline
Зарегистрирован: 25.08.2014

Eniedaplos пишет:

И вопрос:

Правильно ли я понимаю, что флеш-память контроллера  (32кб на UNO)  нельзя использовать для хранения переменных, и доставать их в оперативную память во время выполнения скетча?

Хотел туда залить массивы с треками. Но по всей видимости без SD карты не обойтись.

Не скажу с полной уверенностью, но если массивы объявить как const , они окажутся именно во флэш. Правда будет геммор с перезаписью (только вместе со скетчем). Предыдущее предложение наверно более кошерное.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

.....замена одновибраторов - подтяжка молоточков пружинкой вверх, верхнее крепление пружинки к болту - крутим болт = изменяем преднатяжку пружины ( колок )

столько гаек на верхней части молоточков - увеличение инерционности :( , или какой-то тайный смысл есть ?

"Но планка в виду малой ширины оказалась слишком гибкой, а уплотнитель слишком жестким, в результате чего.... колебания не гасятся"
...10-ти мм поролон - не пробовали ?

Eniedaplos
Offline
Зарегистрирован: 12.02.2015

bwn пишет:

Не скажу с полной уверенностью, но если массивы объявить как const , они окажутся именно во флэш. 

В действительности это ошибочное суждение.

Однако записать переменные на внутреннюю flash-память все же можно, для этого нужна библиотека: avr\pgmspace.h и атрибут PROGMEM.    Статья с описанием как это работает.

SU-27-16 пишет:

..по какой схеме вы реализовали управление соленоидами ? через сдвиговые регистры ? 
тогда программно невозможно сделать длительность импульса разной для каждого соленоида. 

Не понимаю в чем Вы увидели проблему использования сдвиговых регистров, но я реализовал настроечный режим через который задал индивидуальную длину импульса для каждого соленоида и сохранил ее в EEPROM

В цикле проверяется включен ли какой-нибудь соленоид, если включен  проверяем не кончилось ли время включения конкретно этого соленоида, если кончилось выключаем соленоид.

Просто к регистру была написана функция через которую ноги включаются и выключаются.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

т.е. для воспроизведения аккорда тремя соленоидами грузим регистры 111 и потом ещё три загрузки регистров 101 , 001 , 000 ?
соответственно через 17 , 19 , 20 mS в зависимости от значения в EEPROM ?
круто ! :)
.....а я зациклился на одной длительности для всех соленоидов :(

Eniedaplos
Offline
Зарегистрирован: 12.02.2015

SU-27-16 пишет:

т.е. для воспроизведения аккорда тремя соленоидами грузим регистры 111 и потом ещё три загрузки регистров 101 , 001 , 000 ?
соответственно через 17 , 19 , 20 mS в зависимости от значения в EEPROM ?
круто ! :)
.....а я зациклился на одной длительности для всех соленоидов :(

Да, все в точности как Вы описали =)

Ну и во многом мне помогла лучшая на мой взгляд статья о работе со сдвиговым регистром.