Ich habe mir eine 16 Kanal Relaiskarte (Low Level Trigger) beschafft die ich mit Verschiedenen Tastern (Manuell), oder einem Sensor automatisch schalten will.
Habe alles verdrahtet und wollte nun mit einem einfachen Sketch überprüfen ob der richtige Taster auch zum richtigen Relais führt.
Hier entsteht folgendes Problem:
Wird ein Taster betätigt schaltet das Relais zwar ein, braucht dann zum abfallen allerdings ca. 1 Sekunde und klackert in dieser zeit hochfrequent wild umher bevor es abfällt.
Habe zuerst auf nicht ausreichende Spannung durch das USB-Kabel getippt, aber auch das anschließen vom externen Netzteil brachte keinen Erfolg.
Muss ich hier im Sketch, bzw. beim verdrahten etwas bestimmtes beachten?
Verwendet werden 6 Taster und ein 2-Zeiliges Display.
Danke für eure Hilfe.
Peter
Sketch:
int St1 = 49; // Stufe 1 an Pin 52
int St2 = 50;
int St3 = 51;
int St4 = 52;
int St5 = 53;
int WS = 30; // Wahlschalter an Pin 53
int Taster1 = 31;
int Taster2 = 32;
int Taster3 = 33;
int Taster4 = 34;
int Taster5 = 35;
int t1= 0;
int t2= 0;
int t3= 0;
int t4= 0;
int t5= 0;
void setup() {
// put your setup code here, to run once:
pinMode (St1, OUTPUT);
pinMode (Taster1, INPUT);
digitalWrite (St1, HIGH);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
t1 = digitalRead (Taster1);
if (t1 == LOW) {
digitalWrite (St1, HIGH);
}
if (t1 == HIGH) {
digitalWrite (St1, LOW);
}
}
Nein. Habe hier nur die 2 makierten Pins an die Versorgung vom Arduino angeschlossen.
Benötigt diese zwingend eine? Hab hier leider gerade kein 5V Netzteil herumliegen.
Bin davon ausgegangen, dass wenn immer nur ein Realais geschalten wird die Spannung die der Arduino abgibt ausreichend sein sollte?
Edit:
Habe auch mal die Spannung gemessen während die Karte flackerte und es lagen beim anziehen sowie abfallen durchgehende 4,99V 5,00V an.
Diese Relays brauchen typisch 70mA. Bei 16 Relais braucht es ca 1,2 A. Das schafft der Arduino bzw die USB Schnittstelle nicht. Bei einem angezogenen Relais müßte auch der Strom einer USB Buchse reichen.
Ich würde in den Sketch im Loop() ein delay(500) einfügen.
Ich weiß nicht was die Ursache des von Dir geschilderten Verhalten sein könnte.
Grüße Uwe
Taster anschliessen zwischen GND und PIN31.
Nichts weiter.
Für mein Verständnis:
Wieso muss ich den Taster per GND abfragen?
Oder habe ich was falsch verstanden? Ist ein stinknormaler Schließer mit 2 Kontakten.
Werd ich morgen gleich versuchen, gebe dann Rückmeldung danke schonmal im Vorraus.
Weil er normal durch den Pullup-Widerstand auf High gehalten wird und beim Schleißen auf Masse gezogen wird. Dadurch braucht man keinen externen Widerstand
Weil Du in Deiner Schaltung, wenn Du von PIN31 nach +5V Deinen Taster OHNE externe Beschaltung betreibst, genau den von Dir angezeigten Effekt bekommst.
Wenn Du den Taster drückst, dann bekommt der PIN die volle Ladung.
Der Eingang ist sehr hochohmig.
Wenn Du den loslässt, vergeht einiges an Zeit, bis die Ladung aufgebraucht ist.
Die Größenordnung kann je nach Leitungslänge ruhig mehr als 1 Sekunde betragen.
Im Übergangsbereicch kommt es dann zum "flattern"
Also beides genau Deine Symptome.
Nu kannst Du den Aufbau so lassen. Dann benötigst einen Widerstand zwischen GND und PIN31 - und das für jeden Taster.
Die Größe ist unkritisch irgendwas zwischen 2 und 15K ist auf'm Steckbrett eigentlich kein Problem.