Quiz Brauche hilfe warscheinlich schnell gemacht für mich leider nicht

Hallo
Mein Name ist Johannes
ich binn 14 jahre alt und leider nicht herr der sprache des arduinos
ich brauche hilfe für ein projekt an dem ich seit c.a. 3 jahren sitze ein quiz klingt easy ist es leider nicht

Problem
ich kann leider nicht aus 6 tastern mit arduino mitlogen in welcher reihenfolge sie ausgelöst werden
Will mir dafür wenn es möglich damit ist einen arduino nano holen

idee
taster an die analogen inputs oder an die digitalen hängen und den ardu so programmieren das er dann
möglichst über seriell die reihenfolge ausgibt
z.b. im serial monitor steht dann 163542 was mir dann nicht nur sagt das 1 der erste war sondern was mein problem ist mir dann halt auch ausgibt wer 2. ist und so weiter

wenn möglich würde ich das ganze ohne wiederstände o.ä. lösen

brauche wenn jemand ne idee hat nen schaltplan und den sketch die auswertung vom serial monitor kriege ich selber hin
lg johannes

Hallo,

tut mir leid dir das jetzt sagen zu müssen. Mit solchen Fragen sind auch wir absolut überfordert. Am besten wäre es, du wendest dich an die Profis. Link: Forum: Mikrocontroller und Digitale Elektronik - Mikrocontroller.net Die behandeln solche speziellen Fälle besonders gern.

Doc_Arduino:
Hallo,

tut mir leid dir das jetzt sagen zu müssen. Mit solchen Fragen sind auch wir absolut überfordert. Am besten wäre es, du wendest dich an die Profis. Link: Forum: Mikrocontroller und Digitale Elektronik - Mikrocontroller.net Die behandeln solche speziellen Fälle besonders gern.

oh ok danke werd ich mir mal ansehen
so kompliziert lol
ist es also nicht möglich zu checken wann ein input auf high schaltet und die reihenfolge dann ausgibt

Problem ist das keins, nur wird dir hier keiner so schnell aus reiner Nächstenliebe einen Schaltplan zeichnen und dir das Programm dafür erstellen. Das ist ein Hilfe-Forum, hier gibt es Hilfe, aber nichts Fertiges.

Poste mal den Sketch, der über die drei Jahre entstanden ist.

mde110:
Problem ist das keins, nur wird dir hier keiner so schnell aus reiner Nächstenliebe einen Schaltplan zeichnen und dir das Programm dafür erstellen. Das ist ein Hilfe-Forum, hier gibt es Hilfe, aber nichts Fertiges.

Poste mal den Sketch, der über die drei Jahre entstanden ist.

das projekt basierte bis jetzt auf autohotkey und einer zerlegten logitech tsatatur die die tasten paralel sendet leider kommt dann 2 und 3 gleichzeitig an

jurs:
Also wenn ich Dein Kauderwelsch mal in Deutsch übersetz, dann möchtest Du wohl:

  • ein Programm für sechs Quiz-Buzzer,
    und nach dem Programmstart möchtest Du auf Serial ausgeben, in welcher Reihenfolge die Spieler ihre Quiz-Buzzer drücken, z.B.
    163542

Das ist kein großes Ding.

Aber Du hast vergessen zu beschreiben, was ausgegeben werden soll, wenn Spieler 1 seinen Buzzer mehrmals drückt, bis der letzte gedrückt hat. Mal angenommen Spieler-1 drücke seinen Buzzer als erster, aber dann auch nochmal zwischen Sieler 3 und 5.

Soll die Ausgabe dann lauten:
1631542
oder soll das zweite Drücken von Spieler-1 bei der Ausgabe übergangen werden, also Ausgabe dann nur:
163542
also so als hätte Spieler-1 seinen Buzzerknopf überhaupt nicht zweimal gedrückt?

Ohne eine genaue Beschreibung der Programmlogik kann man keine genau arbeitende Programmlogik programmieren.

Das Schaltbild bzw. Anschließen von sechs Quiz-Buzzern an das Arduino-Board ist einfach:

  1. Jeder Buzzer-Tastschalter hat zwei Anschlüsse
  • jeweils einer dieser Anschlüsse kommt an GND angeschlossen, der andere an einen Arduino-Pin
    (mit Ausnahme der Pins-0 und 1, die bereits für Serial verwendet werden sollen, und Du kannst Pin-0 und Pin-1 nicht gleichzeitig für Serial und zeitgleich noch als Buzzer-Input verwenden.

Welche sechs Pins möchtest Du denn verwenden?

welche pinns sind egal da dieser arduino dann nur diese verwendet u.a. serial war gemeint für usb u. der ardu hat 8 analog

wenn möglich sollten doppelte signale nicht gesendet werden solange dadurch die genauigkeit nicht drunter leidet sonst kann ich mir dafür ne software schreiben muss ich eh zum anzeigen

tut mir leid dir das jetzt sagen zu müssen. Mit solchen Fragen sind auch wir absolut überfordert. Am besten wäre es, du wendest dich an die Profis

Schäm dich, Doc! :wink: Musst ja kein "Willkommen im Forum" vorheucheln.
Werde mal spionieren gehen, ob sie den Kleinen schon verhauen haben.

Aber was in den letzten 3 Jahren rausgekommen ist, und vor allem wo dein Problem liegt, wäre schon hilfreich.

@Johannes:

  • Kannst du bei 1 Taster was zum PC senden, wenn er gedrückt wurde?
  • Bei zwei Tastern ?
  • Kannst du dir merken, ob ein Taster seit Reset schonmal gedrückt wurde ?
    (Und dann nichts mehr zum PC senden ?)

Dann solltest du jetzt im PC entweder 12 oder 21 sehen, je nach dem welcher der beiden zuerst gedrückt wurde.

  • Kannst du das auf 3 Taster erweitern ?

  • Hast du noch mehr Probleme ? (Das ist jetzt ernst gemeint) Schwere Probleme löst man, indem man erstmal einfachere Probleme löst.

Taster anschliessen wird hier beschrieben:
Tutorial/InputPullupSerial

So, wie das hier mit dem Taster an Pin D2 gemacht wird, kannst du das entsprechend auch mit den Pins D3-D8 machen. Ebenso im Code.

Du brauchst dann noch einen 7. Taster zum Starten.

Programmlogic:

für jeden Taster eine Variable anlegen
unsigned long Zeit1, Zeit2, ...Zeit6; (könnte man auch als Array machen, aber so ists "blutiger Anfänger tauglich")

in der loop die Taster 1-6 abfragen.
wenn einer gedrückt wurde, prüfen, ob für den schon eine Zeit abgespeichert wurde, falls nicht die Drückzeit speichern.

if (Zeit1 > 0) Zeit1 = millis();

Wenn alle gedrückt wurden (oder nach einer gewissen wartezeit)

if (Zeit1>0 && Zeit2 > 0 && ....)

die Zeiten ausgeben, oder sortieren und dann in der Reihenfolge.

Aber komm erstmal bis hierher, dann sehen wir weiter.

JohannesRoering:
wenn möglich sollten doppelte signale nicht gesendet werden solange dadurch die genauigkeit nicht drunter leidet

OK, ich lasse mir mal was einfallen.

Inzwischen kannst Du Dir ja schon mal Deine Schalter an das Arduino-Board anschließen wie im letzten Beitrag von mir angegeben:

  • Einen Buzzer-Pin jeweils an GND, den anderen an einen Arduino-Pin, mit Ausnahme der Pins 0 und 1, die nicht für die Buzzer verwendet werden können, wenn gleichzeitig Serial für die Ausgabe benutzt werden soll.

Hast du schon einen Arduino?
Wenn du verrätst was du vor hast, können wir evtl. noch ein paar Tipps geben.

Der Arduino Leonardo kann zum Beispiel Tastenanschläge wie ein HID Gerät "Emulieren". :smiley: :wink:

mde110:
Hast du schon einen Arduino?
Wenn du verrätst was du vor hast, können wir evtl. noch ein paar Tipps geben.

Der Arduino Leonardo kann zum Beispiel Tastenanschläge wie ein HID Gerät "Emulieren". :smiley: :wink:

jurs:
OK, ich lasse mir mal was einfallen.

Inzwischen kannst Du Dir ja schon mal Deine Schalter an das Arduino-Board anschließen wie im letzten Beitrag von mir angegeben:

  • Einen Buzzer-Pin jeweils an GND, den anderen an einen Arduino-Pin, mit Ausnahme der Pins 0 und 1, die nicht für die Buzzer verwendet werden können, wenn gleichzeitig Serial für die Ausgabe benutzt werden soll.

guntherb:
Taster anschliessen wird hier beschrieben:
Tutorial/InputPullupSerial

So, wie das hier mit dem Taster an Pin D2 gemacht wird, kannst du das entsprechend auch mit den Pins D3-D8 machen. Ebenso im Code.

Du brauchst dann noch einen 7. Taster zum Starten.

Programmlogic:

für jeden Taster eine Variable anlegen
unsigned long Zeit1, Zeit2, ...Zeit6; (könnte man auch als Array machen, aber so ists "blutiger Anfänger tauglich")

in der loop die Taster 1-6 abfragen.
wenn einer gedrückt wurde, prüfen, ob für den schon eine Zeit abgespeichert wurde, falls nicht die Drückzeit speichern.

if (Zeit1 > 0) Zeit1 = millis();

Wenn alle gedrückt wurden (oder nach einer gewissen wartezeit)

if (Zeit1>0 && Zeit2 > 0 && ....)

die Zeiten ausgeben, oder sortieren und dann in der Reihenfolge.

Aber komm erstmal bis hierher, dann sehen wir weiter.

michael_x:
Schäm dich, Doc! :wink: Musst ja kein "Willkommen im Forum" vorheucheln.
Werde mal spionieren gehen, ob sie den Kleinen schon verhauen haben.

Aber was in den letzten 3 Jahren rausgekommen ist, und vor allem wo dein Problem liegt, wäre schon hilfreich.

@Johannes:

  • Kannst du bei 1 Taster was zum PC senden, wenn er gedrückt wurde?
  • Bei zwei Tastern ?
  • Kannst du dir merken, ob ein Taster seit Reset schonmal gedrückt wurde ?
    (Und dann nichts mehr zum PC senden ?)

Dann solltest du jetzt im PC entweder 12 oder 21 sehen, je nach dem welcher der beiden zuerst gedrückt wurde.

  • Kannst du das auf 3 Taster erweitern ?

  • Hast du noch mehr Probleme ? (Das ist jetzt ernst gemeint) Schwere Probleme löst man, indem man erstmal einfachere Probleme löst.

so an alle als kurze nebeninfo habe leider nur nen arduino uno (ps eigentlich hatte weil büroklammer in gnd gesteckt und gegen den kondensator gekommen und bumm war alles im oash) und mit dem kam ich nie klar
michael_x hab leider kein board is n bissl blöd weiss ich aber meine eltern machen das erst mit mir wenn ich ein fertiges konzept habe

bezüglich arduino leonardo und hid meine tastatur aktuell ist ne hid und leider gibt es im usb nicht mehr den ghosting bug(mehrere tasten/sekunde führt zu fehlern) daher wär es mir wichtig das die signalverarbeitung extern des pcs (im ardu ist)
kann ja mal kurz das ganze evtl filmen und per direktlink auf yt posten nicht wundern bin halt noch 14 wird aussehen wie so ein kleines kind was mit nem toaster das ganze aufgenommen hat

Wieso gibt es den ghosting bug leider nicht mehr? Ghosting ist doch negativ, wieso will man das haben?
Der Leonardo kann die Taster per Programm auswerten und je nach Programmierung dann Anschläge senden. Das ist dann dir überlassen ob du mehrere schickst oder nicht...

Beschreibe bitte mal was du machen willst, und wofür du das brauchst. Evtl. ist der LEO/MICRO ungeeignet. Das könnte ich aber hier bei mir schnell testen...

meine eltern machen das erst mit mir wenn ich ein fertiges konzept habe

Top!

...bin halt noch 14 wird aussehen wie so ein kleines kind was mit nem toaster das ganze aufgenommen hat...

:grinning: :grinning: :grinning: :grinning:

Eine Frage bzgl:

die auswertung vom serial monitor kriege ich selber hin

Wie machst du das?

so den gosting bug hätte ich nutzen können da dieser die tasten nacheinander evtl geschickt hätte

und die zahlenkombi auszuwerten da werden

  1. doppelte zahlen durch lehrzeichen ersetzt
  2. lehrzeichen entfernt
  3. ein kleines programm oder notfalls ne große exel tabelle die die zahlen dann ausspuckt
    programm zeigt mir dann mein infolehrer blos arduino ham wir leider net in info

Meine Empfehlung LEONARDO oder MICRO.
Beide µP (32u4) können zur Not auch alles Seriell ausgeben, falls das HID das nicht packt, aber davon gehe ich mal nicht aus..
Ghosting gibts nicht, da das Programm die HID Emulation übernimmt.

Jeden Taster an einen Dig-Eingang, INTERNAL PULLUPs aktivieren und COMMON der Taster auf GND.

Was ist denn der Zeitrahmen?

Oh der zeitrahmen ist leider nicht ganz festzulegen da die kandidaten keine roboter sind ist aber maximal ne sekunde denk ich mal aber mein problem bei hid ist das ich das ja nicht in reihe ausgegeben bekomme oder? Und den nano wollte ich nehmen weil er auf 5v läuft dadurch schneller ist und usb onboard hat und damit kaum kosten für isp und so notwendig ist

Zeitrahmen, wann muss es fertig sein?

Die Tastenanschläge würden nach x-Sekunden (Timeout) oder nachdem alle Tasten mind. einmal gedrückt wurden ausgegeben. Es geht auch dass die Tasten nacheinander in Reihenfolge gesendet werden, dies würde dann über einen Software "Puffer"/"FIFO" laufen.
Es lässt sich alles über die Software abbilden.

NANO, UNO, MICRO, LEONARDO laufen alle auf 5V, haben USB onboard und benötigen alle nicht zwingend ISP.

Ich würde vorschlagen, für den Spielleiter 2 Tasten vorzusehen.
Reset, also bereit für die nächste Runde.
Abrufen, also hole das Ergebnis
Damit hast Du die Zeit manuell im Griff, egal ob alle gedrückt haben oder nicht.

Gruß Tommy

jurs:
Das ist jetzt natürlich SEHR BLÖDE, dass Du hier nach einem FERTIGEN CODE für eine NICHT VORHANDENE Hardware nachfragst.

Ich schreibe Dir, Du kannst schon mal die Taster zwischen GND und Pin-Nummer anbringen, und Du baust einen fetten Kurzschluss zwischen GND und VOLTAGE!

hallo Jurs erstmal vielen dank das du dir gedanken gemacht hast das muss ich ja mal dringend sagen das ich damit nicht gerechnet habe

es kommt mir leicht so vor als hätte ich dich mit der kurzschluss geschichte verärgert tut mir leid hatte ich zu spät gesagt
ps. da war ich grad erst 13 jahre alt und hab aus langerweile damit experimentiert #facepalm war echt dumm
kommen wir zurück zum eigenntlichen inhalt

wie schon gesagt binn ich ja eher nicht die leuchte im arduino code aber habe evtl aufgeschnappt das das mit diesen analogpinns extern noch groß mit extratechnik versehen wird geht das digital

hatte vorhin im matte unterricht ne idee was ihr davon haltet habe jetzt fiktive begriffe die mir einfielen benutzt evtl geht dass ja schneller zu lösen weil der arduino soll 1mal programmiert werden und kann dann in einer box seinen letzten platz finden

loop [read pin (a) wenn a=high dann stoppe loop und schicke 1(per serial) sonst beginne von vorn]
loop [read pin (b) wenn a=high dann stoppe loop und schicke 2(per serial) sonst beginne von vorn]
loop [read pin (c) wenn a=high dann stoppe loop und schicke 3(per serial) sonst beginne von vorn]
loop [read pin (d) wenn a=high dann stoppe loop und schicke 4(per serial) sonst beginne von vorn]
loop [read pin (e) wenn a=high dann stoppe loop und schicke 5(per serial) sonst beginne von vorn]
loop [read pin (f) wenn a=high dann stoppe loop und schicke 6(per serial) sonst beginne von vorn]

nach dem motto der tastet permanent die 6 digitalen ab die ich direkt an die taster anklemme und wenn sie 1* high waren stoppt die schleife und schickt 1* die ziffer

aber der code von jurs sieht gut aus hab blos nicht so viel ahnung von programmieren

(ich will jtz nicht aufdringlich wirken oder so aber wenn jemand bereit wäre irgendwann mal per skype zu komunizieren wär das sehr hilfreich da ich da glaube mehr verstehe)

danke jurs

jurs:
Keine Ursache - Danke für die Rückmeldung!

In zehn Tagen ist Heiligabend.
Vielleicht kann Dir der Weihnachtsmann das oben genannte eBay-Board für sechs-fuffzig noch auf den Gabentisch zaubern. dann melde Dich wieder, wenn Du:

  • das Board
  • mit drei angeschlossenen Tastschaltern
  • und dem von mir geposteten Beispielprogramm laufen hast!

Frohes Fest!

gut sollte ich das von dir erwähnte board irgendwann mal haben meld ich mich hab da schon ne idee aber wei gesagt ich meld mich dann mal