Precise GENERATOR with ARDUINO 1Hz - 8 MHz. DIY computer-controlled generator using Arduino NANO

Поділитися
Вставка
  • Опубліковано 3 жов 2023
  • We make an accurate square wave generator on Arduino Nano or Uno with computer control. Frequency setting accuracy 1 Hz. Frequency range from 1 Hz to 8 megahertz. For control we use a Windows application written by MBS Electronics. What is a square wave signal? Harmonics of a square wave signal. Filtering a square wave signal on a musical synthesizer. Let's program the Arduino board. Simulation of a sketch in Proteus professional
    Article and downloads of project files here musbench.com/all/arduino-sqr-...
    Arduino Uno boards and others musbench.com/all/arduino-brea...
    Donations for the channel: www.donationalerts.com/r/mrsh...
    Review of the oscilloscope as in the article: • ZOTEK ZT-702s 10 MHz О...
    Walkthrough of the FNIRSI oscilloscope-generator-tester • FNIRSI DSO-TC3 vs DSO-...
    -
    Telegram channel t.me/+g_S7UrcHqmozZjg9
    Telegram chat t.me/mbs_electro
    My Travels goo.gl/6JoHxh
  • Наука та технологія

КОМЕНТАРІ • 46

  • @Sobrat
    @Sobrat 3 місяці тому

    Спасибо за грамотное, ясное изложение в идеальном для усвоения темпе.

  • @Ibra-fr
    @Ibra-fr 8 місяців тому

    Как всегда Отлично . Спасибо за знания 👍

  • @Magelan59
    @Magelan59 8 місяців тому

    Познавательно и интересно. Молодец. Хороший получится тестер для проверки слуха от 20Гц-20кГц. 😀

  • @user-ku6ls3ow4w
    @user-ku6ls3ow4w 8 місяців тому

    Большое спасибо, то, что нужно!

  • @alekskapitonov2738
    @alekskapitonov2738 8 місяців тому

    Большое спасибо.

  • @user-pz1cf2ck9w
    @user-pz1cf2ck9w 8 місяців тому

    Спасибо!

  • @OMG4WTF4OMG
    @OMG4WTF4OMG 7 місяців тому +1

    Спасибо

  • @safocl9768
    @safocl9768 3 місяці тому

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

  • @user-cv3rf2jc3b
    @user-cv3rf2jc3b 4 місяці тому

    Подскажите, есть ли возможность в графическом редакторе подключить сдвиговый регистр? Или какой ни будь вариант чтоб увеличить количество входов и выходов?

  • @demontv8326
    @demontv8326 5 місяців тому +1

    Как подключить 2 канал для управления например двумя светодиодами разными частотами ?

  • @SIM31r
    @SIM31r 8 місяців тому

    А теперь синхронизируем генератор с каким-нибудь GPS модулем, чтоы точность частоты задать )

  • @user-cv7bv9gp8b
    @user-cv7bv9gp8b 7 місяців тому

    какую минимальную скважность сигнала можно получиь в этом коде при низких частотах? К примеру от 1Hz до 150Hz ?

  • @user-sg2zb5nf6r
    @user-sg2zb5nf6r 8 місяців тому

    Не могли бы показать как в протеусе без написания кода сделать MIDI клавиатуру с ручками пич и модуляция. Спасибо.

  • @smart_electrics_il
    @smart_electrics_il 24 дні тому

    Погодите, погодите, если взять осциллограф на 200мгц (например) то ардуинка выжмет красивый и ровный квадрат ?

  • @Arm-ct8mo
    @Arm-ct8mo 7 місяців тому

    0:57 к сожалению это не так, более того , то что вы предлогаете закаментировать на 15:55 необходимо чтобы знать реальную частоту которую будет генерировать МК, реальная и ожидаемая частота могут отличатся на десятки а то и сотни тисяч Герц, с этими строкому МК хотябы отправляет информацию о том что не способен генерировать нужную частоту и будет генерировать ближайшую частоту которую может.

  • @ganskrimson3658
    @ganskrimson3658 8 місяців тому

    Ну да, только программировать научится, а так класс!

  • @user-id9wy7lm8h
    @user-id9wy7lm8h 7 місяців тому

    Можно зделать контролер ветрогенератора с сбросом на баласт!?

  • @user-dq3xc5ws5i
    @user-dq3xc5ws5i 8 місяців тому

    Спасибо! Можно ли исходник на Delphi увидеть в учебных целях?.

    • @MbsElectronics
      @MbsElectronics  8 місяців тому

      можно, выложу вечером в архиве с проектом

    • @user-dq3xc5ws5i
      @user-dq3xc5ws5i 8 місяців тому

      Спасибо!@@MbsElectronics

    • @MbsElectronics
      @MbsElectronics  8 місяців тому

      @@user-dq3xc5ws5i добавил в архив

  • @user-dq3xc5ws5i
    @user-dq3xc5ws5i 7 місяців тому

    Как открыть Ваш проект в Delphi 11 Community Edition? . Как проще добавить компоненты из Вашей папки в проект?

    • @MbsElectronics
      @MbsElectronics  7 місяців тому

      вам нужен установленный компонент bcomport. У меня делфи еще 10 стоит с прошлого года. Попробуйте установить из моего архива или скачать где то версию для 11 Delphi. Мой компонент AtulKbib я писал сам. это круглая ручка установки частоты. Он должен устанавливаться в любой делфи.

    • @user-dq3xc5ws5i
      @user-dq3xc5ws5i 7 місяців тому

      Спасибо, попробую.@@MbsElectronics

  • @bih0use
    @bih0use 8 місяців тому +2

    Внезапно дельфи ещё есть... Лет 20 на нём не писал ничего

    • @AstralAmigo
      @AstralAmigo 8 місяців тому

      Еще как есть...

    • @dekus80
      @dekus80 8 місяців тому

      Я и AVR в последний раз держал лет 10-15 назад, как появились STM8 МК с настройками на лету, с отладчиком на борту и ценой полноценный мк по цене младшего обрубка тини. А сейчас вообще 32бита уже 20р за МК на али можно взять (и это при текущем курсе). А 8бит давно похоронены, просто даже не выгодно покупать. Любой AVR и клоны, STM8 будет дороже 32бит клона STM32 (пример цены выше) со всякими DMA и т.д. За 35р иметь 32бит таймер под ШИМ - пожалуйста. Уже давно нужно знать как самое начало программирования МК это STM32 (И взять и прочитать один раз именно manual от производителя чтоб знать как устроен МК) и язык программирования естественно Си. Сейчас новые МК разных производителей калькируются с этого МК, у китайцев своих производителей десятки, всякие GD32, CH32, AT32 и т.д и т.д. Некоторые бедолаги за все это время все не могут попасть в реальность.

    • @SIM31r
      @SIM31r 8 місяців тому

      @@dekus80 под AVR куча кода, есть микросхемы в DIP корпусах. Быстродействия хватает для мигалок всяких. Код 8-битный более читаемый. В STM32 какой-нибудь таймер сложнее чем весь микроконтроллер 8-битный. Я AVR программирвоал и 10 лет назад и до сих пор только ими и пользуюсь, мне больше не надо, тем более что Ардуина стала стандартом. С кучей отлаженных прошивок, Marlin для 3D принтера, GRBL для CNC станков и т.п. Если нужно что-то считать и выводить на HD экран то лучше куплю Raspbery Pi
      Вы наверное путаете профессиональных разработчиков и хобби. Для хобби AVR хватает с запасом. А самый крутой подход это Xilinx всякие FPGA, более сложные для понимания, выше порог вхождения, но и возможностей выше на порядок.

    • @dekus80
      @dekus80 8 місяців тому

      @@SIM31r Как говорится сколько людей столько мнений. Мог бы по каждому пункту поспорить, но это будет пустой тратой времени, вы же уже выбрали свой путь.
      Лично я программирую вообще на регистрах хоть 51, хоть avr, хоть stm8, хоть stm32. Знаю ассемблеры и как компилятор ту или иную запись скомпилирует, изучал получаемые листинги. Могу реверсить любые прошивки. А уж сколько различных МК в кассетнице... И у меня МК это тоже всего лишь хобби для души, никогда не работал в этой области. Просто у меня ко всему вот такой уровень любознательности. У вас такой. Вам достаточно АВР (который я уж забыл как страшный сон) и Ардуино, а я нахожу чего там ещё нового появилось в мире МК, покупаю, изучаю по мануалу. Для изучения МК никогда не использовал ничего кроме мануалов от производителя, там все есть для этого и прочитав удивительным образом окажется что ничего сложного нет и в том же stm32, на регистрах тот же таймер инициализируется в 4-5 строчек.

    • @SIM31r
      @SIM31r 8 місяців тому

      @@dekus80 если это хобби, то непонятно откуда столько времени на всё это. Осталось FPGA освоить, DSP хотя бы ADAU1452, СВЧ передатчики, силовую электронику, квадракоптеры и изготовление радиоламп, всё же интересно ))

  • @DART2WADER
    @DART2WADER 7 місяців тому

    100000 kHz)))

  • @user-fz6ct5em7i
    @user-fz6ct5em7i 6 місяців тому

    0:57 Точность задания частоты 1 Гц - это для любого диапазона?!! Это не оговорка?

  • @user-cf7be9km5m
    @user-cf7be9km5m 8 місяців тому +1

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

  • @alexforze2093
    @alexforze2093 Місяць тому

    Больше воды только в Байкале... Главная проблема у многих авторов в том, что они пытаются впихнуть в один ролик всё. Начал с ардуино, потом пол ролика на кой-то хрен объяснял гармоники, крутил ПО и че то там настраивал... Ну если есть желание более подробно остановится на видах сигнала и гармониках, то запили отдельный видос со всеми подробностями. Смысл пол ролика занимать тем, что к делу не относится?

  • @goldirus
    @goldirus 8 місяців тому

    от куда в прямоугольном сигнале берутся гормоники, если фактически это лишь смена полярности с некоторой частотой?

    • @MbsElectronics
      @MbsElectronics  8 місяців тому

      смена полярности с некоторой частотой порождает гармоники. так устроен этот мир. Откуда круги на воде если я просто бросил туда камень? Я не знаю. И никто не знает.

  • @user-dq6pt2rp1y
    @user-dq6pt2rp1y 8 місяців тому

    а ведь есть библиотека gyverPWM, там уже это есть

  • @user-dq3xc5ws5i
    @user-dq3xc5ws5i 8 місяців тому

    Исходник на Delphi так и не появился....

    • @MbsElectronics
      @MbsElectronics  8 місяців тому

      Сейчас добавил в архив, можете перезагрузить

    • @user-dq3xc5ws5i
      @user-dq3xc5ws5i 8 місяців тому

      Спасибо!@@MbsElectronics

  • @primuss3s
    @primuss3s 8 місяців тому

    трохи покромсал код ядра:
    void generator( u32 Freq )
    {
    if (Freq == 0 || Freq > F_CPU/2) return;

    const u8 Lshift[] = {3,3,2,2};

    u32 compare = F_CPU / Freq /2; //calculate OCR

    for (u8 i = 0; i < 4; i++) {
    if (compare > 65536) compare >>= Lshift[i];
    else {
    TCCR1B = (1

    • @shantikumar5007
      @shantikumar5007 8 місяців тому +1

      Можно еще добавить установку скважности, хотя на высоких частотах будет совсем небольшой ее диапазон. Но на относительно низких частотах можно будет вполне пользоваться

    • @IndiaMagicTV
      @IndiaMagicTV 8 місяців тому +1

      Дякую

    • @primuss3s
      @primuss3s 8 місяців тому +1

      @@IndiaMagicTV , ще варіант
      void gen_Update ( u32 Freq )
      {
      if (Freq == 0 || Freq > F_CPU/2) return;

      const u8 shift [] = {3, 3, 2, 2};
      u32 compare = F_CPU / Freq /2; //calculate OCR
      u8 prescaler = 0;

      for (u8 i = 0; i < 4; i++) {
      prescaler++;
      if (compare > 65536) compare >>= shift [i];
      else break;
      }
      OCR1A = compare - 1;
      TCCR1A = 1