Hallo Com,
Ich bin ganz neu hier im Forum und auch in Arduino bin ich quasi Newbie
ich beschäfftige mich mit dem Ding seit gut 4 Wochen und habe mir vor gut 2 Wochen ein Starterkit gekauft.
Habe mit kleinen Spaß Projekten angefangen wie per Schalter die pin13 led leuchten lassen usw.
Vorgestern hat mich ein Freund auf die Idee gebracht für unsere Motorräder einen Kettenoiler zu bauen.
Da ich total Lust auf Arduino habe, dachte ich mir ich gucke mal wieweit ich komme....
Imprinzip möchte ich einmal das ein Taster eine Pumpe betreibt, damit ich den schlauch mit öl füllen kann.
Das klappt sogar schon soweit lach
Das zweite ist, ein reedkontakt soll impuls auf ein relais geben und die pumpe schalten
da ich kein reedsensor habe (ist bestellt) habe ich mir aus dem starterkit einfach den bewegungsmelder genommen um zu testen.
Das ganze geht auch schon so halb sprich der bewegungsmelder gibt impuls und meine test led leuchtet.
Nun ist es aber so, dass er nicht bei jedem kontakt pumpen soll, sondern zB nur jede Minute für ca. 2 Sekunden.
(ist nur ein Beispiel) das muss ich später testen am motorrad.
ich habe es mit delays versucht, das geht zwar aber ist iwie nicht richtig wie ich finde
Da benötige ich nun eure Hilfe...
Wie kann ich sowas realalisieren ?
Hier mein bisheriger Sketch (bitte nicht gleich los lachen bin wie gesagt blutiger Anfänger)
int LEDboard=13;
int taster=7;
int tasterstatus=0;
const int reedpin = 2; // Reedkontakt Eingangspin
const int pumpe = 9; // Zum Pumpenrelais derzeit noch eine LED auf PIN 9
int reedkontaktzustand = 0; // Variable zum lesen des Reedstatus status
void setup()
{
pinMode(LEDboard, OUTPUT);
pinMode(taster, INPUT);
// der pumpen/LED ausgang:
pinMode(pumpe, OUTPUT);
// der Reedkontakt eingang:
pinMode(reedpin, INPUT);
}
void loop()
{
oiltaster();
reedkontakt();
}
//////////////////////////////////////OILTASTER//////////////////////////
void oiltaster()
{
tasterstatus=digitalRead(taster);
if (tasterstatus == HIGH)
{
digitalWrite(LEDboard, HIGH);
delay (500);
digitalWrite(LEDboard, LOW);
}
else
{
digitalWrite(LEDboard, LOW);
}
}
//////////////////////////////////////OILTASTER-ENDE/////////////////////
//////////////////////////////////////REED-KONTAKT/////////////////////
void reedkontakt()
{
// lese den status vom reedkontakt
reedkontaktzustand = digitalRead(reedpin);
if (reedkontaktzustand == LOW) {
// Pumpe oder LED aus
delay(900);
digitalWrite(pumpe, LOW);
}
else {
// Pumpe oder LED an
delay (4500);
digitalWrite(pumpe, HIGH);
}
}
//////////////////////////////////////REED-KONTAKT-ENDE/////////////////////