seltsame negierung

hallo,

ich möchte dass meine letzten 3 ausgänge immer nur einmal kurz HIGH geschaltet werden und danach wieder LOW. Diese gehen an relais. nur komischerweise sind sie von anfang an immer direkt HIGH und schalten sich sobald über ein relai an den eingang ein liegnal kommt (eingang hat einen pull down widerstand) immer kurz auf low und danach wieder HIGH, dabei soll es genau andersrum sein.

bin am verzweifeln.

habe große delays drin um den relais zeit zum schalten zu geben aber daran liegt es auch nicht.

ein versuchsaufbau mit einer led am ausgang und einem taster am eingang hat perfekt funktioniert.

für Hilfe wäre ich sehr dankbar

MfG

tomi123007:
bin am verzweifeln.

Wir auch, weil wir nicht verstehen, wie du alles verdrahtet hast.
Ebenso kann es an deinem Sketch liegen.

Also zeige dein Schaltbild und den Sketch.
Den Sketch bitte in Code-Tags posten.

Verwende dazu die Schaltfläche </> oben links im Editorfenster.
Das kannst du auch nachträglich machen.
Dazu den Sketch markieren und die Schaltfläche klicken.

Damit wird dieser für alle besser lesbar.

Aber wenn ich meine Glaskugel befrage, sagt mir diese, du hast die Ausgänge nicht richtig definiert.

Edit:
Was für Relais verwendest du ?
Haben die Freilaufdioden ?
Wie steuerst du die Relais ?

ich vermute mal, du hast eine Relais-Karte, die LOW aktiv ist, also einfach die Logik umdrehen.

Viele Relaisplatienen schalten mit LOW die Relays ein. Grüße Uwe

sorry habe nicht bemerkt dass der code noch nicht drin ist

int const button = 2;
int const Signal1 = 5;
int const Signal2 = 6;
int const Signal3 = 7;
int const Signal4 = 8;
int eingang = 0;
int merker = 0;

void setup() {
  pinMode(2, INPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  delay(5000);

}

void loop() {

  delay(5000);

eingang = digitalRead(button);

delay(5000);
  
 if (eingang==HIGH && merker==0)
{
merker++;
digitalWrite(5, HIGH); 
digitalWrite(6, HIGH); 
digitalWrite(7, HIGH); 
digitalWrite(8, HIGH); 

delay(5000);

digitalWrite(6, LOW); 
digitalWrite(7, LOW); 
digitalWrite(8, LOW); 
delay(5000);

}





delay(5000);
eingang = digitalRead(button);

delay(5000);

if (eingang==LOW && merker==1)
{
merker--;
digitalWrite(5, LOW); 
digitalWrite(6, HIGH); 
digitalWrite(7, HIGH); 
digitalWrite(8, HIGH); 
delay(5000);

digitalWrite(6, LOW); 
digitalWrite(7, LOW); 
digitalWrite(8, LOW); 


delay(5000);
}



delay(5000);

}

benutze diese große platine mit den relais die man überall findet. arduino wird mit einem pc netzteil betrieben und den eingang der im code BUTTON heißt ist nur ein relai schaltkontakt welcher den stromkreis schließt und der arduino somit ein signal bekommt. Pulldownwiderstand ist auch vorhanden mit 10k Ohm und das wars dann auch schon. und es funktioniert ja auch mit einer led am ausgang und einem taster als eingangdeswegen vermute ich dass es wirklich daran liegt dass die relais bei LOW schalten. aber dann müssten die doch auch bei einem leeren code angehen oder? Denn das tun sie nicht.

MfG

was machen die Relais bei diesem Sketch

int const button = 2;
int const Signal1 = 5;
int const Signal2 = 6;
int const Signal3 = 7;
int const Signal4 = 8;
int eingang = 0;
int merker = 0;

void setup() 
{
  pinMode(2, INPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
}

void loop() 
{


}

?

tomi123007: benutze diese große platine mit den relais die man überall findet.

Was ist das denn für eine Platine ? Den Typ kenne ich nicht. Poste bitte einen Link.

Wenn du einen "leeren" Code flasht, kann nichts passiere. Wie soll das denn gehen ?

LOW ist, wenn der Ausgang auf LOW geht. Ohne Code geht nichts auf LOW.

ok dann werde ich das gleich mal probieren

https://www.amazon.de/tinxi-Optokoppler-passend-Arduino-Raspberry/dp/B01C2IN2U2/ref=sr_1_1?ie=UTF8&qid=1496647929&sr=8-1&keywords=arduino+relais

das sind die relais die ich verbaut habe

Die Platinen sind wie gesagt low-aktiv. Es hilft auch den Ausgang auf HIGH zu setzen bevor man ihn als OUTPUT definiert.

http://forum.arduino.cc/index.php?topic=335254.msg2312421#msg2312421

Aktiv Low Geräte (solche Relais) machen am AVR keine Sorgen wenn man folgendes Verfahren einhält.

  1. pinMode(xx,INPUT_PULLUP);
  2. pinMode(xx,OUTPUT);

Dann geht der Pin ohne zwischenzeitliche/versehentliche LOW Phase direkt von hochohmig, über eine mini Pullup Phase, zu HIGH.