пятница, 8 августа 2014 г.

Имитация сирены гражданской обороны(ГО) на Arduino


Всем привет, уже давно хотелось сделать имитатор сирены ГО(гражданской обороны), ну и вот наконец-то дошли руки, сделал по быстренькому на ардуино про мини(Arduino Pro Mini), вот видео:


Схему подключения можете посмотреть на картинке вначале.
А вот собственно код:



#define Speaker_pin 10 // пин к которому подключен динамик
#define Speed_up_down_frequency 8000 // скорость нарастания и убывания частоты
#define Vooooo_wait_sec 10 // сколько с. длиться гудение на макс. частоте

void setup() {
   pinMode(Speaker_pin, OUTPUT);       
}

void loop()
{
    for(int f = 7000; f >= 800; f--){ // нарастание частоты
      Vooooo(f,Speed_up_down_frequency);
    }

    Vooooo(800, Vooooo_wait_sec*1000000); // сколько с. длиться гудение на максимальной частоте

    for(int f = 800; f <= 7000; f++){ // убывание частоты
      Vooooo(f,Speed_up_down_frequency);
    }
    //delay(5000);  // 5 сек пауза, для тестов
  }

void Vooooo(int freq, long duration){ // первый параметр частота, чем ниже он тем выше частота, второй длительность
  long time = duration/2/freq;
  for(long t = 0; t < time; t++)
  {
    digitalWrite(Speaker_pin, HIGH);
    delayMicroseconds(freq);
    digitalWrite(Speaker_pin, LOW);
    delayMicroseconds(freq);
  } 
}


Как видите код не сложный, цифры 7000 и 800 подобрал экспериментальным путём.

Ключевые слова: своими руками, программирование, AVR, ардуино про мини,Arduino Pro Mini, сделай сам, DIY.

Комментариев нет:

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