Вот, подправил скетч, чтобы танцевал в ритмично-динамичных местах композиции, приедет сын, будем настраивать (баловаться) под "правильную музыку" в скетче "правильные числа".
Старшим товарищам понравилось (отредактировали вариант описания конструкции за сутки - второй раз так за многие десятки публикаций), но мягко намекнули про фотогеничность индикатора... Вопрос,есть ли "места хорошие" где под заказ (малкосерийный)"отольют" индикатор в SMD варианте? За терпимые деньги, или маниловщина в чистом виде?
Код:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Arduino UNO
//
////////////////////////
//
//программа акустического переключения танцующего человечка//
unsigned int x=0;
unsigned int k=0;
unsigned int i=0;
unsigned int z=0;
long y1=0;
long y2=0;
int tabl[120]={1,1,0,0, 0,0,0,0, 1,1,0,0, 0,0,0,0, 0,0,1,1, 0,0,0,0, 0,0,1,1, 1,1,0,0, 0,0,1,1, 1,1,0,0,
1,0,1,0, 0,1,0,1, 1,0,1,0, 0,1,0,1, 1,1,1,1, 0,0,0,0, 1,1,1,1, 0,1,1,0, 1,0,0,1, 0,0,0,0,
0,1,0,0, 0,0,0,0, 1,0,0,0, 0,0,0,0, 0,1,0,0, 0,0,0,0, 1,0,0,0, 0,0,0,0, 1,0,1,0, 0,1,0,1};
void setup()
{
pinMode(6, OUTPUT); //канал сигнала для левой руки /
digitalWrite(6,LOW);
pinMode(7, OUTPUT); //канал сигнала для правой руки /
digitalWrite(7,LOW);
pinMode(8, OUTPUT); //канал сигнала для левой ноги /
digitalWrite(8,LOW);
pinMode(9, OUTPUT); //канал сигнала для правой ноги /
digitalWrite(9,LOW);
pinMode(A0, INPUT); // подключение датчика/
}
void loop()
{
x=analogRead(A0);
if (x<=350){y1=millis();}//если звуковой сигнал получен...
if (x>=750){y2=millis();}
if (y1-y2>=200)
{
for (k=6;k<=9;k++)
{
if(i>=120){i=0;}
z=tabl[i];
digitalWrite(k,z);//по таблице (массиву) меняем логическое состояние выходов...
i++;
}
y1=y2; delay(200);
}
}
//
// Конец /
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////