Erste Gehversuche undschon Probleme.

Ich habe mir mal ein Arduino Mega 2560 gekauft und würde gerne eine Projektarbeit damit machen . Nun habe ich angefangen so langsam mich mal durch das ein oder andere Buch zu lesen . Ich habe dann auch mal so eine Kleine Steuerung getestet mit 2 LED?S Eingang 22 EIn LEd 13 an Eingang 23 High Led 12 High.

Nun zu meinem Problem.. Wenn ich nichts mache leuchten die LED trotzdem ab und zu auf.

Lieg in dem Spericher irgendwo noch restteile eines Alten Programmteils oder habe ich nur was vergessen ?
Hier mal der Code:

int led = 13;// LED an Pin 13 angeschlossen
int opt = 12;// LED an Pin 12
int pin = 22; // Taster an Pin 7 angeschlossen
int pon = 23; // Taster an Pin 7 angeschlossen
int value = 0;
int var2 =1;// Variable um den Auslesewert zu speichern
void setup()
{
pinMode(led, OUTPUT); // legt Pin 13 als Ausgang fest
pinMode(opt, OUTPUT);
pinMode(pin, INPUT); // legt Pin 7 als Eingang fest
pinMode(pon, INPUT);
}
void loop()
{
value = digitalRead(pin); // setzt 'value' gleich mit
var2 = digitalRead(pon);
// dem Eingangspin
digitalWrite(led, value);
digitalWrite(opt, var2); // setzt 'led' gleich mit dem
} // Wert des Tasters

Bitte bedenkt absolutes Beginner LEVEL . Wird aber besser verspreche ich !

Das ist für einen Taster mit externem Pulldown.

Wenn du keinen Widerstand am Taster hast, dann muss du INPUT_PULLUP verwenden. Dann werden die internen Pullups genommen. Der Taster ist dann ungedrückt High und gedrückt Low.

Unbeschaltete Eingänge können Störsignale einfangen und dann mal als HIGH mal als LOW gelesen werden. Das verhindert man indem man einen Widerstand auf +5V oder auf GND schaltet. Der Taster wird dann auf Gand bzw 5V geschaltet. So hat man bei nicht betätigtem Taster ein definiertes Potential am Eingang und so einen zuverlässigen Logikpegel. Der Arduino hat die Möglichkeit interne Widerstände gegen +5V zu schalten:
pinMode(pin, INPUT_PULLUP);
oder
pinMode(pin, INPUT);
digitalWrite(pin,HIGH);
(beides ist gleichwertig).
Mittels digitalWrite(pin,LOW);bzw digitalWrite(pin,HIGH); kann der interne Pullupwiderstand jederzeit ein bzw ausgeschaltet werden. (hat zwar bei einem Eingang normalerweise wenig Sinn aber es gibt Grenzfälle wo es nützlich ist).

Grüße Uwe

OK .
Ich werde dann mal Widerstände davor schalten . Es geht hier nur um die ersten Gehversuche. Nachher sind alle 30 Inputs beschaltet sowie alle Analogen Inputs.

Ich will damit ne Kleine Alarmanlage bauen . Nur Just for Fun . Werden dann bestimmt noch wegen dem ein oder anderen Problem auf euch zurückkomen .

Werde hier bestimmt sehr Aktiv sein .

Teste das morgen mal

Danke schon mal
.

MFG Imgrish

Wie gesagt, du kannst auch einfach die internen Pullups nehmen. Es braucht nicht unbedingt externe Widerstände. Du brauchst halt einen definierten Zustand wenn der Taster nicht gedrückt ist.

Du kannst dann auch gleich mal das Thema "Tastenprellen" mit verinnerlichen; das kommt sicher!