DYI: MIDI Fußleiste selber bauen?!

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.867
Konkret:

pinMode(Pin-Nr, INPUT_PULLUP);

Pin-Nr ist der Eingangs-Pin (Pin mit Schalter), INPUT_PULLUP ist eine bereits vordefinierte Konstante (irgend eine ganze Zahl, den Wert kenne ich nicht und ist auch nicht wichtig)
Für jeden Eingang (mit Schalter) musst du diesen pinMode() Befehl in deinen Code einfügen, am besten in der void setup() Funktion. Die setup() Funktion wird nach dem Einschalten oder nach einem Reset des UNOs einmal ausgeführt, danach wird nur noch die void loop() Funktion ausgeführt (d.h. bis zum nächsten Reset oder Aus/Einschalten).

Der Midi-Teil ist auch richtig.

wildlife war da wohl schneller
Egal, ihr komplemetiert euch super! Also für JEDEn PIN muss das gesetzt werden! Jetzt muss ich im Code also nach den PIN Inputs suchen .... und die Write-Zeile drunter setzen .... INPUT_PULLUP müsste "HIGH" sein ... danach geht`s dann an die 5v, die dann 0v sein müssen und umgekehrt .... heidenei ... ;)

also, z.B.:
Code:
pinMode(1,INPUT);
digitalWrite(1,HIGH);

pinMode(2,INPUT);
digitalWrite(2,HIGH);
usw... ?!

Code:
pinMode(pin,INPUT);
digitalWrite(pin,HIGH);
"pin" ist also die Variable, die gegen die nominale PIN Nummer (z.B.) "1" ersetzt werden muss, ja?
 
Zuletzt bearbeitet:

Jojolamenace

Member
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Apr 1, 2013
Beiträge
92
Scheisse, ich habe mir erst jetzt Batis Code angeschaut. Der hat OOP (Objekt Orientierte Programmierung) angewendet (ich bin geschockt :cool:). Vergiss den Scheiss mit void setup(). Du musst nur Zeile 62 im File Button.cpp ändern

pinMode(_btnPin, INPUT_PULLUP );
anstelle von
pinMode(_btnPin, INPUT);
 

Jojolamenace

Member
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Apr 1, 2013
Beiträge
92
Weil du jetzt von Puldown auf Pullup geändert hast, musst du noch folgendes ändern (Invertierung des Eingangs):

Zeile 67:
_actState = HIGH;

Zeile 133:
if(actState == LOW) {
 

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.867
Scheisse, ich habe mir erst jetzt Batis Code angeschaut. Der hat OOP (Objekt Orientierte Programmierung) angewendet (ich bin geschockt :cool:). Vergiss den Scheiss mit void setup(). Du musst nur Zeile 62 im File Button.cpp ändern

pinMode(_btnPin, INPUT_PULLUP );
anstelle von
pinMode(_btnPin, INPUT);
Hinter Pullup eine Leerstelle? vor der schliessenden Klammer?

Heilige Kuh ... :bounce: die Zeile ist im Button.cpp file drin. da hänge ich ein "_PULLUP" hintendran und gut iss? Nur da und fertig? Das schaltet die Pullups an, ich kann die ganzen Widerstände der Schalter aus meinem Breadboard entfernen und gut iss?

was ist mit der darunter liegenden Zeile:
pinMode(_ledPin, OUTPUT);
Könnte man dann mit
pinMode(_ledPin, OUTPUT_PULLUP );
sich auch die Widerstände für die LEDs sparen?

Und wo drehe ich die Schaltung um? die 5v werden zu 0V und 0v werden zu 5v Geschichte? Wäre das auch nur eine Zeile?
 

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.867
Weil du jetzt von Puldown auf Pullup geändert hast, musst du noch folgendes ändern (Invertierung des Eingangs):

Zeile 67:
_actState = HIGH;

Zeile 133:
if(actState == LOW) {
Und wo drehe ich die Schaltung um? die 5v werden zu 0V und 0v werden zu 5v Geschichte? Wäre das auch nur eine Zeile?
Ist das die Antwort, die schneller als die frage kam? .... :rock: Leute, ihr seid die geilsten!!!! Ich mach das jetzt mal alles, bau das mal real um und probier das aus! Mal sehen, ob`s das Board überlebt ;)
 

Jojolamenace

Member
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Apr 1, 2013
Beiträge
92
Hinter Pullup eine Leerstelle? vor der schliessenden Klammer?

Heilige Kuh ... :bounce: die Zeile ist im Button.cpp file drin. da hänge ich ein "_PULLUP" hintendran und gut iss? Nur da und fertig? Das schaltet die Pullups an, ich kann die ganzen Widerstände der Schalter aus meinem Breadboard entfernen und gut iss?
Korrekt!
Übrigens Leerstellen sollten egal sein. Die Leerstelle hat sich wahrscheinlich beim Copy/Paste eingeschlichen, aber sollte keinen Einfluss haben, d.h. wenn beim Kompilieren keine Fehlermeldung erscheint ist alles OK.

was ist mit der darunter liegenden Zeile:
pinMode(_ledPin, OUTPUT);
Könnte man dann mit
pinMode(_ledPin, OUTPUT_PULLUP );
sich auch die Widerstände für die LEDs sparen?
OUTPUT_PULLUP gibt es nicht. Einen LED-Widerstand in ein IC einzubauen ist nicht so einfach und hat wahrscheinlich ein grosses Problem: die Verluste wären zu gross. Der korrekter Widerstandswert (in Ohm) ist für eine LED auch noch wichtig --> normalerweise ein paar 100Ohm.
Der Pullupwiderstand ist gemäss Datenblatt 20-50kOhm (also ca 100 Mal grösser). Für Pullup und Pulldownwiderstände ist der Wert eigentlich nicht so wichtig. Ich behaupte mal: alles was zwischen 1kOhm und 100kOhm ist, ist OK
 

Jojolamenace

Member
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Apr 1, 2013
Beiträge
92
ich kann die ganzen Widerstände der Schalter aus meinem Breadboard entfernen und gut iss?
kleiner Tipp: bevor du alle Widerstände entfernst, würde ich das nur bei einem Schalter machen und zuerst testen. Wenn es fkt. dann kannst du alles entfernen.

Generell gilt: bei jeder Modifikation (Hardware oder Software) immer Step by Step vorgehen, d.h. kleine Änderung vornehmen und dann sofort testen.
 

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.867
kleiner Tipp: bevor du alle Widerstände entfernst, würde ich das nur bei einem Schalter machen und zuerst testen. Wenn es fkt. dann kannst du alles entfernen.

Generell gilt: bei jeder Modifikation (Hardware oder Software) immer Step by Step vorgehen, d.h. kleine Änderung vornehmen und dann sofort testen.
Zu spät ;) Aber guter Tip für die Zukunft .... jedenfalls:

Leute!!!!!!! ES FUNKTIONIERT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


UNFASSBAR! Wie geil! Da wird sich der Basti sicher auch freuen! Dem schicke ich noch eine PM und die links zu den entpsrechenden Beiträgen, wie und wo der Code geändert werden muss und das neue Schaltungsbild dazu!

Ihr seid die besten! DANKE!!!!!!!!!
 
Zuletzt bearbeitet:

OSon

Administrator
Teammitglied
Axe-Fest 2023 Teilnehmer
Axe-Fest 2022 Teilnehmer
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Sep 29, 2012
Beiträge
2.584
Huch, da geht man mal früh schlafen und drei Seiten weiter geht das hier....

Also, Code habt ihr ja perfekt angepasst. Ich zieh das mal nach... Aber mich wundert es,dass es in den arduino beispielen gar nicht so beschrieben wird. Vermutlich, weil die Anfänger dann verwirrt werden... Sehr cool! :)

Jojo: wieso bist du geschockt über meine OOP? Ich fand, das Bot sich da doch an... :)
 

OSon

Administrator
Teammitglied
Axe-Fest 2023 Teilnehmer
Axe-Fest 2022 Teilnehmer
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Sep 29, 2012
Beiträge
2.584
So ich habe dem Github-Repository jetzt die Schaltung hinzugefügt und ich habe die Pulldown Widerstands-Geschichte mit eingebaut. Klappt ja hervorragend! :) Dabei ist mir gleich noch ein Bug beim Program Change aufgefallen. Wenn man einen Button drückt, dann geht die LED an, wenn man nochmal drückt, geht sie wieder aus und bleibt das auch. Hab ich gleich mitgefixed! :)
 

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.867
Wenn man einen Button drückt, dann geht die LED an, wenn man nochmal drückt, geht sie wieder aus und bleibt das auch. Hab ich gleich mitgefixed! :)
Perfekt! Das wollte ich Dir gestern noch sagen! Ist mir beim anschauen des Videos dann irgendwann aufgefallen ... SUPER!!!!!

( und ich sage jetzt nicht ... man könnte es ja so machen , wie bei der MFC: Zweiter Druck auf denselben PC toggelt ähnlich wie beim CC .... und ruft ein "alternatives"-Preset auf ... *hust ... but so what ... nutzt das wer? Nö, oder?) ;)
 

OSon

Administrator
Teammitglied
Axe-Fest 2023 Teilnehmer
Axe-Fest 2022 Teilnehmer
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Sep 29, 2012
Beiträge
2.584
Naja, klar geht das! :)
 

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.867
Gemäss Referenz eignen sich die Pins in diesem Zustand tatsächlich um eine LED anzusteuern - sprich um jeweils 40mA abzugeben (ziemlich krass!!!)
http://arduino.cc/de/Reference/Constants
hihi ... da steht:

"Die Pins, welche als OUTPUT definiert sind, können auch beschädigt oder zerstört werden, wenn sie kurzgeschlossen oder mit starken (strommässig) 5 Volt Spannungsquellen verbunden werden." ...

Tja, hätte ich mal vorher lesen sollen, gott sei Dank sind die LEDs ja nicht so teuer ... :bounce: .... nächster Schritt: Mal zwei (externe) LEDs mit einbauen für die zwei Schalter ... ;)
 

OSon

Administrator
Teammitglied
Axe-Fest 2023 Teilnehmer
Axe-Fest 2022 Teilnehmer
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Sep 29, 2012
Beiträge
2.584
Mit den LEDs hab ich das so gemacht...

Board_mit_LEDs.jpg
 

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.867
Mit den LEDs hab ich das so gemacht...

Anhang anzeigen 637
Erinnert mich irgendwie an mein Schaltplan-Bild, mit der umständlichen Kabellegung ;-) - schön gekürzt ... und noch die LEDs dazu ;) Geil, kannst mir davon die .fzz schicken? Dann muss ich das nicht nochmal selber "malen" ;) hihi .... voll das Teamwork hier ;)

Welche Widerstände wären hier angebracht für die LEDs? Soweit ich hier gelesen habe, sind hier größere Werte, als die 220 Ohm angebracht ... eher was zwischen 500Ohm und 1KOhm ... ?!
 

OSon

Administrator
Teammitglied
Axe-Fest 2023 Teilnehmer
Axe-Fest 2022 Teilnehmer
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Sep 29, 2012
Beiträge
2.584
Ich hab das .fzz mal aktualisiert und ins GitHub geladen... :)
 
Oben
mainframe-fourhanded
mainframe-fourhanded