Hallo, ich habe mich gerade angemeldet und bin ein Einsteiger!
Und schon habe ich 2 Fragen:
Gibt es hier keine Rubriken?
Ich möchte mit dem Multifunction Shield vom Uno eine UND-Verknüpfung ausprobieren und bin kurz vor dem Verzweifeln - wer gibt mir da einen Tipp? Wenn die beiden Taster S1 und S2 (fest verdrahtet an A1 und A2) betätigt werden, soll die LED D1 auf dem Board (verdrahtet mit Digital-Ausgang 13) leuchten.
So bekomme ich das NICHT zum Laufen:
Du musst die Taster mit digitalRead erst auslesen.
Und dann mit einer if-Abfrage auswerten.
Und wozu brauchst du Rubriken ?
Aber warum nimmst du keine digitalen Pins ?
Und nicht vergessen, die Eingänge benötigen auch Pullup- oder Pulldown-Widerstände, jenachdem worauf du abfragst.
Die 4 LEDs sind "active LOW", das heißt sie leuchten, wenn die jeweiligen Ausgänge LOW geschalten sind und sie leuchten nicht, wenn der Ausgang HIGH ist.
Sehr ähnlich ist es bei den Tastern. Sie haben Pullup-Widerstände am Shield (R6, R7, R8). Ein gedrückter Taster erzeugt ein LOW am jeweiligen Eingang.
Ja, dieses Board habe ich auch. Ich möchte ja die vorhandenen Taster verwenden und diese sind nun mal an A1, A2 etc. angeschlossen. Muss das also mit analogRead eingelsen werden, obwohl nur Taster angeschlossen sind?
Leider funktioniert das auch mit der von Skobymobil erwähnten If...then... Bedingung nicht. Brauche ich dann überhaupt noch eine Zuweisung?
Wenn die Taster Low aktiv sind, heisst das dann, wenn ich ein UND möchte, dann ein NAND habe etc.? Alles also dann invertiert?
Gerd50:
Wenn die Taster Low aktiv sind, heisst das dann, wenn ich ein UND möchte, dann ein NAND habe etc.? Alles also dann invertiert?
Hallo Gerd,
auf logischer Ebene: Du drückst eine Taste, die entsprechende LED leuchtet. Auf elektrischer Ebene zieht die Taste den Pegel von High auf Low, und die LED leuchtet bei LOW am Ausgang, da sie nach HIGH verdrahtet ist.
Gruß André
Die so genannten "Analogen Eingänge" sind eigentlich ganz normale digitale Eingänge, sie können aber AUCH analoge Spannungen messen. Du kannst also jeden "Analogen Eingang" ganz normal wie einen digitalen behandeln (zumindest am Arduino UNO).
Combie, dank deinen Gedanken habe ich nun das folgende Konstrukt, aber immernoch mit den folgenden Problemen:
Wenn ich jetzt beide Taster ggleichzeitig betätige, geht die LED aus - sie sollte aber angehen.
Wenn ich die beiden "!" in der Zeile digitalWrite für die Ausgabe weglasse, habe ich nun eine ODER-Verknüpfung an der LED. (Inklusiv-Oder, d.h. bei einem oder beiden Tastern geht die LED an)
mit den 'Befehlen INPUT_PULLDOWN' geht es nicht, warum existiert dieser nicht?
uxomm:
Die 4 LEDs sind "active LOW", das heißt sie leuchten, wenn die jeweiligen Ausgänge LOW geschalten sind und sie leuchten nicht, wenn der Ausgang HIGH ist.
Anschaulicher schon, aber weiter weg von seinem ursprünglichen Beispiel zur && Verknüpfung.
In seinem Beispiel hat er 2 Bit miteinander &&
Du && das Ergebnis zweier Vergleiche.
Kommt das gleiche raus.
Und bei seinem Beispiel
S1&&S2 hätte es ja beinahe gepasst
uxxom, dein Beispiel funktioniert, warum auch immer? Warum man noch den Ausgang auf LOW setzen muss, damit die LED leuchtet, ist mir noch ein Rätsel? Auch wenn die Eingänge Low-aktiv sind?
Was ich grundsätzlich nicht verstehe ist, warum macht dieser Shield-Hersteller denn das mit den Pullup-Widerständen und das somit bei gedrücktem Taster ein Low erscheint.
Macht es nicht mehr Sinn, sowas alles mit Pulldown-Widerständen zu machen und ganz normal dann mit High zu schalten, wie der normale Mensch also denkt? Oder was steckt technisch dahinter, dass man lieber mit Low-schaltet als mit High?
Wenn ich das && durch ein || (Oder) ersetze, bekomme ich dann eine reale UND-Verknüpfung mit LED an realisiert. Seltsam? Denn ich dachte immer, dass nur eine NAND-Funktion mit negierten Eingängen lt. Theorem de Morgan eine ODER-Verknüpfung gibt und analog dazu eine NOR-Funktion mit neg. Eingängen eine UND-Funktion!?
Fragen über Fragen...!?!?
Der Kopf ist rund, damit das Denken die Richtung ändern kann!
:o :o :o
Dieses Beispiel verwendet Objekte, welche selber die Invertierung intern erledigen.
So, dass die && Verknüpfung "wie der normale Mensch also denkt" erledigt werden kann/muss.
Er braucht etwas mehr RAM, für die Entpreller, hat dagegen weniger Flash Verbrauch.
Die Ausgabeklasse ist für die China üblichen Relaisboards gedacht, erfüllt aber auch hier seinen Zweck.
Danke Jungs für eure aufschlussreichen Erklärungen. Bei dem MF-Shield waren bei mir leider keine technischen Spezifikationen dabei etc.
Wenn ich das auf eine Prototypen- oder Lochraster-Platine aufbauen möchte, muss ich dann überhaupt auch die Pullup- bzw. Pulldown-Widerstände verwenden oder kann man auch mit einer satten 5V-Spg. oder einer sauberen GND- / 0V-Spannung die Eingänge über die Taster auch beschalten, d.h. ohne diese Widerstände. Es erschließt mir also noch nicht ganz, warum man bei den digitalen Eingängen diese Widerstände braucht. Jedoch ist es mir klar, dass bei den Outputs mit den LED's Widerstände benötigt werden als Vorwiderstände, damit der Strom in den LEDs begrenzt wird und nur die jeweilige UF lt. Farbe anliegt.
Aber warum überhaupt Pullup- oder Pulldown-Widersände, damit die Signale eindeutiger sind und keine undefinierten 'Zwischenwerte' annehmen können?
Gerd50:
.....
Aber warum überhaupt Pullup- oder Pulldown-Widersände, damit die Signale eindeutiger sind und keine undefinierten 'Zwischenwerte' annehmen können?
Genau, speziell bei offenen Eingängen, wenn der Taster nicht gedrückt ist.
Und jetzt habe ich noch eine ganz doofe Frage:
Kann man denn auch ein auf dem Arduino befindliches Programm auch mit der IDE downloaden oder geht das nur in die Upload-Richtung?
Kenne das von der Siemens LOGO!, dass man in beide Richtungen das Programm loaden kann.