Pages: [1]   Go Down
Author Topic: blöde frage wegen taster  (Read 1641 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 36
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hallo freunde

ich habe beim arduino mega ein kleines problem mit einem taster:

der tester ist bei dem einen pin mit 5V verbunden und auf dem anderen mit nem digitalpin vom arduino...



code:

int poti = 10;
int killswitch = 27;

int potiwert = 0;
int killswitchwert = 0;


void setup()
{
  Serial1.begin(9600);
 
  pinMode(killswitch, INPUT);
  digitalWrite(killswitch, LOW);
 
}


void loop()
{
  potiwert = analogRead(poti);
  killswitchwert = digitalRead(killswitch);
 
  if(killswitchwert == HIGH) Serial1.println(potiwert);
 
  delay(100);
}


könnte mir vielleicht jemand erklären warum das nicht funktioniert?

alle anderen projekte bei denen ich einen schlater oder taster verwendet habe habe ich immer GND "geschaltet"
und bei der platine für mein projekt habe ich mir gedacht ich nehme mal 5V ohne es vorher zu testen -.-

ich hoffe ihr könnt mir weiterhelfen

grüße aus österreich
hoonse


* Foto am 05-02-2011 um 13.54.jpg (100.47 KB, 640x480 - viewed 36 times.)
Logged

CH
Offline Offline
Newbie
*
Karma: 1
Posts: 18
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Könnte es sein, dass der Eingang immer high ist?

Wenn ja, verwende einen PullDown-Widerstand, damit wenn der Schalter ausgeschaltet ist, der Eingang wirklich auf GND kommt... Der Eingang des Arduino ist hochohmig (im Mega-Ohm-Bereich)
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 36
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

5V -----> Taster -----> digitalPinArduino

beim setup() habe ich

pinMode(killswitch, INPUT);
digitalWrite(killswitch, LOW);

dann im loop()

 killswitchwert = digitalRead(killswitch);
 if(killswitchwert == HIGH) doSomethint();

normalerweise müsste das passen oder ?
Logged

CH
Offline Offline
Newbie
*
Karma: 1
Posts: 18
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
If the pin is configured as an INPUT, writing a HIGH value with digitalWrite() will enable an internal 20K pullup resistor (see the tutorial on digital pins). Writing LOW will disable the pullup.

Du schaltest somit einen PullUp-Widerstand ein. Wenn kein Eingangssignal angeschlossen ist (Schalter offen) zieht der PullUp den Eingang auf +5V.

Versuch folgendes: PullUp ausschalten, verbinde den Eingang mit einem Widerstand (5k-20k Ohm) nach GND. Oder du schaltest wieder mit GND wie bisher, dann kannst du den internen PullUp verwenden.
« Last Edit: February 05, 2011, 08:21:16 am by gloeru » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 36
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ich schalte mit dem taster NICHT GND sondern +5V
Logged

CH
Offline Offline
Newbie
*
Karma: 1
Posts: 18
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

jaja...

- Wenn du den Schalter betätigst, dann hat der Einggang +5V direkt von der Quelle.
- Wenn du den Schalter ausschaltest, dann hat der Eingang irgendetwas (nicht GND!), bei eingeschaltetem PullUp sind es +5V.
Der Eingang des Arduinos ist zu hochohmig um die Signalleitung auf GND zu ziehen, er hat somit einen nicht definierten Zustand.
(Ausser du hast einen Umschalter  der 5V oder GND schaltet)
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 36
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok ich denke ich habe verstanden..

vielen dank für deine schnelle hilfe

grüße aus österreich
hoonse
Logged

Stuttgart
Offline Offline
God Member
*****
Karma: 13
Posts: 511
logic enrichments
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Egentlich ist das keine böde Frage. Es sind immer wieder genau die selben Fragen die gestellt werden. Dann wären ja alle "blöde Fragen" smiley-wink

Ich gebe zu Bedenken: Nehmen wir al man will ein externes IC mit einem Taster versehen. Dieses angeschlossene IC hat aber keine eingebauten Pullup oder Pulldownwiderstände.

Also kann man die Tasterschaltung nur mit einem externen Widerstand aufbauen. Die Grundschaltung des Pullups oder Pulldowns sollte einem immer gegenwärtig sein. Der Bastler kennt das genau.

Interessant wird es den Pulldownwiderstand zu "bemessen". Man denke nur daran, man will vielleicht keinen Taster sondern irgendein anderen Geber dazu verwenden. Dessen Ausgangssignal ist auschlaggebend für die Bemessung des Spannungsteilers.

Dann kommt noch das Prellen hinzu.    ...Ich lass das jetzt mal smiley-wink
Logged

Eine Kuh macht muuhh.
Viele Kuehe machen Muehe

0
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3470
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Das Bemessen von Pullups ist furchtbar leicht. Ich zitiere mal einen befreundeten Elektroingineur: "nimm 47k". Grund: das ist ein Standardwert. Klein genug um sicher zu ziehen aber groß genug um nichts kaputt zu machen. Solange man keine besonderen Anforderungen hat passt das jedenfalls so gut wie immer.

Gruß, Udo
Logged

Check out my experiments http://blog.blinkenlight.net

Pages: [1]   Go Up
Jump to: