#1 2016-04-25 00:08:02

sherif
Учасник
Зареєстрований: 2016-04-24
Повідомлень: 2

dtmf и строка

Подскажите что не так.
Идея в том чтобы после ввода некоторой комбинации с телефона, она сохранялась в строку до момента нажатия на решетку, после сравниваем с correct_password и если строки совпали отправить в терминал success, иначе failed.

на деле в терминал отправляются все подряд символы в момент их нажатия включая # , но после # еще отправляется failed

Что не так? спс.

#include <DTMF.h>

//init dtmf
int sensorPin = A0;
float n=128.0;//wider the bandwidth
float sampling_rate=8926.0;
DTMF dtmf = DTMF(n,sampling_rate);
float d_mags[8];

const String correct_password = "123";
String readed_password;
int led = 13;

void setup() 
{
  pinMode(led, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  dtmf.sample(sensorPin);
  dtmf.detect(d_mags,506);
  char symbol = dtmf.button(d_mags,1800.);
  if( symbol == 0 )
    return;

  Serial.println(symbol);
  if( symbol == '#' )
  {
    if( readed_password == correct_password )
      Serial.println("success");
    else
      Serial.println("failed");
    readed_password = "";
  }
  else
    readed_password += symbol;
}

Остання редакція sherif (2016-04-25 00:13:20)

Неактивний

#2 2016-04-26 08:59:20

alex_dol
Учасник
Зареєстрований: 2015-12-28
Повідомлень: 196

Re: dtmf и строка

Чтобы не отправлялись все символы уберите Serial.println(symbol);

Неактивний

#3 2016-04-26 19:55:58

sherif
Учасник
Зареєстрований: 2016-04-24
Повідомлень: 2

Re: dtmf и строка

alex_dol пише:

Чтобы не отправлялись все символы уберите Serial.println(symbol);


СПС. Это дебажная строка, все заработало, последняя бутылка пива была лишней((

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму