Go Down

Topic: Frage zu Interrupts (Read 544 times) previous topic - next topic

arduinofish

Hallo,

ich habe eine Frage zum Thema Interrupts. Ich möchte an einem MEGA den Interrupt auf PIN 2 durch einen zweiten MEGA auslösen. Dabei bin ich auffolgendes, mir unverständliches gestoßen. Wenn ich es wie im ersten Bild (not_working.jpg)machen, also vier Digitale Ports via Breadboard direkt an den Interrupt lege passiert nichts. Setze ich jedoch Zener-Dioden dazwischen geht es (Bild 2, working.jpg).

Hier noch der Code:

Code: [Select]


int TIMER_MIN = 500;
int TIMER_MAX = 3000;
int RELEASE_PIN_1 = 7;
int RELEASE_PIN_2 = 8;
int RELEASE_PIN_3 = 9;
int RELEASE_PIN_4 = 10;



void setup(){
 
Serial.begin(9600);
pinMode(RELEASE_PIN_1, OUTPUT);
pinMode(RELEASE_PIN_2, OUTPUT);
pinMode(RELEASE_PIN_3, OUTPUT);
pinMode(RELEASE_PIN_4, OUTPUT);

}


void loop(){
 
int iRandomPin = random(RELEASE_PIN_1,RELEASE_PIN_4);
int iRandomTime = random(TIMER_MIN, TIMER_MAX); //set delay

delay(iRandomTime);

digitalWrite(iRandomPin, HIGH);
String sRandomPin = String(iRandomPin, DEC); //convert Pin to String
String sOutput = String("Pin "+ sRandomPin +" triggered"); //build output string
Serial.println(sOutput); //Output as String
delay(50);
digitalWrite(iRandomPin, LOW);
 
}


Woran liegt das?


Danke
Peter

sth77

Im ersten Fall deklarierst du alle Pins als Ausgang und legst sie auf Masse. Die Pins untereinander haben aber eine direkte Verbindung! Wenn du nun einen der Ausgänge High schaltest, gibt es einen saftigen Kurzschluss. Dies ist ein sehr effektives Mittel, seinen Arduino in die ewigen elektronischen Jagdgründe zu schicken.

Im zweiten Fall verhidnerst du durch die Dioden den Stromfluss zu den Low-Ausgängen - kein Kurzschluss, alles bestens. Bist du sicher, dass du Zener-Dioden verwendest?
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

arduinofish

Hallo,

ja danke für den Hinweis in der Tat  habe ich in den Zeichnungen etwas vergessen, auf dem Brettchen ist allerdings.
Ja es sind Zener,.. warum?

sth77

Nach den Zenerdioden fragte ich deshalb, weil du normale Dioden im Schaltplan hast. Zenerdioden haben eine Durchbruchspannung, daher ist deine zweite Schaltung nicht gerade "sicher" - abhängig davon welche Zenerdioden verwendet wurden.
Übrigens sollten beide Mega2560 das gleiche Bezugspotential haben, eine Masseverbindung beider Boards ist also ratsam.
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

arduinofish

Laut Fritzing sind es Zenerdioden. Das sie "live" anders aussehen ist mir auch schon aufgefallen :). Ich verwende 3V3-Zener auf meinem Board, weil die gerade in meinem Kasten waren.

Danke für den Tipp mit der Verbindung beider Boards. Werd dann heute abend daran denken.

sth77

Eine 3,3V-Zener bricht aber beim 5V-Pegel der Pins auch durch. So ganz ausgereift ist die Beschaltung nicht. Wozu ist es denn notwendig, zwei Boards zu verwenden? Waas für ein Projekt wird das denn?
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

arduinofish

Ich hab das mit den Zener so verstanden, das der Strom in Richtung Markierung fließt. Also nach "oben" in meinem Fall.

Ja zum Projekt,... das ist eins von einem Freund, welches ich Testen soll. Im Prinzip sollen per Interrupt das Vorliegen von Sensorwerten gemeldet werden. Insgesamt sind es vier Sensoren. Der Testaufbau soll zunächst einmal das Prinzip darstellen.

sth77

In Durchlassrichtung verhalten sich Zener ja wie herkömmliche Dioden. Nur gibt es eben einen gewollten Spannungsdurchbruch, wenn man sie in Sperrrichtung betreibt. In deinem Fall ist dieser Spannungsdurchbruch jedoch sicher nicht gewünscht, du solltest zumindest herkömmliche Dioden verwenden. Alternativ lassen sich auch Logikgatter (hier: Oder-Gatter 74HC32 o.ä.) verwenden.
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Serenifly

#8
Aug 21, 2013, 11:17 am Last Edit: Aug 21, 2013, 11:33 am by Serenifly Reason: 1
Du braucht noch einen Widerstand, dann hast du ein Wired-OR:
http://en.wikipedia.org/wiki/Wired_logic_connection#The_wired_OR_connection

Das geht aber mit normalen Dioden. Die Diode sperren dann wenn an allen Low anliegt (bzw. es liegen einfach beide Seiten an GND). Sobald an einer High anliegt, fließt Strom der am Widerstand in einer Spannung abfällt.

Go Up