Forum: Mikrocontroller und Digitale Elektronik Arduino Uno Spannungsabfrage 1 oder 0?


von Nicolai L. (Firma: Privat) (leiche)


Lesenswert?

Hallo Forum,

Ich würde gerne mit meinen Arduino Uno eine einfache spannungsabfrage 
durchführen wollen, doch weiß ich leider nicht welche ein/ausgänge ich 
dafür verwenden soll.

Ich möchte durch einen Draht einen Spannung laufen lassen (am besten 
ausgehend vom Arduino) und möchte einfach prüfen ob eine Spannung da ist 
oder nicht.

Ich habe gelesen, dass ich dafür die Analogen eingänge verwenden muss.
Und das ich einen GND verwenden muss.

Jetzt ist die frage ob es nur die beiden sind oder ob ich auch den 3,3v 
ausgang verwänden muss damit ich eine Spannung da habe, da ja weder der 
GND noch der Analoge eingang mit V liefert.

LG Leiche

von Oliver S. (oliverso)


Lesenswert?

Äh, ja...

Eine Spannung messen kannst du über den ADC. Die Spannung muß natürlich 
irgendwo her kommen...

Oliver

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Nicolai L. schrieb:
> Ich möchte durch einen Draht einen Spannung laufen lassen (am besten
> ausgehend vom Arduino) und möchte einfach prüfen ob eine Spannung da ist
> oder nicht.
Mein Tipp: male einen Schaltplan.
Das ist 1. das Kommunikationsmittel von Elektronikern und 2. wird dir 
dann evtl. selber schon klar, was geht und was nicht...

von U. C. (Gast)


Lesenswert?

Nicolai L. schrieb:
> Ich möchte durch einen Draht einen Spannung laufen lassen
Das ist mir noch nie gelungen (glaube ich)

Nicolai L. schrieb:
> und möchte einfach prüfen ob eine Spannung da ist
> oder nicht.
Dafür dürfte ein digitaler Port reichen.

Außer, du willst die Länge des Drahtes (oder irgendwas anderes 
exotisches) bestimmen....

von Nicolai L. (Firma: Privat) (leiche)


Lesenswert?

Danke darüber hab ich noch nicht nachgedacht.

Jetzt hab ich nur noch das problem wie ich alles zusammenschließe :(

von Nicolai L. (Firma: Privat) (leiche)


Lesenswert?

ich nehme den GND als erdung, den 3,3 als quelle und den Digitalen 
eingang als Messung von HIGH und low, Ich werde auch einen Wiederstand 
brachen damit ich keinen Kurzen bekomme.

Es ist eigentlich egal welchen wiederstand ich nehme das ich ja nur 
wissen will 0 oder 1. aber ich kann ja nicht die Kabel einfach so 
zusammenlöten.

Ich steh an :(

von Karl (Gast)


Lesenswert?

Das ganze macht keinen Sinn. Du willst eine Spannung (z.B. die 5 V) vom 
Arduino nehmen, durch einen Draht schicken und dann mit einem Eingang 
des Arduinos schauen, ob die Spannung ankommt. Möchtest du prüfen ob 
dein Draht kaputt ist?

Schreib doch einfach was du wirklich willst!

von Nicolai L. (Firma: Privat) (leiche)


Lesenswert?

ich lass ein loop laufen und wenn die spannung weg ist weiß ich das 
jemand den draht durchgeschnitten hat

von Karl (Gast)


Lesenswert?

Du brauchst keine Widerstände, die hat der Arduino schon eingebaut. Du 
legst deinen Draht von GND zum (digitalen) Eingang. Dann schreibst du 
dein Programm:

# define Eingang 1;

void setup()
{
  pinMode(Eingang,  INPUT_PULLUP);
}

void loop()
{
  if(digitalRead(Eingang){
    // hier muss was stehen, was passieren soll wen der draht durch ist
  }
  delay(1000);
}

von Karl (Gast)


Lesenswert?

Aber am besten schau erstmal ein Tutorial an!

von Nicolai L. (Firma: Privat) (leiche)


Angehängte Dateien:

Lesenswert?

Also das ist zur Zeit meine Idee wie ich das machen will.

Was sagt ihr?

von U. C. (Gast)


Lesenswert?

Der Transistor schaltet nicht.
Vielleicht auch ein Glück, für die LED.

von Nicolai L. (Firma: Privat) (leiche)


Lesenswert?

ich weiß das da noch 2 Widerstände fehlen.

Ich wollte nur wissen ob es vom Prizip her gehen würde.

Wenn das kabel vom Pullup-Resistor getrennt wird. dann sollte Low 
gemessen werden und dann kommt ein Signal zum GSM-Shield und eines zum 
Transistor damit beide Aktiviert werden.

Meint ihr die Schaltung stimmt im Ansatz oder was würdet ihr anders 
machen?

von Nicolai L. (Firma: Privat) (leiche)


Angehängte Dateien:

Lesenswert?

Das wäre der Aktuelle Schaltplan

von U. C. (Gast)


Lesenswert?

Die LED ist jetzt gerettet.
Aber das lohnt kaum, weil der Transistor sowieso nicht schaltet.
Unverändert.

Klarer:
Null Basisstrom, multipliziert mit dem hFE des Transistors ergibt Null 
Laststrom.

von Tölpelfinder (Gast)


Lesenswert?

U. C. schrieb:
> Die LED ist jetzt gerettet.
> Aber das lohnt kaum, weil der Transistor sowieso nicht schaltet.
> Unverändert.
>
> Klarer:
> Null Basisstrom, multipliziert mit dem hFE des Transistors ergibt Null
> Laststrom.

Was dieser Experte sagen will, aber infolge mangelnden Benehmens nicht 
schafft:
Die Minus-Pole beider Spannungsquellen müssen verbunden werden.

von U. C. (Gast)


Lesenswert?

Interessant!

Tölpelfinder schrieb:
> Experte
Danke für die Blumen.

Tölpelfinder schrieb:
> mangelnden Benehmens
Das Kompliment kann ich ungeschmälert zurückgeben!
Bitte!

Tölpelfinder schrieb:
> sagen will
Nein, das wollte ich nicht sagen.
Ich weiß ja viel zu wenig über den konkreten Einsatzzweck.
Evlt. ist ja eine ganz andere Lösung viel sinnvoller.

von Rene Z. (renezimmermann)


Lesenswert?

Also eine Alarmanlage die über GSM den Zustand verschickt.
Typisch schickt man einen bestimmten Strom durch die Leitung (~1 mA) und 
überwacht diesen. Neben dem Alarmkreis der als Öffner ausgelegt ist gibt 
es dann noch den Sabotagekreis.

von 42+ (Gast)


Lesenswert?

Nicolai L. schrieb:
> Das wäre der Aktuelle Schaltplan

Der Knoten mit Vin und +5V von Arduino Uno und GSM Schild gibt mir noch 
etwas sehr zu denken.

Bevor du das aufbaust, müssen im Schaltplan noch ein paar Werte 
eingetragen werden.

p.s. Warum verwendest du eigentlich diese amerikanischen 
Ziehharmonikawiderstände?

von Nicolai L. (Firma: Privat) (leiche)


Angehängte Dateien:

Lesenswert?

Verwendungszweck =

Eine Diebstahlssicherung für ein Fahrrad (gemacht in Rahmen einer 
Diplomarbeit für den Abschluss an einer HTL )

Wie ihr sicher seht habe ich bei D2 und D7 mit verbindung zu Ground 
einen Pullup wiederstand eingebaut. die verbindung von D7 zu Ground ist 
dann ein Draht der durch das Fahrradschloss gezogen ist. Sollte dann 
Jemand diese Verbindung Kappen so wird dann das GSM shiel aktiviert und 
bin D8 (für den noch kein Code geschrieben ist (da ich noch nicht genau 
weiß wie ich das mache)) soll dann den Transistor "aktivieren". Hiermit 
wird dann der Piezo (Speaker) und das LED eingeschaltet.

Ich hoffe ich hab alles so gut wie geht erklärt.

Daher ich leidergottes mich dieses Jahr zum ersten mal Ernsthaft mit der 
Elektrotechnik beschäfftige würde ich euch bitten das ihr mir die Fehler 
die ich amche verzeiht und mir gute Ratschläge gibt.


Hier mein Code zu dem Ganzen:
(ja ich weiß, das er zu einem Teil aus einem Example kopiert ist. Aber 
warum nicht. Funktionieren sollte es)

#include "SIM900.h"
#include <SoftwareSerial.h>


//If you want to use the Arduino functions to manage SMS, uncomment the 
lines below.
#include "sms.h"
SMSGSM sms;

//To change pins for Software Serial, use the two lines in GSM.cpp.



//Zum aktivieren des GSM-Shieldes und des Alarms

int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];

//debug begin
char sms_position;
char phone_number[20]; // array für die Telefonnummern
char sms_text[100];
int i;
//debug end

void setup()
{
  pinMode(2,OUTPUT);

  pinMode(7,INPUT);
  digitalWrite(7,HIGH);

  //Serial connection.
    Serial.begin(9600);
    Serial.println("GSM Shield testing.");
    //Start der Configuration des GSM-Shields
    //For http uses is raccomanded to use 4800 or slower.
    if (gsm.begin(4800))
    {
        Serial.println("\nstatus=READY");
        started=true;
    }
    else
        Serial.println("\nstatus=IDLE");


}

void loop()
{
  if(digitalRead(7) == LOW)
  {
    //Hier wird der Alarm gestartet und das GSM-Shield sendet die SMS
    digitalWrite(2,HIGH);

    if(started)
    {
        //Zum Sms senden
        if (sms.SendSMS("06605557559", "Dein Fahrrad wird gestohlen!"))
        Serial.println("\nSMS sent OK");

       //Sollte kein Platz für neue SMSen auf der Sim sein. Werden hier 
die SMSen gelöscht.
       for(i=1;i<=20;i++)
       {
           sms.DeleteSMS(i);
       }
    }

  }
  else
  {
    digitalWrite(2,LOW);
  }

}

von Nicolai L. (Firma: Privat) (leiche)


Lesenswert?

42+ schrieb:

> p.s. Warum verwendest du eigentlich diese amerikanischen
> Ziehharmonikawiderstände?

da ich mit Fritzing arbeite.

von Sebastian S. (amateur)


Lesenswert?

@Nicolai

Ein paar Fehler wurden ja schon moniert. Wie zum Bleistift die fehlende 
Masseverbindung.

>ich weiß das da noch 2 Widerstände fehlen.
Mit solchen Aussagen machst Du Dir hier bestimmt viele Freunde.

"Schaut doch mal nach ob das so geht!" Das was bleibt dabei unklar, weil 
ja noch ein paar Teile fehlen;-)

Hältst Du es würglich für sinnvoll, das Programm schon anzufangen, 
obwohl die Hardware mit Sicherheit noch nichts sinnvolles liefert?

Ich bin mir zwar immer noch nicht sicher, was Du überhaupt vorhast, ich 
werde aber das Gefühl nicht los, dass Du riesige Probleme mit einer 
angemessenen Reihenfolge hast.
So nach dem Motto: Über die Radaufhängung bei meinem Auto habe ich mir 
noch keine Gedanken gemacht, volltanken tu ich aber schon mal.

von Nicolai L. (Firma: Privat) (leiche)


Lesenswert?

da ich mein Grundkonzept habe, und in der Theorie auch schon weiß wie 
ich es anstellen soll. Kann ich schon mit den Code beginnen. was mir 
halt fehlt sind einfach die Basics in der Elektrotechnik. Wie ich die 
Widerstände ausrechne und was ich für einen Transistor verwende weiß 
ich. Allerdings weiß ich halt nicht wie ich mein Konzept dann in die Tat 
umsetzte.

Es liegen halt Welten zwischen Theorie und Praxis.

von Dietrich L. (dietrichl)


Lesenswert?

Nicolai L. schrieb:
> Wie ihr sicher seht habe ich bei D2 und D7 mit verbindung zu Ground
> einen Pullup wiederstand eingebaut. die verbindung von D7 zu Ground ist
> dann ein Draht der durch das Fahrradschloss gezogen ist.

D2 ist nirgendwo angeschlossen, außer am Pulldown R1. Was soll das?
D7 hat keinen Pullup.

Nebenbei: es wäre sehr hilfreich, wenn man im Schaltplan die gewünschten 
Funktionen erkennen kann, hier: in der Verbindung von D7 nach GND wäre 
ein Symbol (Kontakt) oder zumindest einen Text nicht schlecht.

Und die Verbindung der GNDs von VCC1 und VCC2 fehlen IMMER noch!!!
Hinweis: Ein Stromkreis ist ein Kreis.
Hier: VCC1 - Arduino Vin - Arduino D8 - R2 - Basis von Q1 - Emitter von 
Q1 - GND von VCC2: und wo fließt der Strom jetzt weiter?
Sein Ausgangspunkt war VCC1 - da muss er wieder hin!!!

Gruß Dietrich

von Nicolai L. (Firma: Privat) (leiche)


Angehängte Dateien:

Lesenswert?

Hallo Leute hab nochmal mein ganzes Hirnschmalz zusammen gesammelt und 
alles überarbeitet.

Transistor ist draußen, da ich trottel mich verschaut (dachte mein Piezo 
frisst mehr Strom).

Ich hab alles auf eine Spannungsquelle umfunktioniert :D

Außerdem habe ich die PullUP abfrage jetzt intern geregelt. Da Arduino 
UNO, dass eh von alleine kann.

Hab das Ganze auch schon aufgebaut und es funktioniert auch so wie ich 
will :D

Sieht jetzt so aus: (Siehe Bild)

von Nicolai L. (Firma: Privat) (leiche)


Lesenswert?

Für jeden den es Interessiert wie der Code aussieht:

#include "SIM900.h"
#include <SoftwareSerial.h>
#include "sms.h"
SMSGSM sms;




//Zum aktivieren des GSM-Shieldes und des Alarms

int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];

//debug Beginn
char sms_position;
char phone_number[20]; // array für die Telefonnummern
char sms_text[100];
int i;
//debug Ende

int massageSend = 0;

void setup()
{
  //Setzen der Ports
  pinMode(2,OUTPUT);

  pinMode(7,INPUT);
  digitalWrite(7, HIGH);

  //Serial Verbindung
    Serial.begin(9600);
    Serial.println("GSM Shield testing.");
    //Start der Konfiguration des GSM-Shields
    if (gsm.begin(4800))
    {
        Serial.println("\nstatus=READY");
        started=true;
    }
    else
        Serial.println("\nstatus=IDLE");



}

void loop()
{
  if(digitalRead(7) == LOW)
  {
    //Kein Signal geben
    digitalWrite(2,HIGH);
    massageSend = 0;
  }
  else
  {
    //Hier wird der Alarm gestartet und das GSM-Shield sendet die SMS
    digitalWrite(2,LOW);
    delay(300);
    digitalWrite(2,HIGH);
    delay(300);
    digitalWrite(2,LOW);


    if(started && massageSend == 0)
    {
        //Zum Sms senden
        if (sms.SendSMS("06605557559", "Dein Fahrrad wird gestohlen!"))
        Serial.println("\nSMS sent OK");
       //Damit die SMS nur einmal gesendet wird.
        massageSend = massageSend + 1;

       //Sollte kein Platz für neue SMSen auf der Sim sein. Werden hier 
die SMSen gelöscht.
       for(i=1;i<=20;i++)
       {
           sms.DeleteSMS(i);
       }
    }

  }
}

von Nicolai L. (Firma: Privat) (leiche)


Angehängte Dateien:

Lesenswert?

Der Schaltplan nochmal mit mehr Info

von Nicolai L. (Firma: Privat) (leiche)


Lesenswert?

Oh mein Gott mir ist ein Fehler unterlaufen Natürlich Hat das Rote LED 
keine 2.1ma sonder 2.1V


Danke für eure Hilfe. Ihr seids SUPER!!!

von Route_66 H. (route_66)


Lesenswert?

Nicolai L. schrieb:
> (gemacht in Rahmen einer
> Diplomarbeit für den Abschluss an einer HTL )

Denk' ich an Deutschland in der Nacht,
so bin ich um den Schlaf gebracht.
Ich kann nicht mehr die Augen schließen,
und meine heißen Tränen fließen.

von Eric B. (beric)


Lesenswert?

Route 6. schrieb:
> Nicolai L. schrieb:
>> (gemacht in Rahmen einer
>> Diplomarbeit für den Abschluss an einer HTL )
>
> Denk' ich an Deutschland in der Nacht,
> so bin ich um den Schlaf gebracht.
> Ich kann nicht mehr die Augen schließen,
> und meine heißen Tränen fließen.

Ich darf doch hoffen dass an einer Diplomarbeit mehr dran ist als 
lediglich eine kleine Woche mit Arduino und Fritzing herumfrickeln...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.