Moin Leute,
bin ein Arduino Neueinsteiger und habe schon ein paar Kleinigkeiten programmiert und das klappt auch alles wunderbar.
Mein Problem ist eher die verfügbare Hardware als der dazugehörige Code.
Mein Code soll 9 LEDs ansteuern von denen immer nur eine Leuchten soll und welche mit einem Fußschalter ausgewählt werden können.
Der Fußschalter hat 3 Tasten: Vor, Zurück und Reset
Taste Vor schaltet die nächste LED ein,
Zurück die schaltet die vorherige LED ein
und die Taste Reset schaltet zurück auf die Start-LED bzw. wenn diese bereits leuchtet dann wird diese abgeschaltet.
Mein Code sieht momentan wie folgt aus und wird demnächst um den passenden Code für eine kleine Displayanzeige ergänzt: (Alles mit nen bisschen viel Kommentaren aber so konnte ich das unserem Azubi gut erklären :D)
int led = 5; // Variable für den Pin der Default-LED; 5 = LED Mitte
int pressed = 0; // Variable für den Schalterstatus
void setup() {
pinMode(1,OUTPUT); // LED 1
pinMode(2,OUTPUT); // LED 2
pinMode(3,OUTPUT); // LED 3
pinMode(4,OUTPUT); // LED 4
pinMode(5,OUTPUT); // LED 5
pinMode(6,OUTPUT); // LED 6
pinMode(7,OUTPUT); // LED 7
pinMode(8,OUTPUT); // LED 8
pinMode(9,OUTPUT); // LED 9
pinMode(10,INPUT); // Zurück-Taster
pinMode(11,INPUT); // Reset-Taster
pinMode(12,INPUT); // Vor-Taster
}
void loop() {
if ((digitalRead(10) == LOW) && (digitalRead(11) == LOW) && (digitalRead(12) == LOW)){ // Wenn keiner der drei Schalter gedrückt ist
pressed = 0; // dann setze die Variable "pressed" auf den Wert 0.
delay(100);
}
if ((digitalRead(12) == HIGH) && (pressed == 0)){ // Wenn der Taster "Vor" gedrückt ist
pressed = 1; // dann setze den Wert der Variable "pressed" auf den Wert 1 und
digitalWrite(led,LOW); // schalte die momentan selektierte LED aus und
led++; // der Wert der Variable "led" wird um 1 erhöht.
if (led > 9) { // Sollte die Variable "led" nun den Wert 9 übersteigen dann wird
led = 1; // der Wert von "led" auf 1 gesetzt.
}
digitalWrite(led,HIGH); // Einschalten der momentan selektierten LED
delay(150);
}
if ((digitalRead(10) == HIGH) && (pressed == 0)){ // Wenn der Taster "Zurück" gedrückt ist
pressed = 1; // dann setze den Wert der Variable "pressed" auf den Wert 1 und
digitalWrite(led,LOW); // schalte die momentan selektierte LED aus und
led--; // der Wert der Variable "led" wird um 1 verringert.
if (led < 1) { // Sollte die Variable "led" nun den Wert 1 unterschreiten dann
led = 9; // wird der Wert von "led" auf 9 gesetzt.
}
digitalWrite(led,HIGH); // Einschalten der momentan selektierten LED.
delay(150);
}
if ((digitalRead(11) == HIGH) && (pressed == 0)){ // Wenn der Taster "Reset" gedrückt ist
pressed = 1; // dann setze den Wert der Variable "pressed" auf den Wert 1 und
if (digitalRead(5) == HIGH){ // wenn die momentan eingeschaltete LED die mittlere ist
digitalWrite(led,LOW); // dann wird die LED ausgeschaltet.
}
else { // Sollte die momentan eingeschaltete LED nicht die mittlere sein
digitalWrite(led,LOW); // dann wird die momentan leuchtende LED ausgeschaltet,
led = 5; // der Wert von "led" auf 5 gesetzt (entspricht der mittleren LED) und
digitalWrite(led,HIGH); // die LED wird eingeschaltet
}
}
}
Verbesserungsvorschläge nehme ich gern entgegen allerdings funktioniert alles soweit ganz gut
Nun aber zu meiner eigentlichen Frage:
Ich suche ein kleines Display (~3" reicht vollkommen) welches entweder mit einem passendem Gehäuse geliefert wird oder eines welches relativ gute Befestigungsmöglichkeiten bietet.
Zum testen des Displays und der Touchscreen-Funktion hatte ich mir mal folgendes Display bestellt:
Das funktioniert auch alles ganz schön und gut nur habe ich mit diesem Display das Problem das es keinerlei Befestigungsmöglichkeiten gibt.
Weder Löcher zum Anschrauben noch ein passendes Gehäuse in das man das einklicksen könnte sind vorhanden.
Habt ihr da irgendwelche Empfehlungen?
Habe kein Problem auch nen Bopla Gehäuse zu nehmen und das dann passend zu fräsen aber vielleicht habt ihr ja bessere Vorschläge für mich
Lieben Gruß,
BlubQ