Moin,
ich bin dabei ein Lagersystem zu entwickeln und brauche nun Hilfe beim code. Das System soll 10 Kisten mit jeweils 4 Fächern für 23 Produkte/Lagerplätze umfassen, also insgesamt 920 Lagerplätze für Produkte. Die 40 Fächer haben jeweils eine LED die durch die Eingabe der Lagerplatznummer auf einem Keypad(Folientastatur) aufleuchten soll. Also 1 bis 23 - Fach/LED 1, 24 bis 47 - Fach/LED 2 usw. . Außerdem soll eine Error LED leuchten wenn eine Zahl/ Lagerplatznummer eingegeben wird die es nicht gibt.
Ich habe nun versucht die Lagerplätze einzeln als Passwörter zu definiern, hat zum testen mit 4 auch funktioniert aber nach dem einfügen der 920 "Passwörter" hab ich versucht das schon mal zu Kompilieren um zu schauen ob das geht. Hat nicht geklappt: fehler zu viele Globale Variabeln, zu viele Bytes verwendet. (ich habe den Mega2560)
Jetzt die Frage: gibt es einen weg das zu verkürzen oder das Programm zu komprimieren? Oder sogar komplett anders zu machen? Bin noch neu beim Arduino und habe im Code das gemacht was mir am besten erschien.
Grüße Felix
#include <SoftReset.h>
#include <Password.h>
#include <Keypad.h>
#define ledpinERROR 10
#define ledpin1 11
#define ledpin2 12
#define ledpin3 13
#define ledpin4 14
#define ledpin5 15
#define ledpin6 16
#define ledpin7 17
#define ledpin8 18
#define ledpin9 19
#define ledpin10 20
#define ledpin11 21
#define ledpin12 22
#define ledpin13 23
#define ledpin14 24
#define ledpin15 25
#define ledpin16 26
#define ledpin17 27
#define ledpin18 28
#define ledpin19 29
#define ledpin20 30
#define ledpin21 31
#define ledpin22 32
#define ledpin23 33
#define ledpin24 34
#define ledpin25 35
#define ledpin26 36
#define ledpin27 37
#define ledpin28 38
#define ledpin29 39
#define ledpin30 40
#define ledpin31 41
#define ledpin32 42
#define ledpin33 43
#define ledpin34 44
#define ledpin35 45
#define ledpin36 46
#define ledpin37 47
#define ledpin38 48
#define ledpin39 49
#define ledpin40 50
Password password1 = Password( "1" );// 1 bis 920 sind lagerplätze für produkte
Password password2 = Password( "2" );//23 Lagerplätze bzw. Produkte pro Fach
Password password3 = Password( "3" );//4 Fächer a 23 Lagerplätze pro Kiste
Password password4 = Password( "4" );//10 Kisten a 4 Fächer = 40 Fächer
Password password5 = Password( "5" );//40 Fächer a 23 Lagerplätze = 920
Password password6 = Password( "6" );
Password password7 = Password( "7" );
Password password8 = Password( "8" );
Password password9 = Password( "9" );
Password password10 = Password( "10" );
Password password11 = Password( "11" );
Password password12 = Password( "12" );
Password password13 = Password( "13" );
Password password14 = Password( "14" );
Password password15 = Password( "15" );
Password password16 = Password( "16" );
Password password17 = Password( "17" );
Password password18 = Password( "18" );
Password password19 = Password( "19" );
Password password20 = Password( "20" );
Password password21 = Password( "21" );
Password password22 = Password( "22" );
Password password23 = Password( "23" );
Password password24 = Password( "24" );//musste für den Post den rest rausnehmen
Password password920 = Password( "920" );
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = { 2,3,4,5};
byte colPins[COLS] = { 6,7,8,9 };
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
pinMode(ledpinERROR,OUTPUT);
pinMode(ledpin1,OUTPUT);
pinMode(ledpin2,OUTPUT);
pinMode(ledpin3,OUTPUT);// ich weiß hier fehlen noch die restlichen Angaben
Serial.begin(9600);
keypad.addEventListener(keypadEvent); //add an event listener for this keypad
}
void loop(){
keypad.getKey();
}
//take care of some special events
void keypadEvent(KeypadEvent eKey){
switch (keypad.getState()){
case PRESSED:
Serial.print("Pressed: ");
Serial.println(eKey);
switch (eKey){
case '*': checkPassword();
break;
case '#': password1.reset();
password2.reset();
break;
default: password1.append(eKey);
Password password920 = Password( "920" );
password1.append(eKey);
password2.append(eKey);
password3.append(eKey);
password4.append(eKey);
password5.append(eKey);
password6.append(eKey);
password7.append(eKey);
password8.append(eKey);
password9.append(eKey);
password10.append(eKey);
password11.append(eKey);
password12.append(eKey);
password13.append(eKey);
password14.append(eKey);
password15.append(eKey);
password16.append(eKey);
password17.append(eKey);
password18.append(eKey);
password19.append(eKey);
password20.append(eKey);
password21.append(eKey);
password22.append(eKey);
password23.append(eKey);
password24.append(eKey); //ich weiß da fehlen noch welche
password920.append(eKey);
}
}
}
void checkPassword(){
if (password1.evaluate()){
Serial.println("code 1 success");
digitalWrite(ledpin1, HIGH);
delay(5000);
digitalWrite(ledpin1, LOW);
soft_restart();
}
else if (password2.evaluate()){
Serial.println("code 3 success");
digitalWrite(ledpin1, HIGH);
delay(5000);
digitalWrite(ledpin1, LOW);
soft_restart();
}
else if (password23.evaluate()){
Serial.println("code 2 success");
digitalWrite(ledpin1, HIGH);
delay(5000);
digitalWrite(ledpin1, LOW);
soft_restart();
//nun sollen von 1 bis 23 alle Passwörter eine LED ansteuern, danach von 24 bis 47 eine andere LED, 48 bis 71 usw. bis 920
}
else if (password24.evaluate()){
Serial.println("code 2 success");
digitalWrite(ledpin2, HIGH);
delay(5000);
digitalWrite(ledpin2, LOW);
soft_restart();
} else {
Serial.println("Wrong");
digitalWrite(ledpinERROR, HIGH);
delay(5000);
digitalWrite(ledpinERROR, LOW);
soft_restart();
}
}
Storage_Indicator.ino (64 KB)
ERROR.pdf (180 KB)