Alles verkehrt?

Hallo zusammen,

ich habe mir ein paar SparkFun ButtonPads 2x2 gekauft. Soweit so gut... nach dem Schema http://www.sparkfun.com/datasheets/Components/Buttons/2x2Button_Pad_Breakout-v01.pdf Hat man einen + und vier - Anschlüsse. Irgendwie verstehe ich das nicht. Das ist doch verkehrt herum. Es müsste doch ein Ground sein und vier +. Wieso macht man das?

Und vorallem... wie schliesse ich das nun an meinem Arduino an, damit ich herausfinde welcher Button gedrückt wurde??? :-?

Die vier Ausgänge des ButtonPad verbindest Du mit vier Anschlüssen des Arduino, welche Du als Eingang definierst. Dann frägst Du nacheinander die vier Eingänge mit digitalRead() ab. Ist der Button gedrückt erhältst Du ein HIGH, wenn nicht ein LOW. Und damit die Eingänge auch bei nichtgedrückten Buttons einen definierten Zustand haben, jeden Eingang noch mit einem 10K Widerstand an Masse (PullDown). Die ATmega internen Widerstände kannst Du in diesem Fall nicht verwenden, weil die als PullUp ausgelegt sind.

Ahhhh, jetzt ist der Groschen gefallen!!! Ich dachte, das bei den Pins immer ein bisschen Strom rauskommt. Musste auch gleich testen ob ichs richtig verstanden hatte. Man kann mit nur 2 Pins 2 Leds abwechselnd blinken lassen. Cool.

void setup()
{
  pinMode(out1, OUTPUT);
  pinMode(out2, OUTPUT);
}
void loop()
{
  digitalWrite(out1, LOW);
  digitalWrite(out2, HIGH);
  delay(1000);
  digitalWrite(out1, HIGH);
  digitalWrite(out2, LOW);
  delay(1000);
}

Danke vielmals!

Willst du ein Monome / Arduinome bauen?

Jaha, so mehr oder weniger. Ich will vorallem 16 schöne Knöpfe die Leuchten. :)

Einsetzen werde ichs in einen 16 Step-Seq. der Midi-Daten verschickt/empfängt.

Hallo Radar

Wieso kaufst Du Dir dann die 2x2 buttons und nicht gleich die 4x4?

Achtung wenn Du RGB Leds verwenden willst dann paß auf, die richtigen zu kaufen ( gemeinsame Anoder oder gemeinsame Katode). Die richtigen sind die, die mit der Ansteuerungselektronik zusammenarbeiten. Hab schon einmal die falschen gekauft obwohl ich mir des Problems bewußt war und 3 mal kontrolliert hatte :(.

Grüße Uwe

Falls du vorhast ein Arduinome zu bauen, ich hab schon 2 gebaut, und noch 2 Unsped-Shields rumliegen, wenn du interessiert bist.

Arduinome ist das coolste was du als Controller haben kannst :)

Was kann man denn genau mit einem Arduinome machen? Könnte man ein 4x4 Feld mit dieser Schaltung verwenden: http://mesh.dl.sourceforge.net/project/midifighter/Schematic%20and%20Reference/MFv1.pdf

Ich suche nähmlich noch ein ansprechndes Gehäuse für den MidiFighter, bzw passende Knöpfe und die Arcade Buttons will ich nicht unbedingt.

Für Dinge die am PC als Keyboard oder Joystick auftreten sollen, sind die Prozessoren des Arduino nicht so toll geeignet, da ist der Atmel AT90USB162 besser. Die haben nämlich die USB-Treiber schon inkludiert und können sich als HID anmelden.

Korman

Sorry, dann hab ich mich falsch ausgedrückt. Würde gerne die 16 Taster durch das 4x4 Button Pad ersetzen. Nur seh ich als Problem, die Taster sind in einer Matrix und beim MidiFighter nicht. Das Pad wäre sehr toll und LED’s würden auch noch in das Breakout passen.

Taster durch Matrix ersetzen sollte gehen, wenn du die Möglichkeit hast das Programm anzupassen. Sonst wird es schwierig, da die Tasten seriell ausgelesen werden.

Korman

Alle nötigen Daten hab ich hier. http://sourceforge.net/projects/midifighter/ Leider hab ich nicht so viel Ahnung vom programmieren.

Bei den kleinen 2x2 Pads hat laut Schaltplan jeder Taster und jede LED seine eigenen Pins. Vllt wäre es damit möglich.

@uwefed: Ich will die Button nebeneinander nicht Quadratisch. -> :::::::: Deshalb die 2x2 Noch lieber hätte ich 1x2 gehabt :) Das mit den LED's ist ein guer Hinweis. Mal sehen ob ich die richtigen bestellt habe(falls die irgendann kommen). Zur Zeit habe ich gar nichts drin.


Ich hab mir mal ein Teil zusammen gelötet (also die Dioden) und wollte es nach der Methode die von MaFu vorgeschlagen wurde betreiben.

Doch soweit bin ich nicht mal gekommen... Ich habe ein sehr komisches Problem. Vill. kann mir jemand helfen oder sagen was ich falsch mache?

Die Idee war mit jedem Button ein LED leuchten zu lassen.

Also hab ich die 4 LEDs angeschlossen und mal die Inputs bereit gemacht... ABER... ich muss nur schon das Breadboard berühren und schon leuchten die LEDs!!! Die Buttons sind noch ned mal angeschlossen. Was ist das? Ich hab das Phänomen auf 2 versch. Chips beobachtet. (UNO und Mega)

Hier noch mein Test-Programm.

byte l1 = 0;
byte l2 = 1;
byte l3 = 2;
byte l4 = 3;
byte b1 = 8;
byte b2 = 9;
byte b3 = 10;
byte b4 = 11;

void setup()
{
  pinMode(l1, OUTPUT); pinMode(l2, OUTPUT); pinMode(l3, OUTPUT); pinMode(l4, OUTPUT);
  pinMode(b1, INPUT);  pinMode(b2, INPUT);  pinMode(b3, INPUT);  pinMode(b4, INPUT);  
}
void loop()
{ 
  digitalWrite(l1, digitalRead(b1));
  digitalWrite(l2, digitalRead(b2));
  digitalWrite(l3, digitalRead(b3));
  digitalWrite(l4, digitalRead(b4));
}

Ah ja Leds. Schon mal diese gesehen ... ?

http://www.earthshineelectronics.com/rgb-leds/105-15mm-rgb-led-pixel.html