Главная » Arduino
Призовой фонд
на январь 2017 г.
1. 5000 руб.
Академия Благородных Металлов
2. 1000 руб.
Radio-Sale
3. Регулируемый паяльник 60 Вт
Паяльник
4. 600 руб.
От пользователей
5. Тестер компонентов LCR-T4
Паяльник

Похожие статьи:


Курс Arduino - Звук

Пищало

Давайте попробуем реализовать звуковую сигнализацию какого-либо явления. Для этого мы будем использовать пьезодинамик или buzzer.

Нам понадобятся

  • Пьезодинамик
  • Фоторезистор
  • Термистор
  • Резистор 10 кОм
  • Потенциометр
  • Соединительные провода «Папа-Папа»

Пищало V.1

Для начала сделаем устройство, которое выводит по запросу, для каждого датчика его значение и, если значение выше/ниже заданного порога, издает звуковой сигнал.

Соберем схему:

Код к схеме

#define TERM A0
#define FOTO A1
#define POT A2
#define BUZZ 3

void setup()
{
  Serial.begin(9600);
  Serial.println("Privet!");
  
  pinMode(TERM, INPUT);
  pinMode(FOTO, INPUT);
  pinMode(POT, INPUT);
  pinMode(BUZZ, OUTPUT);
}

void loop() 
{
  int temp = analogRead(TERM);
  int light = analogRead(FOTO);
  int value = analogRead(POT);

  
   if(Serial.available() > 0) //Проверяем, пришла ли команда.
  {
   char cmd = Serial.read(); //Объявим переменную, в которую будем запоминать команду.

   //Чтобы услышать звук - зажми термистор пальцами.Одновременно отправь команду
   if (cmd == 'T' || cmd == 't')      //Если пришла команда "Termistor mode"
    {
      Serial.println( temp);  
      
      if(temp < 450)  //Включаем режим термистора.          
          {
            tone(BUZZ, 3000, 1000);  
            delay(600);
          }
     }
      
      //Чтобы услышать звук- закрой фоторезистор рукой.Одновременно отправь команду
      if (cmd == 'f' || cmd == 'F')     //Если пришла команда "Fotorezistor mode"
      {
        Serial.println(light);
         if(light > 400)                //Включаем режим фоторезистора
           {
            
             tone(BUZZ, 4000, 1000);  
             delay(600);
           }
    
      }

      //Чтобы услышать звук выкрути термистор до значения больше 700 и отправь команду.
      if( cmd == 'p' || cmd == 'P')     //Если пришла команда "Potentiometr mode"
      {  
        Serial.println(value);         //Включаем режим потенциометра.
         if( value > 700)
          {
            tone(BUZZ, 5000, 1000);  
            delay(600);
          }
      }
          
  }  
}

Пояснения

Tone – Функция генерирует на пьезопищалке звуковую волну. В общем виде функция записывается так. Tone(Номер пина, Частота, Длительность)

Номер пина – это номер пина, к которому подключен буззер. 

Частота – частота звука, подаваемая на пищалку.

Длительность – длительность подаваемого сигнала в миллисекундах. Ее можно не задавать, но тогда звук не будет прекращаться пока вы не вызовите функцию noTone(Номер пина)

Так себе?

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

Пищало V.2

#define TERM A0
#define FOTO A1
#define POT A2
#define BUZZ 3

void setup()
{
  Serial.begin(9600);
  Serial.println("Privet!");
  
  pinMode(TERM, INPUT);
  pinMode(FOTO, INPUT);
  pinMode(POT, INPUT);
  pinMode(BUZZ, OUTPUT);
}

void loop() 
{
  int temp = analogRead(TERM);
  int light = analogRead(FOTO);
  int value = analogRead(POT);

  
 if(temp < 450)
 {
  Serial.println("Achtung!It's too hot!");
  Serial.println("Temperature:");
  Serial.println(temp);
  tone(BUZZ, 3000, 1000);
  delay(2000);
 }

 if(light > 400)
 {
  Serial.println("Night is coming!");
  Serial.println("Light:");
  Serial.println(light);
  tone(BUZZ, 4000, 1000);
  delay(2000);
 }

  if(value > 700)
  {
    Serial.println("Turn it off pls");
    Serial.println("Value:");
    Serial.println(value);
    tone(BUZZ, 3000, 1000);
    delay(2000);
  }
  
}

Лучше?

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

Можно двигаться дальше.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
Плата Arduino
Arduino Uno
1 Поиск в FivelВ блокнот
Резистор
10 кОм
2 Поиск в FivelВ блокнот
ТермисторB57164-K 103-J1 Поиск в FivelВ блокнот
ФоторезисторVT90N21 Поиск в FivelВ блокнот
Соединительные провода"Папа-Папа"1 Поиск в FivelВ блокнот
Макетная плата"Папа-Папа"1 Поиск в FivelВ блокнот
Переменный резистор10кОм1 Поиск в FivelВ блокнот
ПьезоизлучательПассивный1 Поиск в FivelВ блокнот
Макетная платаBreadboard-half1 Поиск в FivelВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (0) | Я собрал (0) | Подписаться

Статью еще никто не комментировал. Вы можете стать первым.
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Arduino UNO
Arduino UNO
Набор 4WD Kit Bluetooth Набор для сборки - LED лампа
вверх