Evo Makso probaj ovo :
Ovde mozes dodavati jos tastera samo u array byte taster[] dodas pin na koji je vezan taster i u array int command[numButtons] dodas komandu za taj pin i ne moras nista vise menjati u kodu.... Ovo ti je kod za transmit a na drugoj strani samo citaj komande i na osnovu njih izvrsavaj dalje radnje...
Ovo ti je bez interapta koji za ovakav jednostavan primer i nije potreban kad program naraste do granica potrebe za njim onda cemo ga i implemetirati...
Ovde mozes dodavati jos tastera samo u array byte taster[] dodas pin na koji je vezan taster i u array int command[numButtons] dodas komandu za taj pin i ne moras nista vise menjati u kodu.... Ovo ti je kod za transmit a na drugoj strani samo citaj komande i na osnovu njih izvrsavaj dalje radnje...
Code:
int LED = 12;
byte taster[] = {8,9}; // ovde dodas pinove za druge tastere ako ti zatreba
#define numButtons sizeof(taster) //array size -> ovde definisemo koliko imas tastera
int command[numButtons] = {1111,2222}; // ovde unosis komande za tastere
boolean flag = false;
void setup() {
pinMode(LED, OUTPUT);
for(int i=0;i<numButtons;i++)
pinMode(taster[i], INPUT);
Serial.begin(9600);
}
void loop() {
flag=false;
for(int i=0; i<numButtons; i++){ // prolaz kroz buttone
int tasterTest = 0; // variable za debounce
digitalWrite(LED,LOW); // gasimo led kad taster nije pritisnut
while (digitalRead (taster[i]) == HIGH && flag==false){ // vrtimo petlju dok god je jedan od tastera pritisnut i dok nije podignut flag
tasterTest++;
if(tasterTest > 3){ // proveravamo debounce
Serial.println(command[i]); // saljemo komandu
digitalWrite(LED, HIGH); // palimo led da je taster pritisnut
flag=true; // podizemo flag da bi napustili for petlju da ne vrti sve mogucnosti nego da krene ponovo
delay(500); // ovaj delay trenutno nam "glumi" interapt znaci svaki cca pola sekunde idu komande zaredom ako
} // drzimo taster stalno pritisnut. Ovaj delay sam stavio samo zbog toga da damo dovoljno vremena wifi modulima da pravilno izkomuniciraju.
}
if(flag) break; // zapocinjemo for petlju ponovo
}
}
Ovo ti je bez interapta koji za ovakav jednostavan primer i nije potreban kad program naraste do granica potrebe za njim onda cemo ga i implemetirati...