Arduino Defekt oder übersehe ich etwas?

Moin,
Ich habe zum testen den Arduino folgenden Programm auf gespielt. Aber der Ausgang wird immer ausgeführt egal welcher PIN angegeben ist. Die Bedingung das der Schalter ein 1 Signal gibt scheint nicht relevant zu sein. Sobald ich den OUTPUT irgendwo auf 1 setzte ist er auch gesetzt. Ist der Arduino kaputt oder übersehe ich etwas?

int ledpin = 8;
int tasterpin = 2;
int tasterzustand;

void setup() {
  pinMode(tasterpin,OUTPUT);
  pinMode(ledpin,INPUT);
}

void loop() {
  tasterzustand =digitalRead(tasterpin);

  if (tasterzustand == 1);
  {
    digitalWrite(ledpin,HIGH);}
if (tasterzustand = 0);{
  digitalWrite(ledpin,LOW);
}
}

Der Tasterpin ist bestimmt der Input
Und der LEDpin ist bestimmt der Output

Hier musst du ein "==" einsetzen.

ja genau hab da nur ein wenig rum gespielt gehabt, hab ich vergessen zu ändern, ändert aber nichts an der Sache

okay das hab ich vergessen aber ändert leider auch nichts

Wie HotSystems schon schreibt.

= ist eine Zuweisung.
== ist ein Vergleich.

Du brauchst im if einen Vergleich der Wahr oder Falsch ergibt.
Eine Zuweisung ergibt immer Wahr.

Gibt es einen Schaltplan dazu?

Dann beschreibe mal genauer, was das heißt.

Doch!

Wird immer ausgeführt!

Wird immer ausgeführt.

Die beiden if, haben keinerlei Wirkung.

Also wackelt der Pin mit hoher Frequenz.
ca 50kHz.

Wirft eine berechtigte Warnung.

Das ist ein nichtssagende Aussage.
Die hilft dir und uns nicht weiter.

Das ist nun das geänderte. Ist dennoch dauerhaft angesteuert.

int ledpin = 8;
int tasterpin = 2;
int tasterzustand;

void setup() {
  pinMode(tasterpin,INPUT);
  pinMode(ledpin,OUTPUT);
}

void loop() {
  tasterzustand =digitalRead(tasterpin);

  if (tasterzustand == 1);
  {
    digitalWrite(ledpin,HIGH);}
if (tasterzustand == 0);{
  digitalWrite(ledpin,LOW);
}
}

Was ist dauerhaft angesteuert ?
Geht es bitte etwas genauer !

Da hier schon 12 ist, helf ich mal....

{
  pinMode(tasterpin, OUTPUT);
  pinMode(ledpin, INPUT);
}

Richtig:

{
  pinMode(tasterpin, INPUT);
  pinMode(ledpin, OUTPUT);
}

(Da die Beschaltung unbekannt ist, könnte es auch INPUT_PULLUP heissen....)

Meine zwei erstgenannten Fehler sind weiterhin enthalten.
Überlege, oder mache dich kundig, was ein Semikolon bewirkt.

wenn ich 5V auf den input pin2 gebe sollte dieser den output pin8 freigeben bzw. ansteuern. sobal ich den sketch lade leuchtet die LED an output pin8 ohne die bedingung erfüllt zu haben.

combie hat dein Ratespiel gelöst.
Glückwunsch combie :wink:

Nein!
Sie flackert.
Sehr schnell, sie flackert.

Das halte ich für verfrüht.
@Plumps war schon in #2 drauf.

Ist es nicht so, das ein als INPUT definierter PIN mittels digitalWrite -> HIGH seinen INPUT_PULLUP aktiviert und den PIN dauerhaft auf HIGH zieht?
Kein flackern - immer an?

Und du scheinst was ganz wichtiges übersehen zu haben.

Ich habe mal ein delay eingebaut am anfang am ende und zwischen in IF´s. Den delay am anfang nimmt er wahr aber die in anderen nicht. also flackert die LED nicht mit 50hz oder liege ich da falsch ?

Das fehlerhaft gesetzte ; hat combie dir schon genannt. Deine if-Abfrage wird damit abgeschlossen. Die darauf folgenden Blöcke {} werden immer ausgeführt. Daher flackert die LED einfach sehr schnell.