wie kann ich zwei programme (sketes) zusammenführen Arduino?
ich will zwei programme zusamen führen wie kann ich das ?(beide programme fonktioniren einzeln) Hier sind die programme: 1. #include #include
Servo ServoMotor; char* password = "123"; // change the password here, just pick any 3 numbers char* password1 = "456"; char* password2 = "789"; int position = 0; 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] = { 8, 7, 6, 9 }; byte colPins[COLS] = { 5, 4, 3, 2 }; Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); int RedpinLock = 12; int GreenpinUnlock = 13;
void setup() { pinMode(RedpinLock, OUTPUT); pinMode(GreenpinUnlock, OUTPUT); ServoMotor.attach(11); LockedPosition(true); }
void loop() { char key = keypad.getKey(); if (key == '*' || key == '#') { position = 0; LockedPosition(true); } if (key == password[position]) { position ++; } if (key == password1[position]) { } if (key == password2[position]) { position ++; } if (position == 3) { LockedPosition(false); } delay(100); } void LockedPosition(int locked) { if (locked) { digitalWrite(RedpinLock, HIGH); digitalWrite(GreenpinUnlock, LOW); ServoMotor.write(11); } else { digitalWrite(RedpinLock, LOW); digitalWrite(GreenpinUnlock, HIGH); ServoMotor.write(90); } }
2.
int licht;
void setup() { Serial.begin(9600); pinMode(13,OUTPUT);
}
void loop() { // put your main code here, to run repeatedly: licht = analogRead(0); Serial.print (licht),delay;
if (licht < 940) { digitalWrite(13,HIGH); } else { digitalWrite(13, LOW); }}
6 Antworten
HI,
Du kannst es folgender Maßen machen:
Erst alle Variablen definieren etc., dann das void Setup mit dem Setup für beide Programmteile.
Anschließend:
void "code1" {
(hier den Code des einen Programms rein)
}
void "code2" {
(Hier den Code des anderen Programms rein)
}
void loop {
code1;
code2;
}
So rufst du in deinem void Loop die vorher initialisierten Unterprogramme "code1" und "code2" auf. Du kannst den void loop auch noch beliebig erweitern🙃
Oben die Namen der void(s) ohne Anführungszeichen!(code1 &code2)
Ich hoffe ich konnte dir weiter helfen.
Für Rückfragen bin ich jeder Zeit offen.
LG, Paul
Du könntest die Programmteile natürlich einfach in einen zusammen kopieren und als ein sketch kompilieren. Aber mal ganz davon abgesehen, ist das eine unglaublich unsichere und absolut nicht empfehlenswerte Umsetzung eines Programmes für ein Key-Pad. So kann man einfach durch dreimalige Eingabe von 0-9 das Schloss öffnen.
Denn bei einer Falscheingabe wird diese Abfrage
if (key == password[position]) {
position ++;
}
nicht ausgewertet, die Falsche Eingabe ignoriert und die nächste Zahl eingelesen. Das Gleiche gilt für die if Abfrage bei password2.
mit zusammenführen meinte ich die beide codes auf ein arduino board laden
geht das mit Interrupts?
Tja am besten statt copy-paste mal selbst mit der Materie beschäftigen. Ist doch auch schöner selber was zu schaffen statt zu kopieren und zu bekaupten man kann programmieren