Тетра

Тема в разделе "Arduino & Shields", создана пользователем Just Moose, 13 дек 2017.

Метки:
  1. Just Moose

    Just Moose Нуб

    Всем привет.
    Прикупил Тетру, поковырял, есть вопросы.
    Но специализированного форума не нашел :(
    Поэтому спрошу в наиболее похожем.

    Короче, есть Тетра, есть буззер (пищалка).
    Буззер воткнут в слот, который "цифровой 13".

    Судя по описанию на сайте он пассивный (генератора в нём нет).
    Поэтому нужен генератор.
    Рисую в скретче примерно так:
    цикл
    включить пин 13
    задержка 0.01с
    вЫключить пин 13
    задержка 0.01с
    конец цикла

    Не работает.
    Что я делаю не так?
    Какую минимальную задержку можно втыкать в скретче?

    ЗЫ: По ощущениям, при запуске программы слышен щелчок. Похоже, что "включить пин 13" работает. А всё остальное - нет.
     
  2. ARDUIN-щик

    ARDUIN-щик Гик

    А что Вы, собственно, ожидали?
    Лично я вижу так: включается программа, 10 миллисекунд идет писк, потом 10 миллисекунд перерыв, все по новой...


    Звук в пищалке Вашим методом изменения частоты подачи питания не работает, и не заработает
     
  3. Just Moose

    Just Moose Нуб

    Пищалка - пассивная.
    Это значит, что она не пищит после подачи питания.

    Она пищит, когда на неё питание дают, и снимают, дают и снимают... И так до бесконечности.
    И два раза по 10мс - это как раз и есть один период от 50Гц.
    С чего бы этому методу не заработать я не знаю.

    И даже если бы она была активная, то получилась бы модуляция. Типа 1кГц пищалки модулирован 50Гц сигналом...

    В общем, чего-то я недопонимаю.
     
  4. ARDUIN-щик

    ARDUIN-щик Гик

    Вообще то, пищалка 4кГц, тоесть получается за 10 мс выходит 40 Гц, а не Ваши 50 Гц.

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

    Что бы делать какие-то звуки кроме одинакового писка, нужен чистый, желательно как обычный, так и инвертированный, аналоговый сигнал. Ну, или в крайнем случае, ШИМ.
    У Тетры ШИМ самостоятельно вы не сделаете, поэтому надо либо писать код для ардуины, либо перепрошить Тетру под Iskra Neo. Пока же Вы, по мнению ардуины, компилятора, меня, лишь включаете и выключаете пищалку, частоты включений.отключений недостаточно, до ШИМ'а недотягивает
     
  5. Just Moose

    Just Moose Нуб

    Можно уточнить, откуда Вы взяли эти 4кГц?
     
  6. ARDUIN-щик

    ARDUIN-щик Гик

    С описания модуля с сайта Амперки: http://amperka.ru/product/troyka-buzzer
    Там, где внизу жирным шрифтом написано ,,Характеристики,,
     
  7. Just Moose

    Just Moose Нуб

    Ага. Только это резонансная частота. Он на ней пищит громче всего. Но и на остальных частотах тоже должен.
    Там ещё ниже написана "модель" - HPM14A. Там же есть pdf с графиком АЧХ.
    Если посмотреть на сайт чипдипа, то можно увидеть разницу:
    https://s.mail.ru/EGds/gFmW9t6VQ

    Чтобы пищалка стала активной (то есть, с генератором внутри), надо чтобы в конце была буква X.

    А в этой конкретной пищалке никакого генератора нет.
    Это означает, что если на неё подать 5В, то у неё диффузор (или что там у неё внутри) отожмётся в крайнее положение и там останется.
    А чтобы появился звук её (пищалку/диффузор) нужно самому "трясти". То есть, подавать напряжение и снимать.
    Именно для этого я и сделал цикл.
     
  8. akl

    akl Гуру

    возможно на 50 герц просто слишком тихо шелестит. надо уменьшить задержку до 1мс, или подрубить шим. а лучше купить пищалку с генератором - они не намного дороже.
     
  9. ARDUIN-щик

    ARDUIN-щик Гик

    Ааа, ну вы то чего ждали-то?
    Пин 13 то не простой!
    Пин 13 нужен при запуске, и при подключении питания или перезагрузки платы встроенный светодиод, соединенный с этим пином, мигает. Поэтому писк при включении питания совершенно нормален, так как вместе со встроенным светодиодом пищалка получает такой же сигнал с пина.
    Поэтому при запуске и загрузке программы это нормально.
    Далее программа должна идти нормально.
     
  10. Just Moose

    Just Moose Нуб

    Вы что-то перепутали.
    Я ожидаю услышать писк, но его не слышу.
    Если бы было наоборот, я бы понял.

    Плюс, на сколько я знаю, в arduino uno пин 13 отличается от остальных лишь тем, что на плате напаян готовый светодиод, который упрощает процесс первого старта. В Тетра (это же Леонардо?) вроде так же.
    И таки да, если воткнуть вместо буззера светодиод, то он будет светиться.
     
  11. Just Moose

    Just Moose Нуб

    Спасибо.
    Наверное он действительно "слишком тих" :)
    Пищалка с генератором где-то была.
    Просто я Тетру как из коробки достал, так только её и использую!

    ЗЫ: Или плюнуть на всё, и просто посмотреть осциллографом, что там на выводах происходит...
     
  12. ARDUIN-щик

    ARDUIN-щик Гик

    Да, так же. ВОт этот светодиод на 13 пине. И пищалка тоже на 13 пине. Следовательно, пищалка и светодиод соединены. Следовательно, при запуске Леонардо ( т.к. внутри тетры стоит клон Ардуино Леонардо).
    Поэтому когда плата включается, по 13 пину идет сигнал к светодиоду, то есть происходит индикация загрузки платы. Но пищалка-то туда же подключена! Поэтому при старте сигнал идет на пищалку. Но пищалка- не светодиод, физика поведения другая, поэтому пищалка не светится красиво и плавно, как встроенный светодиод на 1 пине, а пищит!!!
     
  13. Just Moose

    Just Moose Нуб

    Послушай. Я крайне рад, что ты пытаешься мне помочь. Но ощущаю отсутствие логики в твоих словах.
    Пожалуйста, почитай хотя бы книжку Борисова. И чего-нибудь про закон Ома. И про параллельное соединение.
     
  14. ARDUIN-щик

    ARDUIN-щик Гик

    Эх, видно плоховато обьяснил...
    Тетра- это плата, в серце которой стоит микроконтроллер ATmega32U4, такой же, как и в Ардуино Леонардо и Искра Нео. Да и сама Тетра по внутреннему строению похожа на Искру.
    У ардуин (и у Искры Нео, следовательно, тоже) есть встроенный светодиод на 13 пине.
    При включении Arduino Leonardo платформы (И Arduino-подобной платы Iskra Neo тоже , и, следовательно, Тетры) индикационный светодиод при включении мигает. Это связано с тем, что единственный процессор у Искры Нео отвечает и за загрузку и преобразования поступающей программы в понятный для исполнения код, и, непосредственно, к выполнению этого кода. Поэтому при включении, когда CPU Тетры работает как конвертер программы в понятный для себя код, светодиод дает понять, что плата занята. Тоесть, он красиво переливается. То есть, на светодиод (следовательно, и на 13 пин) подается электрический сигнал.
    В это время на 13 пине стоит пищалка. Которая при свечении светодиода на 13 пине так же получает электрический сигнал. При чем, такой же.
    Но так как пищалка расчитанна на другие сигналы, а не на постоянный сигнал для светодиода, то и реагирует на него не так, как хотелось бы.
    Поэтому, при включении платы светодиод на 13 пине мигает, и такой же сигнал получает и пищалка, поэтому при загрузке платы пищалка издает неправильные звуки. Что нам не нравится. Это из-за того, что пищалка и светодиод подключены ОДИНАКОГО, и импульсы получают ОДИНАКОВЫЕ, и пытаются реагировать ОДИНАКОГО, но пищалка НЕ СВЕТОДИОД, и вместо такого же мерцания как и светодиод, ПИЩИТ.
     
    Последнее редактирование: 13 дек 2017
  15. akl

    akl Гуру

    50 герц это никак не писк - это скорее гул. а в данном случае (меандр) должен быть скорее треск.

    так она у него как раз не пищит при включении, а только щелкает один раз. что наверно логично
     
  16. ARDUIN-щик

    ARDUIN-щик Гик

    Ну да, ведь сигнал для мерцающего светодиода постоянный, и не прикращается, следовательно пьезо-элемент в пищалке не приходит в нормальное состояние, пока светодиод мерцает
     
  17. ARDUIN-щик

    ARDUIN-щик Гик

    Это и есть специализированный форум. Это форум магазина Амперка, о товарах магазина Амперка, а так же тут существуют модераторы, которые работают как в магазине Амперка, и на форуме магазина Амперка тоже!!!
     
  18. Just Moose

    Just Moose Нуб

    Ох.
    Ещё раз: ты утверждаешь, что "вместо мерцания ПИЩИТ".
    Мой же вопрос обратный: почему оно не пищит.
    ОНО НЕ ПИЩИТ :)

    И ещё. Тетра - она ни разу не Iskra JS. У искры внутри действительно есть процессор помощнее и интерпретатор языка JS. И, наверное, после загрузки плата действительно что-то там интерпретирует. И немного занята.

    Но у тетры внутри ATmega32U4, которая нифига не ARM процессор. Это обычный 8 битный AVR, к которому прилагается USB контроллер. Она (тетра) ничего не интерпретирует. Внутрь неё заливается уже готовый откомпилированный код. И в процессе заливки мигает не светодиод L на пине 13, а светодиоды RX/TX. То есть, заливается уже готовый бинарь через COM порт (который, на самом деле, уже немножко USB).
     
  19. akl

    akl Гуру

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

    он писал про искру-нео - это ардуино-леонардо, а не js
     
  20. ARDUIN-щик

    ARDUIN-щик Гик

    ЕСТЬ ДВЕ ПЛАТЫ: ИСКРА НЕО И ИСКА JS. ИСРА НЕО ЛИШЬ КЛОН АРДУИНО ЛЕОНАРДО, А ИСКРА JS ЕДИНСТВЕННАЯ И НЕ ПОВТОРИМАЯ ПЛАТА, КОТОРАЯ РАЗРАБОТАНА И ПРОИЗВОДИТСЯ АМПЕРКОЙ. ИСКРА JS мощная и имеет ARM-процессор, а ИСКРА НЕО- слабая и имеет процессор ATmega32U4.

    Я об этом уже написал: ВНАЧАЛЕ ПИЩИТ, ПОТОМ НЕТ, ТАК КАК СИГНАЛ МЕРЦАЮЩЕГО СВЕТОДИОДА НЕ РАВЕН НУЛЮ, и при мерцании пьезо-элемент принимает напряженное состояние, а в нормально не может вернуться так как светодиод МЕРЦАЕТ, НО НЕ МИГАЕТ