INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
PLZ 8656x
17.10.2015, 16:07
Beitrag #1
PLZ 8656x
Hallo miteinander,
ich komme von der Hardwareseite, bin es aber leid, mir jedesmal eine Platine basteln zu müssen...
Ich habe mit den -üblichen?- Anfängerproblemen zu kämpfen. Deshalb wäre es gut, wenn sich jemand aus dem o.g. Postleitzahlenbereich bereit erklären würde, mir helfend unter die Arme zu greifen. Nahbereich deshalb, damit man im -äußersten Notfall- auch mal "vor Ort" was abklären könnte.
Mein aktuelles Problem: Eine rel. einfache "Brunnensteuerung", die auch auf einen Attiny 45 hochladen möchte.
Funktioniert nicht!
Ich habe jetzt 2 Tage gegoogelt, gesucht, gelesen: Alles umsonst

Vorhande Hardware: Arduino Uno, Mega und USBtinyisp
Vielleicht erbarmt sich jemand.
Ich möchte das nicht im Forum breittreten
PN erwünscht
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.10.2015, 17:58
Beitrag #2
RE: PLZ 8656x
Hi,
also als quasi wohl Anfänger gleich einen Tiny programmieren würde ich dir nicht empfehlen da du hier die Vorteile der IDE mit dem ausgeben von Variablen etc. nicht so einfach machen kannst. Für solche Aufgaben um einen CPU letztendlich fest einzubauen bieten sich die Pro Mini's an wo für wenig Geld zu erstehen sind. Dazu benötigt man allerdings noch einen USB/Seriell-TTL Adapter. Aber damit hast dann ein gutes Werkzeug in der Hand.
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.10.2015, 18:56 (Dieser Beitrag wurde zuletzt bearbeitet: 17.10.2015 19:01 von hotsystems.)
Beitrag #3
RE: PLZ 8656x
Auch wenn ich nicht aus dem Postleitzahlenbereich komme, würde ich mich dennoch dafür interessieren, was sich hinter der Brunnensteuerung verbirgt.

Und was der Controller betrifft, gebe ich Bitklopfer absolut recht, für den Anfang sollte es schon ein Arduino sein.
Da kannst du aber anschließend auch auf einen Atmega328 StandAlone umsteigen und ein eigenes Board für den Controller bauen.
Das müsstet du ja auch bei einem Attiny.

Und warum möchtest du es nicht im Forum "breittreten"?
Das würde doch nicht nur dir helfen, dafür ist doch das Forum da.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.10.2015, 09:43
Beitrag #4
RE: PLZ 8656x
(17.10.2015 18:56)hotsystems schrieb:  Auch wenn ich nicht aus dem Postleitzahlenbereich komme, würde ich mich dennoch dafür interessieren, was sich hinter der Brunnensteuerung verbirgt.

Und was der Controller betrifft, gebe ich Bitklopfer absolut recht, für den Anfang sollte es schon ein Arduino sein.
Da kannst du aber anschließend auch auf einen Atmega328 StandAlone umsteigen und ein eigenes Board für den Controller bauen.
Das müsstet du ja auch bei einem Attiny.

Und warum möchtest du es nicht im Forum "breittreten"?
Das würde doch nicht nur dir helfen, dafür ist doch das Forum da.

Gut, dann gehen wir das mal an.
Um die letzte Frage vornweg zu beantworten: Ich wollt eigentlich Kommentare nach dem Motto "..wer lesen kann ist klar von Vorteil" u.ä. vermeiden.
Was ich die letzten Tage gelesen habe, paßt auf keine Kuhhaut.
Es geht um einen "Trockenlaufschutz". Dazu sind im Brunnen zwei Sensoren angebracht. Einer für den untersten Wasserstand (SensorU) und einer für "Normalwasserstand" (SensorO). Und dann gibts noch einen "Hauptschalter", der die Stromversorgung einschaltet. Die Pumpe schaltet sich über einen Druckregler ab. Der Hauptschalter ist -aus diversen Gründen- nicht immer an.
Wenn nun der Hauptschalter eingeschaltet wird und der untere Sensor High meldet (SensorO = Low), soll sich die Pumpe einschalten. Fällt der Wasserstand, darf sich die Pumpe bei SensorU = High nicht einschalten. Sie darf erst einschalten, wenn auch der obere Sensor High meldet.
Eine "klassische" Aufgabe nach der ersten Stunde eines C++-Kurses...
Untenstehend "mein" Code. Mir ist vollkommen klar, daß sich das auf ein/zwei Zeilen reduzieren läßt. Aber wie? Bei mir ist das halt der Reihe nach so entstanden (Try and Error).
Natürlich läßt sich das mit ein paar Gattern und einem FlipFlp auch aufbauen. Aber: Jeder fängt mal klein an.
Der Attiny hat sich in meinen Augen angeboten, aber es spricht auch sicher nichts gen ein proMini Board.

#include <avr/io.h>
int SensorU;
int SensorO;
int Input1Pin = 2;//unterer Sensor
int Input2Pin = 3;//oberer Sensor
int AusgangPin = 12;//Pumpe Ausgang
int x;// quasi FlipFlop

void setup () {
// Serial.begin (9600);
pinMode(Input1Pin, INPUT);
pinMode(Input2Pin, INPUT);
pinMode(AusgangPin, OUTPUT);
x = 1;
}
void loop() {
SensorU = digitalRead (Input1Pin);
SensorO = digitalRead (Input2Pin);
if
(x == 1 and SensorU == HIGH ) {
digitalWrite (AusgangPin, HIGH);
} else {
digitalWrite(AusgangPin, LOW);
x = 0;
if
(x == 0 and SensorU == HIGH );
digitalWrite (AusgangPin, LOW);
if
(SensorU == HIGH and SensorO == HIGH) {
digitalWrite (AusgangPin, HIGH);
x = 1;
}
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.10.2015, 10:19 (Dieser Beitrag wurde zuletzt bearbeitet: 18.10.2015 10:53 von hotsystems.)
Beitrag #5
RE: PLZ 8656x
Hallo Igor_H,

vorweg ein paar Anmerkungen.
Prima, dass du dich hast überzeugen lassen, dein Problem hier zu posten.
So ist es optimal und es können auch viele Helfen. Deine Bedenken sind da wirklich unberechtigt.

Ich habe dennoch ein paar Fragen:

Was sind das für Sensoren und was liefern die für ein Ausgangspotential?
Die Pumpe selber schaltest du nicht über die Sensoren?

Der Hintergrund:

Ich betreibe schon seit einigen Jahren eine Pumpensteuerung mit Sensoren und diese funktioniert super. Aber da gibt es einige Dinge zu beachten, die ich gern zuvor klären möchte, bevor es Probleme gibt.

Edit:

Gerade bemerkt, deine Beschreibung ist nicht ganz logisch:
Zitat:Einer für den untersten Wasserstand (SensorU) und einer für "Normalwasserstand" (SensorO).....

Wenn nun der Hauptschalter eingeschaltet wird und der untere Sensor High meldet (SensorO = Low), soll sich die Pumpe einschalten. Fällt der Wasserstand, darf sich die Pumpe bei SensorU = High nicht einschalten. Sie darf erst einschalten, wenn auch der obere Sensor High meldet.

Das müsstest du bitte etwas besser erklären. Wie ist der Ausgangszustand der Sensoren? HIGH oder LOW?
Sind Pullup oder Pulldown-Widerstände vorhanden?

Und ganz wichtig, kannst du eine Zeichnung des Brunnens anfertigen. Per Hand reicht.

Lage der Sensoren und mögliche (2-3) Wasserstände, wo Aktionen erfolgen sollen.

Dann finden wir eine Lösung. Ohne die Angaben ist es schwierig.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.10.2015, 10:59
Beitrag #6
RE: PLZ 8656x
(18.10.2015 10:19)hotsystems schrieb:  Hallo Igor_H,

vorweg ein paar Anmerkungen.
Prima, dass du dich hast überzeugen lassen, dein Problem hier zu posten.
So ist es optimal und es können auch viele Helfen. Deine Bedenken sind da wirklich unberechtigt.

Ich habe dennoch ein paar Fragen:

Was sind das für Sensoren und was liefern die für ein Ausgangspotential?
Die Pumpe selber schaltest du nicht über die Sensoren?

Der Hintergrund:

Ich betreibe schon seit einigen Jahren eine Pumpensteuerung mit Sensoren und diese funktioniert super. Aber da gibt es einige Dinge zu beachten, die ich gern zuvor klären möchte, bevor es Probleme gibt.

Die "Sensoren" sind 3 Alustäbe. Sobald SensorU oder SensorO ins Wasser taucht, schaltet ein CMOS-Schmitttrigger. Über ein Relais wird dann ein Schütz angesteuert, der die 2,2kW Tiefbrunnenpumpe einschaltet (sofern der Druckschalter ihn freigibt).
Erschwerend (nicht für die Elektronik) kommt hinzu, daß sich das Ganze in 30m Tiefe abspielt. "Nur" die Sensoren sind im Brunnen, die Auswerteelektronik ist "oben"
Die "Sensorik" arbeitet seit etwa einem 1/2 Jahr einwandfrei
Ich möchte ungern mechanische Schalter anbringen

/
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.10.2015, 11:23 (Dieser Beitrag wurde zuletzt bearbeitet: 18.10.2015 14:22 von hotsystems.)
Beitrag #7
RE: PLZ 8656x
(18.10.2015 10:59)Igor_H schrieb:  Die "Sensoren" sind 3 Alustäbe. Sobald SensorU oder SensorO ins Wasser taucht, schaltet ein CMOS-Schmitttrigger. Über ein Relais wird dann ein Schütz angesteuert, der die 2,2kW Tiefbrunnenpumpe einschaltet (sofern der Druckschalter ihn freigibt).
Erschwerend (nicht für die Elektronik) kommt hinzu, daß sich das Ganze in 30m Tiefe abspielt. "Nur" die Sensoren sind im Brunnen, die Auswerteelektronik ist "oben"
Die "Sensorik" arbeitet seit etwa einem 1/2 Jahr einwandfrei
Ich möchte ungern mechanische Schalter anbringen
Ok, ich möchte keine "Unruhe" stiften, aber Alu ist das schlechteste Material überhaupt. Wundert mich, dass es so lange funktioniert. Das oxydiert sehr stark und die Leitfähigkeit an der Oberfläche wird immer schlechter.
Edelstahl wäre hier deutlich besser.

Der nächste Punkt ist, du arbeitest bei deiner Elektronik mit Gleichspannung/Strom, dadurch entsteht eine Elektrolyse, die das Material im Wasser "abbaut".
Da musst du Wechselspannung einsetzen, es gibt dafür extra IC's die das machen.

Aber ok, wenn es erst mal funktioniert, die Frage ist nur wie lange.
Dieses bitte nur als gut gemeinten Tipp sehen.

Um mich mit dem Sketch zu befassen, benötige ich noch die Zeichnung, dann komme ich leichter rein.Wink

Und zusätzlich stellt sich mir die Frage, wozu der obere Sensor?
Als Trockenlaufschutz reicht doch der untere Sensor. Der schaltet, wenn der Pegel darunter ist.
Oder sehe ich das falsch.

Nach etwas Überlegung, aber ohne genau zu wissen, ob es deinen Funktionswünschen entspricht, hier mal ein einfacher Code:

Code:
#include <avr/io.h>
int SensorU;
int SensorO;
int Input1Pin = 2;//unterer Sensor
int Input2Pin = 3;//oberer Sensor
int AusgangPin = 12;//Pumpe Ausgang


void setup () {
  // Serial.begin (9600);
  pinMode(Input1Pin, INPUT);
  pinMode(Input2Pin, INPUT);
  pinMode(AusgangPin, OUTPUT);
}


void loop() {
  SensorU = digitalRead (Input1Pin);
  SensorO = digitalRead (Input2Pin);

  if (SensorO == HIGH & SensorU == HIGH ) {     // Wenn Sensor oben und unten im Wasser sind (eigentlich braucht es hier SensorU nicht)
    digitalWrite (AusgangPin, HIGH);            // Dann Pumpe an
  }

  if (SensorU == LOW ) {                        // Wenn Sensor unten nicht mehr im Wasser ist
  digitalWrite (AusgangPin, LOW);               // Dann Pumpe aus
  }
}

Das sollte so funktionieren, wie gesagt keine Verantwortung, da ich nicht sicher bin, ob du es so wünscht.

Und bitte baue Pulldown-Widerstände ein.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.10.2015, 09:32
Beitrag #8
RE: PLZ 8656x
Das

if (SensorO == HIGH & SensorU == HIGH )

muss natürlich so

if (SensorO == HIGH && SensorU == HIGH )

sein.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste