-
Mit BASCOM habe ich mich nie so richtig beschäftigt. Hier solltest du die Antwort finden.
http://halvar.at/elektronik/kleiner_...dc_mit_getadc/
-
Hallo,
ich bekomms leider nicht hin. Vielleicht könnte mir jemand der sich damit auskennt mal den code posten. Dann hab ich ein Beispiel mit dem ich arbeiten könnte. Noch ne kure Erklärung was meine Steuerung machen soll(ich dachte so etwas einfaches habe ich als Einsteiger ruck zu programmiert :( ). Sobald ich am Eingang eine Spannung ab ca. 1,5 Volt anliegen habe soll eine LED für 4 Sekunden geschaltet werden, egal wie lange die Eingangsspannung anliegt. Erst wenn diese Spannung wieder auf null fällt und wieder eingeschaltet wird soll die LED wieder für 4 Sekunden geschaltet werden. Ich hoffe es ist etwas verständlich. Danke
-
Ach komm, so schwer kann das doch nicht sein.
Wie sieht denn dein Code bis jetzt aus? Irgendwas wirst du doch schon hingebracht haben.
-
Hallo Hubert, leider habe ich noch nicht herausgefunden wie ich einen Eingang programmieren kann, dass er ab 1,5 Volt schaltet. Deshalb komm ich null voran
-
Ich habe jetzt gerade gesehen das du mit einem Arduino werkst. Such dir mal das Beispiel "AnalogInput"
Auf dieses Beispiel kannst du aufbauen. Der Rest ist dann aber wohl eher C-Syntax.
-
int ledPinOut = 13; // Variable Pin 13 zugewiesen
int SpannungInput = A1; // Variable Pin A1 zugewiesen
int SpannungStatus; // Variable für Status des SpannungInputs
void setup(){
pinMode(ledPinOut, OUTPUT); // Pin 13 als Ausgang
}
void loop() {
if(analogRead(SpannungInput) == HIGH && lastread == false){
digitalWrite(ledpinOut, HIGH);
delay(4000);
digitalWrite(ledpinOut, LOW);
lastread = true;
}
else if(analogRead(SpannungInput) == LOW && lastread == true){
lastread = false;
}
}
- - - Aktualisiert - - -
Ich den Code mal auf Basis von "PlasmaTubeI²C" erstellt, komm aber mit dem lastread nicht klar und weiß leider auch nicht wie ich den Eingang Spannungsabhängig definieren kann.
-
int sensorPin = A0; // select the input pin for the potentiometer
int ledPin = 13; // select the pin for the LED
int sensorValue = 0; // variable to store the value coming from the sensor
int LedOn = 0;
void setup() {
// declare the ledPin as an OUTPUT:
pinMode(ledPin, OUTPUT);
}
void loop() {
// read the value from the sensor:
sensorValue = analogRead(sensorPin);
if((sensorValue >=680)&&(!(LedOn))) {
LedOn=1;
digitalWrite(ledPin, HIGH);
delay(4000);
digitalWrite(ledPin, LOW);
}
if((sensorValue <=679)&&(LedOn)) {
LedOn = 0;
}
}
Das ist als Arduino Sketch, probier mal.
Muss jetzt aber für drei Stunden weg, Kommentare, wenn benötigt kommen dann.
-
Danke Hubert, hab den Sketch übertragen. Das merkwürdige ist jetzt, obwohl der Arduino im Moment nur am USB KAbel Angeschlossen ist und auch sonst noch keine LEDs oder sonst was angeschlossen sind, wird pin13 immer mal wieder aktiviert und ausgeschaltet aber total unregelmäßig, wie kann das sein? Statische Aufladung?
-
Hallo,
Jo, das sind Störsignale.
Jeder Leiter wirkt nun mal als Antenne und liest jede Menge Signale aus der Umgebung auf.
Du kannst mal deinen Finger an den Port Pin halten, dann wird's heftiger.
Wenn du einen Widerstand (10k..100k) vom Pin gegen Masse schaltest, sollten die Störungen aufhören.
MfG Peter(TOO)
-
Ja, das ist statische Aufladung, der Eingang ist sehr hochohmig. Lege den Eingang mal direkt auf +5V.
Den Wert 680 musst du noch durch 307 und 679 durch 300 ersetzen. Ich hatte den ursprünglichen Wert mit einer anderen Referenzspannung berechnet.
Es wäre auch noch gut wenn du in Serie zum A0-Eingang einen Widerstand mit etwa 4k7 legen würdest, falls so etwas nicht ohnehin vorgesehen ist.