Überall Widerstände…

Das ist so ne Sache mit der Elektronik… Da zeichnet man eine einfache Schaltung mit ein paar Kabeln, Widerständen und was sonst noch dazugehört und dann funktioniert das überhaupt nicht, da die Physik das ein wenig anders sieht.

Ich habe da in meinem Projekt ein Heizelement, das ziemlich viel Energie benötigt. Ein 4.5Ω Widerstand, wie im letzten Artikel bereits beschrieben. Gleich daneben ist ein Temperaturfühler. Ein sogenanntes Thermoelement. Diese Dinger erzeugen ein ganz kleines bisschen Spannung wenn sie heiss werden durch den Seebeck-Effekt. Das werden bei mir so ca. 3-4mV sein.

Plan

Das ist also der Plan. Der Verbraucher mit den 4.5Ω in der Mitte, gleich daneben das Thermoelement, das ca. 3mV erzeugt. Daher habe ich es hier auch als Spannungsquelle eingetragen. Rechts ist die Steuerung, wo man diese 3mV ablesen kann. Im linken Teil fliesst viel Strom, daher diese gestrichelten Linien.

Seht ihr dieses kleine Stück Kabel, das sich der linke und der rechte Stromkreis teilen? Im Idealfall ist das ein Kabel mit 0Ω Widerstand. Aber das gibt es natürlich nicht. Es sind bei mir ca. 0.01Ω. Man könnte meinen, das spielt ja keine Rolle. Aber schauen wir die Schaltung mal an, mit diesem Widerstand.

Realität

Und was macht dieser 0.01Ω Widerstand nun aus? Hier die Eigenschaften von dem aus der Simulation.

Bildschirmfoto 2015-12-23 um 10.51.13

Beginnen wir unten. P=125mW, also rund 1/8 Watt Abwärme. Kein Problem für ein Kabel. Darüber sehen wir den eingestellten Widerstand von 0.01Ω, das ist auch in Ordnung. Aber jetzt kommt das Problem. Vd=35mV, wir haben also einen Spannungsverlust von 35mV. Ist ja auch klar. Wo ein Widerstand ist, da verlieren wir auch Spannung, sobald Strom fliesst. Die Formel dazu:

U = R * I (Spannung = Widerstand * Strom)
35mV = 0.01Ω * 3.5A

Die Zahlen sind alle korrekt, das passt schon so. Aber schaut auf den ersten beiden Bildern mal den Messwert im Steuerungs-Teil auf der rechten Seite an. Aus den 3mV Messwert wurden plötzlich 38.5mV. Dieser Wert ist für die Steuerung absolut unbrauchbar – na Toll…

Das Problem ist der Widerstand in dem kurzen Stück Kabel, das die beiden Stromkreise teilen. Leider habe ich keine Möglichkeit diese beiden Stromkreise vollständig zu trennen. Dieses Stück Kabel ist fest verbaut, zusammen mit dem Temperaturfühler und dem Heizelement. Das bleibt also wo es ist und mein Messwert unbrauchbar.

Aber es gibt eine Lösung. Der Verbraucher ist ja ein Heizelement, dem ist es egal, wenn er immer mal wieder ein- und ausgeschaltet wird. Und in der Elektronik geht meistens alles ganz schnell. Wieso also nicht immer mal wieder die Heizung ausschalten, dann die paar mV messen und sofort die Heizung wieder einschalten?

DS2_QuickPrint5

Hier seht ihr ein Bild von einem Oszilloskop. Oben ist in gelb die Spannung am Heizelement, unten das Ausgangssignal vom Op-Amp, der das 3mV Signal verstärkt. Weiter nach rechts sind die späteren Messwerte, das Bild zeigt also die Veränderung der Spannung über die Zeit.

Das Spannende an einem Oszilloskop ist, wie schnell es messen kann. Ganz oben steht 100.0us. Jede Kachel in der Grafik entspricht also 0.1ms Zeit. Nur gerade 1.4ms vergehen von ganz links auf dem Bild bis nach ganz rechts. Und das ist noch lange nicht die Limite von diesem Oszilloskop, das misst die Spannung 2 Milliarden Mal pro Sekunde und kann sich 56 Millionen Messwerte merken, die man dann in Ruhe anschauen kann.

Also, ziemlich weit links schalten wir die Heizung aus (gelbe Linie geht nach unten). Fast 0.3ms lang passiert da gar nichts, danach beginnt der verstärkte Messwert (blaue Linie) zu sinken. Rund 10 Felder nach dem Ausschalten der Heizung scheint die blaue Linie unten angekommen zu sein. 10 Felder, bei 100µs pro Feld sind ist rund 1ms. Also nach einer Millisekunde haben wir einen korrekten Messwert. Das Heizelement kühlt sich in dieser Zeit kaum ab, das Thermoelement gibt also einen guten Wert aus.

Und hier der Plan.

start
  Heizung ausschalten
  1ms warten
  Verstärkten Wert messen (dauert ca. 1ms)
  Heizung einschalten
  23ms warten
beginne von vorne

Ein Durchgang von diesem „Programm“ dauert ca. 25ms. Das läuft also rund 40x pro Sekunde durch. Rund 92% der Zeit läuft das Heizelement, 8% der Zeit sind wir am Messen. Falls das nicht reichen sollte, mache ich halt „nur“ 10 Durchgänge pro Sekunde , das gibt dann 98% der Zeit Heizen, 2% Messen.

Und wieder einen Schritt weiter. Auf ein Problem gestossen, Ursache gefunden, Umgehungslösung gebaut. Natürlich wird das Programm auch noch ein wenig mehr machen. Und zwar wird es jeweils nach dem Messen prüfen, ob bereits die richtige Temperatur erreicht wurde. Falls ja, braucht es die Heizung nicht mehr.

Bonusfrage: Wieso passiert 0.3ms gar nichts nach dem Ausschalten der Heizung? Wieso beginnt erst danach die der verstärkte Messwert zu sinken?

An die Lötkolben, fertig, LOOOOS!!!

Nicht nur Bernhard ist am Löten. Übrigens… viel Spass mit den 100 LEDs :-). Auch bei mir wird gelötet, aber ich verrate noch nicht, was es diesmal wird.

Mysteriöses Lötprojekt

Zutaten:

  • 1 geheimnisvolles Teil (in der Styroporverpackung)
  • 1 Op-Amp, konfiguriert auf 680-fache nicht-invertierende Verstärkung
  • 1 Power-MOSFET, ausgelegt für bis zu 12 A
  • 1 Kopfhörerbuchse
  • 1 dicker, fetter Modellbau-Akku mit dem man notfalls auch mal kurz das Auto überbrücken kann
  • Ne Handvoll Widerstände und Kondensatoren
  • Ein Arduino

Der Arduino ist eine Notlösung, später soll da ein STM32 rein und vielleicht sogar ein hübsches OLED-Display. Aber hey… erst mal KISS.

Heute konnte ich den Verstärker-Teil abschliessen und der funktioniert bereits ganz gut. Es scheint noch einen toten Bereich rund um den Nullpunkt zu geben, aber das ist für mein Projekt nicht wichtig.

Als nächstes folgt der MOSFET-Teil, wo ich mittels PWM (Arduino) den Strom vom Akku schalten will. Mein „Verbraucher“ hat einen Widerstand von gerade mal 4.5Ω, da werden also so ca. 4 A fliessen.

Hmm… die arme Kopfhörerbuchse. Die ist bestimmt nicht auf 4A ausgelegt, wenn man sich die Kabel so anschaut. Ein „kräftigeres“ Modell ist aber bereits bestellt und kommt hoffentlich noch vor Weihnachten an.

Updates werden folgen! Und wer weiss… vielleicht kann man mein Projekt am 26.12. bereits im Makerspace bewundern und sich daran die Finger verbrennen.

Der nächste Teil ist online!

5″ Touchscreen am Raspberry Pi

Vor einigen Tagen ist der 5″ Touchscreen angekommen, den ich auf Allexpress bestellt hatte. Im Gegensatz zu einigen anderen Modellen wird hier das Bild über HDMI übertragen, wovon ich mir eine bessere Grafikleistung erhoffe.

Leider ist mein aktueller Raspberry Pi 2 bereits als Druckserver für den 3D-Drucker im Einsatz und da muss halt ein älteres Modell herhalten für diesen Test. Und damit hat es sich mit der Grafikleistung auch bereits wieder erledigt…

Die Nutzung als Bildschirm ist dank dem HDMI ganz einfach und läuft sehr schnell. Ein wenig mehr Aufwand ist nötigt um den Touchscreen in Betrieb zu nehmen, daher hier eine Anleitung mit den wichtigsten Schritten.

Vorbereitungen

Wie gewohnt muss eine SD-Karte mit dem passenden Linux vorbereitet werden. Ich habe für diesen Test das aktuelle Raspbian Jessie genommen, andere Distributionen sollten aber auch funktionieren.

Sobald das Image geschrieben ist, kann gleich die „config.txt“ angepasst werden. Einige Einstellungen sind nötig um die korrekte Auflösung einzustellen und den Touchscreen zu aktivieren:

hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=2
hdmi_mode=87
hdmi_cvt 800 480 60 6 0 0 0
 
max_usb_current=1

# Touchscreen-Support
dtparam=spi=on
dtoverlay=ads7846,penirq=25,speed=10000,penirq_pull=2,xohms=150

Datei speichern, SD-Karte sauber auswerfen und ab in den RPi damit! Schon beim ersten Starten sollte das Bild auf dem 5″-Bildschirm perfekt sein. Stimmt damit was nicht, haben die Anpassungen in der config.txt nicht funktioniert. Auch der Touchscreen sollte bereits funktionieren, ist aber vermutlich sehr ungenau.

„raspi-config“ als root ausführen um die üblichen Anpassungen (Zeitzone, Tastatur-Layout und „Filesytem expansion“) zu machen. Danach „rpi-update“ um Kernel und Firmware auf den aktuellen Stand zu bringen. Wenn wir schon dabei sind, können wir auch gleich sämtliche Software aktualisieren mit „apt-get update && apt-get upgrade“. Ein Reboot wird all die neuen Einstellungen aktivieren und auch gleich den neuen Kernel booten.

Out-of-the-Box ist der Touchscreen kaum benutzbar, der muss erst kalibriert werden. Dazu gibt es ein nettes kleines Tool, das in einer Datei 5inch_HDMI_LCD.tar.gz zu finden ist. Dieses Archiv auf dem Raspberry auspacken und den darin enthaltenen Calibrator installieren mit:

dpkg -i xinput-calibrator_0.7.5-1_armhf.deb

Danach lässt sich „xinput_calibrator“ starten und wie bei den alten Palm-Geräten wird man durch die Kalibrierung geführt. Nach Abschluss müssen die ausgegebenen Werte nur noch in eine Konfigurationsdatei „/etc/X11/xorg.conf.d99-calibration.conf“ (Verzeichnis muss erst angelegt werden). Nach dem nächsten Neustart der grafischen Oberfläche (xorg) wird der Touchscreen gut funktionieren.

Fazit

Alles läuft einwandfrei, wenn auch doch sehr zäh. 512MB Arbeitsspeicher sind auch unter Linux nicht mehr Zeitgemäss, wenn man eine grafische Oberfläche und vielleicht sogar noch einen Browser nutzen will.

Der Bildschirm ist nicht schlecht und der Touchscreen funktioniert. Man darf aber nicht das selbe „Feeling“ erwarten wie bei einem modernen kapazitiven Touchscreen wie bei den meisten Smartphones. Es handelt sich hier um die wesentlich ältere „resistive“ Technik. Daher funktionieren auch die Plastik-Stifte, die es oft zu solchen Bildschirmen gibt.

Mit einem Raspberry Pi 2 Modell B würde das wohl wesentlich besser laufen. Doppelter Arbeitsspeicher und geschätzte 4-fache Rechenleistung machen viel aus. Zur Zeit läuft auf Kickstarter eine Kampagne für einen kleinen 64bit ARM-Rechner, den es auch mit 2GB Memory gibt. Der Sprung vom aktuellen 700MHz Single-Core 32bit Rechner mit 512MB Memory auf einen Quad-Core 1.2GHz 64bit Rechner mit 2GB Memory ist bestimmt gewaltig. Im März werde ich hoffentlich mehr wissen…

IMG_3055

Quellen

Nebst diversen kleinen Hints verstreut im Internet hat hier hauptsächlich blog.ask-a.ninja tolle Dienste geleistet.

Tick Tack – Lust zu löten?

Uhr-Bausatz

Am Wochenende habe ich mir eine kleine Uhr zusammengelötet. Nix spezielles, aber es ist ein wirklich gut gemachter Bausatz und das Resultat (oben) sieht nach etwas aus.

Hat jemand Lust ein wenig Löten zu üben und dann so ne Uhr mit nach Hause zu nehmen?

Der Bausatz ist ziemlich einfach, sind aber doch ein paar Teile. So in 45min sollte das aber zu schaffen sein. Falls der Wunsch besteht, kann ich auch gerne noch eine kleine Einführung ins Löten einplanen.

Da diese Bausätze eine längere Lieferzeit haben könnte ich mir einen Löt-Workshop an einem Samstag im Februar vorstellen. Falls jemand Interesse hat, bitte ein kurzes Mail an mich (thomas (at) makerspace-rheinfelden.ch).

el cheapo: Lötdampf-Absaugung

Beim Löten verbrennt das Flussmittel im Lötzinn und das gibt so einen stinkenden Rauch. Es ist nicht wirklich gesund, aber auch nicht supergiftig. Der Rauch scheint aber „Intelligent“ zu sein, sieht er doch immer auf direktem Weg in die eigene Nase…

Zum Glück habe ich aus dem alten PC-Basteltage noch einen grossen 12V-Lüfter rumliegen. Der wird jetzt mit zwei 3.7V Lipo-Zellen verbunden und schon dreht der wieder. So hinstellen, dass er die Luft von der Lötstelle nach hinten wegzieht und schon hat der Lötdamp einen neuen Weg.

Lötdampfabsaugung
Lötdampfabsaugung

Die Verkabelung ist so einfach, dass sich ein Schema nicht lohnt. Bei der ersten Lipo-Zelle ist „-“ mit dem schwarzen Kabel verbunden, bei der zweiten Lipo-Zelle das „+“ mit dem roten. Dann die beiden übriggebliebenen Anschlüssen an den Lipo-Zellen miteinander verbinden und schon hat man eine Serienschaltung und ca 7.4V. Nicht ideal, eine 9-Volt Batterie passt eigentlich besser, nur habe ich keine solche rumliegen.

Da ich natürlich auch keinen passenden Schalter habe, wird kurzerhand der rote Draht durchgeschnitten und grosszügig abisoliert (auf dem Foto rechts sichtbar). Soll der Lüfter drehen einfach die beiden Drahtenden verdrehen.

Eine 0-Franken-Lösung als Lötdampfabsaugung. Natürlich könnte man noch einen Aktivkohlefilter hinter dem Lüfter montieren, aber für das bisschen Löten ist das übertrieben.

Für die Version 2.0 habe ich schon diverse Ideen. Zum Beispiel ein Poti um die Drehzahl einzustellen, einen kleinen Fuss, damit der nicht so schnell umkippt und vermutlich auch nur einer einzelnen LiPo-Zelle. Vielleicht dann sogar mit ein/aus-Schalter 🙂

Nachtrag (30min später)

Auf der (leider erfolglosen) Suche nach einem kleinen Kippschalter  habe ich einen variablen Step-Up Converter gefunden, den ich auf eBay erbeutet hatte.  Variable Spannung bedeutet variable Drehzahl. Ausserdem war die 7.4V-Version ein bisschen schwach. Also 30min nach Version 1.0 bereits das 1.5 gebaut. Mangels Schalter ist das kleine Karton-Stückchen im Batteriehalter mein Ein/Aus-Schalter. Der Step-Up Converter nimmt die 7.4V und macht daraus 12V und schon dreht der Lüfter viel schneller. Ein bisschen Heissleim später und alles ist auf einer Platte verklebt, damit der Lüfter auch nicht mehr ständig umfällt. Auch habe ich die Batterien gezügelt, der Schwerpunkt war einfach zu hoch.

Version 1.5
Version 1.5

Platinen selber herstellen [Teil 3] – UV-Belichtungs-Box 1.0 fertig

Trotz intensivsten, tagelangen Bemühungen von Seiten Cablecom bin ich noch immer Online. Ein Hoch auf das Swisscom LTE-Netzwerk…

Hier geht es aber nicht um Internet-Provider sondern um die UV-Belichtungsbox.  Die ist inzwischen fertig! Noch nicht mit all den hübschen Features wie im letzten Teil angekündigt. Der eingebaute Timer und die LCD-Anzeige fehlen, aber die Box funktioniert.

„Platinen selber herstellen [Teil 3] – UV-Belichtungs-Box 1.0 fertig“ weiterlesen

Multitouch Table

Hallo

Das Projekt wollte ich schon vor einigen Jahren umsetzen, aber wie es halt manchmal so ist, bleibt etwas liegen. Vor ein paar Wochen habe ich dann das Projekt wieder hervorgeholt und mit der Fleiss-Löt-Arbeit begonnen.

FTIR-example

 

„Multitouch Table“ weiterlesen