Технический форум по робототехнике.
ilalexey » 24 фев 2017, 17:40
dimamichev писал(а):Вы когда нибудь..
Чё/ту ху?
Натурально "Диалог слепых с глухими..."
Тоже без цитирования не понимаю, кому адресовано. Бывалые говорят, что разобраться можно, но так и не осилил.
dimamichev » 24 фев 2017, 17:49
Вопросов нет.
Dmitry__ » 24 фев 2017, 17:49
Хорошо, будем считать что все в коматозе, повтор:
Dmitry__ писал(а): ответь на простой вопрос: Нафига ты пытаешься сэкономить пины?
ilalexey » 24 фев 2017, 17:51
dimamichev писал(а):Вы когда нибудь сами делали от нуля до готового?
Если этот вопрос был мне адресован, то нет, не делал и да, всё делаю всегда с нуля и до конца. Странный вопрос.
dimamichev » 24 фев 2017, 20:40
Уф! Попробую ещё раз:следующий шаг такой (в моих обучалках программированию на Ардуине)собираю отдельные простые конструкции воедино на плату (поэтому экономия выводов), прописываю для каждой части свой скетч (хотя бы для loop()), соединяю в одно целое через управление, например кнопкой или таймером (отрабатываю команды goto и return)... возникнут "дурацкие вопросы" - спрошу.
Добавлено спустя 2 часа 31 минуту 32 секунды:Ну вот, подправил схему, чтобы исключить одновременное нажатие кнопок - нажали и ничего не звучит, отпустили лишние - звучит оставшиеся нота. Заодно попробовал и goto. Вывод - три вывода многовато для пищалки ЭМИ. Да и нот надо бы 25... хотя супруга сыграла и "в городе дождь" и "снова мы оторваны от дома" короче ясно к чему...
- Код: Выделить всё • Развернуть
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Arduino UNO
//
////////////////////////
//
//программа ЭМИ вариант 3 с запретом нажатия более 1 кнопки //
unsigned int n=0;
unsigned int x=0;
unsigned int x1=0;
int tabl [11] ={0,261,293,329,349,392,
440,494,523,587,659}; // зашифрованные данные нот – их частоты
void setup()
{
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
pinMode(A0, INPUT);
pinMode(A1, INPUT);
}
void loop()
{
metka:
x1=analogRead(A1);
if ( x1>=106) {goto metka;}// блокировка при нажатии более 1 кнопки
x=analogRead(A0); n=map(x, 0, 1025, 0, 11);
if ( n>0) {tone (13, tabl[n],10);} // исполнение вызванной ноты
else { noTone(13);}
}
//
// Конец /
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- Вложения
-

Madf » 24 фев 2017, 20:58
Предлагаю
dimamichev перейти на Attiny85 с таким экономичным подходом.

Dmitry__ » 24 фев 2017, 21:50
dimamichev писал(а):Уф! Попробую ещё раз:следующий шаг такой (в моих обучалках программированию на Ардуине)собираю отдельные простые конструкции воедино на плату (поэтому экономия выводов)
Это не ответ. Ты не понимаешь, что из-за экономии пинов ходишь по граблям. На твоей дуине есть минимум 16 пинов, для пианино выводов хватает. Зачем тебе на пианино такие перделки как сварочный аппарат, металлоискатель, GSM модем, автосигнализация, жонглер в цирке? Колич. пинов - есть такой же расходник как и периферия контроллера, используй все по возможности. Собери
матричную клавиатуру и не насилуй людям мозг. Для синтезаторов звука лучше думать о выходе на ШИМ. Или о прямом синтезе синусоиды (dds) табличным способом, а не о жонглерах в цирке...
dimamichev » 25 фев 2017, 18:35
Ну вот, вариант со всеми условиями

:многоголосный ЭМИ. Идея проста, на каждый вывод кнопка и динамик, а программно своя нота... и будет чистое многоголосие (даже не синтез звука).760 (из скетча)это длительность в микросекундах логического уровня на выходе для ноты "ми" второй октавы...И кнопки абсолютно независимы и выводы все заняты и команда tone()не нужна и подлинное многоголосие...Даже каждая новая нота добавляется в скетч простым копированием с изменением индексов, значения длительности наличия данного логического уровня и сменой номера вывода...Красота...(проверял на трёх нотах).
- Код: Выделить всё • Развернуть
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Arduino UNO
//
////////////////////////
//
// Программа звукового сигнала ноты «ми» 2 октавы /
//
long i = 0; // вводим переменную, для хранения считываемого времени
long n = 0; // вводим переменную для хранения предыдущего значения времени
void setup()
{
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
}
void loop()
{
i= micros(); //присваиваем переменной текущее время
if (i - n >=760) // если разница предыдущего значения и текущего…
{
digitalWrite(13,! digitalRead (13)); //инвертируем состояние вывода
n=i; // заменяем предыдущее значение текущим
}
}
//
// Конец /
//
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- Вложения
-

dimamichev » 27 фев 2017, 21:13
Созрел до "беамардуино" (да простит меня Мегабизон!). Конструктивно хочу выбрать промежуточное меж указанных картинок...Пока без использования аналоговых входов, просто "жизнь бота по таймеру в трёх подпрограммах" (скетч - пример смены частоты звука со временем). Планирую два светодиода, два мотора от CD-рома, динамик, питание от солевых... Возник вопрос - допустимо ли питание платы от 6 Вольт через пару диодов (подача на +5V и GND)?
- Код: Выделить всё • Развернуть
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Arduino UNO
//
////////////////////////
//
// Программа проба команды goto /
//
long y1 = 0;
long y2 = 0;
void setup()
{
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
}
void loop()
{
metka0: // 1 фрагмент программы
y2=millis();
if (y2-y1<=2000)
{tone(13,200); //фрагмент программы - содержание// goto metka0;}
else {y1=y2;goto metka1;}
metka1: // 2 фрагмент программы
y2=millis();
if (y2-y1<=2000)
{tone(13,400); // фрагмент программы - содержание// goto metka1;}
else {y1=y2;goto metka2;}
metka2: // 3 фрагмент программы
y2=millis();
if (y2-y1<=2000)
{tone(13,600);// фрагмент программы - содержание// goto metka2;}
else {y1=y2; goto metka0;}
}
//
// Конец /
//
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- Вложения
-

-

dimamichev » 02 мар 2017, 15:06
Прочитал на одном из сайтов (edurobots.ru›arduino-uno)такое:• Vin предоставляет тот же вольтаж, что используется для питания платформы. При подключении через USB будет равен 5 В.
Не совсем понимаю как? (если смотреть на схему) - или всё правильно?
- Вложения
-

Angel71 » 02 мар 2017, 16:01
Madf » 02 мар 2017, 16:16
dimamichev писал(а):или всё правильно?
Естественно нет. Vin - это вход для идеологически высокого напряжения (больше 5В), стаб там как раз делает это напряжение (5В). Можно сказать так, подавая на Vin более высокое напряжение, на USB можно получить 5В. Включать одновременно то и другое - не советую (выйдет доп.нагрузка на стабилизационные способности обеих систем, что может привести к плачевным результатам).
dimamichev » 02 мар 2017, 17:24
Madf, вопрос по схеме - если подать через vin 6 Вольт, на стабилизатор, мимо входного диода, на выходе стабилизатор будет работать корректно? Конечно я не собираюсь подавать одновременно два напряжения в плату...
Ангел,! Доброй души человек! Я не делал готовое изделие, я отрабатывал "детские алгоритмы" для себя и других, таких же как и я. Сын, дочь, супруга (все с музыкалкой за спиной) попищали на кнопках узнаваемые произведения, поигрались, сказали gut мальчик - всё! Схема разобрана. Конечно я буду расти, до меги и т.д., но не так быстро. Программу, чтобы "играла как в роликах" я сейчас не напишу. Знаний не хватает. Одними командами "включи - выключи" такого звучания ноты не добьюсь.
Dmitry__ » 02 мар 2017, 17:32
dimamichev писал(а):Madf, вопрос по схеме - если подать через vin 6 Вольт, на стабилизатор, мимо входного диода, на выходе стабилизатор будет работать корректно?
Отвечу за Madf.
Ну а почему нет? Ты работал со стабилизаторами раньше? Все что в диапазоне входных напряжений и мощностей стабилизатора - будет работать.
С 6-ю вольтами надо уточнить, обычно стабилизаторы требуют 2v разницы между входом и выходом, т.е. надо давать > 7 вольт. Есть стабилизаторы low drop, они могут работать с разницей напряжений в 0.1 вольт...
dimamichev » 02 мар 2017, 17:53
Работал мало, большинство конструкций с батареечным питанием... поигрался три минуты, лежит три месяца... такая схема эксплуатации. Просто пишут, что предел нижний для внешнего питания 6 Вольт (но это же в "истинных Ардуино", а не китайских), вот и подумал, что через vin сэкономлю падение напряжения на защитном диоде.
Добавлено спустя 2 минуты 19 секунд:
Или напрямую в схему, через один, два "понижающих" диода... Вот какие были мысли для питания "беамардуино".