#1 2014-12-24 20:56:56

VAR
Учасник
Зареєстрований: 2014-12-24
Повідомлень: 4

Помогите с кодом программы!

Прошу сильно не ругать, т.к. мне до программиста как медному тазику до ржавчины. Есть код который я мурыжу 3 день и не могу реализовать сравнение ниже преведу его.нужно дописать как я понимаю совсем чуток а вот как это сделать еще не дотямываю!
#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'}
};
byte rowPins[ROWS] = { 9, 8 };
byte colPins[COLS] = { 12, 11, 10 };
Keypad klava = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

#define pwr 13
String sbros;
String summa;
int dlinna=0;
void setup()//--------------------------
{
  pinMode(pwr,OUTPUT);
  digitalWrite(pwr, HIGH);
  Serial.begin(9600);
}

void loop()//------------------------
{
  char keypress = klava.getKey();
 
  if (keypress){
Serial.println(keypress);
dlinna=dlinna-1;
if (dlinna==6){
summa="";
sbros="";
dlinna=0;
Serial.println("LONG");
};
 
  summa=summa+keypress;
  Serial.println(summa);
  sbros=String(keypress);
  if(summa=="123456")
  {   
     Serial.println("PASS OK");
     summa="";
      sbros="";
     }
ВОТ СЮДА НАДО НАПИСАТЬ КУСОК ТАКОГО ХАРАКТЕРА  (ЕСЛИ СУММА НЕ СОВПАДАЕТ С 123456 ТО ДЕЛАЕМ СБРОС НА НАЧАЛО ВВОДА ПАРОЛЯ СТРОКА if(summa!="123456") НЕ РАБОТАЕТ ПОЧЕМУ ТО )
   
  }
};

может моя ошибка в чем то другом и мой ход мыслей неправильный!
Буду признателен за любую помощь начинающему Arduinщику smile. С уважением Виталий!

Неактивний

#2 2014-12-25 14:22:33

NoName
Customer
З Київ
Зареєстрований: 2014-07-08
Повідомлень: 1,446

Re: Помогите с кодом программы!

strcmp

#include <stdio.h>
#include <string.h>

int main ()
{
  char key[] = "apple";
  char buffer[80];
  do {
     printf ("Guess my favorite fruit? ");
     fflush (stdout);
     scanf ("%79s",buffer);
  } while (strcmp (key,buffer) != 0);
  puts ("Correct answer!");
  return 0;
}

легкий пинок в нужную сторону )

Неактивний

#3 2014-12-25 15:32:03

VAR
Учасник
Зареєстрований: 2014-12-24
Повідомлень: 4

Re: Помогите с кодом программы!

NoName пише:

strcmp

#include <stdio.h>
#include <string.h>

int main ()
{
  char key[] = "apple";
  char buffer[80];
  do {
     printf ("Guess my favorite fruit? ");
     fflush (stdout);
     scanf ("%79s",buffer);
  } while (strcmp (key,buffer) != 0);
  puts ("Correct answer!");
  return 0;
}

легкий пинок в нужную сторону )

Спасибо что откликнулись! Но учитывая мои знания в программировании 0,1%, мне не понятен этот код))

Неактивний

#4 2014-12-25 15:33:06

NoName
Customer
З Київ
Зареєстрований: 2014-07-08
Повідомлень: 1,446

Re: Помогите с кодом программы!

http://playground.arduino.cc/code/Keypad
прикольно )
навскидку, де то так сделал бы

  
char buffer[10];
Serial.println("input password  >"); 
char keypress;
memset(buffer,0,10);  // очистка буфера
int pos = 0;
int  pass_err = 1;

do {
  keypress = klava.getKey(); // чтение нажатой кнопки 
  
    if (keypress != NO_KEY)  // если нажато
  {
    Serial.print('*'); // вывод звезды, индикация события
    buffer[pos%sizeof(buffer)] = keypress; // копируем в буфер
    pos++; // смещаем позицию
  }

if ( pos >= 6 ) // 6 символов
{
  if  ( strcmp (buffer,(char*)"123456") == 0 ) //  сравниваем с нужным паролем
 {
   pass_err = 0; // сравнение успешно
  Serial.println("password ok"); 
 }
 else
{  // password error, reset position
 pos = 0;
 memset(buffer,0,10);
 Serial.println("error");
 Serial.println("input password > "); 
}
}  // if ( pos >= 6 )

} while ( pass_err );  // в цикле пока не будет корректный пароль

Остання редакція NoName (2014-12-25 15:42:29)

Неактивний

#5 2014-12-25 16:51:21

VAR
Учасник
Зареєстрований: 2014-12-24
Повідомлень: 4

Re: Помогите с кодом программы!

Спасибо! буду пробовать. отпишусь по результату

Неактивний

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

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

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