Arduino для начинающих. Урок 6. Подключение пьезоэлемента

Share Button

Продолжаем серию уроков Arduino для начинающих. Сегодня собираем модель с пьезоэлементом (динамиком), которые используются в робототехники для управления звуками, издаваемыми роботом. В статье вы найдете видео-инструкцию, листинг программы, схему подключения и необходимые компоненты.

Пьезоэлемент — электромеханический преобразователь, одним из разновидностей которого является пьезоизлучатель звука,  который также называют пьезодинамиком, просто звонком  или английским buzzer. Пьезодинамик переводит электричеcкое напряжение в колебание мембраны. Эти колебания и создают звук (звуковую волну).

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

Видео-инструкция сборки модели:

Для сборки модели с пьезоэлементом нам потребуется:

  • плата Arduino
  • провода “папа-папа”
  • пьезоэлемент
  • программа Arduino IDE, которую можно скачать с сайта Arduino.
Arduino динамик (пьезоэлемент) подключение, детали

Что потребуется для подключения динамика на Arduino?

Схема подключения модели Arduino с пьезоэлементом:

6 схема

Схема подключения пьезоэлемента (динамика) на Arduino

Для работы этой модели подойдет следующая программа (программу вы можете просто скопировать в Arduino IDE):

int p = 3; //объявляем переменную с номером пина, на который мы
//подключили пьезоэлемент
void setup() //процедура setup
{
pinMode(p, OUTPUT); //объявляем пин как выход
}
void loop() //процедура loop
{
tone (p, 500); //включаем на 500 Гц
delay(100); //ждем 100 Мс
tone(p, 1000); //включаем на 1000 Гц
delay(100); //ждем 100 Мс
}

Так выглядит собранная модель Arduino с пьезоэлементом:

Arduino подключение динамика (пьезоэлемента)

Собранная модель подключения динамика на Arduino

После сборки модели попробуйте поменять в программе частоты звука и посмотрите, как изменится работа модели.

Смотрите также:

Учебный курс «Arduino для начинающих»: главная страница.

Посты по урокам:

  1. Первый урок: Светодиод
  2. Второй урок: Кнопка
  3. Третий урок: Потенциометр
  4. Четвертый урок: Сервопривод
  5. Пятый урок: Трехцветный светодиод
  6. Шестой урок: Пьезоэлемент
  7. Седьмой урок: Фоторезистор
  8. Восьмой урок: Датчика движения (PIR) и E-mail
  9. Девятый урок: Подключение датчика температуры и влажности DHT11 или DHT22

Все посты сайта «Занимательная робототехника» по тегу Arduino.

Наш YouTube канал, где публикуются видео-уроки.

Не знаете, где купить Arduino? Все используемые в уроке комплектующие входят в большинство готовых комплектов Arduino, их также можно приобрести по отдельности. Подробная инструкция по выбору здесь. Низкие цены, спецпредложения и бесплатная доставка на сайтах AliExpress и DealExtreme. Если нет времени ждать посылку из Китая — рекомендуем интернет-магазины Амперка и DESSY. Низкие цены и быструю доставку предлагает интернет-магазин ROBstore. Смотри также список магазинов.

Автор: Александр Гагарин.

Share Button

22 комментария к статье “Arduino для начинающих. Урок 6. Подключение пьезоэлемента”

  1. Oswalt

    14.02.2015

    У вас опечатка: «Для сборки модели с сервоприводом нам потребуется:». Статья о подключении пьезоэлемента.

    Ответить на этот комментарий
  2. Валерий

    21.04.2015

    Как вместо частоты звука (tone (p, 500);) поставить паузу?
    Спасибо

    Ответить на этот комментарий
    • Занимательная робототехника

      21.04.2015

      Можно использовать команду noTone(p), чтобы звучание прекратилось. Также можно использовать команду tone(p,500,1000) чтобы включить пьезоэлемент на 500 Гц на 1000 миллисекунд (1 секунда)

      Ответить на этот комментарий
  3. gammaker

    03.08.2015

    Пьезоэлемент можно вообще напрямую к плате подключить, зачем breadboard?
    Одну ножку вставил в выход 11, другую в GND рядом. Ну и соответственно в программе 3 заменил на 11. Работает.

    Ответить на этот комментарий
    • Занимательная робототехника

      03.08.2015

      Любые компоненты, которые можно подключить к ардуино, можно подключать напрямую к плате. Бредбоард нужен для быстрой сборки и разборки моделей без пайки. Конечно, в отдельных случаях может получится и так, что бредбоард только усложняет.

      Ответить на этот комментарий
  4. nikita

    23.08.2015

    здравствуйте я пишу noTone(p) и у меня не получаеться подскажите

    Ответить на этот комментарий
  5. Никита

    30.07.2016

    у меня Arduino Due и когда я загружаю программу мне пишет ‘tone’ was not declared in this scope

    Ответить на этот комментарий
  6. Глеб

    14.11.2016

    Здравствуйте, у меня такой вопрос. как сделать чтобы звук возрастал?

    Ответить на этот комментарий
  7. Женя

    27.11.2016

    Сделал на основе этого скетча код который запускает пьез элемент когда почва сухая.
    int p = 3;
    int sensorPin=A0;
    int sensorValue=0;
    void setup()//процедура setup
    {
    Serial.begin(1200);
    pinMode(p, OUTPUT);//объявляем пин как выход
    }
    void loop()//процедура loop
    {
    sensorValue=analogRead(sensorPin);
    if (sensorValue>500)
    {
    delay(1000);
    Serial.println(«Poshwa Suxaya»);
    tone (p,500);//включаем на 500 Гц
    delay(100); //ждем 100 Мс
    tone(p,1000);//включаем на 1000 Гц
    delay(100);//ждем 100 Мс
    }
    else
    {
    Serial.println(«Poshwa WLAZNAYA»);
    delay(1000);
    noTone(p);
    }
    delay(100);
    }

    Ответить на этот комментарий
  8. Александр

    10.01.2017

    Почему используется третий цифровой выход? Из-за аппаратного PWM? Почему об этом ни слова в уроке? Это очень важно! А какой таймер при этом задействуется? Ведь, допустим, я все таймеры уже использую по другому назначению (сброс по совпадению) и параметры их изменены. Или функция Tone не использует таймеры? А выход/вход обратнов функцию из обработчика прерывания имеются?

    Ответить на этот комментарий
  9. Максим

    23.01.2017

    На фото не пьезоэлемент, а электродинамическая головка.
    Вот пьезоэлемент:
    пьезоэлемент/ардуино

    Ответить на этот комментарий
  10. amator

    01.04.2017

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

    Ответить на этот комментарий
    • Ольга

      01.04.2017

      Программа для ардуино всегда имеет вид цикла, однако можно включать пьезоэлемент только при выполнении какого-либо условия. К примеру, если в цикл добавить счетчик — создать новую переменную i и прибавлять к ней в цикле 1, а команду пищать поместить в условие if — например, пищим когда i меньше 5 , а больше если — то соответственно не пищим.

      Ответить на этот комментарий
    • Артем

      10.12.2018

      Нужно подключить к pin 13, при включении Arduino- «Пьезоэлемент» пропищит несколько раз, соответственно просигнализирует о начале работы.

      Ответить на этот комментарий
  11. Иван

    07.04.2017

    В коде некрасиво указан номер пина с пьезоэлементом. Красивее и компактней было бы использовать #define p 3 вместо int p = 3.

    Ответить на этот комментарий
  12. Евгений

    02.08.2017

    Забыли include библиотеки для tone
    Нужен токоограничивающий резистор от пина до питания, Иначе линия превысит ток 40мА и сгорит
    AREF зря используете, вместо него нужно 5V, иначе не будет работать аналогово-цифровой преобразователь

    Ответить на этот комментарий
  13. Vasia

    14.04.2018

    Здраствуйте написал код для ик приемника. При отправки сигнала пьезо будет жужать один раз.Но код не компелируется. В чем причина сей беды.
    #include «IRremote.h»
    IRrecv irrecv(12); // указываем вывод, к которому подключен приемник

    decode_results results;
    int p=13;
    int c=10;
    void setup() {
    pinMode(p, OUTPUT);
    pinMode(c, OUTPUT);
    irrecv.enableIRIn(); // запускаем прием
    }
    void loop() {
    if ( irrecv.decode( &results )) { // если данные пришли
    switch ( results.value ) {
    case 0x1FE50AF:
    tone(c, 500);
    digitalWrite(c, HIGH);

    break;
    case 0x1FEE01F:
    digitalWrite( p, LOW );
    noTone(c);
    break;
    }
    irrecv.resume(); // принимаем следующую команду
    }
    }

    Ответить на этот комментарий
  14. Макс

    20.05.2019

    Можно сделать так что бы пьезоэлемент работал с помощью кнопки?

    Ответить на этот комментарий
  15. Имя (обязательно)

    25.10.2019

    Необходима консультация.

    Ответить на этот комментарий

Оставить комментарий

© 2014-2024 Занимательная робототехника, Гагарина Д.А., Гагарин А.С., Гагарин А.А. All rights reserved / Все права защищены. Копирование и воспроизведение в любой форме запрещено. Политика конфиденциальности. Соглашение об обработке персональных данных.
Наверх