Guten Tag!
Ich habe folgenden Sketch gefunden und würde ihne gerne benutzen ein Relais zu schalten. Funktioniert auch soweit perfekt. Jetzt möchte ich das Relais anstatt "Aus durch Zeit (aktMillis)" mit einem Kapazitivem Näherungsschalter ausschalten. (Ich würde damit einen Flaschenabfüller bauen). Ich kriege es aber leider nicht hin. Kann mir da jemand aus der Patsche helfen?
const byte pinEingang = 3;
const byte pinAusgang = 13;
const uint32_t prellIntervall = 30, ausgangIntervall = 1000;
uint32_t aktMillis, prellMillis, ausgangMillis;
bool aktTaster, altTaster, ausgangStatus;
void setup() {
pinMode(pinEingang, INPUT_PULLUP);
pinMode(pinAusgang, OUTPUT);
}
void loop() {
aktMillis = millis();
// Tastenaktualisierung mit Entprellen
altTaster = aktTaster;
if (aktMillis - prellMillis >= prellIntervall)
{
prellMillis = aktMillis;
aktTaster = digitalRead(pinEingang);
}
// Tasteraktion
if (altTaster && !aktTaster) // Flankenerkennung Taster gedrückt, LOW aktiv
{
if (ausgangStatus)
{
ausgangStatus = LOW;
digitalWrite(pinAusgang, LOW); // Ausgang AUS durch Tastendruck
} else {
ausgangMillis = aktMillis;
ausgangStatus = HIGH;
digitalWrite(pinAusgang, HIGH); // Ausgang EIN durch Tastendruck
}
}
// Ausgang schalten
if (ausgangStatus && (aktMillis - ausgangMillis >= ausgangIntervall))
{
digitalWrite(pinAusgang, LOW); // Ausgang AUS durch Zeit
ausgangStatus = LOW;
}
}
Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
Das kannst Du auch noch nachträglich ändern.
Beschreibe mal genauer, wie Du das Relais schalten willst und gib uns einen Link zum Näherungsschalter.
Danke Tommy für die Antwort. Wenn ichs mit deiner Hilfe hinkriege, dann schicke ich dir die erste damit abgefüllte Flasche Gin (BlueJean: https://seppila.com) als Lohn sozusagen. Außer der Sketch wird zu kompliziert, dann werde ich wohl jemanden beauftragen müssen...
Den Näherungsschalter habe ich bei amazon gekauft:
Hier noch einmal der bisherige Code:
const byte pinEingang = 3;
const byte pinAusgang = 13;
const uint32_t prellIntervall = 30, ausgangIntervall = 1000;
uint32_t aktMillis, prellMillis, ausgangMillis;
bool aktTaster, altTaster, ausgangStatus;
void setup() {
pinMode(pinEingang, INPUT_PULLUP);
pinMode(pinAusgang, OUTPUT);
}
void loop() {
aktMillis = millis();
// Tastenaktualisierung mit Entprellen
altTaster = aktTaster;
if (aktMillis - prellMillis >= prellIntervall)
{
prellMillis = aktMillis;
aktTaster = digitalRead(pinEingang);
}
// Tasteraktion
if (altTaster && !aktTaster) // Flankenerkennung Taster gedrückt, LOW aktiv
{
if (ausgangStatus)
{
ausgangStatus = LOW;
digitalWrite(pinAusgang, LOW); // Ausgang AUS durch Tastendruck
} else {
ausgangMillis = aktMillis;
ausgangStatus = HIGH;
digitalWrite(pinAusgang, HIGH); // Ausgang EIN durch Tastendruck
}
}
// Ausgang schalten
if (ausgangStatus && (aktMillis - ausgangMillis >= ausgangIntervall))
{
digitalWrite(pinAusgang, LOW); // Ausgang AUS durch Zeit
ausgangStatus = LOW;
}
}
Du solltest dringend nach einem Sensor mit NPN Ausgang suchen, sonst mußt Du noch einen Pegelwandler dazwischenschalten. Für einen NPN Ausgang brauchst Du nur einen Pullup-Widerstand, wie bei jedem anderen Schalter auch.
Mit welcher Spannung betreibst Du denn den Näherungsschalter überhaupt? Dass man ihn nicht direkt anschließen kann, wurde dir ja schon gesagt.
Du hättest mir den Link im anderen Forum aber auch einstellen können. Bei der Lösung, die ich dir dort vorgeschlagen habe, musst Du nun aber die Logik umdrehen:
Habe diesen Post schon auf "Funduino.de" gepostet. Hier noch einmal der Vollständigkeit halber...
Ok. (der Sketch kommt vom stummiforum). Die Zeit ist zufällig dabei und völlig überflüssig. Und - natürlich muß der Taster die Oberhand behalten. Noch etwas: Entschuldigt bitte mein ungeschicktes Verhalten im Forum. Wir sind ein kleines Startup und stellen hochwertige Schnäpse und Liköre her. Keiner von uns hat weder die Zeit noch die technische Voraussetzung um uns mit komplexen Arduino-Techniken oder Forum-Gepflogenheiten herum zu schlagen. Ehrlich gesagt dachte ich, das Ganze sind einfach im Prinzip zwei Schalter, die man geschickt kombiniern muß um das Problem zu lösen. Dass das Ganze (anscheinend) zu einem technischen Großproblem führt, hätten wir nicht für möglich gehalten. Ich schildere noch einmal mein (unser) Anliegen. Um uns die Arbeit des (händischen) Abfüllens etwas zu erleichtern (Abfüllanlage liegt -finanziell- noch in weiter Ferne) schwebte uns folgende Lösung vor: Das Destillat fließt, der Schwerkraft folgend, durch einen Schlauch in eine Flasche. Bis jetzt war ein einfacher händisch betriebener Quetschhahn unsere ganze technische Vorrichtung. Folgendes wäre jetzt schön: Ein Taster öffnet über ein Relais ein Magnetventil - der Schnaps fließt in die Flasche - und wenn diese voll ist, schließt sich das Ventil von alleine wieder. Sollte dabei irgendetwas schiefgehen gibt es dann immer noch den Taster, mit dem man abschalten könnte. Ich bin Pragmatiker und dachte das Ganze ließe sich mittels Arduino und ein paar billigen Elektroteilen (Ventil - Näherungsschalter - Relais) sehr einfach in den Griff kriegen.
Nocheinmal: Die erste abgefüllte Gin-Flasche, oder besser noch eine schöne Auswahl unserer Schnäpse und Liköre geht an denjenigen, der uns Detailliste, Schaltplan und Arduino Sketch liefern kann. Wenn das aus irgend einem Grund nicht geht, oder zuwenig (Lohn) ist, dann soll jemand das sagen oder aber eine Lohnforderung stellen.
Arduino ist 5V Technologie, was du benutzt sind 24V Technologien. Damit musst du dauernd zwischen diesen zwei Spannungsebenen rumbasteln.
Dein Sensor ist mit PNP auch nicht wirklich passend, wenn man keinen Plan davon hat. Wobei jemand mit Erfahrung weis wie man ihn trotzdem betreibt, aber es erfordert etwas zusätzliche Verdrahtung. Die Frage ist, welches finanziellen Budget du für die Abfüllung zur Verfügung hast.
Hast Du schon mal recherchiert, wie andere Firmen das Portionieren automatisieren?
Bei einer Massenabfüllung würde ich vermuten, daß die Zufuhr mit konstantem Druck erfolgt, so daß das Ventil eine feste Zeit geöffnet bleiben kann, ohne irgendwelche Kontrolle des Füllstands. Ob dieser Aufwand bei "Kleinserien" bezahlbar ist, wage ich zu bezweifeln. Auf jeden Fall ist die Mechanik der teurste Teil des Projekts, die Steuerung können die meisten Hobby-Programmierer hinkriegen.
Wenn ihr wirklich so eine Abfüllmaschine haben möchtet, dann wendet euch am besten an einen kompetenten Ausrüster.
Als Ventil würde ich auf jeden Fall eines das einen Silikonschlauch zusammenquetscht nehmen; das ist am einfachsten Lebensmittelecht.
Für die automatische Erkennung ob die Flasche voll ist würde ich eine Waage nehmen. Entweder eine selbst bauen (Wäägezelle und Verstärker) oder eine mit serieller Schnittstelle kaufen.
Vieleicht ist ein User im gegenzug von Produktverkostungen bereit Euch beim Technischen zu helfen.
Wiegen ist im Prinzip richtig, doch wie lange muß man warten, bis sich der Meßwert stabilisiert hat? Während des Einfüllens geht garnichts, man müßte also eine Pause machen, messen und dann ggf. nachfüllen. Wenn man so viel Zeit hat...
Ich nehme mal an der Distillationsapparat ist relativ klein und da kommt mehr getröpfle heraus als ein kontinuierlicher Schnapsstrahl. Das Füllen einer Flasche dauert so etwas zwischen 15 und 30 Minuten.
Der Praktiker würde messen, was das MINIMUM ist, welche Überfüllung stattfindet in der durch die Messeinrichtung gewählten Toleranz und das durchkalkulieren. Am Flaschenhals kann wohl kaum mehr als 2% Überfüllung auftreten. Bei einem Literpreis von sagen wir 15 Euro für den Hersteller, würde man 30ct pro Liter verlieren. Eine gute Abfüllanlage mit Eichung kostet 1000Euro aufwärts. Ohne Eichung billiger, aber wohl nicht wirklich genauer. Eichen kostet extra, weils regelmässig gemacht werden muss.
Alles in allem muss man also 3333 Liter verkaufen, was einem Umsatz von fast 50.000 Euro entspricht. Mit diesem Umsatz, sollte man ihn realisieren können, kauft man sich eine Abfüllanlage. Zwar hat man bis dann 66l verschenkt, aber ohne Startkapital für die Abfüllanlage hätte man garkeinen Schnaps verkauft sonst.
PS: wiegen geht problemlos. Wers nicht glaubt, nimmt eine Haushaltswaage und füllt mit einem Schlauch mal selbst Flaschen ab. Sie schwankt, aber man kann einen Mittelwert rausfinden und mit dem arbeiten. Der Nachlauf ist ebenfalls relativ konstant. So schaltet man entsprechend vorher ab und bekommt ziemlich genaue Abfüllungen. Alles eine Frage von try und error. Lässt sich sehr einfach mit Wasser austesten und dann auf den Schnaps umlegen. Und ich glaube nicht das man Schnaps direkt vom Destillierapperat in Flaschen füllt. Es wird von dort in einen Behälter abgelassen, dann aus diesem in die Flaschen. Teilweise reift der Schnaps auch noch nach in Fässern bevor er abgefüllt wird.