void setup()
{
pinMode(ledPin1, OUTPUT);
pinMode(buttonPin1, INPUT);
}
Wo sind die Einstellungen für LED2 und Taste2?
Vom arduino habe ich keine Ahnung. Wird setup() automatisch aufgerufen? Gibts da keine main()-Funktion?
hallo,
ich spiele zur zeit etwas mit einem Arduino rum, macht ja mega spaß, ich bin recht neu in diesem thema
ich habe ein paar Beispiel scripts getestet und wollte jetzt mal versuchen mit zwei Tastern zwei led zu schalten
also s1 = LED1 on
s2 = LED2 on
mein sciptnur egal welchen taster ich drücke es geht immer nur led1 an..Code:const int buttonPin1 = 2; const int buttonPin2 = 3; const int ledPin1 = 13; const int ledPin2 = 12; int buttonState1 = 0; int buttonState2 = 0; void setup() { pinMode(ledPin1, OUTPUT); pinMode(buttonPin1, INPUT); } void loop() { buttonState1 = digitalRead(buttonPin1); buttonState2 = digitalRead(buttonPin2); if (buttonState1 == HIGH) { digitalWrite(ledPin1, HIGH); } else { digitalWrite(ledPin1, LOW); } if (buttonState2 == HIGH) { digitalWrite(ledPin2, HIGH); } else { digitalWrite(ledPin2, LOW); } }
kan mir jemand erklären warum und eine lösuchg zeigen???
grus Tom
void setup()
{
pinMode(ledPin1, OUTPUT);
pinMode(buttonPin1, INPUT);
}
Wo sind die Einstellungen für LED2 und Taste2?
Vom arduino habe ich keine Ahnung. Wird setup() automatisch aufgerufen? Gibts da keine main()-Funktion?
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
sorry da hat was gefehlt aber es geht trotzdem nicht
Code:const int buttonPin1 = 2; const int buttonPin2 = 3; const int ledPin1 = 13; const int ledPin2 = 12; int buttonState1 = 0; int buttonState2 = 0; void setup() { pinMode(ledPin1, OUTPUT); pinMode(buttonPin1, INPUT); pinMode(ledPin2, OUTPUT); pinMode(buttonPin2, INPUT); } void loop() { buttonState1 = digitalRead(buttonPin1); buttonState2 = digitalRead(buttonPin2); if (buttonState1 == HIGH) { digitalWrite(ledPin1, HIGH); } else { digitalWrite(ledPin1, LOW); } if (buttonState2 == HIGH) { digitalWrite(ledPin2, HIGH); } else { digitalWrite(ledPin2, LOW); } }
(Ich vermute, der Rückgabewert von digitalRead() ist nicht immer HIGH oder LOW.)Code:void loop() { digitalWrite(ledPin1, digitalRead(buttonPin1)); digitalWrite(ledPin2, digitalRead(buttonPin2)); } oder überkreuz: void loop() { digitalWrite(ledPin2, digitalRead(buttonPin1)); digitalWrite(ledPin1, digitalRead(buttonPin2)); }
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
nein ich weis zwar nicht wie du das meinst aber, ich habe es mal getestet und es geht auch nicht
Ich finde den Vorschlag von radbruch gut.
Hast Du wirklich auch überkreuz getestet?
Wenn Du schreibst "geht auch nicht", heißt das, dass dann LED1 nicht leuchtet?
Falls aber LED1 (überkreuz) leuchtet dann ist einfach LED2 kaputt oder hat keinen Kontakt.
Hat niemand noch eine erklärung???
ich verzweifel fast
Wie soll eigentlich die Tasterbeschaltung funktionieren? Ein gemeinsamer PullDown für beide Taster? Zeichne das mal bitte als Schaltbild.Code:void loop() { digitalWrite(ledPin2, HIGH); }
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
lege doch mal auf die Eingangspins für die Taster einen R 4,7k...10k gegen +5V , es dürfte aber schon "ButtonPin1 /bzw 2 = HIGH" im Setup {} reichen um den PullUP zu aktivieren und schalte den Taster gegen GND. Nur musst man dann LOW statt HIGH als State bei der Auswertung einsetzen/auswerten
Gruss OL
Wenn es noch nicht geht schreib mich per PN an...
hier das mit dem PullUP ausführlich
Nachtrag : Bei den aktivierten internen PULLUPS benötigt der Taster keine weitere Beschaltung, an den ButtonPin ist nur der Taster gegen GND zulegen !void setup()
{
.......
.......
// jetzt Eingänge auf HIGH setzen
digitalWrite(buttonPin1, HIGH); // PULLUP ON
digitalWrite(buttonPin2, HIGH); // PULLUP ON
}
....
........
if (buttonState1 == LOW) // Jetzt LOW auswerten !!!! { ..dann LED1 ein...
}
Nun viel Erfolg !!
Geändert von oderlachs (13.12.2012 um 10:16 Uhr)
Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint
Lesezeichen