Posts by madman

    Hey,
    was ist die eleganteste Weise ein Objekt zurückzugeben?
    Ich habe versucht das ganze über Referenzen zu machen, aber krieg die ganze Zeit Heap/Pointer-Fehler, da das Objekt außerhalb des Scopes ist.
    Kleines Beispiel wie ich es bisher gemacht habe:


    Das funktioniert nicht, weil der Pointer auf objekt ja gelöscht wird (wenn z.B. das komplette KlasseA-Objekt gelöscht wird)


    Nach ein wenig rumgooglerei hab ich ein paar andere Konzepte gefunden..
    1.) per static zurückgeben.. also ein statisches Objekt in getObjekt() erstellen und das dann zurückgeben.
    Will ich ungern machen, weil sich das relativ unsauber anfühlt irgendwelche statischen Objekte in einer Funktion zu erstellen, die dann die ganze Zeit im Speicher rumschwirren.
    2) per new ein Objekt erstellen. Also innerhalb von getObjekt per new ein Objekt erstellen. Will ich aber auch nicht machen, weil ich im Verlauf der Programmierung mit Sicherheit vergessen werde, dass immer wenn ich KlasseB *ptr = getObjekt() aufrufe ich immer ptr löschen muss. Da ich ansonsten so gut wie nie mit new/delete arbeite.
    3) Referenz auf das Objekt als Parameter mitübergeben. So mache ich das aktuell auch:


    Code
    class KlasseA {
    private:  
       KlasseB *objekt;
    
    
    public:
       void getObjekt(KlasseB& inputObjekt){
    inputObjekt = *objekt;}
    };


    Aber es muss doch irgendwie möglich sein einfach ein normales Objekt zurückzugeben ala
    KlasseB objekt = KlasseA.getObjekt();
    über ein Kopierkonstruktor oder sowas. Ich möchte nicht auf das Objekt mit dem identischen Speicherbereich aus KlasseA zugreifen, ich möchte einfach nur eine flache Kopie von dem objekt aus KlasseA in mein objekt in der main-methode haben..

    ja, danke für die Antworten. Habe zu spät gemerkt, dass die Frage komplett sinnlos ist. Mein Programm wird ja erst gestartet wenn das Betriebssystem gestartet ist, bis dahin macht die PI ja eh was sie will. Und bevor mein Programm gestartet ist, sind die Pins ja auf die Default-Werte der PI eingestellt (Input/Low). Wenn ich durch mein Programm das jetzt auf Output/Low schalte, kann das ja nur Nachteile haben.



    danke aber für die Antworten!


    Ja natürlich hat das einen entscheidenden Vorteil. Stell Dir vor, Du hast eine Schaltung am GPIO, die einen Pin mit Highpegel treibt. Also nicht einfach ein Taster mit Pullup, sondern ein Logikgatter, oder ein Arduino. Und dann treffen der Ausgang des Arduinos mit High und der Ausgang des Raspi mit Low aufeinander. Was wird dann wohl passieren?


    Prinzipiell plädiere ich dafür, auch Eingangs-GPIOs immer mit einem 1kohm Widerstand in Serie zu beschalten. Denn sollte der GPIO zufällig auf Ausgang und High geschaltet werden und der Taster am GPIO gegen Masse schalten, kannst Du den GPIO damit ebenfalls zuverlässig erledigen.


    Ja, aber was ist denn dann besser? Output oder Input? z.B. wird meine Raspi ja flöten gehen, wenn mein Relaisboard angeschlossen ist und ich als default-value Input hab (wenn ich den ULN nicht angeschlossen habe).


    Also low als default sollte ja logisch sein (die wahrscheinlichkeit dass ich ein low aktive Komponente anschließe ist geringer als ein high aktives) nur bei output/input weiß ich grad nicht, was ich da am besten einstellen soll.


    default auf high und output werd ich natürlich nicht setzten und wird dementsprechend nicht zufällig passieren. Die frage ist nur output/low oder input/low. Hab nicht wirklich verstanden warum input/low besser sein soll als output/low

    Hey,
    nach dem Booten sind die GPIO-Pins ja per Default auf INPUT/LOW gesetzt. Hat das irgendeinen Vorteil gegenüber OUTPUT/LOW.
    Ich programmiere gerade ein Projekt über das ich alle meine GPIO-Pins ansteuern kann und bin gerade dabei die Default-Werte von ungenutzten GPIO-Pins zu setzen. Hab das jetzt einfach auf OUTPUT/LOW gesetzt.. machts irgendeineinen unterschied obs INPUT oder OUTPUT ist? (z.B. Stromverbrauch o.ä.)

    sagst DU aber Programm- oder Kernelupdates oder gar Abstürze können alle möglichen Portzustände hinterlassen, egal was dein Wille sei.


    Deswegen sollte man immer größtmögliche Sicherheit einplanen.


    Ja, deswegen mache ich das bei der Endversion ja auch mit dem ULN und der externen Versorgnung. Aber jetzt gerade funktioniert das sogar wenn alle Relais eingeschaltet sind wunderbar. Neustarten bzw. GPIOs auf Input zu stellen hab ich mich jetzt jedoch nicht getraut. Werd das Relais immer abklemmen, wenn ich das nicht benötige. Ist wie gesagt nur ein Prototyp zum testen. Wenn ich mein Script zuende programmiert habe und eine Version habe die automatisiert/unbeaufsichtigt funktionieren soll, pack ich das ULN dran.

    Also ich habe jetzt einfach nach der Beschreibung die mir mitgesendet wurde die 4 GPIOS mit jeweils 10k Widerstand an das Relaisboard angeschlossen und die 5V/GND auch direkt von der raspberry bezogen. Klappt alles wunderbar. Bei 3,3V schaltet das wie gesagt nicht durch.
    Soll jetzt eh nur ein Prototyp werden und die Relais werden hier nie gleichzeitig verwendet. Werd das alles dabei so belassen aber darauf aufpassen, dass ich jetzt nichts weiteres direkt von der Raspberry aus betreiben lasse und sicherheitshalber das ganze auf ein nichtbrennbares untergrund verfrachten.


    Für die Endversion werd ich dann das ULN und eine externe Stromquelle verwenden.

    Hey,
    ich habe jetzt schon ein paar mal gehört, dass teilweise die Raspberry abgesoffen ist durch ein falsch angeschlossenes Relaisboard.


    Ich habe das Teil hier: http://www.amazon.de/Pixnor-4-Kanal-DC-Modul-Relaiskarte-Optokoppler-Arduino-4-F%C3%BChrung-mit/dp/B00M8XJ71U (Affiliate-Link)


    und wollte mich an dieses Tutorial halten:
    http://tutorials-raspberrypi.d…-relais-schalter-steuern/


    Wenn ich das Relais mit den 3,3V von der Raspberry anschließe schaltet leider ausschließlich IN1 und der Rest nicht.
    Bei 5V scheint alles zu funktionieren.


    Ich habe jetzt 5V (von der Raspberry) an das Relais geschaltet und vor die Input-pins jeweils einen 10k Widerstand.
    Scheint bei IN2 jetzt zu funktionieren. Aber will hier sicherheitshalber nochmal nachfragen, ob das so gut geht ohne dass meine Raspi durchschmorrt,
    bevor ich das ganze mit allen Pins in Betrieb nehme.

    Nehmen wir ein Beispiel: Ich will 24V/1A DC über meine Raspberry schalten lassen. Erste wahl wär natürlich ein Relais aber könnte man nicht einfach auch einen Transistor nehmen der für die entsprechenden Werte geeignet ist? Würde die Raspberry irgendeinen schaden nehmen, wenn ich ganz normal über GPIO + Widerstand den NPN-Transistor steuer?

    Uh an Verdunstung habe ich gar nicht gedacht.
    Es handelt sich um ganz normale PHWert 7,01/4,01 Lösung.


    Ja, dann muss ich die irgendwie durch einen weiteren Motor verschließen lassen. Schade...

    Hey,
    ich habe absolut keine Ahnung von Chemie aber bastel an etwas was den PHWert misst.
    Insgesamt habe ich in meinem Aufbau 4 Behälter (2x Kalibrierflüssigkeit, 1x Aufbewahrungsflüssigkeit, 1x zu messende Lösung).
    Muss ich Kalibrierflüssigkeit irgendwie abdecken/Luftdicht verschließen lassen, oder kann ich die einfach offen über Wochen/Monate in dem Behälter lassen und diese dann immernoch gut verwenden um die Sonde zu kalbrieren?

    Die meisten GPIO pins haben ja spezielle Bezeichnungen, wie z.B. SDA,SCL,PCM_CLCK.. Sollte man diese auch für simples schalten (z.B. L298n ansteuern, LED zum leuchten bringen o.ä.) verwenden oder sind die für spezielle Module/Sensoren o.ä. vorhanden?

    Danke für die zahlreichen Antworten!
    Ja es scheint ein schwieriges Projekt zu werden, aber ich probier mich mal daran.



    Ich halte das fuer ein sehr ambitioniertes Projekt. Pippetierungtechnik ist nicht umsonst sau teuer. Ein Freund hat fuer eine Installation eine Tropfenmaschine gebaut, mittels eines kurz oeffnenden und schliessenden Magnetventils. Das funktioniert ganz ok, aber so einen Aufbau muesste man erst mal ausgiebig testen, auch ueber die Zeit.


    Ich hab leider nur zu große Magnetventile gefunden, das auf MIlliliter zu schaffen scheint mir viel zu komplex zu werden. Da muss das Magnetventil nur ein paar MIllisekunden länger offen bleiben (aufgrund von Verschleiß oder sonst was) und dann werden aus 1 ml aufeinmal 3 ml. Scheint mir zu mit zu kleinen Zeitbereichen zu arbeiten.


    Bubi:
    Exakt die gleiche Idee (auch mit der Einwegspritze) hatte ich auch! Das Problem was sich mir stellt ist aber, dass es wahrscheinlich keinen vernünftigen Schlauch gibt der dort reinpasst.
    Aber auch dafür gibt es eine Lösung. Man nimmt einfach einen dickeren Schlauch, dann eine dickere Spritze (z.B. 5ml), schaut wie hoch 1 ml in der 5ml Spritze ist (da der Schlauch ja auch Volumen abnimmt und schneidet die 5ml Spritze dementsprechend ab.
    Scheint mechanisch bisher die beste Möglichkeit zu sein. Morgen kommt eine neue Pumpe, ich werd versuchen das umzusetzen.


    Andreas: Wir können von Wasser oder wasserähnlichen Flüssigkeiten ausgehen. Also es handelt sich nicht um dickeflüssige Säfte o.ä.


    dreamshader: Danke für den Link. Die Pumpe hat meine bisherige Google-Arbeit direkt in den Schatten gestellt. Danke dir.


    Die Frage die ich zu den Pumpen habe ist:
    Was genau ist mit den Angaben z.B. 20-50ml/Minute genau gemeint? Das da variabel mal 20ml, mal 25ml mal 50ml durchlaufen, je nach dem wie heiß die Pumpe läuft oder dass man speziefisch z.B. bei einer 12V Pumpe, welche man auf 6V verwendet kontinuierlich und immer z.B. 25ml/Minute erreicht?
    Wenn dem so wäre und es sich nicht um Durchschnittswerte handelt, könnte man da ja schön die Pumpe bei 6V bei z.B. 20ml/MInute nur 3 Sekunden laufen lassen und 1ml rausholen.
    Ist nur wirklich fraglich, ob man das so stumpf runterrechnen kann und die Werte langfristig auch so bleiben und nicht nach 100 maligem Gebrauch aus dem 1ml aufeinmal 0,3ml werden.


    Ich werd auf jeden fall die Spritzenkonstruktion mir morgen anschauen. Bei der Pumpe bin ich noch am zweifeln, glaubt ihr, mit einer Pumpe die z.B. 20-60ml/Minute fördern kann man 1ml-genauigkeit langfristig erreichen?

    Hey,
    bei mir dreht sich momentan alles um Flüssigkeiten. Mein aktuelles Problem ist, dass ich eine Lösung ml genau mit einer anderen vermischen will.
    wie schafft man es nun z.B. 2ml von Becher A nach Becher B zu transportieren?
    Ultraschall-Distanzmessungen fallen aufgrund der Ungenauigkeit weg, auch "Flowmeter" hab ich bisher nicht in solchen Bereichen gesehen.


    Mir fallen spontan nur 2 Möglichkeiten ein:
    1. mechanisch irgendeine Appertaur mit mehreren Motoren basteln durch welche z.B. immer nur 1 ml übergeben wird.. wo mir der Aufbau abet jetzt schon Kopfschmerzen bereitet
    2. anhand der pumpenlaufzeit die durchflussmenge bestimmen. Also z.B. als Schlauchausgang eine Spritze verwenden..


    Zweiteres klingt ein wenig angenehmer, aber kann mam bei einer günstigen Wasserpumpe(<15E) mit durchgängig konstanter Drehlaufzeit/Drehmoment etc. auf daurer rechnen?
    Es sollen nicht nach 3 Monate mäßigem Betrieb aus 10 ml plötzlich 2ml werden..

    Andreas, danke für den sehr hilfreichen Post. Ich bestelle mir heute erstmal alle benötigten Materialien und wenn es Probleme gibt, werd ich hier nochmal posten.


    Witzeman, das ist ein sehr interessanter Ansatz! Danke dafür! Ich bestell einfach mal ein paar Magnete mit und werd das als erstes ausprobieren.

    Hey,
    ich möchte gerne eine Mischaperatur basteln.
    Hier mal sehr schemenhaft dargestellt:


    Hier der Aufbau:


    Das blaue Element entspricht dem Motor, dem Motor befindet sich ein Zahnrad aus Kunststoff (rot markiert) welches sich vertikal dreht.
    Dieses Zahnrad wir mit einem etwas größerem Zahnrad verbunden (gelb), welches sich horizontal bewegt.


    Das horizontal bewegende Zahnrad (geld) und der Motor (blau) sind auf einem Holzbrett(rosa) befestigt.
    In der Mitte vom Zahnrad ist eine Stange befestigt (grün), welche an den Ventilatorblättern(grün) verbunden ist.


    Es handelt sich um mein erstes Projekt mit Motoren etc. Bin gerade dabei mir die ganzen Einzelteile zu kaufen, habt ihr vielleicht irgendwelche Tipps oder erkennt ihr irgendwelche Probleme in dem Aufbau.
    Und die wichtigste Frage: Wie bastel ich mir am besten die Ventilatorenblätter?
    Würde mir die am liebsten selbst basteln, damit die die richtige Größe für meinen Behälter besitzen.
    Ich habe keine Säge um mir PVC o.ä. zusammen zu schneiden. Gibt es irgendeinen Stoff der z.B. erwärmt werden kann (Backofen), dann mit einem Cuttermesser geschnitten und danach getrocknet wieder relativ stabil ist?


    Achja, der sinn der Apparatur soll sein, dass Flüssigkeit im Inneren in Bewegung bleibt und sich kein Stoff am Boden des Behälters absetzt.


    Sehe gerade, dass polycarbonat bis 3mm mit einer guten Schere schneidbar sein soll. Werd wahrscheinlich diesen Stofffür die Sägeblätter nehmen. Jetzt ist die Frage wie ich die Polycarbonat Platten aneinanderklebe, ohne dass das ggf. irgendwelche Chemikalien vom Kleber an das Wasser übergeben werden.

    Dreamshader ich danke dir für die ausführliche Beschreibung, die hat mir auf jeden Fall einiges mehr erklärt.
    Die Frage die mir offen bleibt ist, wieso in diesem Bild http://www.xup.in/dl,53639557/bild.jpg/ der offene Schalter als Antenne fungiert. Für mich sieht das so aus, dass dort 3,3V kontinuierlich von VCC zum Input-Pin fließen und somit ein durchgängiges High-Signal empfangen wird.


    Ich werd das aber wie gesagt mal mit dem Pontimeter testen

    Ja, die Raspberry würd das wahrscheinlich nicht gut vertragen. Aber mir gings allgemein um den Widerstand, weil das ganze Pull-up-Widerstand heißt und überall erklärt wird, dass aufgrund des Widerstands der High-Pegel anliegt. Aber der Widerstand ist meines erachtens nur dafür da um den Kurzschluss zu verhindern.


    edit: Andreas, ja, ich werd das mal testen. Kanns aber leider immernoch nicht nachvollziehen, da kontinuirlich 3,3V an Input-Pin angeschlossen sind, was ja eindeutig als High definiert ist. Und die Signale die an der Antenne aufgefangen werden, werden doch auch aufgefangen wenn der Widerstand am VCC angeschlossen ist. Ich google aber jetzt auch mal nach dem einen Effekt der hier angesprochen wurde, vielleicht hilft das.

    Danke für eure ganzen Antworten. Sie haben mir auch ein paar andere Sachen gut erklärt, dennoch bin ich irgendwie im eigentlichen Problem immernoch nicht schlauer geworden.
    Hab euch mal ein kleines Bild ohne den Widerstand gezeichnet.
    http://www.xup.in/dl,53639557/bild.jpg/


    Am Button herrscht durch den offenen Schalter ein unendlicher Widerstand.
    Der komplette Strom von VCC fällt am Input-Pin ab.
    Wie kann hier ein Low-Signal zustande kommen?

    Hey, flyppo, danke für die schnelle Antwort.
    Aber kannst du mir das konkret an dem Beispiel https://cdn.sparkfun.com/asset…568b6ce395f1b40000000.jpg erklären?
    Wie fließt der Strom mit dem Widerstand und wie fließt der Strom ohne den Widerstand?
    Sieht für mich identisch aus. So wie ich das erkenne kommen ohne Widerstand bei geöffnetem Taster exakt 3,3V am Input-Pin an, und 3,3V bei GND bei geschlossenem Taster.
    Außer einen Kurzschluss zu verhindern sehe ich hier nicht wie der Widerstand in irgendeiner Weise was mit high/Low-Pegel o.ä. zu tun hat.