Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/DTMFTest

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Тональный сигнал[1]

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

Код

  1. // Тональный сигнал
  2.  
  3. // https://ru.wikipedia.org/wiki/DTMF
  4.  
  5. // Чтобы совместить выходные данные для сигналов и выходные данные 
  6. // от маленького динамика (например, на 8 ом и выше), воспользуйтесь 
  7. // резисторами на 1 кОм. Подключите их к каждому выходному контакту, 
  8. // а затем соедините вместе на динамике. Не забудьте подключить другую 
  9. // сторону динамика к «земле»!
  10.  
  11. #include <Tone.h>
  12.  
  13. Tone freq1;
  14. Tone freq2;
  15.  
  16. const int DTMF_freq1[] = { 1336, 1209, 1336, 1477, 1209, 1336, 1477, 1209, 1336, 1477 };
  17. const int DTMF_freq2[] = {  941,  697,  697,  697,  770,  770,  770,  852,  852,  852 };
  18.  
  19. void setup()
  20. {
  21.   Serial.begin(9600);
  22.   freq1.begin(11);
  23.   freq2.begin(12);
  24. }
  25.  
  26. void playDTMF(uint8_t number, long duration)
  27. {
  28.   freq1.play(DTMF_freq1[number], duration);
  29.   freq2.play(DTMF_freq2[number], duration);
  30. }
  31.  
  32.  
  33. void loop()
  34. {
  35.   int i;
  36.   uint8_t phone_number[] = { 8, 6, 7, 5, 3, 0 ,9 };
  37.  
  38.   for(i = 0; i < sizeof(phone_number); i ++)
  39.   {
  40.     Serial.print(phone_number[i], 10);
  41.     Serial.print(' ');
  42.     playDTMF(phone_number[i], 500);
  43.     delay(600);
  44.   }
  45.  
  46.   Serial.println();
  47.   delay(4000);
  48. }

См.также

Внешние ссылки

  1. code.google.com - DTMFTest.pde