heinz_a
-
Gesamte Inhalte
21 -
Benutzer seit
-
Letzter Besuch
Posts erstellt von heinz_a
-
-
Hab's jetzt mit Isolator-Bricklet probiert. Lüfter, Pumpe, Motor kein Problem, beim Magnetventil hängt die Messung, wie oben beschrieben ....
-
-
Beim Ventil frierts wieder ein. Hab mal versucht die Spannungsspitzen festzuhalten, aber über 30 V konnte ich mit meinem Spielzeugosziloskop nicht feststellen
-
-
In der Zwischenzeit hat das Bricklet ohne weiteres Zutun zu rauchen angefangen, dachte schon es wäre tot. Es hat sich auch eine zeitlang sehr merkwürdig verhalten.
Jetzt habe ich das Magnetventil durch einen PC-Lüfter getauscht. Beim Anschließen der Stromversorgung ist zwar der Viewer abgerauscht, aber inzwischen verhält sich das Bricklet als wäre nichts gewesen. Egal, wo ich den Strom unterbreche, nichts friert mehr ein. -
Eine Überspannung könnte das Magnetventil beim Abschalten erzeugen. Auf diese Weise ist mir wahrscheinlich schon mal ein SSR abgeraucht.
Im Film lege ich erst Spannung am Eingang an, dann Verbraucher und trenne das wieder. Wenn ich den Ausgang trenne sieht man, wie sich die Tabs verabschieden
-
Noch präziser: Wenn ich den Strom auf der Ausgangsseite des VC trenne, verabschieden sich kurzzeitig die Tabs im BrickViewer (bis auf SetUp), anschließend tauchen diese wieder auf, mit dem Unterschied, daß beim VC die vertikalen Werte stehen bleiben, die Zeitachse läuft weiter. Ich versuch mal von dem Vorgang einen Film zu machen.
-
Rechts oben zwischen „Show Status“ und „More“ drücke ich „Reset“, dann geht's wieder
-
Timeouts: 0
-
Hallo Bastian,
hab's an einen anderen MasterBrick angeschlossen, gleiches Ergebnis, wie oben beschrieben.
vg
Heinz -
Der Akku liegt am Eingang des VC, am Ausgang in diesem Fall ein Magnetventil (ein Linearmotor hat den gleichen Effekt).
Wenn ich den Strom beim Akku unterbreche zeigt das OLED 0.00 W, beim Anschließen wieder korrekt, wie im Bild.
Aber wenn ich auf der Verbraucherseite unterbreche tut das VC nichts mehr.
Um die Schaltung wiederzubeleben muß ich im BrickViewer resetten, im BrickViewer funktionierts dann wieder.
Beim RED muß ich das Programm neu starten, daß die Leistung im OLED wieder korrekt angezeigt wird.
Das Merkwürdige ist, daß es egal ist, ob der Stapel von USB oder vom Akku versorgt wird. -
Wenn ich beim Voltage/Current Bricklet am Ausgang den Strom unterbreche, friert das Bricklet ein. Eingangsseitig passiert das nicht.
Würde hier das Isolator Bricklet helfen?
vg
Heinz -
Mit dem Quad Relay steuere ich ein Magnetventil 12 V (920 mA).
Nun hat es einen Kurzschluss gegeben (siehe Bild).
Könnte das eine Motte gewesen sein?
Ist das Quad Relay möglicherweise nicht geeignet für diese Aufgabe?
Nun muss eine zusätzliche Absicherung her, da „iqr.get_value()“ in diesem Fall kein brauchbares Ergebnis liefert.
-
Funktion zum Laden des Akkus
def akku_spannung():
spannung = servo.get_external_input_voltage()
if spannung < 6500: # 6,5 V
print("Laden")
#Relais ein # NiMH-Akku 7,2 V
relais.set_state(True, False)
elif spannung > 8500: #8,5 V
print("Stop Laden")
#Relais aus
relais.set_state(False,False )
return spannung
-
Solarmodul per Servo der Sonne nachführen.
Material: Servo-Brick, Servo, PV-Modul, Raspberry-Pi
Das Programm ist recht einfach gehalten. An Sonenauf-/untergang kann mach noch weiterentwickeln.
Die Zeiten im Programm sind für Tests reduziert. Das Poti ist zum manuellen Stellen, z.B. nach Sonnenuntergang ...
#!/usr/bin/env python
# -*- coding: utf-8 -*-
HOST = "localhost"
PORT = 4223
UID_servo = "6KveiL" # Change to your UID
UID_rotary = "y5A"
servo_num = 1
from tinkerforge.ip_connection import IPConnection
from tinkerforge.brick_servo import Servo
from tinkerforge.bricklet_rotary_poti import RotaryPoti
from threading import *
from datetime import time, datetime, timedelta
ipcon = IPConnection() # Create IP connection
servo = Servo(UID_servo, ipcon) # Create device object
poti = RotaryPoti(UID_rotary, ipcon)
Sonnenzeit = timedelta(hours=10)
Sonnenuntergang = time(17, 0, 0).hour
Trackzeit = 10 #1800 = halbe Stunde
def track():
jetzt = datetime.now().hour
Zeit_bis_Untergang = timedelta(hours=(Sonnenuntergang-jetzt))
print("Zeit: {0}".format(str(datetime.now())))
print("Sonnenuntergang: {0}".format(str(Sonnenuntergang)))
print("Verbleibende Zeit: {0} ".format(str(Zeit_bis_Untergang)) + " (Std.)")
global akt_position
servo.set_position(6, akt_position)
akt_position = akt_position + 900
t = Timer(Trackzeit, track)
t.start()
def cb_position(position): #Poti zum manuellen Positionieren
servo.set_position(6,60*position)
def cb_reached(servo_num, position): #Zielposition erreicht
global akt_position
print("Position: {0}".format(str(akt_position)))
if position == 9000:
akt_position = -9000
t = Timer(14, track) #14*3600 Min. bis Sonnenaufgang
if __name__ == "__main__":
ipcon.connect(HOST, PORT) # Connect to brickd
servo.register_callback(servo.CALLBACK_POSITION_REACHED, cb_reached)
servo.enable_position_reached_callback()
servo.set_velocity(6, 4000) #Geschwindigkeit niedrig
servo.set_acceleration(6,8000) #Beschleunigung gering
servo.set_position(6, 0)
servo.enable(6)
poti.set_position_callback_period(50)
poti.register_callback(poti.CALLBACK_POSITION, cb_position)
global akt_position
jetzt = datetime.now().hour
if jetzt > Sonnenuntergang: # Nacht
Stunden_bis_Start = timedelta(hours=24-jetzt+7)
print("Start in {0} Stunden".format(str(Stunden_bis_Start)))
t = Timer(Stunden_bis_Start.total_seconds()/3600, track)
t.start() # bei Sonnenaufgang starten
else:
print("jetzt: {0}".format(str(jetzt)))
# Startposition anfahren
akt_position = 9000-(Sonnenuntergang-jetzt)*1800 #Endposition - Stunden * Winkel/Std.
akt_position = -9000
t = Timer(3, track) #
t.start() # sofort starten
raw_input('Press key to exit\n') # Use input() in Python 3
ipcon.disconnect()
t.cancel()
-
Das war's. Ich habe den Brick so knapp verbaut, daß beide Taster gedrückt wurden ...
Besten Dank!
-
-
Die Konzentration der Säure ändert sich nicht so stark, dass man diese über den Behandlungszeitraum überwachen müßte. Sensoren gibt es, die dann mehrere hundert Euronen kosten. Wenn man es mit Tinkerforge angehen will, wären Impedanz und Dichte ein Ansatz.
Für den Imker macht die Überwachung des Gewichtes des Bienenstocks Sinn. Das kann man mit dem „Load Cell Bricklet“ realisieren.
-
Callback function ist besser ....
def cb_illuminance(illuminance):
global StartZeit
global StopZeit
if illuminance/10.0 > 50:# Lampe leuchtet
StartZeit = time.time()
if illuminance/10.0 < 20:# Lampe aus
StopZeit = time.time()
print('Brennerzeit = {0}'.format(str(round(StopZeit - StartZeit,0)))+' Sekunden')
# Tag, Uhrzeit, Brennerzeit in DB schreiben
-
Du brauchst noch einen Master-Brick, der mit den Bricklets verbunden wird. Dann kannst du mit dem Brick-Viewer deinen Aufbau testen. Software-Beispiele sind für jede Sprache in der Dokumentation zu finden.
Viel Spaß
Heinz
Voltage/Current Bricklet friert ein
in Hardware
Geschrieben
Die Polung beim Anschließen unbedingt beachten! Das Bricklet ist nicht verpolungssicher!
Die Spule erzeugt beim Abschalten einen Strom in gegensätzlicher Richtung und bringt das Bricklet aus dem Takt.
Varistor hilft nicht, die Diode hat das Problem behoben.