GSM Modul zum ATmega328 per Relais zuschalten

Stimmt, die Dioden sind noch nicht eingezeichnet, aber verbaut. Ich möchte das Modul über Monate mit einem Batteriesatz versorgen und wollte keine Leckströme riskieren, auch wenn es im uA-Bereich ist. Ich komme mit dem Relais auf einen Ruhestrom von 119uA, da machen ein paar zusätzliche schon was aus.

Ok, ein letztes Mal.
Freilaufdioden an Spulen sind Pflicht, kein Spaß.
Oder setze einen Mosfet ein.
Ich schreibe es nicht aus Spaß.

Sie sind ja auch eingelötet, habe sie nur im Plan vergessen. Ich werde es dann wohl mal mit dem Mosfet IRLB8721PbF probieren.
Danke schon mal

Außerdem hast du noch nicht geschrieben, was deine Spannung macht, wenn du das GSM einschaltest.

Die bricht vermutlich zusammen, da der Akku o. Batterie nicht genug Kapazität hat.

Ich würde noch einen Stützelko (z.B. 2000µF) parallel zum Akku einbauen. Er puffert den evtl. Spannungseinbruch beim Einschalten ab.

Ich habe es mit einem 2000uF Kondensator probiert, aber das brachte auch keinen Erfolg. Schalte ich das Relais ohne Last, bleibt der Takt konstant. Es scheint wirklich an dem schlagartigen Stromverbrauch des GSM-Moduls im Einschaltmoment zu liegen. Da bringt mir ein Mosfet wahrscheinlich auch keine Besserung?! Und noch größer als 2000uF wird bei mir platztechnisch schwierig.

Matthias321:
Schalte ich das Relais ohne Last, bleibt der Takt konstant. Es scheint wirklich an dem schlagartigen Stromverbrauch des GSM-Moduls im Einschaltmoment zu liegen.

Deswegen solltest du auch mal die Spannung messen. Warum machst du das nicht.
Du möchtest Tipps haben, richtest dich aber nicht danach.
Langsam ist das frustierend.

Ich war bisher noch nicht wieder am Projekt, deshalb kann ich leider noch nichts machen. Das Messen wird aber der nächste Schritt sein.

Matthias321:
Ich war bisher noch nicht wieder am Projekt, deshalb kann ich leider noch nichts machen. Das Messen wird aber der nächste Schritt sein.

Ohh, dann hast du ja seltene Eigenschaften.
Wie bekommst du den Elko an die Spannung, ohne am Projekt zu arbeiten ?
Und Messen ist immer der Erste Ansatz, wenn derartige Fehler auftreten.
Aber ob ich dir das nun schreibe....

Hallo Zusammen,
das Modul läuft jetzt soweit, ich konnte durch Messen und den Tausch von ein paar Bauteilen das Problem lösen. Ich würde jetzt gerne noch vor dem Anruf die Signalqualität prüfen, um zu gucken, ob ein Signal vorhanden ist. Kann mir jemand sagen, wo ich den Fehler mache, ich bin leider nicht der beste Programmierer und die Arduino IDE meckert beim Kompilieren schon.

#include <avr/sleep.h>
void setup() {
  pinMode(2, INPUT);
  pinMode(6, OUTPUT);
  pinMode(8, OUTPUT);
 
}
 
void loop() {
  Serial.println(digitalRead(2));
  Serial.println("Leg mich mal hin..");
  delay(80);
  // Aktiviere Interrupt auf Pin2 (Interrupt 0) mit Handler isr_pin2():
  attachInterrupt(0, isr_pin2, HIGH);
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  sleep_mode(); 
  // Hier gehts nach dem Schlafen weiter:
   if(digitalRead(2)==HIGH)
  {
    digitalWrite(8, HIGH);   
    delay(1000);     
    Serial.begin(9600);
    do{
    Serial.println("AT+CSQ");
    delay(1000);
    }while(Serial.read("CSQ") >10);
    delay(200);
    Serial.println("ATD+4915165142224;");//add target mobile number in place of xxxxxxxxxx
    delay(20000);
    Serial.println("ATH");
    delay(1000);
    digitalWrite(8, LOW);
  }
}
 
void isr_pin2() {
  // Deaktivieren des Interrupts, damit er nicht dauernd wieder triggert
  detachInterrupt(0);  
}

Das wird angemeckert:

C:\Users\PC\Desktop\bachelorarbeit_CSQ\bachelorarbeit_CSQ.ino: In function ‘void loop()’:

C:\Users\PC\Desktop\bachelorarbeit_CSQ\bachelorarbeit_CSQ.ino:26:32: warning: ISO C++ forbids comparison between pointer and integer [-fpermissive]

}while(Serial.read(“CSQ:” >10));

^

bachelorarbeit_CSQ:26: error: no matching function for call to ‘HardwareSerial::read(bool)’

}while(Serial.read(“CSQ:” >10));