Arduino mit GSM Shield Hilfeeee

Hallo zusammen,

ich versuche auf lange Sicht eine Alarmanlage zu gestalten, diese soll mit dem GSM Shield funktionieren. Ich hab nur ein klitzekleines Problem mit meinem Sketch. Zu Testzwecken habe ich einen Taster in eine einfache Schaltung implementiert über eine If Abfrage soll dann eine SMS losgeschickt werden. Das Ding ist jetzt, dass das GSM Shield mir auch schon sobald ich nur mit einem Draht in den INPUT Pin 4 fahre, er dieses als ein HIGH interpretiert und in die If Abfrage stolpert. Kann mir das wer erklären ?? das sollte er doch nur tun wenn ich auch wirklich die 5V hierzu angeschaltet habe bzw. es sich gänzlich in einem Stromkreislauf befindet oder nicht ?

Hier der Sketch :

#include <GSM.h>

#define PINNUMBER "6915"

GSM gsmAccess; 
GSM_SMS sms;

void setup()
{
 
  Serial.begin(9600);

  Serial.println("SMS Messages Sender");
  pinMode(8,OUTPUT);
  pinMode(4,INPUT);

  char nummer[20];
  char Alarm[200];


  boolean notConnected = true;
  while(notConnected)
  {
    if(gsmAccess.begin(PINNUMBER)==GSM_READY)
      notConnected = false;
    else
    {
      Serial.println("Not connected");
      delay(1000);
    }
  }

  Serial.println("GSM initialized");
}

void loop()
{
  digitalWrite(8,HIGH);
  
if(digitalRead(4)==HIGH)
{
  Serial.println("Achtung Sendung in 30s");
  delay(30000);
  sms.beginSMS("0157XXXXXXX");
  sms.print("Alarm");
  sms.endSMS(); 
}

}

Das ist für einen Taster mit externem Pulldown Widerstand. Hast du das?

Wenn nicht statt dessen auf INPUT_PULLUP setzen, den Taster gegen Masse schalten und auf LOW abfragen.

spielt keine Rolle mit Pulldown Widerstand, ich kann den ganzen Schaltkreis auch garnicht anschließen und nur mit nem Stück Draht in den Input eindringen und schon fällt er in die if Abfrage, ich schnall das nicht :frowning:

Stimmt was mit dem Shield nicht ?

Ein offener Eingang ist eine hochohmige Antenne. Noch mehr wenn du da ein Stück Draht anschließt. Da fängst du dir willkürlich etwas ein und ab einem gewissem Pegel (0,6 * Ub) erkennt das der Prozessor als High.

Aber er springt mir da auch schon rein wenn ich kein Draht einstecke. Argh:( Das mit der Antenne hab ich mir übrigens schon gedacht

wenn ich das richtige verstehe wird HIGH schon ab 2,2 V interpretiert.

Wenn es sich um Uno/Mega handelt, ab 3Volt.

Uno

Es ist doch möglich dass ich mit dem 8 D/O ein HIGH setze damit der 4 D/I dieses auslesen kann oder nicht ?

DonQuijote:
Aber er springt mir da auch schon rein wenn ich kein Draht einstecke. Argh:( Das mit der Antenne hab ich mir übrigens schon gedacht

wenn ich das richtige verstehe wird HIGH schon ab 2,2 V interpretiert.

Benutze einen Pullup oder Pulldown Widerstand!!!!!

DonQuijote:
Uno

Welcher UNO funktioniert mit 3V???

Es geht darum ab wenn ein Eingang High erkennt. Und bei 5V Betriebsspannung sind das 3V.

Ich verzweifle hier noch. Kann mir keiner helfen ? Ist das Shield noch nicht reif ? Ich meine so kompliziert ist das jetzt ja auch nicht. Warum hüpft er denn in den HIGH Modus, ist die Sendeleistung zu intensiv, baut sich wohlmöglich um den Mobilchip ne Spannung auf oder wird ein Strom induziert ??

Verwarnung eines Elektrotechnikers:
Es wird immer eine Spannung induziert nie ein Strom!!!

Wir reden um den heißen Brei herum.

Hast Du nur Pullup- bzw Pulldown Widerstände beim Taster verwendet oder nicht?

Grüße Uwe

Is mir gerade im Bad auch eingefallen :smiley:

sorry =)

Ja habe ich

so sieht das ganze bei mir aus nur mit einem 10kOhm

Das geht glaube ich nur wenn auch Masse auf der Schiene des Breadboards ist. Sieht aber irgendwie falsch aus.

Mach das mal so:
http://arduino.cc/en/tutorial/button

Oder mit INPUT_PULLUP:

Es auch wichtig wie herum der Taster drin ist. Bei den mit 4 Beinchen sind immer zwei miteinander verbunden und die zwei Paare werden durch den Taster gebrückt. Das kann man mit einem Ohm-Meter ausmessen.

DonQuijote:

so sieht das ganze bei mir aus nur mit einem 10kOhm

Das ist weder ein Pullup- noch ein Pulldown-Widerstand. Das ist ein Widerstand in serie zum Taster. Der Pullup- bzw Pulldown-Widerstand hat die Aufgabe den Eingang bei ungedrückten Taster auf einen Definierten Pegel zu halten (bei Pulldown auf Masse und bei Pullup auf +Versorgungsspannung) .

Bei Deiner Schaltung ist der Eingang bei nicht betätigten Taster unbeschaltet und sieht jede mögliche und unmögliche elektrische Stöhrung als HIGH.

Wieso verbindest Du den Taster mit einem Ausgang?

Dissertation Writing Advice: Plan & Structure | roguescience.org Den 100 Ohm Widerstand braucht es nicht unbedingt; schadet aber auch nicht.

Grüße Uwe

Und so geht's auch nicht...
der springt mir direkt in die If Abfrage

Übrigens er springt mir da rein auch wenn ich nichts an die Pins anschließe

Ich würde das mit den 5V aus einem Pin als vollkommenden Murks bezeichnen!
Warum nimmst du nicht die 5V vom Arduino???