Salve a tutti i entro sta sera dovrei consegnare un programma che data una sequenza di mille caratteri ricerchi una combinazione di 4 bit ed una volta trovata accenda un led.
io il programma l'ho impostato così:
int led = 12;
int i = 0;
int x = 0;
//STRUTTURA PER I CARATTERI
typedef struct s_stringhe {
char c[4];
char s[1000];
} t_struct1;
t_struct1 t_struct;
String str;
void input();
void funzione(boolean state,boolean date);
void setup() {
Serial.begin(115200);
pinMode(led, OUTPUT);
}
void loop() {
bool state = false;
input();
funzione(state);
}
//IMMISIONE DATI
void input() {
Serial.println("Inserisci i bit da ricercare: ");
while (Serial.available() == 0);
delay(500);
int pin = Serial.read();
str = String(pin); //converto l'intero in stringa
str.toCharArray(t_struct.c, 4); //converto la stringa in Array
Serial.println("Inserisci la sequenza nella quale dovrà essere ricercata la combinaizone di bit (fino ad un massimo di mille bit): ");
while (Serial.available() == 0);
delay(500);
int sequenza = Serial.read();
str = String(sequenza); //converto l'intero in stringa
str.toCharArray(t_struct.s, 10000); //converto la stringa in Array
}
//FUNZIONE PER CERCARE LA COMBINAZIONE SCELTA NELLA SEQUENZA
void funzione(boolean state) {
do {
if (t_struct.c[i] = t_struct.s[x]) {
x = +1;
i = +1;
if (t_struct.c[i] = t_struct.s[x]) {
x = +1;
i = +1;
if (t_struct.c[i] = t_struct.s[x]) {
x = +1;
i = +1;
if (t_struct.c[i] = t_struct.s[x]) {
state = true;
Serial.println("TROVATA LA COMBINAZIONE");
digitalWrite(led, HIGH);
} else {
x = +1;
i = 0;
}
} else {
x = +1;
i = 0;
}
} else {
x = +1;
i = 0;
}
} else {
x = +1;
i = 0;
}
} while (state = false);
}
il mio problema e che una volta chiesta la sequenza di bit da ricercare mi accende il led senza chiedermi la sequenza di bit dove ricercarla(la combinazione).
Grazie in anticipo per il supporto che riceverò