Hy...
Ich habe vor jetzt eine Munitionsanzeige für mein Laser-tag system zu basteln und stoße dabei auf immer mehr Probleme.
Ich habe das display RICHTIG angeschlossen und auch schon ein paar Wörter darauf ausgegeben.
Jetzt will ich aber: Wenn(taster gedrückt)
dann (lcd.print("9");
Wenn(taster gedrückt 2-Mal)
dann(lcd.print("8");
und so weiter.....(Hoffe ihr versteht was ich meine)
und dann.........,........Wenn(taster2 gedrückt)
dann(wieder von vorne also von"9" anfangen)
Ich weiß dass es nicht gerechtfertigt ist fertige Codes zu erwarten....
Aber hoffentlich könnt ihr mich wenigstens in DIE RICHTIGE Richtung leiten..
In die richtige Richtung kann ich dich leiten: Du brauchst einen Zähler - und zwar einen der runter zählt.
Also etwa so:
const int button1 = 2; // the number of the pushbutton pin
const int button2 = 3; // the number of the pushbutton pin
int counter = 9;
void setup()
{
pinMode(button1, INPUT);
pinMode(button2, INPUT);
Serial.begin(9600);
}
void loop()
{
if (digitalRead(button1) == HIGH && counter >=1) counter--;
if (digitalRead(button2) == HIGH) counter = 9;
Serial.println(counter);
}
wichtig: das ist nur das absolute Basic-Setup - die Buttons sind nicht entprellt und es wird continuierlich Ausgegeben... Allgemein kann man es wesentlich schicker lösen - aber du wolltest ja nur einen Schubs.
Die wichtigste Grundlage, die beim programmieren zu beachten ist, ist das EVA-Prinzip.
Fast jedes Programm beruht darauf. EVA steht für Eingabe, Verarbeitung, Ausgabe.
Die Eingabe hier ist z.B. die festlegung der Variablen, z.B. das der Anfangswert des Counters "9" sein soll.
Die Verarbeitung passiert in den "if"-Verzweigungen, nämlich was passiert wenn einer der Knöpfe gedrückt wird.
Die Ausgabe ist hier mit Serial.println gelöst - und lässt sich in beliebige andere Ausgaben ändern: eine LED geht an oder aus, eine Funktion liefert einen Wert zurück, ein Text wird auf einem LCD ausgegeben etc.
Tut mir leid aber ganz verstehe ich es dann doch wieder nicht.
Wie kann ich jetzt das lcd display dazu bringen dass es immer etwas anderes ausgibt???
Ich hab ja nur die eine if Bedingung?
Du gibts immer nur aus, was in der Variable drinsteht. Was dann im Endeffekt drinsteht, dass bestimmst du in der 'V' Abteilung des Programms.
also Eingabe, in der realen Welt passiert was, die Elektronik wandelt es in µP- Futter
in der Verarbeitung wandelst Du den Datenwust (ok, relativ übersichtlich bei zwei digitalen Tastern...) in was brauchbares um, in dem o.g. Fall steht in der Variable 'counter' die Anzahl der zuvor gesetzten Patronen drin und
Ausgabe, also mit lcd.print(counter); bringst Du den Wert zum LCD.
Tipp:
Die Freaks hier haben in der Beschreibung schon viele Stichworte gegeben, einfach hier in die Suche, oder bei Tante Google mit arduino zuvor eingeben, Du wirst erschalgen mit Infos...
DANKE!!!!!
Hab es jetzt geschafft den counter am display auszugeben...
Ich bin jetzt aber auf ein weiteres Problem gestoßen...ich will wenn der counter 0 erreicht hat eine bestimmte Funktion
ausführen...Wie mache ich das??
Danke für all die hilfreichen antworten!!!
invisible09
und mit den schlechten Lösungen, da hast Du oft Probleme...
Nen Kollege sagt oft: mach dat doch einfach richtich, dann klappt dat auch....
Nein, Spass beiseite, leise Musik, leckeren Kaffee, nicht ablenken lassen, reinwühlen...anders kommst Du an die Basics nicht dran. Guck mal im Playground nerv Tante Google, dann klappts auch mit dem Programm.
und, btw, der Arduino kann 32k, dein Gehirn doch viel mehr, oder?
von der Seite her: !!! Viel Erfolg !!!
Zum Auslösen von Aktionen wende wieder das EVA Prinzip an, Tipp: Wenn das und dass, dann dies und jenes, und 'Wenn' heißt auf englisch.....
Btw, ich bin auch noch C Frischling, und nur auf Arduino, such mich mal im Board, ich stelle auch gerne Fragen für dumme Antworten..
NAJA das ich nachdenken muss dachte ich mir schon fast
Aber ich will wenn der counter bei 0 angekommen ist dann soll er das und das machen..
Schon klar das ich das schon zum 2* sage..
Kann mir nicht trotzdem irgendwer einen Code geben????
BITTE!!!!!!
momentan pasiert folgendes: wenn der counter größer null ist, zählt er runter.
Wenn du jetzt eine Aktion haben willst, die zutrifft sobald die erste nicht zutrifft (also wenn der Wert nicht größer gleich null ist) brauchst du ein "else".
Ein bisschen Programmierbasics sollte man sich schon aneignen wollen...