Страница 1 из 1

Звонок громкого боя для шумного помещения

Добавлено: Пн дек 18, 2017 15:24:18
Twin20
Добрый день. Помогите с кодом. Не могу понять почему flag_key_speker не держит единицу пока второй раз не нажата кнопка спекирфона... (код написан для arduino ide)

Изображение

Код: Выделить всё

int flag_key_speker = 0; // флаг включения кнопки спикерфона
int key_speker = 0; // переменная кнопки спикерфона
int key_handset = 0; // переменная кнопки положенной трубки
int ZVK = 0; //
float NAP = 0;
unsigned long last_press;

void setup() {
  pinMode(PB7, OUTPUT); // инцилизация порта для имитации кнопки для спикерфона
  pinMode(PB6, OUTPUT); // инцилизация порта для на симистерный блок
  pinMode(PB4, INPUT); // инцилизация порта для кнопка спикерфона
  pinMode(PB5, INPUT); // инцилизация порта для кнопка положенной трубки
  pinMode(PA0, INPUT); // инцилизация порта для измерения напряжение с динамика
  Serial.begin(9600); // инцилизация паралельного порта
}
void loop() {

  ZVK = analogRead(PA0); // измерение напряжения с динапика
  key_speker = digitalRead(PB4);// чтение состояние кнопки спекирфона
  key_handset = digitalRead(PB5); // чтение состояние кнопки положенной трубки
  NAP = (ZVK * 3.3) / 4095; // переcчет напряжения

  Serial.println(flag_key_speker);

  // оброботка нажатие кнопки спикерфона
 
     if (key_handset == 1 && key_speker == 1 && flag_key_speker == 0 && millis() - last_press > 200)
    {
      digitalWrite(PB7, 1);
      delay(100);
      digitalWrite(PB7, 0);
      last_press = millis();
      flag_key_speker = 1;
      digitalWrite(PB6, 0);
      last_press = millis();
    }
  Serial.println(flag_key_speker);

      last_press = 0;
     
if (key_handset == 1 && key_speker == 1 && flag_key_speker == 1 && millis() - last_press > 200)
    {
      digitalWrite(PB7, 1);
      delay(100);
      digitalWrite(PB7, 0);
      flag_key_speker = 0;
      last_press = millis();
    }

   Serial.println(flag_key_speker); 
  // оброботка вызовного сигнала с положеннной трубкой

  if (NAP > 1.5 && key_handset == 1 && flag_key_speker == 0)
  {
    digitalWrite(PB6, 1);
  }
  else
  {
    digitalWrite(PB6, 0);
  }
}

Re: Звонок громкого боя для шумного помещения

Добавлено: Пн дек 18, 2017 15:36:29
musor
а что ета хрень должна делат кроме ка звонить а то на это обычноц кнопки всегда хватало и уборшицы ТетеЛены с хронометром

Re: Звонок громкого боя для шумного помещения

Добавлено: Пн дек 18, 2017 15:41:38
Twin20
Это устройство включает звонок громкого боя (220 В) при появлении вывозного сигнала на динамике самого телефона. а также изменил работу кнопки спекирфона.

Re: Звонок громкого боя для шумного помещения

Добавлено: Пн дек 18, 2017 18:28:50
Starichok51
Twin20 писал(а):спекир
:))) полный писец... :facepalm:

Re: Звонок громкого боя для шумного помещения

Добавлено: Пн дек 18, 2017 19:29:29
BOB51
Т.е. выходные цепи запускаются от фонового сигнала переменного тока, снятого с катушки динамика спикерфона?
А на фигвам тогда кнопки?
:roll:
И шо это за модель ардуиньи с 40 выводами на платке?
:?

Re: Звонок громкого боя для шумного помещения

Добавлено: Пн дек 18, 2017 19:56:30
Twin20
Ладно. Всем спасибо за помощь. Сделал по варианту два. Модератору большая просьба удалить тему. Кира счёт ардуино то это stm 32.

Re: Звонок громкого боя для шумного помещения

Добавлено: Пн дек 18, 2017 23:39:13
AndTer
stm32 в качестве реле? Зря. Надо было сразу пималину ставить с 10 виндой.

Re: Звонок громкого боя для шумного помещения

Добавлено: Ср дек 20, 2017 04:53:26
Ivanoff-iv
СТМ32, и как она в ветке про АВР выросла?

Re: Звонок громкого боя для шумного помещения

Добавлено: Ср дек 20, 2017 09:15:09
AndTer
Так автор пишет что пишет в ардуине на стм)