Немного не в тему (пока не добрался до гаража, где хранятся кондёры): пытался запилить музыкальную шкатулку на дигиспарке (в подарок дочери на скорую днюху), вдохновившись видюхой про имперский марш на attiny85. Нашел код, залил в дигиспарк- не работает... При этом тот же код, залитый в нано- работает без проблем. Есть соображения по этому поводу?
const int speakerPin = 1; // Spealer is attached to the digital pin 1
// frequencies
const int c = 261;
const int d = 294;
const int e = 329;
const int f = 349;
const int g = 391;
const int gS = 415;
const int a = 440;
const int aS = 455;
const int b = 466;
const int cH = 523;
const int cSH = 554;
const int dH = 587;
const int dSH = 622;
const int eH = 659;
const int fH = 698;
const int fSH = 740;
const int gH = 784;
const int gSH = 830;
const int aH = 880;
// Beeps <ton> frequency for <time> miliseconds with a small pause to separate
void beep(int ton, int time)
{
tone(10, ton, time);
delay(time + 20);
}
// Runs once on Arduino start
void setup()
{
// shut off the speaker
noTone(10);
}
// Runs constantly in a loop
void loop()
{
beep(a, 500);
beep(a, 500);
beep(a, 500);
beep(f, 350);
beep(cH, 150);
beep(a, 500);
beep(f, 350);
beep(cH, 150);
beep(a, 650);
delay(150);
//end of first bit
beep(eH, 500);
beep(eH, 500);
beep(eH, 500);
beep(fH, 350);
beep(cH, 150);
beep(gS, 500);
beep(f, 350);
beep(cH, 150);
beep(a, 650);
delay(150);
//end of second bit...
beep(aH, 500);
beep(a, 300);
beep(a, 150);
beep(aH, 400);
beep(gSH, 200);
beep(gH, 200);
beep(fSH, 125);
beep(fH, 125);
beep(fSH, 250);
delay(250);
beep(aS, 250);
beep(dSH, 400);
beep(dH, 200);
beep(cSH, 200);
beep(cH, 125);
beep(b, 125);
beep(cH, 250);
delay(250);
beep(f, 125);
beep(gS, 500);
beep(f, 375);
beep(a, 125);
beep(cH, 500);
beep(a, 375);
beep(cH, 125);
beep(eH, 650);
//end of third bit... (Though it doesn't play well)
//let's repeat it
beep(aH, 500);
beep(a, 300);
beep(a, 150);
beep(aH, 400);
beep(gSH, 200);
beep(gH, 200);
beep(fSH, 125);
beep(fH, 125);
beep(fSH, 250);
delay(250);
beep(aS, 250);
beep(dSH, 400);
beep(dH, 200);
beep(cSH, 200);
beep(cH, 125);
beep(b, 125);
beep(cH, 250);
delay(250);
beep(f, 250);
beep(gS, 500);
beep(f, 375);
beep(cH, 125);
beep(a, 500);
beep(f, 375);
beep(cH, 125);
beep(a, 650);
//end of the song
noTone(10);
delay(10000);
}
Немного не в тему (пока не добрался до гаража, где хранятся кондёры): пытался запилить музыкальную шкатулку на дигиспарке (в подарок дочери на скорую днюху), вдохновившись видюхой про имперский марш на attiny85. Нашел код, залил в дигиспарк- не работает... При этом тот же код, залитый в нано- работает без проблем. Есть соображения по этому поводу?
На первом пине висит светодиод с резистором. Хотя это не мешает, залил в DIgispark, молчит,
посмотрел код, строка 27 и 35 явно указывают на 10 пин, поправил на speakerPin, запищало.
Немного не в тему (пока не добрался до гаража, где хранятся кондёры): пытался запилить музыкальную шкатулку на дигиспарке (в подарок дочери на скорую днюху), вдохновившись видюхой про имперский марш на attiny85. Нашел код, залил в дигиспарк- не работает... При этом тот же код, залитый в нано- работает без проблем. Есть соображения по этому поводу?
На первом пине висит светодиод с резистором. Хотя это не мешает, залил в DIgispark, молчит,
посмотрел код, строка 27 и 35 явно указывают на 10 пин, поправил на speakerPin, запищало.
Точно, сейчас свежим взглядом увидел, что на 10-й.
значит поддерживается/)) вообще зашел на дигиспарк, фиг поймешь какие функции поддерживаются, описание невнятное
Attiny85 позиционируется как кастрированная версия 8-й меги, вроде как. Да и малораспространенная еще весч, инфы мало. Зато микруха мелкая, самое оно для компактных прожектов.
да не мелкая она по сравнению с 328p (на 1/3 меньше) стоят почти одинаково, в последних пару опытов вообще ардуины не использую, сразу чип на плату распаиваю и тут смысла тиньку использовать невижу
да не мелкая она по сравнению с 328p (на 1/3 меньше) стоят почти одинаково, в последних пару опытов вообще ардуины не использую, сразу чип на плату распаиваю и тут смысла тиньку использовать невижу
Плюсы- простота отладки (не нужен программатор), меньшее энергопотребление и есть спящий режим (потребление- доли мкА), меньше ног- проще паять.
С кодом для музыки разобрался- прикол на самом деле был в неверно указанных выводах. Исправил- музыка нарисовалась. Сейчас рисую мелодию (Happy Birthday, есснно).
До гаража с кондёрами так пока и не добрался (работа прет, некогда выбраться).
До гаража с кондёрами так пока и не добрался (работа прет, некогда выбраться).
последний скетч сбросил выше с антидребезгом без делей
Доброго всем.
Залил скетч, поигрался с параметром dreb. Разницы между 50 и 1000 не заметил, дребезг не исчез. Думается, без гондёра все-таки не обойтись. Тем более, что вход не аналоговый, так что хуже, имхо, не будет.
В смысле местами? Скетч? У меня норм компилируется.
А что за датчик такой хреновый? Чтобы знать, а то ковырялся только с датчиком оборотов 4-х проводных вентиляторов и там проблем с дребезгом не было.
В смысле местами? Скетч? У меня норм компилируется. А что за датчик такой хреновый? Чтобы знать, а то ковырялся только с датчиком оборотов 4-х проводных вентиляторов и там проблем с дребезгом не было.
Геркон высокочастотный.
Да, функции переставил местами, иначе лезла ошибка декларирования функции disp.
геркон вообще для этих целей неподходит, обороты измерять вполне датчик холла от жигулей девятки полойдет и диск металлический с прорезями на валу для фиксирования вращения.
геркон вообще для этих целей неподходит, обороты измерять вполне датчик холла от жигулей девятки полойдет и диск металлический с прорезями на валу для фиксирования вращения.
Ты об этом маздавцам\фордовцам скажи. У них датчик скорости на валу спидометра- именно такой геркон))
// переменные для калмана
float varVolt = 1.525; // среднее отклонение (ищем в excel)
float varProcess = 0.05; // скорость реакции на изменение (подбирается вручную)
float Pc = 0.0;
float G = 0.0;
float P = 1.0;
float Xp = 0.0;
float Zp = 0.0;
float Xe = 0.0;
// переменные для калмана в шапке
//здесь лооп начинается
float filter_valy=filter(valy);//здесь свою переменную вставиш
//это после лооп
float filter(float val) { //функция фильтрации
Pc = P + varProcess;
G = Pc/(Pc + varVolt);
P = (1-G)*Pc;
Xp = Xe;
Zp = Xp;
Xe = G*(val-Zp)+Xp; // "фильтрованное" значение
return(Xe);
}*/
// переменные для калмана
float varVolt = 1.525; // среднее отклонение (ищем в excel)
float varProcess = 0.05; // скорость реакции на изменение (подбирается вручную)
float Pc = 0.0;
float G = 0.0;
float P = 1.0;
float Xp = 0.0;
float Zp = 0.0;
float Xe = 0.0;
// переменные для калмана в шапке
//здесь лооп начинается
float filter_valy=filter(valy);//здесь свою переменную вставиш
//это после лооп
float filter(float val) { //функция фильтрации
Pc = P + varProcess;
G = Pc/(Pc + varVolt);
P = (1-G)*Pc;
Xp = Xe;
Zp = Xp;
Xe = G*(val-Zp)+Xp; // "фильтрованное" значение
return(Xe);
}*/
Делей испортит точность. Аппаратное решение- возможно и сработает.
Делей испортит точность. Аппаратное решение- возможно и сработает.
сначала смотреть с конденсатором, если непоможет, то delayMicroseconds(5); и прибавлять пока не уберется дребезг
Ок, попробую и так, и так.
Немного не в тему (пока не добрался до гаража, где хранятся кондёры): пытался запилить музыкальную шкатулку на дигиспарке (в подарок дочери на скорую днюху), вдохновившись видюхой про имперский марш на attiny85. Нашел код, залил в дигиспарк- не работает... При этом тот же код, залитый в нано- работает без проблем. Есть соображения по этому поводу?
Когда заливал в нано, задавал 10 пин на пищалку.
tone() скорее всего не поддерживает
tone() скорее всего не поддерживает
с чего бы ?
Немного не в тему (пока не добрался до гаража, где хранятся кондёры): пытался запилить музыкальную шкатулку на дигиспарке (в подарок дочери на скорую днюху), вдохновившись видюхой про имперский марш на attiny85. Нашел код, залил в дигиспарк- не работает... При этом тот же код, залитый в нано- работает без проблем. Есть соображения по этому поводу?
На первом пине висит светодиод с резистором. Хотя это не мешает, залил в DIgispark, молчит,
посмотрел код, строка 27 и 35 явно указывают на 10 пин, поправил на speakerPin, запищало.
значит поддерживается/)) вообще зашел на дигиспарк, фиг поймешь какие функции поддерживаются, описание невнятное
вроде как припилил антидребезг, переменной dreb подобрать нужное значение для исключения оного
при слишком большой величине dreb показания оборотов должны зависнуть и перестать расти независимо от того что в реальности обороты растут
tone() скорее всего не поддерживает
с чего бы ?
Немного не в тему (пока не добрался до гаража, где хранятся кондёры): пытался запилить музыкальную шкатулку на дигиспарке (в подарок дочери на скорую днюху), вдохновившись видюхой про имперский марш на attiny85. Нашел код, залил в дигиспарк- не работает... При этом тот же код, залитый в нано- работает без проблем. Есть соображения по этому поводу?
На первом пине висит светодиод с резистором. Хотя это не мешает, залил в DIgispark, молчит,
посмотрел код, строка 27 и 35 явно указывают на 10 пин, поправил на speakerPin, запищало.
Точно, сейчас свежим взглядом увидел, что на 10-й.
значит поддерживается/)) вообще зашел на дигиспарк, фиг поймешь какие функции поддерживаются, описание невнятное
Attiny85 позиционируется как кастрированная версия 8-й меги, вроде как. Да и малораспространенная еще весч, инфы мало. Зато микруха мелкая, самое оно для компактных прожектов.
да не мелкая она по сравнению с 328p (на 1/3 меньше) стоят почти одинаково, в последних пару опытов вообще ардуины не использую, сразу чип на плату распаиваю и тут смысла тиньку использовать невижу
да не мелкая она по сравнению с 328p (на 1/3 меньше) стоят почти одинаково, в последних пару опытов вообще ардуины не использую, сразу чип на плату распаиваю и тут смысла тиньку использовать невижу
Плюсы- простота отладки (не нужен программатор), меньшее энергопотребление и есть спящий режим (потребление- доли мкА), меньше ног- проще паять.
Всем доброго.
С кодом для музыки разобрался- прикол на самом деле был в неверно указанных выводах. Исправил- музыка нарисовалась. Сейчас рисую мелодию (Happy Birthday, есснно).
До гаража с кондёрами так пока и не добрался (работа прет, некогда выбраться).
Во, еще вопрос: а может ли ардуинка "пищать" по 2\3\4 пинам раздельно (типа полифонии)?
Всем доброго.
До гаража с кондёрами так пока и не добрался (работа прет, некогда выбраться).
последний скетч сбросил выше с антидребезгом без делей
Ок, попробую- отпишусь.
Всем доброго.
До гаража с кондёрами так пока и не добрался (работа прет, некогда выбраться).
последний скетч сбросил выше с антидребезгом без делей
Доброго всем.
Залил скетч, поигрался с параметром dreb. Разницы между 50 и 1000 не заметил, дребезг не исчез. Думается, без гондёра все-таки не обойтись. Тем более, что вход не аналоговый, так что хуже, имхо, не будет.
Больше можно ставить, 1000 равно 1/1000 секунды
Ыыы, точно, микрос))
Еще пришлось менять местами функции disp и loop, иначе прога не проходила компиляцию. Забыл это упомянуть.
Поиграл цифрами- все на первый взгляд в порядке. Обороты дрели и дремеля измерил кое-как, т.к. не для этой цели конструкция.
В смысле местами? Скетч? У меня норм компилируется.
А что за датчик такой хреновый? Чтобы знать, а то ковырялся только с датчиком оборотов 4-х проводных вентиляторов и там проблем с дребезгом не было.
Геркон высокочастотный.
Да, функции переставил местами, иначе лезла ошибка декларирования функции disp.
геркон вообще для этих целей неподходит, обороты измерять вполне датчик холла от жигулей девятки полойдет и диск металлический с прорезями на валу для фиксирования вращения.
геркон вообще для этих целей неподходит, обороты измерять вполне датчик холла от жигулей девятки полойдет и диск металлический с прорезями на валу для фиксирования вращения.
Ты об этом маздавцам\фордовцам скажи. У них датчик скорости на валу спидометра- именно такой геркон))
Про Холла в курсях, датчики с Китая едут.
Фильтр калмана попробуй на постоянных оборотах все пики тупит.
Жалко пропуски не вставляет
В дигиспарк такое невпихуемое не впихуить))