MeisterKühler

Elektronikprojekte auf Arduino Plattform

Willkommen in der Mk-Community Foren Hardware Bastelecke Elektronikprojekte auf Arduino Plattform

Ansicht von 428 Antwort-Themen
  • Autor
    Beiträge
    • #499351
      spokekiller
      Teilnehmer

      Hallo,immer wieder bin ich hier im MK-Forum mal auf kleinere Projekte gestoßen, die zu Microcontrollern der ATMega Serie geführt haben.Bestes Beispiel ist das wunderschöne Plexi-Case von “Hering Home Projects” (user overclocked aka F. Hering) mit LC Display Controller und einer Art “Ambilight” je nach Musik. Nicht zu reden von keiangs legendärer Regelung fur Pumpen und Kühler.MCs sind nun aber beileibe nicht jedermanns Sache und nicht jeder will so richtig tief einsteigen. Wie ich dann kürzlich auf Linuxundich.de wieder einen Artikel in die entsprechende Richtung sah, wurde ich dort auf “Arduino” aufmerksam. Das ist ein Open-Source Projekt, dass es bereits einige Jahre gibt und dass Hardware und Software als CC Lizenz freigibt.Der große Vorteil dabei ist der: es gibt eine recht stabile, leicht nachzubauende oder zu erwerbende Hardware Plattform und eine recht gut erlernbare “Hochsprache”, mit der man ein(en) Arduino programmieren kann.Man kommt also sehr schnell zum Ziel. Dafür investiert man noch dazu nicht allzuviel für einen ‘Schnupperkurs’.Natürlich gibt es genug Leute, die zum Teil berechtigte Kritik an Arduino üben. Nichtsdestotrotz hat eben nicht jeder soviel Zeit eine MC Programmierung zu erlernen und sich das womöglich später wenig gebrauchte Tiefenwissen anzueignen. Noch dazu braucht es das ja auch manchmal gar nicht für die Umsetzung des eigenen Projektes oder nur dem Testen einer Idee.Alles wesentliche über Arduino findet sich auf “Arduino.cc”. Leider, wie bei Open-Source so oft, ist einiges an Wichtigem zu gut versteckt oder verstreut. Geduld ist wichtig und die Bereitschaft und Offenheit, vorhandenes auch kritisch zu hinterfragen. Die dort vorgestellten Codes enthalten nicht selten grobe Fehler.Ziel dieser Thread-Eröffnung ist, meine eigenen ersten Schritte zu dokumentieren und anderen Anregung zu geben, diese in ihre Mess/Steuer/Regel/Beleuchtungs -Projekte einzubinden. Nicht alles, was ich hier schreiben werde ist selbst von mir “erfunden”, teils trage ich nur Bestehendes nach erfolgreichem Test oder Adaption zusammen. Wie auch immer, was ich hier vorstelle habe ich selbst getestet und weiß, dass es [zumindest bei mir] funktioniert hat.Warum im MK Forum, und nicht in einem Blog…? Naja, ich möchte gerne in dieser Gemeinschaft schreiben, weil ich denke die Arduino oder MC Plattformen eignen sich hervorragend für Modder und Wasserkühler, um ihren Projekten noch etwas hinzuzufügen. Außerdem kann ich hier im MK-F besser mit der zu erwartenden Kritik umgehen.Demnächst kommen die ersten Bilder, die ersten Schaltungen. Als erstes stelle ich eine OneWire Temperaturmessung für mehrere Sensoren vor und erkläre daran auch einige Basics. Danach kommen einfache LC Display Ausgaben (mir fehlen noch massenhaft Teile, die sollten bis in einer Woche da sein). Außerdem geplant ein Aufbau zum Regeln von induktiven Lasten bis 60V/3A. In einem weiteren Schritt möchte ich das zusammenführen.Außerdem auf der Roadmap so ziemlich alles, was mir in die Quere kommt. Meine Mittel zum Basteln sind (momentan) ein wenig beschränkt. :roll:Abschließend: wer sich gut mit Elektronik auskennt, der sollte bitte hier mit konstruktiver Kritik mitwirken. Ich bin beileibe kein guter Elektroniker und ich eigne mir eine Menge alten Wissens von vor 20 Jahren wieder neu an. Wenn also Kritik, dann solche, die mich (und andere) zur richtigen Lösung führt.Ich hoffe, dass das gut ankommen wird 😀Nachtrag: Inhaltsverzeichnis[spoiler]Sprungpunkte direkt zu den Tuts#1 — Temperaturen messen mit dem DS18B20http://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform.html#post461922#2 — Temperaturen messen und einfache Anzeigehttp://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform.html#post462116#3 — Einfache Ausgaben auf einem LCDhttp://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform.html#post462840#4 — Temperaturen messen und anzeigen auf dem LCDhttp://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform.html#post462865#5 — Digitalausgänge “verlängern” mit Schieberegisternhttp://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform.html#post464679#6 — induktive Lasten ansteuern / schalten (mit Tip-120) Nachträge zur Freilaufdiode beachten!http://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform.html#post467573#7 — Einsatz eines 16 Kanal Muxers (Output Demo)http://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform.html#post467890#8 — Wahlschalter (wichtige Grundlagen)http://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform-2.html#post472365#9 — Arduino spricht RS232http://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform-2.html#post472601Infos zum MosFet berechnen (von Hallo1001)http://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform-2.html#post472895http://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform-3.html#post472951Programmer-Tutorial von Hallo1001http://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform-3.html#post472969#10 – wir fummeln mit I2C herumhttp://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform-4.html#post486050#11 – Interrupts mal ganz einfachhttp://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform-4.html#post486245#12 – “smarter Fancontroller”http://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform-post493422.html#13 – Mit dem Arduino ins Netz… der Arduino Uno und der Ethernet-Shieldhttp://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform-6.html#post502515#14.1 – Schalten über Ethernethttp://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform-6.html#post502516#14.2 – Vorstellung ETH Shield und Wake-On-Lan#15 – Voraussichtlich zur Ansteuerung von 7-Segment-Anzeigen#16 – Voraussichtlich zum Thema einfache serielle Datenkommunikation zwischen zwei Arduino an einem Beispiel#17 – Eventuell zum Thema “MyDuino”, oder wie man seine Projekte auf eine Lochrasterplatine bringt ohne dabei sein Prototyping Board zu opfern[/spoiler]

    • #895082
      spokekiller
      Teilnehmer

      [SIZE=”3″]Erste Schritte oder Ardu-Waaas?[/SIZE]

      Um ganz grundsätzliche Infos über Arduino zu bekommen schaut bitte auf deren offizielle Seite. Es gibt viele Arduinos, von denen ich mich für einen Arduino Uno entschieden habe. Er trägt glücklicherweise die Sockel-Version des ATMega 328P. Vorteil ist, dass man den Arduino dann auch als Programmer nutzen kann (später mehr) und den Chip bei Tod leicht tauschen kann (auch dazu später mehr).

      http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture1985-arduino-uno-normal.jpg
      Arduino Uno R2 – Quelle: selbst

      Die Details dazu finden sich ebenso auf arduino.cc in der Kategorie Hardware.

      Wichtig:
      Die Aus- und Eingänge des ATMega MC sind direkt auf die Pfostenbuchsen verbunden und sind praktisch ungeschützt. Wer hier zuviel Strom zieht oder zu viel draufgibt, der tötet schnell und effizient. 😥
      Bitte unbedingt das ohmsche Gesetz (R=U/I) nicht aus den Augen verlieren. Als Richtwert nutze ich für I maximal 40mA auf den Ausgängen.

      Beschaltung
      http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture1986-arduino-uno-beschriftung-einiger-wesentlicher-komponenten.jpg

      Der Arduino kann auf drei Arten mit Strom versorgt werden: Über die USB Buchse (5V/500mA max) oder die Hohlbuchse (dann mindestens 7V und max 18-20V).
      Es macht wenig Sinn, mehr als ca 9V auf die Hohlbuchse zu geben, da der Überschuß über 5V vom Spannungsregler auf dem Board “verbrannt” wird. Der Drop beträgt wohl ca 2V, deshalb mindestens 7V eingeben. Schade, aber an der Hohlbuchse sind 5V Netzteilchen fehl am Platz.
      Wer dennoch mit deutlich mehr als 12V arbeitet, muß damit rechnen, das entsprechende Abwärme entsteht, was bei Einbauten in kleine Gehäuse wiederum interessant wird.
      Als dritte Möglichkeit kann man die linke Pfostenbuchse unten im Bild nutzen. Davon sind die beiden rechten für eine Versorgung mit +5V vorgesehen.

      Die USB Buchse dient nicht nur zur Stromversorgung, sondern auch zur Übermittlung des Codes, der in Form sogen. “Sketches” in der IDE entworfen wird. Danach kann der Arduino autark laufen und über einen der drei obigen Wege seinen “Saft” bekommen. Soweit ich weiß erkennt er dabei, ob Spannung an der Hohlbuchse oder USB anliegt und nimmt dann den USB Port…
      Es gibt Beschreibungen im Web, laut denen kleinere Projekte mit LiPoly oder NimH Akkus nahezu ewig laufen.

      Interessant dürfte das Thema Spannungsversorgung werden, wenn es dann zur Ansteuerung von Lüftern oder Motoren kommt. Die stemmt der Arduino dann natürlich nicht alleine. Üblicherweise wird man da dann auf eine 12V Quelle o.ä. ausweichen, die beide Teile dann versorgt. Wie gesagt sind die Ausgänge direkt mit dem ATMega beschaltet und taugen nur als “Trigger” oder eben als PWM Ausgang.

      Die Buchsen im obigen Bild dienen auch zur Aufnahme von Huckepack-Platinen, sogen. “Shields”. Ich selbst habe mir gleich noch einen Ethernet Shield besorgt und konnte via Netz dann einige LEDs schalten. Praktisch meine ersten kleineren Erfolge. 😀

      Die Anzahl Ausgänge dürfte auf den ersten Blick kaum jemand vom Hocker reissen. Aber das ist natürlich eine Frage der Herangehensweise. Es gibt schöne Möglichkeiten die Ein/Ausgänge zu Multiplexen oder mittels Schieberegistern (Shifting ICs) große LED Matritzen anzusteuern. Sobald meine Bauteile da sind und freie Zeit ist kommt das hier natürlich.

    • #895096
      spokekiller
      Teilnehmer

      [SIZE=”3″]Software[/SIZE]Auch hier der Verweis auf Arduino.cc. Vorweggenommen wird so ziemlich einiges unterstützt. Ich nutze die Arduino IDE unter Ubuntu 10.04.2 mit einem Sun Java. Die Einrichtung ist easy. Java installieren (3rd party repos), von arduino.cc die IDE ausgeladen und ausgepackt, fertig. :d:Unter Linux interessant: für den Nutzer wird im Home ein “sketchbook” angelegt, welches ich mir sogleich mittels symlink auf meine Dropbox umgebogen habe. Nach Anpassung der anderen Rechner ist so der Code auf jedem meiner Rechner aktuell und verfügbar. :banana:Eine kleine “Warnung” zu den fertigen sketches in den “Examples”. Manche sind buggy und beim schnellen Austesten kommt dann auch schnell der Frust, weil nichts tut. Einfach nochmal den Aufbau checken, und den Code zumindest überfliegen. Gelegentlich wird dann im Code ein anderer Pin angesteurt als in der Kommentarzeile steht. :devil:Unter Linux wird bei mir ein tty-device eingerichtet, unter dem man den Arduino als serielles Gerät ansprechen kann. Die IDE bietet einen “seriellen Kanal”, über den man Ausgaben sehen kann, wenn man bspw noch kein LCD angeschlossen hat (oder generell nur debugging machen möchte). Das ist in der Ver 0022 das Icon ganz rechts.Probleme hatte ich mit USB3, an einem Lenovo W520. Da hat sich der Arduino gerne mal vom Controller oder Kernel rauskicken lassen. USB3 unter Ubuntu ist ja generell eine Zumutung und für die paar kB maximale Sketch-Größe brauchts nicht mal USB1.1. :p[SIZE=”3″]Tutorial #1 – Temperaturen messen mit dem DS18B20(+)[/SIZE]Dazu brauchen wir:

      • zwei Sensoren DS18B20 (drei sind noch besser, siehe Erweiterung)
      • den Arduino
      • Widerstand größer gleich 4,7 kOhm
      • USB Kabel und unseren Rechner
      • optional ein Breadboard (Laborsteckbrett)
      • optional ein paar Käbelchen

      Warum den DS18B20? Naja, ich mag keine NTCs und ich bin kein Freund vom langwierigen Umrechnen der individuellen Kennlinien. Für knapp 2€ bekommt man den DS18, der seine Daten nicht nur digital ausgibt, sondern Geschwister der gleichen Bauart am gleichen seriellen Bus erkennt und es ermöglicht, dass man über einen Eingang viele viele DS18 mehr oder minder gleichzeitig auslesen kann.Daneben ist er nur unwesentlich größer, in einem TO-92 Gehäuse verfügbar, hat eine Genauigkeit von 0.5°C und erlaubt den Betrieb im “vampiric power mode”, bei dem sich die Zahl der zu führenden Kabel auf 2 reduziert. http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture1987-digitaler-temperatursensor-dallas-ds18b20-to-92-gehaeuse.jpgSchaltbild für einen DS18B20:http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture1991-ds18b20-main-mode-non-parasitic-3-leitungen.pngPin 1 an Arduino GND (Leiste der Digitaleingänge im obigen Bild oben links)Pin 2 an Arduino Digitaleingang #2Pin 3 an Arduino 5V (im Bild unten links, Mitte)Dazu einen 4,7k Widerstand zwischen Pin2 und Pin3 des DS18.Zuvor noch schnell die Beschaltung im “vampiric/parasitic mode”:http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture1993-ds18b20-parasite-mode-2-leitungen-pullup.pngHier ein Bild eines entsprechenden Versuchsaufbaus:http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture1989-ds18b20-aufbau-single-en-detail.jpgDen besonders Aufmerksamen wird sicherlich auffallen, dass mein Widerstand deutlich größer ist. Das ist egal, wie ich herausfinden konnte. Ich hatte schlicht keinen kleineren, und so lernte ich nochmal, was ein Pull-Up widerstand ist :)Die Kabel laufen so: rot auf +5V, schwarz auf GND, gelb auf Digitalpin (#3, bitte ggf im Code die ersten paar Zeilen beachten)Und die Ausgabe über den SerialMonitor in der IDE:[CODE]Dallas Temperature IC Control Library DemoLocating devices…Found 1 devices.Parasite power is: ONFound device 0 with address: 2830481E030000EDSetting resolution to 9Resolution actually set to: 9Requesting temperatures…DONETemperature for device: 0Temp C: 24.50 Temp F: 76.10Requesting temperatures…DONETemperature for device: 0Temp C: 24.50 Temp F: 76.10Requesting temperatures…DONETemperature for device: 0Temp C: 24.50 Temp F: 76.10Requesting temperatures…DONETemperature for device: 0Temp C: 24.50 Temp F: 76.10[/CODE]Der Code ist im Anhang verfügbar und ist offen im Sinne CC 3.0. Ich glaube er basiert ohnehin auf der Demo die Dallas für den Chip mitgibt oder der OneWire Library. Ehrlich gesagt bin ich über soviele Sketches gestolpert, dass ich nicht mehr genau weiss woher exakt DIESER Sketch kam.So, nächster Schritt und jetzt wird es eigentlich erst interessant. Nehmen wir doch einfach einen zweiten DS18B20 und schalten den parallel zum ersten. Dann sieht das so aus:http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture1990-ds18b20-betrieb-parallelem-ds18b20-einzigen-digitaleingang.jpgTheoretisch hätte ich meine linken grünen Drahtbrücken anders setzen müssen. Da ich aber keine so kurzen hatte und noch nicht rumlöten wollte hab ich das so gelöst, was elektrisch gesehen identisch ist. Nur kommt der “OneWire” Gedanke damit nicht sofort rüber… [-(Und der Code (den man nicht mal neu flashen muss) zeigt dann:[CODE]Dallas Temperature IC Control Library DemoLocating devices…Found 2 devices.Parasite power is: ONFound device 0 with address: 2850341E03000062Setting resolution to 9Resolution actually set to: 9Found device 1 with address: 2830481E030000EDSetting resolution to 9Resolution actually set to: 9Requesting temperatures…DONETemperature for device: 0Temp C: 25.00 Temp F: 77.00Temperature for device: 1Temp C: 24.50 Temp F: 76.10Requesting temperatures…DONETemperature for device: 0Temp C: 25.00 Temp F: 77.00Temperature for device: 1[/CODE]So kann man also relativ einfach an einem “Stern” eine Vielzahl an Sensoren nach diesem Muster oben an einem Kanal individuell abfragen:http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture1992-ds18b20-parasite-mode-schaltbild.pngWenn mein LCD da ist wird der Code umgebaut und wir lesen die Zustände am LCD aus und verändern in einem zweiten Schritt die Ausgabe per Knopfdruck an einem der Digitaleingänge.**Edit**Die Kabel zu den Sensoren können relativ lang sein. Im schlimmsten Fall kommt beim Arduino ein so stark gedämpftes oder verzerrtes Signal an, dass er es nicht mehr sauber lesen kann und dann erhält man bspw -127°C. Einzelne Leute berichten von Kabellängen über 10-20m ohne Probleme (normales gedrehtes Telefonkabel).Bei Verdrahtung auf die Ferne würde man den Widerstand beim Arduino halten und zwei Adern zu einem sogen. Breakout Board (Zwischenplatine) führen. Von dort wiederum kann man dann seinen Stern an Sensoren legen. Das Datenblatt ist u.a. bei Reichelt oder über unseren Big Brotha Google erhältlich.**Edit #2**Eine info zu den Adressen der DS18. Die chips sind in der Lage ein sogenanntes MicroLan(TM) aufzuspannen und haben daher 64bittige Adressen, die durch diese große Größe praktisch unique sind. Die einmal festgestellte Adresse eines DS18 läßt sich also später auch zum gezielten Unterscheiden und/oder Ansprechen nutzen.

    • #895137
      ThaRippa
      Verwalter

      Will da auch demnächst einsteigen. Weitermachen! Toll, dass das mal einer so detailliert beschreibt.

    • #895158
      spokekiller
      Teilnehmer

      ThaRippa;461967 said:
      Will da auch demnächst einsteigen. Weitermachen! Toll, dass das mal einer so detailliert beschreibt.

      Vielen Dank für den Zuspruch, den kann ich brauchen. Soll ja kein Monolog werden. Witzigerweise war es auch die Erwähnung Deinerseits beim Monolith-Projekt, die mich dazu anregt hier eine Art Arduino Tagebuch zu schreiben.

      Noch eine technische Ergänzung: ich habe mittlerweile natürlcih auch mal danach geschaut, ob es gute Anleitungen für den Bau eines Arduino gibt, der billiger kommt. Nicht jeder möchte das oben gezeigte Board irgendwo fest verbauen. Dafür ist es mE zu schade.
      Außerdem sind Teile der Komponenten dann meist unnötig (was etwa die linken 20-30% des Boards ausmachen dürfte.
      Sobald ich ein wenig fortgeschrittener bin werde ich auch das zeigen.

      Und noch ein Aspekt für Wasserkühler… neben der Wassertemperatur oder die anderer Komponenten können natürlich auch digitale oder analoge Durchflussmesser ausgewertet werden. \D/
      Ich muss dazu allerdings sagen, dass ich selbst keine WK habe und dahingehend recht wenig selber testen kann. #-o

    • #895185
      ThaRippa
      Verwalter

      Naja aber genau sowas will ich ja. Ich habe noch ein 4-Zeilen-VFD von Noritake, das soll da dran. Und dann soll mir der Arduino da die WaKü-Daten anzeigen. Dazu musser dann noch alle 10 Minuten meinen digitalen Schlüsselanhänger resetten, weil der nicht direkt hackbar ist…ach ja und ich möchte gern nen induktiven Taster für den Auswurf meines optischen LW. Der könnte den PC, so der grad aus ist, dann auch starten. Bissel Logik, drei Kabel, und die Doppelbelegung ist kein Problem.Das mit dem Selberbauen ist bei einem ePay-Preis von unter 30€ aber echt…nunja. Ich bin ja sparwütig…aber wenn man da nicht mit der Hälfte hin käm, würd ich mir da eher die Mühe sparen. Vielleicht später, aber gerade als Anfänger will amn sicher sein, dass man selber, und nicht etwa die Hardware Schuld ist 😉

    • #895188
      spokekiller
      Teilnehmer

      Also der Board-Nachbau ist nicht unbedingt wegen des Sparwillens. Es ist wohl eher der Drang dazu, das selber zu können und auch ein wenig Spieltrieb.
      Mein Uno hat bei einem deutschen Versender keine 28€ gekostet, wenn ich mich recht erinnere. Das ist für große Projekte nicht zu schade, das ist schon richtig.

      Meine Einschränkung bei der WaKü war dahingehend gemeint, dass ich es nicht selber testen kann — wenn sich aber Experimentierfreudige hier einfinden, dann bin ich zu fast jedem Blödsinn bereit.
      Nur Arduino-gesteuerte Paintballwaffen und Pseudo-Robbis kann ich nimmer sehen. 🙁

      :d:

    • #895191
      spokekiller
      Teilnehmer

      psahgks;462021 said:
      Wow, das sieht nach einem tollen Thread aus. :d::d:

      Ich denke er ist es wert, dass du die Bilder in ein Foreneigenes Album hochlaedsts, dann muss man sich nicht immer die Werbung des Fremdhosters antun und die Bilder bleiben auf jeden Fall solange bestehen wie das Forum auch. 😉

      Hi, Danke für die Vorschußlorbeeren. Ich will mich bemühen den Erwartungen gerecht zu werden. 😯

      Die Bilder kann ich bei der nächsten, größeren Überarbeitung umhängen. Die Werbung sehe ich dank Adblock+ nicht, daher ist es mir nicht aufgefallen… [meine RS-Prüfung sollte ich mal aktivieren ist mir aufgefallen :D]

      Aber wenn das so für Dich okay ist, dann werde ich ein internes Album nutzen. Gibts da Größenbeschränkungen?!? Ich spiel mal damit.

      Cheers, Micha

    • #895189
      psahgks
      Teilnehmer

      Wow, das sieht nach einem tollen Thread aus. :d::d:

      Ich denke er ist es wert, dass du die Bilder in ein Foreneigenes Album hochlaedsts, dann muss man sich nicht immer die Werbung des Fremdhosters antun und die Bilder bleiben auf jeden Fall solange bestehen wie das Forum auch. 😉

    • #895198
      psahgks
      Teilnehmer

      Meine Erwartungen sind nicht sonderlich hoch, ich kenne mich mit dieser Materie auch nicht besonders aus.
      Der Thread macht aber einen aufgeraeumten Eindruck und die Beschreibungen scheinen auch fuer mich Laie leicht nachzuvollziehen und verstaendlich zu sein. Dadurch ist er schonmal viel Wert, vor allem fuer Leute, die z.B. ueber Google in ein paar Jahren auf ihn stoßen. Wenn dann die Bilder nichtmehr zu sehen sind waere es doch schade drum.

      Die hochzuladenden Bilder werden vom System auf 600 x 800 Pixel verkleinert, sofern sie es nicht schon sind.

      Dadurch kannst du sie dann auch direkt in das Posting einbinden. 😉

      So, jetzt aber BTT. ^ ^

    • #895281
      spokekiller
      Teilnehmer

      [SIZE=”3″]Tutorial #2 — Temperaturen messen und einfache Anzeige[/SIZE]So, jetzt wäre es natürlich gähnend langweilig immer nur am PC sehen zu können was da an Temperaturen gemessen wird. In Ermangelung eines LCDs (kommt bald :roll:) und dem gleichzeitigen Ausbruchs des Programmier-Spieltriebs dachte ich mir: “Alter Sack, hast doch ne Menge LEDs übrig, ein paar Widerständle sind auch noch da. Mach eben was einfaches!”Gesagt – getan. Die IDE angeworfen und den folgenden Code reingehämmert. Nicht schön, aber er tut was er soll.Zunächst habe ich den doch recht komplexen Temperaturcode aus der Dallas Demo gestrichen und eigentlich nur eine Funktion aus der Dallas Lib genutzt. Das macht den Code als Beispiel vieeeel ansehnlicher.Darüberhinaus habe ich Euch jetzt ein Beispiel mitgebracht, dass den eingelesenen Wert in Form eines – na sagen wir mal LED Grafen – anzeigt.Das macht er zwar nicht besonders schön, aber es geht mir ja auch drum zu zeigen, wie die Ausgabe an den Digitalpins im 0/1 Modus (also ohne PWM) funktioniert.** edit: okay, zugegeben, PWM ist ja an sich nix anderes. Was ich meinte war eben schlichtes Ein und Ausschalten, ohne pulsen **Also, nicht zu genau hinschauen, der Code ist wirklich ein wenig gräßlich.Code:[SPOILER][CODE]#include #include // Code assembled for http://www.meisterkuehler.de// written for educational purposes FOR USE WITH A SINGLE SENSOR ONLY// use as you wish// no liability, no fees, no warranties, use at own risk// Data wire of DS18xxx is plugged into pin 2 on the Arduino#define ONE_WIRE_BUS 2// Setup a oneWire instance to communicate with any OneWire devices not just Maxim/Dallas temperature ICsOneWire oneWire(ONE_WIRE_BUS);// Pass our oneWire reference to Dallas Temperature. DallasTemperature sensors(&oneWire);//store temperature for a single runint tmpTemp;void setup(void){ // start serial port (for output) Serial.begin(9600); Serial.println(“Dallas Temperature IC Control Library Demo”); // Start up the DallasTemperature library sensors.begin(); // LED output setup // initialize the digital pin as an output. // set pins 3-7 to output for attached LED pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); }void loop(void){ /* uncomment this for a LED test cylce in case something were wrong // run a testcycle, fire up each LED and then put them out again // so you can see if all is connected properly Serial.println(“Starting LED test cycle”); for(int i=3;i<9; i++) { digitalWrite(i, HIGH); // set the LED on delay(500); // wait for a second } delay(2000); for(int i=8;i>2; i–) { digitalWrite(i, LOW); // set the LED on delay(500); // wait for a second } Serial.println(“Endinging LED test cycle”); delay(3000); */ // call sensors.requestTemperatures() to issue a global temperature // request to all devices on the bus Serial.print(“Requesting temperatures…”); sensors.requestTemperatures(); // Send the command to get temperatures Serial.println(“DONE”); // we KNOW we only want to check the first sensor on the MicroLan Bus Serial.print(“Temperature for Device is: “); Serial.println(sensors.getTempCByIndex(0)); // Why “byIndex”? You can have more than one IC on the same bus. 0 refers to the first IC on the wire // as we do only have 6 LEDs we will show the temps between 20-30 degrees C in 2C steps // i.e. 1 LED lit = 20, 2->22, 3->24, 4->26, 5->28, 6->30 tmpTemp = sensors.getTempCByIndex(0); // remember .. per default all LED pins are LOW now, meaning off // i hate this quick and dirty coding, but switch case did not help me and I just wanted a result fast if (tmpTemp >= 30) { for(int i=3;i<9; i++) { digitalWrite(i, HIGH); // set the LED on } } else if (tmpTemp >= 28) { for(int i=3;i<8; i++) { digitalWrite(i, HIGH); // set the LED on } } else if (tmpTemp >= 26) { for(int i=3;i<7; i++) { digitalWrite(i, HIGH); // set the LED on } } else if (tmpTemp >= 24) { for(int i=3;i<6; i++) { digitalWrite(i, HIGH); // set the LED on } } else if (tmpTemp >= 22) { for(int i=3;i<5; i++) { digitalWrite(i, HIGH); // set the LED on } } else if (tmpTemp >= 20) { digitalWrite(3, HIGH); // set the LED on } // wait a little before next update delay (500); // set all to low before we start over for(int i=8;i>2; i–) { digitalWrite(i, LOW); // set the LEDs off } }[/CODE][/SPOILER]Aufbau:Im Wesentlichen besteht er aus dem obigen Tutorial. Dazu gesellen sich auf der linken Seite eine Batterie an Drahtbrücken und Vorwiderständen (was gerade so da war, 200 Ohm — eigentlich bissl zu wenig) und natürlich eine handvoll+1 LEDs.Am Vorwiderstand fällt die überschüssige Spannung ab (*hust*) bzw wird der Strom begrenzt. Kurzfristig geht es auch ohne, aber man soll solche Dinge nicht einreissen lassen und es geht ja nicht nur um die LEDs und deren Gesundheit, sondern vor allem um die Ausgänge des Arduino. Vorsicht ist besser als dumm aus der Wäsche gucken.VerkabelungDie LEDs hängen mit ihrer Kathode auf der im Bild unten zu sehenden GND/- Schiene und diese am Arduino GND wie oben auch. Pluspol analog.Die Vorwiderstände hängen an der Anode und sind wiederum über den Wust an bunten Kabeln mit den Digitalausgängen 3-8 verbunden. Wir erinnern uns, an Pin 2 hängt der Datenkanal des DS18.Wie gehts?Naja, wie gesagt ist das sehr einfach gehalten. Die Temperatur wird gemessen und an der seriellen Schnittstelle ausgegeben. Gleichzeitig werden die Temperaturen in 2er Schritten ab 20 °C abgebildet, und zwar so:1 LED an -> unter 22 °C2 LED an -> unter 24, aber größer-gleich 223 LED an -> unter 26, aber größer-gleich 24….AblaufZunächst werden die Digi Ausgänge auf Output programmiert, und die Library eingebunden. Da ich keine eigenen Funktionen nutze (noch nicht), muss ich alles im “Body” machen, also in “void loop”.Dazu wird die Temp ausgelesen, die Umsetzung auf LED gemacht und dann alles wieder auf Null gesetzt. Würde ich den letzten Schritt nicht machen, würde sich meine IF-Schleife ziemlich aufblähen oder die Anzeige bei Temperaturabfall immer noch die höherwertigen LEDs leuchten lassen.Der Nachteil ist, dass man einen delay einfügen muß, weil der Wechsel zwischen Reset auf Null und neue Belegung so schnell ist, dass man nur ein sanftes Schimmern wahrnimmt. MIT dem edlay aber nimmt man das Leuchten und aber auch die Aus-Zeit besser wahr. Nicht schön, aber funktionell.Nochmal: es ist ja nur ein einfaches Tutorial. Aber so seht ihr nun, wie relativ einfach man eine Umsetzung von Eingang auf Ausgang anstellen kann. Im Prinzip kann man auch ganz andere Dinge machen.Nehmen wir an, Ihr meßt die Temperatur zweier Sensoren und entscheidet dann im Code anhand einer Vorgabe die zu Eurer Wakü paßt, ob ein Kanal auf HIGH geht, der einen Buzzer auslöst, oder einen Ventilator über Relais oder Darlington-Transistor einschaltet….. oder eben einfach nur eine rote LED angeht. Oder alles zusammen. Das ist eben das Schöne dran… man kommt relativ leicht zu ersten Ergebnissen und baut darauf weiter auf.Natürlich muss man sich nicht nur auf 0/1 Ausgaben beschränken. Mittels der PWM Ausgänge kann man ganz vorzüglich Drehzahlen regeln und bspw Motoren oder Lüfter regeln. ABER! Um Gottes Willen nicht direkt anhängen, okay? Wenn meine Leistungstransis endlich kommen :roll:, zeig ich Euch auch das.Jetzt gibts noch ein Bild.. es waren dann wohl irgendwo zwischen 24 und 26 Grad … erstaunlich bei dem Sch…wetter momentanhttp://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture1994-tutorial-temperatur-led-graf-ganz-simpel.jpg

    • #895366
      orw.Anonymous
      Teilnehmer

      ich verstehe zwar derzeit weitgehend bahnhof, aber das ist mein persönliches problem und ich sehe hier starkes bildungspotental für mich. 😀

      ganz toller thread, weiter so! thread ist abboniert. 🙂

    • #895416
      spokekiller
      Teilnehmer

      2SRonin;462208 said:
      ich verstehe zwar derzeit weitgehend bahnhof, aber das ist mein persönliches problem und ich sehe hier starkes bildungspotental für mich. 😀

      ganz toller thread, weiter so! thread ist abboniert. 🙂

      Vielen Dank erstmal 🙂
      Das mit dem Bahnhof ist irgendwie verständlich. Arduino ist bisher für mich eine starke “learning by doing” Sache. Es wäre toll, wenn die Tuts dem Einen oder Anderen bei der Entscheidung helfen könnten, sein System oder irgendwas damit zu erweitern.

      Mit Arduino kann man an sich eine Unmenge an Aufgaben erledigen. Die Ausmaße — und das ist eben das tolle, wie ich finde — bestimmt man relativ leicht selbst. Und wenn es zunächst durch mangelnde Erfahrung sei.
      Es geht mir ja nicht unbedingt anders. Ich programmiere zwar gelegentlich beruflich Shellscripts und mal ein bissl php oder was eben so anfällt, aber mir fehlt die fortwährende Tiefe. Und die Tage in denen ich selber mal eine Schaltung nachgelötet habe, sind 20 Jahre vorbei. (Jaja, der gute Spoke rollt gnadenlos auf die vierzig zu.:cry:)
      Umso schöner der (Wieder-) Lerneffekt.:d: Mir machts Spaß, und es wird sicher dazu führen, dass ich ein Projekt im PC fest verbaue. Das war ja schließlich auch der ursprüngliche Motivator.
      Statt Schwellenwertschalter usw dachte ich irgendwann an Mehrpunkt-Temperaturmessung, optische Wiedergabe und “Cooling-on-demand”.

      Naja, genug Gesülze. Das Päckchen mit meinen Shifting-ICs, den Darlington-Transis und ner Menge Kleinkram ist wohl schon raus, aber bis gestern abend ist nix angekommen.

      Ich denke der nächste Schritt wird sein, zunächst mal zu zeigen, wie man einen Elektromotor (=Fan, Pumpe, Eiswürfelmaschine) ansteuert. In der Erweiterung koppeln wir das dann einfach mit der Temperaturmessung und der optischen Anzeige. Das machen wir dann mal geregelt via PWM, mal schlicht ein-aus. 😎

      Letztlich sollen die Tutorials also dazu führen, dass man in die Lage versetzt wird, aus den einzelnen Elementen etwas Nützliches für die Maschine zuhause zusammenzufummeln. Und ich habe so schnell keine Absicht, das hier einschlafen zu lassen. [-X

      ❓ Achso, eines wollte ich noch fragen. Sind die Pumpen in den Wasserkühlungen generell “variabel”, also ändern sie Ihre Pumpleistung? Geht das ggf über die Betriebsspannung?
      Haben wir hier im Forum so ne Art Grundlagenthread mit diesen Details dazu?

    • #895435
      loony
      Teilnehmer

      Generell lässt sich jede Wakü Pumpe über die Versorgungsspannung in ihrer Leistung regeln. Allerdings mit unterschiedlichen min Spannungswerten.Hier kannst du dich über Pumpen und deren Arbeitsweise einlesen ;).

    • #895970
      spokekiller
      Teilnehmer

      [SIZE=”3″]Tutorial #3 — Einfache Ausgaben auf einem LCD[/SIZE]Was wir benötigen:* das Übliche, wie Drahtbrücken, Breadboard* Ein HD44780-kompatibles LCD für 5V Betriebsspannung* je nach Display einen 10k Trimmer oder 1K Widerstand* optional Piezo-Buzzer und Vorwiderstand (siehe Text)Zielsetzung:Wir verbinden das LCD mit 4 Digitalausgängen des Arduino und steuern über die “LiquidCrystal” library die Textausgabe. Besonderheit dabei ist, dass hierfür nur 4 pins für die Nutzdaten notwendig sind. Das war bei älteren Libs anders.Als Text soll nur ein statischer Text und die Uptime des Arduino in Sekunden ausgegeben werden.Aufbau:Das Display, das ich verwende hat keinen seriellen Bus und ist daher mit ca 8€ bei 16×2 Zeichen sehr preisgünstig. Der Nachteil ist eben, das man sich auf 4 Datenleitungen und zwei Steuerleitungen einlassen muss. Im Wesentlichen solltet Ihr beim Kauf einfach darafu achten, dass eine Kompatibilität zu Hitachis 44780 Serie besteht. Achja, und es muß mit 5V laufen!!Mein Display, ein DEM16216 benötigte noch eine Stiftleiste an seinen 16 Pins. Da diese alle in einer Reihe liegen ist die Verwendung mit einem Breadboard extrem einfach. Schnell aufgelötet…http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2019-lcd-basics-1.jpgWas die Anschlüsse angeht sollte man das Datenblatt zu seinem Display lesen. Die Belegung scheint weitgehend standardisiert. In meinem Fall hat es exakt zum Demoaufbau für die LiquidCrystal Lib gepaßt.Im Demoaufbau außer Acht blieb das LED Backlight, welches ich zusätzlich angeschlossen habe (LCD Pins 15 & 16). Bei einem Festeinbau würde ich hier einen Taster oder Schalter verplanen. Nicht alle billigen Displays haben eines.Was gibt es sonst zu beachten…Ich bin zunächst arg erschrocken, weil mein Display keinen Mucks machte. 🙁 Erst später wurde mir klar, dass ich im Datenblatt gelesen hatte, dass der LCD Driver etwa 4.5 V braucht. Das heißt mein Widerstand (der o.a. Trimmer) mußte recht klein sein. Später ausgemessen reichten bei mir schon 1k. War es mehr, verschwand die Anzeige. Ergo: ein kleinerer dürfte auch reichen und die Abstimmung vereinfachen. Verdrahtungsschema (erstellt mit Fritzing)http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2025-dem16216-beep.pngAufbau auf dem Breadboard:http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2020-lcd-basics-2.jpgErläuterungen zum Bild

      • Links oben ein 10K Trimmer/Poti, welches NUR den Kontrast der Schrift regelt. Zwingend notwendig gewesen, sonst sieht man NIX. 😥 Siehe oben
      • das blaue und braune Kabel zum Arduino sind für die allgemeine LCD Ansteuerung
      • die 4 gelben Kabel sind reine Datenverbindungen (4bit parallel, also 4 Kabel)
      • die am Display liegenden grünen und gelben Brücken sind für die Spannungsversorgung der LCD Teile

      Der CodeDer Code zieht sich zunächst die LiquidCrystal Library und konfiguriert die entsprechenden Pins des Arduino.Danach wird die Library “gestartet”, für ein 16×2 Display eingerichtet und die Ausgabe beginnt. Die Anweisung für die erste LCD-Zeile bleibt dabei im Teil [void setup] und ist daher statisch. Die zweite Zeile dagegen ist im Teil [void loop] und wird daher zyklisch mit neuen Werten erstellt. Sie zeigt schlicht die Controller-Uptime in Sekunden.Die Zeilen kann man buchstabengenau ansteuern mittels des SetCursor Befehls und einfacher x,y Koordinaten. Ein Element (Buchstabe) das geschrieben wurde, bleibt solange bestehen, bis es entweder überschrieben oder gezielt gelöscht wurde. Darauf muß man beim Ausgeben ein wenig achten, sonst bleiben “unschöne Reste”.Den Code laden wir über die IDE hoch und schon gleich nach dem Auto-Reset legt der Arduino los. Der angehängte Code basiert dabei auf der Demo für die LiquidCrystal Lib aus dem Arduino Paket und steht daher unter CC-BY 3.0. (Ich glaube ich bin verpflichtet, das zu schreiben).Um dem Ganzen noch ein wenig Kick zu geben habe ich einen Piezo Buzzer über einen kleinen 200 Ohm Widerstand angeschlossen, um damit die tone-Funktionen zu testen. Bei jedem Laufzyklus wird ein kurzer Piep ausgegeben. Zugegeben, nach längerer Zeit ein wenig nervig. Hat man keinen Buzzer kann man einen kleinen 8 Ohm Lautsprecher über den Widerstand anschließen. Ggf den Vorwiderstand anpassen (größer wählen).http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2021-lcd-basics-3.jpgErfahrungswerte

      • Mögliche Bug-Quellen sind vor allem die Verkabelung des LCD. Zeit lassen und lieber zweimal prüfen, bevor man richtig loslegt. Ein Kurzer ist auf den Breadboards schnell passiert.
      • Der Trimmerteil ist in manchen Tutorials nicht so gelöst worden. Ziehe ich bei mir die kleine orangene Drahtbrücke ganz oben links, die 5V+ mit dem schwarzen Kabel des Trimmers (Außenpin) verbindet, dann läßt sich mein Schriftkontrast viel besser steuern, will sagen über einen weiteren Regelbereich des Trimmers. Da dürft ihr ein wenig spielen. In einem finalen Aufbau würde ich die kleine Brücke weglassen.
      • Außerdem denke ich mittlerweile, es ist besser den Code hochzuladen und den vorigen Programmcode zu überschreiben, BEVOR man sein neues Projekt verkabelt, denn man kann ja nicht wissen, ob die vorige Konfiguration einen Schaden an den Komponenten hervorrufen kann. Danach ist es an sich egal.
      • Für einen Einsatz in einem Rechner würde ich außerdem ein Display mit entweder 16×4 oder 20×4 bevorzugen. 16 Buchstaben sind schnell verbraucht. Aber für Bastelzwecke oder einfachere Ausgaben ist das jetzige echt okay.
      • Die Bilder zeigen ausnahmsweise mal den ausgeschalteten Zustand, aber ich denke Ihr könnt mir glauben. Grund ist der, dass ich schon bei der Erweiterung war, als ich die Bilder machte.

      Dieses Tut macht Sinn, denn wir verwenden es jetzt gleich im nächsten Tutorial für unser LCD Thermometer!!!PS: bitte seht über meine mangelhafte Zeichensetzung und Rechtschreibung hinweg. Diese Tuts entstehen meist unter Zeitdruck. 😀

    • #895992
      spokekiller
      Teilnehmer

      Sodele, und den Thread lassen wir erst gar nicht kalt werden und gehen gleich zu …

      [SIZE=”3″]Tutorial #4 — Temperaturen messen und anzeigen auf dem LCD[/SIZE]

      Im Wesentlichen kombinieren wir jetzt zwei Schaltungen. Nämlich die von gerade eben, als wir auf dem LCD einfache Zeichenketten ausgegeben haben und die Dallas 18 Schaltung von oben, zum Messen von Temperaturen.

      Wer also jetzt noch den funktionierenden Aufbau von eben hat, der reißt einfach mal den Buzzer und seinen Vorwiderstand raus. Beides brauchen wir jetzt nimmer.

      Dafür bauen wir im rechten Teil des Breadboards die Anordnung für zwei DS18 wieder auf. Den Datenpin (Mitte) legen wir auf Pin 8 Digital des Arduino. Der Pin kann im Code geändert werden. Ansonsten bleibt alles wie zuvor.

      Aufbau auf dem Board
      Das Ganze sieht dann so aus:
      http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2022-lcd-temp-1.jpg

      Man sieht im rechten Teil, dass ich etwas konsequenter bei der Auslegung des One-Wire Gedankens geworden bin und Pin 1 und 3 der DS18 jetzt jeweils mit kleinen Drahtbrücken verbunden habe. Nur für die, die sich wundern wo die linken grünen DB hin sind.

      Wichtig:
      Zunächst hat meine Sensoranzeige gar nichts gezeigt. Dachte ich zuerst noch an Softwarefehler, so hat ein Testlauf mit dem Code von oben ganz schnell gezeigt, dass die Dallas Library keine Sensoren finden konnte (Temp = -127 oder 0).
      Der Grund war dann ganz einfach. Aus der vorigen Verkabelung war GND auf dem Steckbrett noch mit GND auf der Seite der Analogeingänge [im Bild “oben] verbunden. Dadurch kommt der Pull-Up Widerstand aber nicht zur Geltung.
      In diesem Beispiel MUSS GND also mit Arduino-GND der Seite der Digitalpins verbunden werden!!! Der 5V Pin kann gleich bleiben.

      Erläuterungen zum Code
      Den Code habe ich mal wieder schnell zusammengefummelt. Der Ablauf ist etwa wie folgt:
      * Libraries ziehen
      * Onewire setup auf Pin 8
      * zwei temporäre Variablen definieren
      * LCD pin definition für die LCD Lib
      * LCD setup auf 16×2 und starten
      * Sensor Lib starten (das hatte ich mal verpennt und ca 30 Minuten den Fehler gesucht! Grundsätzlich muss man alle Libs auch starten)
      * Loop (Positionen anfahren, Strings schreiben und Sensoren abfragen und schreiben)

      Die Delays habe ich eingefügt, damit man das Ganze etwas besser lesen kann. Der Refreshcycle ist dadurch etwas niedriger.
      Besonders nützlich sind die lcd.clear Befehle. Die stellen sicher, dass das Display leer ist und der Cursor auf 0,0 also dem ersten Zeichen steht.
      Dadurch, dass ich integer als Datentyp für die Temperaturen gewählt habe sind nur ganzzahlige Werte zu sehen.
      Der Code bietet reichlich Spielraum zu variieren und kann Basis für alle möglichen Anwendungen sein, wie bspw einen Temperaturalarm. Viel mehr Code brauchts dazu gar nicht.

      http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2023-lcd-temp-2.jpg
      Finger drauf, kurz warten und schon geht die Temp-Anzeige mit
      http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2024-lcd-temp-3.jpg

      In Verbindung mit einem der nächsten Tutorials, der Steuerung induktiver Lasten (Fans, Pumpen) ist die Grundlage für einen individuellen Controller für den PC gegeben.

      Ich könnte mir vorstellen dieses Projekt so auszubauen, dass ich es hier der Allgemeinheit als Bausatz oder Modul zur Verfügung stelle. Vor allem für diejenigen, die keine Lust oder Zeit haben sich mit dem Arduino zu beschäftigen.

      Ich muß mal noch ein wenig spielen. Schließlich bleiben ne Menge Analog-Eingänge und dann gefällt mir nicht, dass der Code ausgerechnet drei der PWM Pins des Arduino belegt. M.E. braucht er die nicht wirklich für die Übertragung der Nutzdaten.

      Vorstellbar wäre ein Kontroll und Steuerzentrum im Eigenbau — mehrere Tempsensoren, 3-5 regelbare Lasten, LCD und LED Anzeige…… Sicher, gibts alles schon fertig, aber ich seh’ das auch wie die Modelleisenbahner… selber gemacht ist halt doch schöner.

      Bleibt außerdem noch der Aspekt der optischen Verschönerung im Moddingsinn. Statt konkreter Schaltaktionen kann man ja RGB LEDs leuchten lassen.
      Naja, mal sehen. Aus einigen Threads ist mir jetzt ersichtlich geworden, dass es schon genug Leute gibt, die solche Dinge bauen und die das noch dazu viel besser können als ich.

    • #897221
      spokekiller
      Teilnehmer

      Kurzes Update. Die nächsten Tage werden die Updates ausgesetzt, da ich zuviel andere Dinge um den Kopf hab. Ich habe die vergangene Woche mit Schieberegistern (74HC595) und LEDs gespielt. Das ist eher interessant für optische Mods, aber ich denke ich werde auch das noch vorstellen, einfach um die Prinzipien zu erklären. Interessant für Regelungen ist das mE eher weniger, da der “Aufwand” den man betreiben muß, um gezielt einzelne Endgeräte anzusteuern zu groß ist.Wenn am WE die Zeit reicht will ich mir mal die Multiplexer ansehen, das dürfte in einiger Hinsicht interessanter sein, sowohl für LEDs (PWM durchreichen für Fader-Effekte) und auch für Regelung.Außerdem liegen die TIP-120 hier noch rum, mit denen ich die Ansteuerung von Lüftern zeigen wollte. Das dürfte ein interessanteres Thema für die meisten Besucher hier sein.CU soon

    • #897317
      ThaRippa
      Verwalter

      Weiter so. Nicht dass du denkst das liest keiner. Ich warte gespannt auf deine Updates. Ich bekomm Lust endlich auch loszulegen.

    • #897331
      spokekiller
      Teilnehmer

      ThaRippa;464263 said:
      Weiter so. Nicht dass du denkst das liest keiner. Ich warte gespannt auf deine Updates. Ich bekomm Lust endlich auch loszulegen.

      Danke Dir. Nein, fallen lassen werde ich das sicher nicht. Ich möchte definitiv eine komplette Steuerung (so sinnig oder nur hübsch sie denn sein wird) für meinen Dauerlauf/Internet/NAS Rechner machen. Und wenn schon, dann richtig — richtig heftig. :)Ich habe die Tage in der C’T einen Bericht über die alternativen Boards (MAX32 usw) von Digilent gelesen. So begeisternswert das ist, dass man teilweise noch mehr Kanäle hat und vor allem doppelt soviel RAM und erheblich mehr CPU Power (auch mehr Register, 32bit Prozi statt Atmels 8), so muß ich doch sagen, der besondere Charme beim Arduino liegt für mich darin, dass es schon genug Erprobtes gibt und er leicht zu adaptieren ist. Will sagen ich bleibe der Arduino Schiene erstmal treu. Für mich ist hier “weniger mehr”.Ansonsten… naja, ich hab noch ein Programmierbeispiel gesehen, dass es einem ermöglicht, Werte über die serielle Schnittstelle zu empfangen. Denkbar wäre also auch, dem Arduino über seriell eine Auswertung des Diskspace zu schicken und er reagiert dementsprechend. So bspw eine optische Füllstandsanzeige. Das sollte recht simpel sein. Wie gesagt, nachdem meine anderen Umbauten an der Pico usw ein wenig ins Stocken geraten sind, werde ich mich jetzt wie schon angedeutet im nächsten Schritt um die Ansteuerung induktiver Lasten kümmern. Von Relais bin ich dabei vollständig abgekommen. Die will ich eigentlich nur in der Not nehmen, aber dazu später mehr. Wenn ich es schaffe, dokumentiere ich am Freitag den Aufbau der LED-Steuerung mit den Shifties.Arduino, klein– aber rockt voll. 😀

    • #897708
      spokekiller
      Teilnehmer

      [SIZE=”3″]Tutorial #5 — Digitalausgänge “verlängern” mit Schieberegistern[/SIZE]
      Da die Anzahl der verfügbaren Ausgänge des Arduino begrenzt sind, wird die Frage nach einer “Verlängerung” derselbigen irgendwann mal interessant. Bei der Suche nach Informationen über Arduino bin ich über die Möglichkeiten zum Einsatz von sogenannten “Schieberegistern” oder Shifting ICs gestolpert.
      Nachfolgend beziehe ich mich auf den Einsatz des Schieberegister ICs 74HC595, welches für um die 35ct zu haben ist. Also nicht wirklich teuer und wird von mir im Text kurz “shifty” genannt.

      Ansatz
      Wir werden einen Digitalausgang des Arduino damit “verlängern”. Man könnte auch “verbreitern” dazu sagen, was es aber mE nicht so wirklich trifft. Näheres dazu bei der Funktionsweise des Shifty.
      Der Shifty wird uns helfen mit nur einem Ausgang des Arduino, die Zustände von bis zu 8 LEDs (o.ä.) festzulegen. Allerdings nur digital, also Ein/Aus. PWM durchzureichen ist damit mW nicht möglich.

      Funktionsweise
      Man stelle sich ein Schieberegister vor, wie eine Längs-Anordung von 8 Fächern auf einer gleitfähigen Unterlage. Diese Fächer kann man der Länge nach um jeweils eine Position verschieben. Schiebt man zuvorderst ein neues Fach ein, fällt das letzte Fach in der Reihe herunter und verfällt.

      Die Fächer haben Zustände von 0 oder 1 (aus oder ein), die sie solange halten, bis sie am Ende herunterfallen. Wird kein neues Fach zuvorderst eingeschoben, verfällt nichts. Falls doch, schiebt es eben nur die Zustände der Fächer eine Position weiter.

      Man kann mit jedem Schiebevorgang nur EINE Position schieben, das aber beliebig oft wiederholen. Den Zustand des ersten Fachs (0/1) bestimmt man beim Einschiebevorgang. Deshalb auch meine Bezeichnung als Verlängerung, nicht als Verbreiterung.

      Ein Beispiel:
      Nehmen wir an, unsere Fächer (=Register) sind alle auf Null. Wir schieben ein Fach mit Zustand 1 ein, damit sieht unser Muster so aus: 10000000
      Wir nehmen einen weiteren Schiebevorgang vor und setzen dabei 0 und wiederholen dann den Vorgang nochmal mit 1. Unser Muster sieht jetzt so aus: 1010000
      Würden wir jetzt viermal mit 0 shiften (schieben/schalten), dann sähe unser Muster so aus: 00001010
      Um jetzt also alles auf Null zu setzen, müßten wir noch viermal mit 0 schieben/shiften.

      Das Wesentliche zu erkennen ist hier wichtig: Ich kann keine Position direkt beeinflussen und ich muss praktisch immer in kompletten oder komplementären (ergänzenden) Mustern denken.

      Noch ein Beispiel:
      Wir wollen die Anzeige 10101010 invertieren. Relativ leicht; wir müssen nur das erste Register anfassen. Wir shiften einmal ein neues Register mit 0. Damit schiebt es alle nach rechts und fügt zuvorderst eine Null ein -> 010101010 Aber, da wir nur 8 Register haben, verfällt das letzte Fach (Bit, Register) und wir landen bei 01010101

      Wollte man eine LED also als Lauflicht schalten, dann setzt man eben einfach nur ein Fach auf 1 an erster Stelle und Shiftet dann 8 mal mit 0. Ist man am Ende durch, fängt man von vorne an.

      Aus meiner Sicht unbequem sind alle Operationen von rechts aus gesehen. Elektrisch bleibt einem immer nur der Weg von “links” und somit muß man wohl bei den meisten Lösungen in Mustern von links denken für einen Effekt von rechts. Oder man dreht einfach seine LED-Anordung um, 😆

      Genaugenommen besitzt das Shifty zwei Registerbereiche. Einen als Datenpuffer (praktisch der Vorbereitungsraum) und einen aktiven Bereich, in dem die aktuellen, aktiven Zustände stehen. Aus eben diesem Grund benötigt man leider nicht nur einen Digitalpin des Arduino.

      Beschaltung / Aufbau
      Auf den Bildern zu sehen sind 7 gelbe Adern, die über Vorwiderstände von den Q-Pins (siehe Datenblattauszüge) über Vorwiderstände an LEDs gehen. Bitte das Datenblatt beachten, die Ausgänge leisten maximal 35mA!!!
      Die grünen und blauen Brücken sind zur Stromversorgung (das 74HC595 akzeptiert dabei alles zwischen 2 und 6V, da sind die 5V des Arduino gerade gut).
      Roter, orangener und blauer Draht sind jeweils die Pins die …
      * den Schiebevorgang vornehmen
      * den Umschaltevorgang zwischen Speicherregister und “Anzeigeregister” vornehmen
      * den Zustand (0/1) des neu “eingeschobenen” Registers bestimmen
      http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2049-p1020892-schieberegister-0.jpg

      Grün/Weiss -> Spannungsversorgung
      Orange: SI / IC pin 14 >>> an Arduino 8
      Rot: RCK / IC pin 12 >>> an Arduino 9
      Blau: SCK / IC pin 11 >>> an Arduino 10
      http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2050-p1020891-schieberegister-2.jpg
      http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2048-p1020893-schieberegister-1.jpg

      Bei der Berechnung der Vorwiderstände bitte die geringe Ausgangsleistung der Q-Ausgänge des Shifty berücksichtigen!

      Ich denke ich werde mir ausnahmsweise nicht die Mühe machen, ein Fritzing zu erstellen. Das IC findet auch bei arduino.cc im Playground Erwähnung. Darüberhinaus kann man die Shifties relativ leicht kaskadieren, auf was ich nur eingehen würde, wenn Ihr mich fragen würdet. So interessant ist dass nämlich dann für mich hier auch nicht, ehrlich gesagt. Ich denke mittlerweile, dass PWM Multiplexer viel spaßiger sein dürften.
      Aber wie gesagt, ich helfe natürlich gerne.

      Ergänzend sei auch noch erwähnt, dass man auch andere Lasten steuern kann, sofern die Optokoppler, Darlington ICs oder Transistoren, die man dazu an die Ausgänge hängen müßte, bis 35mA schon schalten.

      Code
      Noch ein Wort zum Code und zur Wirkungsweise. Man MUSS zur Anzeige-Änderung auf das Speicherregister zurück, deshalb die vielen Schaltvorgänge im Code. Man kann also nicht “live” durchschalten.
      Der Code ist diesmal gänzlich von mir. Ein wenig wirr an der einen oder anderen Stelle, weil ich Optionen und Demo-Prozeduren eingebaut habe, die man auskommentieren kann. Aber er funktioniert. Mal sehen, vielleicht kann ich noch ein Video einstellen.
      Die Software macht einen einzelnen Durchlauf und einen Endlos, wenn ich mich richtig erinnere.. 😀 Der Code bietet genug Spielraum und zeigt deutlich genug, wie man zwischen den beiden Bereichen umschalten muss und wann.

      Beschaltung 74HC595 (Quelle SGS Thompson Datenblatt)
      http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2046-74hc595-pins.pnghttp://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2047-74hc595-pins2.png

      Wer sich ernsthaft mit der Anschaffung auseinandersetzt und noch “Angst” haben sollte, der darf versichert sein, dass ich gerne auch bei individuellen Problemen helfe, soweit es mir eben möglich ist.

      Viel Spaß, :banana:
      Spoke

    • #897864
      spokekiller
      Teilnehmer

      Einige Anmerkungen noch zum letzten Tutorial.* In meinem Fall hatte ich nur 7 LEDs mangels Bauteilen genutzt. Das Beispiel funktioniert natürlich auch gut mit 8 Stück.* Mir ist beim biken komischerweise noch so eingefallen, wozu man das bequem nutzen kann. Wenn man nämlich die Muster, die man benötigt vorher in konstanten Arrays definiert und die dann einfach durchläuft. Vorstellbar wäre eine Lastanzeige, ähnlich einem VU-Meter für alles mögliche… Diskspace, CPU, Netzwerkbandbreite. Die Werte könnte man ggf über die serielle Schnittstelle füttern.AusblickeIch habe mir am Samstag Zeit genommen, die TIP-120 Darlingtontransis mal zu testen. Der Aufbau ist unglaublich trivial und wird noch detailliert beschrieben.Ich hatte einen PWM Kanal genutzt um über diesen und den TIP einen 12V Lüfter zu steuern. Allerdings kam da recht schnell Ernüchterung. Bei einem recht alten Lüfter konnte man sehr deutlich das durch die PWM erzeugte Pfeifen hören. Bei einem etwas aktuelleren Xcilence dagegen verschwand das Geräusch nahezu gänzlich. Ich könnte mir diese Lösung gut vorstellen für die Praxis. Der TIP-120 ist hoch belastbar, könnte also auch mehrere Lüfter parallel treiben.Dann hatte ich die Basis des TIP mal zu einem der normalen Analog-Ausgänge geschaltet und da funktioniert er dann eben wie ein Relais. Ich dachte immer, dass man in einem gewissen Bereich auch über die Basis den Kollektorstrom in seiner Größe regeln kann. Argh, da läßt mich die Theorie jetzt im Stich. Ich muß das nochmal nachlesen.Als Relais-Ersatz finde ich es allerdings auch nicht schlecht und auch nicht unhandlich. Galvanisch getrennt ist aber halt was Anderes.Der Ethernet-shield wartet ja auch noch auf ein Tut…. Irgendwelche Präferenzen, was Ihr als nächstes sehen wollt?**Edit ** ich habs gefunden… ich Blödmann hatte bei meinem nicht-PWM Versuch aus Versehen wieder einen Digitalkanal belegt, keinen Analog-Ausgang… Peinlich — naja, im Eifer des Gefechts

    • #897885
      einball
      Teilnehmer

      Hey spokekiller!Ich bin auch Bastler in dieser Richtung, allerdings nicht mit dem Arduino: Ich mache alles selbst (Atmega32 usw.).Woher hast du die tollen Kabel, mit denen du die Steckbretter verbindest? Ich mache mir die immer selbst, aber das ist eine riesen Arbeit, auf die ich so langsam ehrlich gesagt keine Lust mehr habe. eine halbe Stunde für 6-7 Kabel ist schon eine Hausmarke! 🙁

    • #897913
      spokekiller
      Teilnehmer

      einball;464864 said:
      Hey spokekiller!Ich bin auch Bastler in dieser Richtung, allerdings nicht mit dem Arduino: Ich mache alles selbst (Atmega32 usw.).Woher hast du die tollen Kabel, mit denen du die Steckbretter verbindest? Ich mache mir die immer selbst, aber das ist eine riesen Arbeit, auf die ich so langsam ehrlich gesagt keine Lust mehr habe. eine halbe Stunde für 6-7 Kabel ist schon eine Hausmarke! 🙁

      Hi einball, ja ich glaube schon was von Dir in Verbindung mit den ATMegas gelesen zu haben… kann das sein?Die Kabel sind recht günstig zu bekommen bei watterott.com. Die Versandkosten sind niedrig (ab 2€ per UPS) und die haben ein Sortiment, das speziell auf verschiedene MC-Plattformen ausgelegt ist. Mein LCD stammt auch von dort. Schau mal hier: http://www.watterott.com/de/Boards-Kits/Zubehoer/Jumper-WiresCheers

    • #897917
      einball
      Teilnehmer

      Vielen Dank für den Link! Der ist gleich mal gebookmarkt worden!

      Ja, das kann sein. Wenn du auf Kaltmacher.de liest hast du sicher von mir gelesen. Ich war mal ein knappes Jahr Administrator dort. Mittlerweile bin ich aber eher in den Hintergrund gerückt, um meine Projekte weiter zu basteln, ganz ungestört. Vllt kennst du “SCAR”, bzw hat in diesem Zusammenhang von mir gehört. Ein schief gegangenes Projekt, in das ich bereits viel Geld investiert (>1000) habe und es ist noch nicht einmal der Rahmen fertig.

      Momentan bin ich dabei, eine USB Bluetooth Brücke zu basteln, die mir eine serielle Verbindung herstellt. Im Prinzip nur ein FT232RL und ein BTM222 mit Levelshifter. Dennoch kostet das fertigen lassen einer Platine knappe 50 Euro, was ich nicht zahlen kann und will (Praktikum momentan -> Weeenig Geld :)). Daher liegt das auf Eis. Was ich zzt bastle (die Brücke ist nur die “Kommunikation” zum µC, da ich keine Lust habe, wieder an tausenden von Kabeln dran zu hängen.) ist ein Sensorkopf mit Drucksensoren (respektive Tiefensensor), Licht, Beschleunigungssensor, usw …

    • #897806
      spokekiller
      Teilnehmer

      spokekiller;464843 said:
      Einige Anmerkungen noch zum letzten Tutorial.
      Ausblicke
      …. Dann hatte ich die Basis des TIP mal zu einem der normalen Analog-Ausgänge geschaltet und da funktioniert er dann eben wie ein Relais. ……..
      ….
      **Edit ** ich habs gefunden… ich Blödmann hatte bei meinem nicht-PWM Versuch aus Versehen wieder einen Digitalkanal belegt, keinen Analog-Ausgang… Peinlich — naja, im Eifer des Gefechts

      Alsoooooo… manchmal, ne? [-( Wenn man Mist daherredet, dann gleich richtig.
      Ich hab zunächst mal natürlich KEINEN Analogausgang genutzt, weil der Arduino Uno die gar nicht hat. Ich meinte ich hatte einen Digitalausgang ohne PWM Support nutzen wollen.
      Warum das dann mit dem TIP nicht funktioniert hat ist relativ einfach. An diese normalen Ausgänge kann man keine “analogen” Werte schicken, d.h. es geht softwaretechnisch aber eben hart gehts nicht. Deshalb auch bei mir der sofortige Ausschlag von 0 auf 12V am Lüfter.
      Beim Nachlesen der Specs und der Referenz für die Befehle ist es mir dann gerade eben aufgefallen. Ich hab den Aufbau nochmal gemacht und denke dass das Pfeifen subjektiv bei moderneren Lüftern verschmerzbar ist. Lärm ist ja aber bekanntlich eine subjektive Empfindung.

      Sodele, “Sorry” für die ganze Verwirrung, aber so kommts eben manchmal mit den schnellen Gedanken. 8-[

    • #899562
      spokekiller
      Teilnehmer

      Hallo….keine Angst, der Thread ist nicht tot, ich bin nur aktuell an den WEs und unter der Woche mit einer Menge “Real Life” beschäftigt.Habt Ihr gesehen, es gibt neue Arduinos, jetzt bspw einen mit integriertem Ethernetshield. http://arduino.cc/blog/2011/07/13/arduino-ethernet-adk-available-for-purchase/Nachdem man mit dem Ethernetshield auch so feine Dinge machen kann wie NTP-Abfragen, Mails verschicken, Wake-On-Lan Packets schicken und natürlich über Ethernet Rechner oder andere Verbraucher ein und auszuschalten oder zu regeln ein cooles Angebot. Außerdem zumindest auf dem Papier billiger als beide Komponenten einzeln zu erwerben. Ansonsten habe ich mit Signalmultiplexern gespielt und will demnächst noch einen Weg zeigen wie man direkt über RS232 (nicht mehr so oft an neueren Boards, ich weiß) Kommandos an den Arduino schicken und auswerten kann. Ach, und dann wäre ja noch der Backlog für den Tip-120. Cheers und bis hoffentlich demnächst

    • #899567
      spokekiller
      Teilnehmer

      littledevil;466755 said:

      spokekiller;466751 said:
      … und natürlich über Ethernet Rechner oder andere Verbraucher ein und auszuschalten oder zu regeln ein cooles Angebot.

      Wieviel muß man für eine funktioneirende Lösung rechnen? Ist das nur für Programmiercracks zu handeln?

      Programmiercracks? Nein, ich bin sicher alles andere und man kann dank der realtiv simplen Sprache sehr schnell eine eigene Lösung entwerfen. Siehst du ja hier anhand meiner Beispiele.

      Die Kosten… hmm…. also ein kleiner Arduino und der Ethernet Shield kommen bspw auf ca. 50 €. Kleinteile wären dann noch zu berücksichtigen (Relais, Optokoppler). Es geht noch billiger, aber so hast Du alles als Modul fertig und getestet und benötigst keine weiteren Kenntnisse und vor allem nicht soviel Zeit.
      Man kann sich den Arduino auch in einer abgespeckten Version selber bauen (bspw ohne die USB-Brücke), aber das würde ich nur im Ausnahmefall machen.

      Der neue Arduino mit integriertem Ethernet-Shield ist ein wenig billiger… schau mal auf der offiziellen Seite.

      Je nachdem WAS Du umsetzen möchtest kann ich Dir gerne helfen. Ich bin keine Elektronikgröße, aber zur Not fragen wir dann einfach noch ulv oder einball. 🙂

      Ich spiele aktuell mit dem Gedanken, den Internetrechner zuhause über den Arduino hochzufahren, bspw über eine URL ein Magic Packet zu schicken. Danach kann der Arduino per pings checken, ob die Kiste da ist (oder via Signale über Seriell). Außerdem kann man den harten Resetschalter verdrahten (wobei sich meine Kiste unter Ubuntu noch NIE aufgehängt hat). Daneben kann der Arduino dann noch Temperaturen messen etc..
      Außerdem will ich unbedingt mal so eine Disk-Kapazitätsanzeige austesten, mit LCD oder farbigen LEDs. Spielerei, sieht aber sicher geil aus. :banana:

    • #899566
      littledevil
      Teilnehmer

      spokekiller;466751 said:
      … und natürlich über Ethernet Rechner oder andere Verbraucher ein und auszuschalten oder zu regeln ein cooles Angebot.

      Wieviel muß man für eine funktioneirende Lösung rechnen? Ist das nur für Programmiercracks zu handeln?

    • #899571
      ThaRippa
      Verwalter

      Damn! Da WOL bei meinem Hauptrechner irgendwie nicht will (Fritzbox kann soowas senden) wäre das echt nett…aber ich wollte maximal 25€ ausgeben für den alten Duemillanove…mal schauen.

    • #899576
      spokekiller
      Teilnehmer

      ThaRippa;466760 said:
      Damn! Da WOL bei meinem Hauptrechner irgendwie nicht will (Fritzbox kann soowas senden) wäre das echt nett…aber ich wollte maximal 25€ ausgeben für den alten Duemillanove…mal schauen.

      Den Duemilanove gibts ja durchaus in einigen Shops um gerade 22-25 Euro… Leider kosten die Ethernetchips von WIZ schon einzeln so an die 15€, sodass man selbst mit Lowcost Lösung die 25€ locker knackt.
      Siehs mal so: kannst Du 15-20€ in einem Jahr dadurch an Stromkosten sparen?

      Falls ja, dann lass doch den alten Duemilanove und nimm Dir das hier:
      http://arduino.cc/en/Main/ArduinoBoardEthernet
      http://store.arduino.cc/eu/index.php?main_page=product_info&cPath=11&products_id=141

      Wie klingt das…? Superkompakt und alles beieienander und noch genug Pins um dem Rechner nen individuellen LED-Touch zu geben 😀

    • #899581
      littledevil
      Teilnehmer

      Konkret würde mir dabei z.b. das einschalten von webcam/Netzwerkcams einfallen. Da könnt eich dann mal kurz schaune, ob noch alles ok ist.

    • #899577
      ThaRippa
      Verwalter

      Strom sparen…ach naja…an sich ist das nur Luxus. Ich möchte den Rechner unterwegs einschalten können, um sagen wir mal…Urlaubsvideos von dort herunterladen zu können. Jeder kennt das, man sitzt bei Freunden, Kilometerweit von zu Hause und unterhält sich über…Sachen die man eventuell auch im Internet bekäme aber schon zuhause hat. Oder Sachen die man nicht mehr bekommt. Richtige Perlen. Dann denkt man: hab ich zuhause, müsst ich ihm mal brennen oder so…Und wegen sowas will ich den Rechner nicht an lassen – kommt ja schließlich nicht oft vor. Ich überlege mir irgendwann nen NAS-Rechner mit Router-Zweitjob zu basteln, aber sowas kostet noch mehr. Bis dahin “spart” der Arduino nur das Geld was ich verbrauchen würde, wäre mein Rechner immer an. Aber egal wie, anschaffen werd ich mir so ein Ding.

    • #899586
      spokekiller
      Teilnehmer

      littledevil;466771 said:
      Konkret würde mir dabei z.b. das einschalten von webcam/Netzwerkcams einfallen. Da könnt eich dann mal kurz schaune, ob noch alles ok ist.

      Kein Thema, das ist gaaaanz einfach :o. Ich bastel Dir mal was zusammen.
      Nee, ehrlich. Ich denk mir was aus. Im Prinzip hatte ich sowas als Testaufbau fertig. Du kannst dabei über eine URL gezielt Digitalausgänge des Arduino schalten. An diee klemmen wir dann kleine Relais, die die Betriebsspannung der Webcams unterbrechen.

      Ich denk ich kann vielleicht bis Sonntag was kleines hier vorstellen. Der Aufwand ist recht gering und die Umsetzung flexibel genug. Ok für Dich, kleiner Teufel :D?

    • #899587
      spokekiller
      Teilnehmer

      ThaRippa;466767 said:
      Strom sparen…ach naja…an sich ist das nur Luxus. Ich möchte den Rechner unterwegs einschalten können, um sagen wir mal…Urlaubsvideos von dort herunterladen zu können. Jeder kennt das, man sitzt bei Freunden, Kilometerweit von zu Hause und unterhält sich über…Sachen die man eventuell auch im Internet bekäme aber schon zuhause hat. Oder Sachen die man nicht mehr bekommt. Richtige Perlen. Dann denkt man: hab ich zuhause, müsst ich ihm mal brennen oder so…Und wegen sowas will ich den Rechner nicht an lassen – kommt ja schließlich nicht oft vor. Ich überlege mir irgendwann nen NAS-Rechner mit Router-Zweitjob zu basteln, aber sowas kostet noch mehr. Bis dahin “spart” der Arduino nur das Geld was ich verbrauchen würde, wäre mein Rechner immer an. Aber egal wie, anschaffen werd ich mir so ein Ding.

      Na dann mach das doch so und nimm dir den Ethernet-Duino… der wäre ja genau das Richtige. Dann legst Du schlicht einen der Digi-ausgänge auf einen Optokoppler oder ein Relais und schaltest das parallel zu Deinem Soft-Off/On Schalter am PC. Wenn die Kiste ne Pico hat wirds noch direkter, dann kannst die Versorgung zur Pico damit schalten. An 220/230V will ich persönlich nicht ran, dafür gibts aber auch fertige Lösungen.Das wird im Prinzip das gleiche wie ich jetzt für den kleinen Teufel designen werde. Einfach, leicht umzusetzen, und noch relativ geringe Kosten.

    • #899606
      littledevil
      Teilnehmer

      Könnte man sich da langfristig auch an ne Easy SBS dran hänge bzw. diese ergänzen?

      Ich werde darübe eh einige Sachen schaltbar machen.

      Dann könnte man den Herd noch vom urlaub aus auschalten 😆

    • #900299
      spokekiller
      Teilnehmer

      Tutorial #6 — induktive Lasten ansteuern / schaltenACHTUNG: Korrektur / Nachtrag #2.Die u.a. Schaltung funktioniert zwar (auch ohne Schäden soweit ich sagen konnte), ist aber etwas unorthodox, bzw unpassend aufgebaut. Baut sie bitte nicht so nach, sondern zieht die Diode ab und setzt diese anstatt dessen parallel zum Lüfter, sodass die Kathode (Ring) zum Pluspol und die Anode zu Masse zeigt.Korrekter Teilaufbau ist u.a. erkennbar aus: http://de.wikipedia.org/wiki/Relais#Schalten_von_Relais_mit_TransistorenIch entschuldige mich für diesen Fehler. Ich hatte mich durch ein Beschaltungsbeispiel für den tip120 und eine falsche Erläuterung fehlleiten lassen.Wer genauer nachliest, wird feststellen, dass der Tip120 intern bereits eine Diode über der “falschen” Position hat. Die Erklärung dafür :

      The flyback diode in the transistor is connected across the transistor and protects it against negative voltages between the collector and emitter. When switching a relay, you need a flyback diode across the relay coil, to protect the transistor against high positive voltages between the collector and emitter.

      Sodele, wieder was gelern. Vielen Dank an phil68 für den guten Hinweis!Ende Nachtrag #2AnsatzDie Ausgänge des Arduino bzw des ATMega können ja nur geringfügige Ströme bei 5V maximalem Pegel zur Verfügung stellen. Nun gibt es natürlich genug Relais, die man damit zur Arbeit bewegen kann, idR dürfte aber “ein wenig mehr Bumms” vonnöten sein.Darüberhinaus ist es natürlich auch nicht möglich ein PWM-Signal über ein Relais an den Empfänger durchzureichen.Deshalb bedienen wir uns eines Leistungs- oder Darlington-Transistors, der unseren Arduino vor der hohen Last schützt und uns das Schalten erheblich höherer Spannungen und Ströme ermöglicht.Nachfolgender Aufbau ist wie immer zu Lehrzwecken gedacht, kann aber wohl unbedenklich so übernommen werden. Dennoch müßt Ihr vorher selber prüfen, ob die Schaltung Euren Ansprüchen genügt.FunktionsweiseIch hefte diesmal keinen Code an, denn die paar Zeilen lohnen sich kaum. Im Prinzip kann man einfach ein PWM Signal an einem der entsprechenden Pins erzeugen. In den Bildern kann man die Beschaltung dazu gut erkennen.Der Arduino gibt eine gewisse Spannung auf die Basis des TIP-120, den ich als Darlingtontransi ausgewählt hatte. Der ist für dieses Beispiel übrigens mächtig überdimensioniert, reicht er doch bis 60V, 5A.Der DT verstärkt das Eingangssignal sozusagen und “macht” aus den ebenfalls an ihm anliegenden 12V (siehe Schaltbild) die Versorgungsspannung für den Lüfter. Zur Funktionsweise eines DT am besten Wikipedia zu Rate ziehen.Beschaltung / Aufbau* Die Basis (linker Pin auf meinen Bildern) des Tip 120 an den Arduino (PWM Pin nehmen) über einen 2,2 kOhm Widerstand* Den Kollektor (mittlerer Pin) an die Massezuleitung des Lüfters* Den Emitter an die gemeinsame Masse des Arduino und der Versorgungsspannung des Lüfters (d.h. die Massen des extra Netzteils für die 12V des Lüfters und die Masse vom Arduino sind durchgeschleift)* Der Pluspol des Lüfters geht direkt auf Plus des 12V NT~ detaillierter Schaltplan kommt noch nach~ Ein wichtiges Detail bleibt zu erwähnen: die sogenannte Freilaufdiode zwischen Kollektor und Emitter (Kathode am Kollektor, siehe Bilder). Ich hatte eine 1N4005 über, deren Belastungsgrenze ebenso weit über dem liegt, was wir hier brauchen.Warum diese “Freilaufdiode”? Wie die meisten noch aus dem Physikunterricht wissen dürften, erzeugen induktive Lasten (Spulen) B-Felder, die wiederum zu Selbstinduktion führen. Im Klartext: würde solche Selbstinduktion hier stattfinden [bspw beim Stop des Lüfters] und die Spannungen auf den Arduino durchschlagen wäre er Toast. Um eben das zu verhindern, wird die Diode benutzt, um den “Rückschlag” zu unterbinden. Das ist echt wichtig. Bei allem was eine Spule hat (Motoren und Relais), ist diese Diode notwendig. Ich würde es mir zur guten Angewohnheit machen, diese immer zu verbauen. Der Drop ist gering und so bleibt die Schaltung flexibel.Was wir mit diesem Aufbau nun machen ist entweder schlicht den Digi-Pin des Arduino auf High legen und damit 12V voll durchreichen oder ein PWM Signal erzeugen, sodaß der Tip120 das PWM mit entsprechend höherem Pegel durchreicht. Die Bilder sagen denke ich genug. Der Code dafür ist ein einfacher 5-10 Zeiler, das bekommt jeder in den ersten Stunden Arduino hin.Wie ich weiter oben schrieb, konnte ich bei einem alten Lüfter das hochfrequente PWM-Pfeifen sehr deutlich hören, aber bei dem ebenfalls abgelichteten roten Xilence Lüfter nahezu gar nicht mehr.Details der Beschaltung, Pins des Tip-120 hier B-C-Ehttp://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2114-p1020895-tip120.jpgGroßansicht, rechts der fliegende Aufbau für den Anschluß eines 12V Netzteils (SW:Masse, RT:plus), USB Kabel für 5V-Versorgung des Arduinohttp://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2113-p1020894-tip120.jpgGroßansicht, mit Spannungsabgriff am Lüfter (PWM-Signal)http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2115-p1020896-tip120.jpghttp://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2116-p1020897-tip120.jpgAusblicke / ModifikationenNun, man ersetze den TIP120 durch einen etwas geringer dimensionierten DT und nehme ein fettes Relais, dann kann man damit simpel ein-/Ausschalten. Würde man damit die Versorgungsspannung der o.a. Webcam kappen oder die Versorgungsleitungen des USB Kabels, dann wäre ein Szenario erfüllt wie Littledevil schrieb. Kombinieren wir das ganze mit dem EthernetShield (kommt wohl als Nächstes), dann haben wir unseren “Remote-per http steuer-Apparat”.Die o.a. Schaltung kann übrigens auch mehrere Lüfter parallel ansteuern, soviel wie eben das Netzteil hergibt, bis max 5A sollte der Tip120 nicht schlapp machen, müßte aber dann wohl passiv gekühlt werden. Was man schaltet ist letzlich egal. Ob UV-Kathoden, Pumpen, Lüfter. Je nach Transistor und separater Spannungsquelle scheint erstaunlich viel zu gehen. Im Bereich ab 50~60V würde ich persönlich aber dringend dazu raten, sich das aus versicherungstechnischen Gründen gut zu überlegen. Es gibt reichlich gute und noch günstige Schaltboxen über Ethernet. Besser so, man hat schon Buden abbrennen sehen wegen “narrensicherer” Eigenbauprojekte.Kombinieren wir das Ganze mit einer Temperaturmessungen von oben, bauen wir uns einen schicken Regelkreis. Mit Alarm und Display dazu… Der Kick wäre, wenn man das PWM Signal des Arduino direkt an den Lüfter geben könnte und dann PWM-Lüfter einsetzen. Irgendwie ahtte ich aber in Erinnerung, dass die PWM-Frequenzen unterschiedlich sind und der Aufwand damit zu hoch wäre.Als Nächstes sollte ich dann wohl endlich mal zeigen, wie man den Ethernetshield für solche Zwecke nutzt.Ansonsten wäre nur noch erwähnenswert, dass man mit den auf dem Konsum-Markt vorhandenen Mini-Optokopplern den Arduino auch noch vom Rest der Schaltung abtrennen kann. Ich hatte allerdings keine da und halte es ehrlich gesagt für Schaltungen wie diese bis 12~18V und der verbauten Freilaufdiode nicht für nötig.Ich hoffe ich hab jetzt alles richtig erklärt und konnte mal wieder Appetit machen.**Nachtrag 1 **Der Vollständigkeit halber sei erwähnt, dass für kleinere Relais ein kleiner DT wie der 2N3904 (40V, 0,2A, TO92 Gehäuse) und eine 1N4148 (100V, 015A) gut reichen sollten. Beide Bauteile kosten unter 10ct!Die Werte des Tip-120 hatte ich falsch, sind jetzt korrigiert.

    • #900321
      Hawk
      Teilnehmer

      Cooles Projekt :d:Hab mich bis jetzt nur mal an einen Tiny2313 versucht :fresse:http://www.mikrocontroller.net/topic/156729Bilder und Video:http://www.mikrocontroller.net/topic/156729#1750601

    • #900336
      spokekiller
      Teilnehmer

      Hawk;467596 said:
      Cooles Projekt :d:Hab mich bis jetzt nur mal an einen Tiny2313 versucht :fresse:http://www.mikrocontroller.net/topic/156729Bilder und Video:http://www.mikrocontroller.net/topic/156729#1750601

      Danke Dir Hawk,ich schau mir Deine Sachen mal an. Ich weiß nicht mehr genau wie ich zu Arduino als Grundlage meiner kleinen Experimente kam, aber ich kann mich noch erinnern, dass mir der Aufwand für direkte MC Programmierung einfach zu hoch war. Ich finde immer noch, dass für n00bs und ex-Hobby-Elektroniker die ganze Plattform extrem geeignet ist.Die Kosten sind überschaubar, man kann unglaublich viele Beispiele finden, und wie ich so schön mal gelesen haben “there is no problem an AVR can’t solve”.Das besonders Schöne für mich ist, wieviel altes Wissen ich wieder auffrischen kann und wie zügig man zu Ergebnissen kommt, ohne massenweise Tiefenwissen zu lernen. Für Leute mit begrenzter Zeit eine tolle Sache.Gruß

    • #900585
      spokekiller
      Teilnehmer

      Tutorial #7 — Einsatz eines 16 Kanal Muxers (Output Demo)AnsatzIn diesem Beispiel werden wir uns konkret darum kümmern, wie man mittels eines Multiplexer ICs aus einem Arduino-Pin “mehrere” machen kann.Wir nutzen dazu das günstige IC CD74HC4067 (auch nur 74HC4067) das in meinem Fall von ti (Texas Instruments) hergestellt wird. Es gibt das IC baugleich aber wohl auch von PHI (Phillips Semicon).Normalerweise macht es mehr Sinn, den Multiplexer (Muxer) für das Auslesen einer Vielzahl von Sensoren zu nutzen, der große Vorteil ist aber, dass diese IC Serie das Muxen in beide Richtungen erlaubt. Dazu aber später mehr. Zunächst nutzen wir den Muxer nur um Ausgabe zu multiplexen.FunktionsweiseDer Muxer stellt eine Vielzahl an Pins bereit. Davon sind alle für uns interessant.http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2121-74hc4067-pinout.pngWir nutzen vor allem die Sn Eingänge und die Yn Muxerports. An Z legen wir unser Eingangssignal an. Y1-Y16 sind die Muxerports, die in unserem Fall wie Ausgänge arbeiten werden und an denen wir als Showeffekt LEDs anklemmen werden. Die S0-S3 Signalpins sind für uns besonders wichtig. Wir werden sie nutzen, um dem Muxer mitzuteilen, welcher der Y-Pins denn nun der aktive Ausgang sein soll. Warum braucht man da 4 Pins? Recht simpel. Wir befinden uns in der Digital-Welt, daher müssen wir die Zahlen der Ausgänge in Binär umrechnen und so unsere S-Pins schalten, um den entsprechenden Ausgang zu aktivieren.Rechenbeispiel:4 dezimal = 0100 (0³+2²+0¹+0⁰)6 dezimal = 0110Wollen wir also Y6 aktivieren, müssen wir die Signalpins so schalten, dass S0 und S3 LOW sind, aber S1 und S2 HIGH. Keine Angst, der Beispiel-Code erledigt das alles für Euch, wenngleich mein Array von hinten zu lesen ist. http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2122-74hc4067-pinout2.pngBeschaltung / AufbauWir legen also Vcc auf +5V, GND wie immer auf Masse, ziehen Enable (E invertiert) auch auf Masse und dann klemmen wir die Anode der LEDs über kleine Vorwiderstände (ich hab 100er genommen) an und hängen wiederum die Kathodenseiten der LEDs auf Masse(-).Das geht sogar ohne Schaltplan, wenn Ihr Euch das Pinout gut anschaut und meine Bilder. Auf meinen Bildern ist die Kerbe des Muxers LINKS, also Pin 1 links unten und Pin 13 rechts oben!Ich hatte nur 10 LEDs angeschlossen, und daher müßtet Ihr im Code den LED-Zähler ganz am Anfang auf die von Euch verwendete Zahl einstellen. Ansonsten werden ggf zu wenige LEDs angesteuert.CodeDer von mir geschriebene Beispielcode macht folgendes. Er definiert zwei Arrays. Einer wird für die S-Pins genutzt, deren physische Nummern auf dem Arduino dort hinterlegt sind.Der andere enthält die Steuermuster, also die Umsetzung Y-Pin zu binärem Steuerwert für die S-Pins.Der Rest ist in der Main Loop eine Schleife die über alle Kanäle weggeht (1 bis max LED), und in der wiederum dann über die zweite Schleife darin der Binärwert umgesetzt wird auf die S-Pins.Eine while-Schleife gibt dann ein 4-mal loopendes PWM Signal auf den Signalpin – bei mir Arduino #3. Dies wird dann am jeweiligen Muxerkanal ausgegeben. Modifikationsmöglichkeiten habt Ihr viele. Ihr könnt z.B. die PWM-Schleife rausnehmen und nur einmal ein anschwellendes LED Signal ausgeben, das sieht “schöner” aus.Bilder – so siehts bei mir ausVollaufbau, diesmal autark, mit Akkus ohne PCBraun -> Ausgang Muxer zu LEDsBlau -> S-Pins (setzen des Ausgangs)Orange -> Ausgabesignal (PWM)grün/rot -> Spannungsversorgunghttp://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2117-p1030085-multiplexer.jpgDetailaufnahmen http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2118-p1030086-multiplexer.jpgWas ein Gewurschdl…http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2119-p1030087-multiplexer.jpgSo sieht die Kathodenseite der LEDs aus, wenn man zu wenig einheitliche Drahtbrücken hathttp://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2120-p1030088-multiplexer.jpgAusblicke / ModifikationenGrundsätzlich kann man natürlich jetzt alles ausgeben, was man will. Man kann z.B. kein PWM Signal ausgeben, sondern bspw ein Relais ein oder ausschalten. Das wäre zum kaskadierten Einschalten von Verbrauchern interessant, oder wenn man einen Rechnerpark resetten möchte 😀 Siehe Super BOINC FredWas natürlich auch geht ist, Multiplexer-Y-Pins EINzulesen. Dafür modifiziert man den Code entsprechend und programmiert den Signalpin (#3, wir erinnern uns) auf einen Analog-Input. Dann kann man z.B. auch einige Potis einlesen.Man kann mit einer solchen Lösung auch den Seriell-ausgang des Arduino auf verschiedene Gegenstellen klemmen. Ob man die Muxer kaskadieren kann, weiss ich aktuell nicht, es sollte aber gehen. Es wäre auch eine Kombination aus Schieberegister und Muxern denkbar.Denkt aber dran, dass beim Muxer immer nur EIN Kanal zur selben Zeit das Signal führen kann. Viel Spaß beim Nachbauen.

    • #900661
      orw.Anonymous
      Teilnehmer

      sry icnr: :fresse: [YT]rOm61C3zpic&feature=related[/YT]

    • #900678
      spokekiller
      Teilnehmer

      2SRonin;467970 said:
      sry icnr: :fresse:

      Erinnerte mich stark an “DriveMusic” zu 64er Zeiten, wo man die Schreib-Leseköpfe der 1541er Floppydrives auch vibrieren lassen konnte um Musik zu machen.

      Immer wieder nett. 😡

    • #900849
      ThaRippa
      Verwalter

      So…gerade hab ich meinen Arduino bestellt. Für etwa 16€ aus China…mal sehen on welchem Monat der ankommt. Bald sind wir zu zweit. Dann darfst du mich hier supporten, freust du dich schon? :devil:

    • #900861
      spokekiller
      Teilnehmer

      ThaRippa;468174 said:
      So…gerade hab ich meinen Arduino bestellt. Für etwa 16€ aus China…mal sehen on welchem Monat der ankommt. Bald sind wir zu zweit. Dann darfst du mich hier supporten, freust du dich schon? :devil:

      Ja aber klar doch, wir bilden dann die Arduino-Freak-Ecke hier. 😀

      Sag mal woher genau Du Deinen besorgt hast, wahrscheinlich ebay, wie ich vermute? Und welches Modell hast bestellt?

      Laß Dir doch nicht alle Würmer aus der virtuellen Nase ziehen. 😆

    • #900917
      ThaRippa
      Verwalter

      Den hier. Hoffe natürlich zu dem Preis was benutzbares zu bekommen. Ethernet shield gibts irgendwann später…arduinos mit ethernet drin gibts anscheinend noch nicht wirklich zu kaufen.

    • #901961
      ThaRippa
      Verwalter

      Heute ist er angekommen, und er kann schon mit seiner LED im Sekundentakt blinken :DMal sehen wann ich dazu komme, mehr zu machen. Erste Frage in den Raum: Ich möchte alle…sagen wir 10 Sekunden einen Impuls auf einen digitalen Pin haben. Wie mach ich das, wenn nebenher noch zig andere Sachen gemacht werden? Delay() entfällt ja…Wunschliste an Funktionen, die ich mit meinem Duemillanove nach und nachabdecken möchte:- Impuls für den digitalen Schlüsselanhänger- Wassertemperatur messen- Lüfterdrehzahl messen- Lüfter der Radiatoren nach der Wassertemperatur regeln (wenn lautlos möglich mit PWM), möglichst intelligent. Das heißt PID tut nicht Not, träge wie das System ist, aber ich möchte dass der das Wasser versucht auf sagen wir mal 35°C zu halten, dabei aber nicht über 900u/min auf die Lüfter gibt.- Temperatur, Drehzahl, und später mehr auf meinem Noritake-VFD anzeigen- LEDs Testweise per PWM bestromen, Verhalten bei gepulster Überspannung (wie in KFZ-Rückleuchten) erforschen- LEDs der Gravur (siehe Avatar) per PWM in der Helligkeit regeln – hier wird oben erforschtes wohl eher nicht gebraucht…aber wer weiß?

    • #902091
      spokekiller
      Teilnehmer

      ThaRippa;469390 said:
      Heute ist er angekommen, und er kann schon mit seiner LED im Sekundentakt blinken 😀

      Mal sehen wann ich dazu komme, mehr zu machen. Erste Frage in den Raum: Ich möchte alle…sagen wir 10 Sekunden einen Impuls auf einen digitalen Pin haben. Wie mach ich das, wenn nebenher noch zig andere Sachen gemacht werden? Delay() entfällt ja…

      Hi, aufgrund abgekratzter Linuxinstallation und bissl anderen Real Life Sachen bin ich diese Woche mal wieder zu nix gekommen.

      Die Frage von oben kann ich so leider auch noch nicht beantworten. Das System beherrscht durchaus Interrupts, aber ist ja ansonsten durch die main-loop definiert. Auch wenn man Prozeduren/Funktionen einsetzt kommt man ja nicht wirklich weiter… Ich müßt auch mal nach nem Beispiel suchen, denn zwecks Aufbau einer Sirene mit Blaulichtern für meinen Neffen (6 Jahre) wäre das auch interessant.

    • #902092
      spokekiller
      Teilnehmer

      Doppelpost, wußte doch ich hab erst letztens zu dem Thema die Basics irgendwo gesehen :Dhttp://www.arduino.cc/en/Tutorial/BlinkWithoutDelayDie AVRs sind per se Multitasking-fähig. Sind also schon mal gute Voraussetzungen.

    • #902323
      spokekiller
      Teilnehmer

      Hallo an alle, die hier eben mal reinschnuppern oder auch regelmäßig mitlesen.Ich bin momentan mit anderen Sachen ausgelastet und komme leider nur selten zum Basteln mit dem kleinen Arduino. Es kann durchaus sein, dass es das nächste Update erst wieder Mitte Oktober geben wird.Der Thread ist nicht tot, und mein Interesse am Arduino nicht geringer geworden. Ich will erst ein paar andere Sachen aufarbeiten und plane auch noch ein Revival der Shift ICs, denn ein gewisser Matt hat eine sehr interessant wirkende Lib zur Verfügung gestellt, mit der der Nutzen von Shifting ICs für Modder extrem steigt!Außerdem muß ich mir wohl mehr Gedanken ums Multitasking machen und das Thema “Remote Controller” für Renovation liegt ja auch noch hier rum. Langweilig ist was anderes… :DWenn was wäre, einfach hier posten oder PM’en. Wenn ich nicht grade außer Landes bin beantworte ich alles innerhalb 24h.Liebe Grüße,Spoke

    • #902325
      ThaRippa
      Verwalter

      Dann übernehme ich mal. Ich habe gestern begonnen, Mein VFD anzuklemmen, und hatte seriell ein wenig Erfolg (Buchstabensalat, besser als nix). Will es heute mal parallel probieren, denn dafür gibts schon Code, wo die Steuersignale für Noritake-Displays stimmen. Den will ich dann wenns geht auf seriell ummünzen, denn ich brauch keinen großen Zeichendurchsatz, und will ungern 4-6 Digitalausgänge verwenden, wenns auch mit einem geht. Ich aktualisiere bei Erfolg diesen Post.

    • #902416
      einball
      Teilnehmer

      Diese Library .. Sprichst du zufällig von der Hardcore “Wir steuern mal 600 LEDs farbwechselnd an” Library? :)Ich bekomme demnächst auch einen Arduino. Mittlerweile bin ich überzeugt, dass sich das einfach nicht lohnt, immer von ganz von vorne anzufangen. Vor allem nicht, wenn man nur solche kleineren Projekte macht. Dann kommt von mir auch noch ein bisschen.http://hackaday.com/2011/07/20/output-up-to-768-pwm-signals-from-one-arduino/

    • #902419
      ThaRippa
      Verwalter

      Meinst du mich? Ich hab gar nix von ner Library gesagt? Mein VFD gibt jetzt menschenlesbares aus, allerdings stellt es die steuersignale (setcursor z.b.) als kryptische Zeichen dar, statt sie auszuführen. Hab das erstmal aufgegeben, bis ich Leute hab, die mir da weiterhelfen. Immerhin weiß ich noch recht wenig über die ganze Coderei. Werd als nächstes die Sache mit dem Schlüsselanhänger baun – möglichst ohne delay.

    • #902426
      spokekiller
      Teilnehmer

      einball;469894 said:
      Diese Library .. Sprichst du zufällig von der Hardcore “Wir steuern mal 600 LEDs farbwechselnd an” Library? :)Ich bekomme demnächst auch einen Arduino. Mittlerweile bin ich überzeugt, dass sich das einfach nicht lohnt, immer von ganz von vorne anzufangen. Vor allem nicht, wenn man nur solche kleineren Projekte macht. Dann kommt von mir auch noch ein bisschen.http://hackaday.com/2011/07/20/output-up-to-768-pwm-signals-from-one-arduino/

      @ThaRippa -> Nee, nee… einball hatte mich gemeint.Die kannte ich noch nicht. Mir gefällt die Idee. Nicht, dass ich das bräuchte, aber cool ist es allemal.Ich hatte auch den Namen verdreht. Adam, so der Name, von bildr hatte eine Lib geschrieben, die das Ansprechen einzelner Positionen auf den Shifties einfacher macht. Die wollte ich mir nochmal näher ansehen. Das könnte uU interessant werden, wenn des Neffen Kettcar zwei Polizeiblitzer nach vorne “bräuchte” … harrrrr.Andere Frage: wie bekommt der denn das PWM Signal über die Shifties? Das sind doch keine Multiplexer… hat jemand einen Schaltplan gesehen? Ich finde nix. So sehr ich hackaday mag aber die Seite ist brutal unübersichtlich.Würde mich schon interessieren, was er genau da macht. Vielleicht steh ich auch grad wieder auf der Leitung und denk in die falsche Richtung…Und nochmal zu einballs Aussage: das ist es, was mir eben am Arduino so gefällt: schnell mal ne Idee einfachst umsetzen und viel Möglichkeiten auch für Leute ohne tiefes Wissen.Jetzt schau ich nochmal nach dem Zeugs von Elco Dingsbums…EDIT: habs gefunden, hab mich mal wieder Irre führen lassen…Auch nach Schnellstudium des Forums ist mir schleierhaft, wie er genau die software-ige PWM Simulation macht, sodass er eine einzelne LED HINTER einem Shiftoutput pulsieren lassen kann….

    • #902430
      Horstelin
      Teilnehmer

      hätte jetzt gedacht dass du nur auf PIC/Atmel setzt 😛

    • #902448
      phil68
      Teilnehmer

      Sehr interessant :d: Ich verfolge das schon eine Weile und muss sagen, dass macht Lust auf mehr!

      Andere Frage: wie bekommt der denn das PWM Signal über die Shifties? Das sind doch keine Multiplexer… hat jemand einen Schaltplan gesehen? Ich finde nix. So sehr ich hackaday mag aber die Seite ist brutal unübersichtlich.

      Ich denke mal auf den Seiten sollte alles dabei sein:

      http://arduino.cc/forum/index.php/topic,66988.0.html

      http://www.elcojacobs.com/shiftpwm/

      …hier der Schaltplan:

      http://www.arduino.cc/en/Tutorial/ShiftOut

      Grüße DirkEDIT: Link korrigiert 😉

    • #902456
      spokekiller
      Teilnehmer

      Hallo Dirk, Danke nochmal für die Hinweise… ich habe mir das zwischenzeitlich mal genauer angesehen. Soweit ich das erkenne nutzt er ein relativ komplexes Verfahren, um die Shift-Register Ausgänge oszillieren zu lassen.Im Prinzip eine faszinierende Idee. Üblicherweise (so würde ich jetzt mal sagen) denkt man bei den SR ja erst mal nur an eine rein digitale Ausgabe, also LED an oder aus und dazu dann eben an die “Musterbildung”.Sieht man ja recht gut in meinem Beitrag etwas weiter oben.So irre schön diese Sachen mit LEDs ja immer sind, so wenig wirklichen praktischen Nutzen ziehe ich dann für mich auch wieder daraus. Wenn man nicht grade wie unser Freund ThaRippa einen Yin-Yan zu beleuchten hat oder sowas… :DAber nochmal: die Umsetzung und alleine die Idee von elco ist sensationell. Die Beschaltung entspricht der meinen, aber eben kasakadiert. Man kann das ja auf seinen Fotos schon gut sehen und in seiner Beschreibung erläutert er – wenn auch erstmal nur vage – dass er mit einem zeitkritischen Vorgang arbeitet und die PWM komplett in Software löst.Eine ähnliche Vorgehensweise wäre es, Muxer zu nehmen, dann könnte man das PWM-Signal in so schneller Folge durchreichen, dass das menschliche Auge (bzw Hirn) keine “Trennung” mehr erkennt. Nur der Gedanke ist zu kurz angelegt, weil man nur mit den Muxern ja aufgrund des hohen Bedarfs an Controlpins nicht weit kommt. Den Preisunterschied find ich dabei noch vernachlässigbar, wenn man solche nimmt wie ich zuvor.Ich werd demnächst unbedingt eine Mini-Version des Arduino für einen kompakten Einbau umsetzen müssen. Ich bin mal neugierig wie mir das gelingen wird. Ist an sich nicht neu, findet man in verschiedenen Versionen im Web (je nach Generation des Arduino auch). Vorstellen werd ich es auch wieder, und wenn nur um andere aus meinen Anfängerfehlern lernen zu lassen.Die nächsten Tage haben wir Besuch aus Japan, ich werd also wohl eher nicht so oft reinschauen können.In diesem Sinn また、ね。^_^/

    • #902589
      phil68
      Teilnehmer

      Mittlerweile bin ich, nach ausgiebigem Studium des Themas, nicht drumherum gekommen ein Arduino zu bestellen. Für mein nächstes Projekt hast du eigentlich in deinen Tutorials schon fast alles drin, was mir so vorschwebt :d:
      Sollte ich Probleme(mit Sicherheit) und Fragen zum Programmieren haben, werde ich mich vertrauensvoll an dich wenden 😀 Bin schon auf dein nächstes Tutorial gespannt!

      Ich werd demnächst unbedingt eine Mini-Version des Arduino für einen kompakten Einbau umsetzen müssen.

      Das sollte nicht zu schwer sein! Wenn man auf die Spannungsregler und USB verzichten kann, sind das gerade mal 6 Bauteile…

      Für Anfänger wie mich sind dies hier recht interessante Seiten:
      http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?board=deutsch
      http://www.freeduino.de/
      http://www.arduino-tutorial.de/

      Grüße Dirk

    • #902862
      spokekiller
      Teilnehmer

      phil68;470088 said:
      Mittlerweile bin ich, nach ausgiebigem Studium des Themas, nicht drumherum gekommen ein Arduino zu bestellen. Für mein nächstes Projekt hast du eigentlich in deinen Tutorials schon fast alles drin, was mir so vorschwebt :d:

      Gut! Noch einer mehr in der Clique mit “Hand am Gerät” 😀 …. find ich Klasse. Und Danke für das Lob … freut mich sehr dass ich die Geschmäcker bisher getroffen habe.

      phil68;470088 said:
      Sollte ich Probleme(mit Sicherheit) und Fragen zum Programmieren haben, werde ich mich vertrauensvoll an dich wenden 😀 Bin schon auf dein nächstes Tutorial gespannt!

      Ochjo, ganz ehrlich Phil, nachdem was ich von Dir im SuperBoinc Thread sehe bist Du sicher keiner von den unbedarften Jungs mit zwei linken Händen. :respekt:
      Aber ich helf natürlich immer gerne (wenn ich es selber raffe)…

      Und der abgespeckte Duino ist auch easy, das stimmt. Den FTDI USB-seriell Umsetzer lass ich weg und werde mir wohl demnächst noch den Universalprogger von fischl holen http://www.fischl.de/usbasp/. Dann progg ich das Baby über ISP ooooder, aber das muss ich noch austesten, direkt über die seriell-Pins (jetzt weiss ich nur nicht mehr exakt jetzt, ob diese Pins womöglich am Wandler hängen).

      Was mich jetzt noch interessieren würde…. wer hier ätzt seine Platinen selber und würde mir ein Layout, wie das angehängte mal in einer gewissen Auflage anfertigen wollen und können. Ich würde das dann als Material für die Community nehmen, und dann könnte man durch Erhebung eines geringen Obulus die Produktionskosten gegenhalten. Ich würde dem “Ätzer” das im Voraus entrichten.

      Der Vorteil wäre, dass die Arduino-Freaks hier für kleine feste Projekte für einen deutlich geringeren Preis ihre Eigenentwicklungen fest in Betrieb nehmen können, und die teurere Arduino-Platine für das Prototyping bleiben kann.

      Das Layout ist fremd erstellt und das einzige was ich als Gößenreferenz sagen kann ist, dass das Pin-Spacing des IC Sockels 2,54mm hat. Unter Umständen muß ich das alles mit Target 3001 nochmal erstellen und dann könnte man die Boards fertig auch bei Conrads Leiterplattenservice bestellen…
      Das Bild ist spiegelverkehrt und diente dem Autor zur Nutzung der Bügeleisen-Methode (Tonertransfer auf Kupfer)…

      Ich bin die nächsten Tage bis fast Mitte Oktober noch oft unterwegs und komm wohl wirklich nicht zu einem Tut mit Gehalt, also lass ich es… nicht weglaufen, ich komm wieder, keine Frage 😀

      Cheers

      Das Layout (zu groß um es anzuhängen): http://www.megaupload.com/?d=GBIC86PM

    • #902863
      phil68
      Teilnehmer

      Hi spokekiller,

      Dann progg ich das Baby über ISP ooooder, aber das muss ich noch austesten, direkt über die seriell-Pins (jetzt weiss ich nur nicht mehr exakt jetzt, ob diese Pins womöglich am Wandler hängen).

      Hier findest du die Beschaltung um den Atmel mit dem Arduino zu programmieren.

      Was mich jetzt noch interessieren würde…. wer hier ätzt seine Platinen selber…

      Ich 😉 Allerdings arbeite ich mit Lackstift und “Freihand”. Bei der Menge, die du vor hast lohnt es sich einen Platinen Service zu bemühen. (Da ich das sowieso vorhatte und wenn du möchtest, kann ich dir aber 2 Platinen mit anfertigen.)
      Hast du noch den Bestückungsplan für die Platine? Soweit ist das eigentlich recht übersichtlich… es fehlt wohl nur die Diode zum Schutz gegen Verpolung, bzw. wurde darauf verzichtet.

      Der Vorteil wäre, dass die Arduino-Freaks hier für kleine feste Projekte für einen deutlich geringeren Preis ihre Eigenentwicklungen fest in Betrieb nehmen können, und die teurere Arduino-Platine für das Prototyping bleiben kann.

      Prima Idee, ich hatte auch schon an so etwas gedacht :d:

      …und Danke für’s Lob 🙂

      Grüße Dirk

    • #903002
      spokekiller
      Teilnehmer

      Hallo,nur eben schnell für die ständigen Gäste. Die Beschaltung der Freilaufdiode in http://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform-post467573.html ist falsch.Phil68 hatte mich eben drauf hingewiesen. Bitte beachtet die zusätzlichen Hinweise am Beginn des Tutorials.Sorry für die Verwirrung, falls Ihr dennoch Probleme damit habt, fragt einfach hier nach.Bis bald,spoke

    • #901592
      phil68
      Teilnehmer

      Hier mal mein Test-Aufbau für die temperaturgeregelte Lüftersteuerung(incl. Not-Aus) für mein nächstes Bastelprojekt. Leider ist mein Breadboard(unwesentlich :D) kleiner als spokes, daher ist von den 3 Tempsensoren(1xCPU, 1xGPU, 1xGehäuse) der LED(simuliert Not-Aus) und dem MOSFET zur Ansteuerung des oder der Lüfters, nicht viel zu sehen. Jetzt fehlt eigentlich nur noch die Auswertung des Durchflusssensors und ich habe alles was ich brauch. Die gesammte Schaltug kommt dann auf eine neue Platine und wandert in meinen A05. (ich suche noch ein matx Tray O:-))

      http://www.abload.de/thumb/img_0284v7wf.jpg

      Dank des sehr gut beschriebenen Tutorials von spokekiller, konnte ich erste Erfolge erzielen :d: Mit ein wenig Einarbeitung lassen sich so, selbst von Noobs wie mir, eigene kleinere Programme schreiben.

      Ein Barebones-Arduino(incl. Spannungsregler 6-12V) hab ich heute fertig gestellt und dieses hat seinen Funktionstest erfolgreich bestanden. Es fehlen nur noch die beiden Keramik Kondensatoren, die ich ebenso falsch bestellt habe, wie die Stiftleisten. Das Layout werde ich noch etwas optimieren.

      http://www.abload.de/thumb/img_028867m7.jpg http://www.abload.de/thumb/img_0289v7jv.jpg http://www.abload.de/thumb/img_0291f7p2.jpg

      Grüße Dirk

    • #903071
      Renovatio
      Teilnehmer

      Sieht echt stark aus.

    • #903615
      phil68
      Teilnehmer

      Ich hab nochmal eine etwas kleinere Version(Abmaße Streichholzschachtel) entworfen, leider wieder nicht an die Breite des IC Sockels gedacht…

      http://www.abload.de/thumb/rev1u2eblc.png
      [SIZE=”1″]V1 vs. V2[/SIZE]

      phil68 said:
      Jetzt fehlt eigentlich nur noch die Auswertung des Durchflusssensors und ich habe alles was ich brauch.

      Die Auswertung des Sensors ist integriert 🙂 und funktioniert recht gut. Den Code werde ich hier noch einfügen. Sicher kann den ein Experte noch optimieren oder hilfreiche Tipps dazu geben, wie man das Ganze besser umsetzen könnte.

      Grüße Dirk

    • #903627
      spokekiller
      Teilnehmer

      phil68;471205 said:
      Ich hab nochmal eine etwas kleinere Version(Abmaße Streichholzschachtel) entworfen, leider wieder nicht an die Breite des IC Sockels gedacht…

      Sieht doch aber insgesamt ganz prima aus. Ich versteh allerdings nicht ganz das Sockelproblem. Paßt er denn nicht auf die vorgesehenen Bohrungen? Irgendwie sehe ich es nicht richtig.

      phil68 said:
      Jetzt fehlt eigentlich nur noch die Auswertung des Durchflusssensors und ich habe alles was ich brauch.Die Auswertung des Sensors ist integriert 🙂 und funktioniert recht gut. Den Code werde ich hier noch einfügen. Sicher kann den ein Experte noch optimieren oder hilfreiche Tipps dazu geben, wie man das Ganze besser umsetzen könnte.Grüße Dirk

      Weißt, so einige Monate nach den ersten Schritten kommt mir oft der Gedanke “hier könnte man noch…” und dann verwerf ich es meist doch wieder. Warum groß optimieren, wenn doch alles so funktioniert wie es soll. Wenn ich Deine Platinen jetzt so betrachte, dann bist du ja nicht weit weg vom MK-duino. Die Frage wäre für mich, ob es dann überhaupt noch Sinn macht, mit Target ein eigenes Layout zu entwerfen. Sollte ich allerdings Conrads Service wählen, dann komm ich nicht drumrum.Insgesamt ist das jetzt alles wunderbar kompakt geworden. :respekt:Ich freu mich noch auf die Details zu der MOSFET-basierten Schaltung.Achja, und ich bin wieder zuhause 😀

    • #670930
      braeter
      Teilnehmer

      Sehr Geil, hier macht sich auch jemand mit dem Arduino ans Werk.

      Ich hab ne Steuerung nachgebaut bei der man zuerst auf das Arduino Duemilanove gesetzt hat,
      jetzt aber auf das Seeeduino Mega, dem grösseren Speicher und der grösseren Zahl an Eingängen, wechselt.

      https://code.google.com/p/multidisplay/wiki/Build_a_Kit
      http://mdforum.designer2k2.at/index.php

      Ich baue die Anzeige mit Ladedrucksteuerung mittlerweile zum dritten mal nach. Die Löterei gefällt mir.

      Ich hab den Thread jetzt nur kurz angelesen, bin aber gespannt was Ihr da auf die Beine stellt. Heut Abend geb ich mir den ganzen Thread. Ich werds auf jedenfall nachbaun :d:

    • #620390
      phil68
      Teilnehmer

      Sieht doch aber insgesamt ganz prima aus. Ich versteh allerdings nicht ganz das Sockelproblem. Paßt er denn nicht auf die vorgesehenen Bohrungen? Irgendwie sehe ich es nicht richtig.

      Bei einigen Bauteilen ging mir der Platz aus ;)…hat aber noch gerade so gereicht.

      und dann verwerf ich es meist doch wieder. Warum groß optimieren, wenn doch alles so funktioniert wie es soll.

      …stimmt auch wieder!

      Wenn ich Deine Platinen jetzt so betrachte, dann bist du ja nicht weit weg vom MK-duino. Die Frage wäre für mich, ob es dann überhaupt noch Sinn macht, mit Target ein eigenes Layout zu entwerfen.

      Solange wir keine 50 Stück brauchen, könnt ich die auch so anfertigen.

      Wenn ich es auf die Reihe bringe, schick ich dir die 2 Versionen am Montag zu.

      Ich baue die Anzeige mit Ladedrucksteuerung mittlerweile zum dritten mal nach. Die Löterei gefällt mir.

      Ja, irgendwie hat mich jetzt, durch den Arduino, auch wieder der Bastelwahn gepackt 😀

      Grüße Dirk

    • #668892
      spokekiller
      Teilnehmer

      Solange wir keine 50 Stück brauchen, könnt ich die auch so anfertigen.

      COOL. Nein, ich denke so viele werden es nicht sein müssen. Mal sehen, wer von den Mitlesern noch mit aufspringt….

      Wenn ich es auf die Reihe bringe, schick ich dir die 2 Versionen am Montag zu.

      Ich bin begeistert! Ich muß mal sehen, wie es die nächsten Wochen so läuft. Ist ja einiges aufgelaufen an Vorstellungsmaterial und konkreter Umsetzung. Außerdem könnte meine Internetbox nen Umbau und ein “Pimping” mit nem Arduino für die Lüfterkontrolle in Abhängigkeit von der Pico Temperatur etcpp.

      Ich baue die Anzeige mit Ladedrucksteuerung mittlerweile zum dritten mal nach. Die Löterei gefällt mir.

      Ja, irgendwie hat mich jetzt, durch den Arduino, auch wieder der Bastelwahn gepackt 😀

      Das ist ja das, was ich zwischendurch mal erwähnt hatte. Weil es so unfaßbar simpel ist, schnell zu einem konkreten Ergebnis zu kommen, macht es soviel Spaß. Wenn man dann erst mal Hand anlegt möchte man plötzlich jeden Mist mit einem Arduino aufmotzen… 😀

      Das Ladedruckprojekt hatte ich ganz zu Anfang meiner Arduinozeit mal gestreift, v.a. auf der Suche nach Infos zu Sensorik und LCDs. Da ich mich aber wenig für Autos begeistere (eher für MTBs, aber wo bring ich da nen Arduino unter?) habe ich mich nur kurz dort aufgehalten. Und außerdem, ein Citroen Xsara II mit LLK? Wo gibts denn sowas? Die alte Kiste muß noch ne Weile halten. [-X

      Danke Dir nochmals Dirk für die viele Hilfe mit den Platinen! :banana:

      Gruß Micha

    • #903845
      cooler
      Teilnehmer

      Hallo zusammen,

      super das es noch Arduino begeisterte auch im PC-Forum gibt.
      Ich habe vor einen Jahr die Komplette Steuerung (2 Schrittmotoren) für mein Teleskop mit Arduino gebaut. Funktioniert bis heute super.

      Hier ist ein Video aus meine Testphase..
      Hier wird ein Stepper mit Nunchuk(WII) gesteuert. Das Endprodukt bestehe aus 2 Motoren die über Nunchuk gesteuert werden können (Per Joystick oder per Neigung)
      http://www.youtube.com/watch?v=3kDeQFMQDFE

    • #904145
      phil68
      Teilnehmer

      @cooler
      Feine Sache :d:, kannst du dazu mal hier den Code einstellen?

      Da der MK-Duino ja in seinem jetzigen Zustand keine Kommunikation mit dem PC zulässt und der ATMEGA im Arduino mit Sketchen bestückt werden muss, hatten spokekiller und ich scheinbar die selbe Idee, einen RS232-TTL Wandler preiswert aufzubauen.
      Ich bin zufällig über eine Seite gestolpert, bei der ein handelsübliches Nokia-USB Kabel dafür modifiziert wurde. Sollte das ohne größeren Aufwand machbar sein, hätten wir eine sehr preiswerte Lösung, die mit wenig Aufwand umzusetzen ist. Das Kabel kostet neu unter 4€(mit Versand) sodass wir bei den Gesammtkosten für ein MK-Duino von nicht mal 14€ ausgehen können.

      Sollte Interesse an einem Pseudo Arduino bestehen, hätte ich hier noch einige Exemplare rumfliegen 😉

      Hier habe ich noch einen sehr interessanten Ansatz für eine temperaturgesteuerte Regelung gefunden, die ich unbedingt noch austesten muss!

      Grüße Dirk

    • #904161
      ThaRippa
      Verwalter

      Man darf halt nur nicht darüber nachdenken. Das kostet 16€ inklusive Versand und man bekommt sogar gleich ein USB-Kabel dazu. Eure Version ist kleiner, das fetzt natürlich.

    • #904178
      spokekiller
      Teilnehmer

      ThaRippa;471894 said:
      Man darf halt nur nicht darüber nachdenken. Das kostet 16€ inklusive Versand und man bekommt sogar gleich ein USB-Kabel dazu. Eure Version ist kleiner, das fetzt natürlich.

      Ich will keinen Glaubenskrieg anzetteln, aber das ist eben auch “nur” der alte Duemilanove. Ja ich weiß, das macht in der Diskussion an sich keinen Punkt, da der Uno oder andere neuere ja auch nur den FTDI Chip als Bonus voraus haben.

      Ich finds dennoch cooler, für kleine Projekte eine noch kompaktere und gleichermaßen Leistunggstakre Version zu haben. Für den Einsatz in einem PC liegen wir mit einer kompakten Variante des MK-Duino sogar noch drunter, da man auch auf den Spannungsregler und die zwei Elkos, wie auch die Diode verzichten kann. Im PC kann der Kleine direkt aus 5V gespeist werden.

      Den Preiskampf an sich gewinnen wir sicher nicht mit dem MK-Duino, aber darum gehts dabei auch nicht. Es ist wie bei allen Selber-Mach-Aktionen hier im Forum: wir findens toll, weil wir jetzt wissen (a) wie es geht (b) wie wir es wieder machen können (c) wir gezeigt haben, dass es jeder kann, der will.

      Ansonsten, was die Programmerei angeht, wäre ein FTDI-USB Kabel, wie das modifizierte Nokia wohl die beste Lösung, denn mit der neuen IDE kann man nur über Umwege via einen RS232-TTL Wandler proggen. Wenigstens kann ich ihn aber nutzen um Debugging über die seriellen Pins des ATMega auszuwerten oder Kommandos zu schicken.

      Natürlich bliebe auch noch die Möglichkeit, die SCK/MISO/MOSI ISP Progging Schnittstelle der Chips über einen Flasher zu nutzen, aber das ist deutlich unbequemer als die FTDI-Kabel-Methode.

      Sparkfun und ladyada bieten solche Kabel bzw Mini-Breakouts für die Boarduinos auch an… das sieht auch toll aus, ist aber teurer.

      Ich bin leider immer noch recht stark erkältet und hab mich hierzu kurz aufgerafft. Sorry, aber das wird sich wohl noch hinziehen.

      Bis dann

    • #904255
      cooler
      Teilnehmer

      phil68;471878 said:
      @cooler
      Feine Sache :d:, kannst du dazu mal hier den Code einstellen?

      Eigentlich JA, aber das Hauptprogramm hat so um 650 Zeilen Code!
      Es implementiert die Kontrolle für zwei Motoren und handelt die Steuerung auch über “ASCOM” Treiber. Es ist sehr Teleskop spezifisch und für normale Nutzer nicht zu gebrauchen.

      Ich könnte aber so bestimmte Funktionalitäten ausschneiden und hier posten, falls gewollt.

      Ich habe auch Code was 4 Servo Motoren ohne zusatz Platinen ebenso mit nunchuk bewegt. (4 Wheels Drive Roboter).

    • #904385
      Renovatio
      Teilnehmer

      @spokekiller: Wie schaut es mit dem WOL aus im Internen Netzwerk? Funktioniert es?

    • #904399
      spokekiller
      Teilnehmer

      Alles klar. Dann hatte ich das richtig in Erinnerung. Ich kümmer mich drum. Wird sicher keine Schönheitsrekorde gewinnen, aber funktionieren.

      Cheers

    • #904397
      Renovatio
      Teilnehmer

      spokekiller;472140 said:

      Renovatio;472130 said:
      @spokekiller: Wie schaut es mit dem WOL aus im Internen Netzwerk? Funktioniert es?

      Ähm, ja… ich war einfach zu beschäftigt. Es ist ohnehin kaum was gegangen bei mir die letzten Wochen, Arduino schon gar nicht. Dann noch die Mörder-Erkältung, die sich GSD so langsam verdrückt, naja…. : /

      Ich denk schon dass es geht. Ich hatte Beipielcode gefunden, der gut aussah. Wenn ich mich richtig erinnere wolltest Du ne Art Webseite vom Arduino hosten lassen, worüber Du die WOL Kommandos an Deine Rechner schicken kannst, korrekt? Ggf sei so nett und beschreib nochmal genau, was Du Dir vorstellst.

      Danke und sorry

      Kein Problem. Kann man halt nichts machen wenn man erkältet ist.
      Also es war geplant eine Art Webseite zu machen, wo ich Verschiedene Rechner starten kann.

      Mehr war das nicht.

      Gruß,
      Andre

    • #904395
      spokekiller
      Teilnehmer

      Renovatio;472130 said:
      @spokekiller: Wie schaut es mit dem WOL aus im Internen Netzwerk? Funktioniert es?

      Ähm, ja… ich war einfach zu beschäftigt. Es ist ohnehin kaum was gegangen bei mir die letzten Wochen, Arduino schon gar nicht. Dann noch die Mörder-Erkältung, die sich GSD so langsam verdrückt, naja…. : /

      Ich denk schon dass es geht. Ich hatte Beipielcode gefunden, der gut aussah. Wenn ich mich richtig erinnere wolltest Du ne Art Webseite vom Arduino hosten lassen, worüber Du die WOL Kommandos an Deine Rechner schicken kannst, korrekt? Ggf sei so nett und beschreib nochmal genau, was Du Dir vorstellst.

      Danke und sorry

    • #904568
      spokekiller
      Teilnehmer

      Kleines ProjektupdateZur Programmierung der DIY-Arduino bzw MK-Duino Versionen werde ich am Montag den USBASP Programmer bestellen. Den kann ich außerdem auch noch gut gebrauchen um ein weiteres AVR Projekt umzusetzen (USB-Adapter für Hitachi LCDs).Für die Verwendung des USBASP muß man lediglich die programmer-config der Arduino IDE anpassen, danach tut er ganz normal. Für unter 20€ inkl Versand mE eine gute Wahl. Damit kann man dann auch DIY-Duinos ohne USB-FTDI Chip ohne große Macken proggen (SCK/MOSI/MISO). Mini-Tut kommt bestimmt.Für die oben von Phil erwähnte Lüftersteuerung habe ich heute noch ein paar Teile bestellt, unter anderem einen Drehencoder. Den Code habe ich mir mal genauer angesehen. Besonders interessant ist dabei die Verwendung von Interrupts und die Anwendung eines Drehencoders (Drehimpulsgebers). Wissenschaftlich interessant ist der Delta-Kram, mit dem die Kennlinie bestimmt wird. Dazu wirds dann hier definitv wieder ein Tut im bekannten Stil geben.Ich konnte heute nach einiger Handarbeit die Sirene für meinen Neffen fertigmachen und ganz ehrlich, ich bin froh, daß es vorbei ist. Ich hab Ewigkeiten gebraucht, alles auf eine normale Lochrasterplatine zu bekommen. Wahrscheinlich auch deshalb, weil ich ohne Skizzen zur Vorbereitung einfach drauflosgemurkst habe.Das Debugging hat dann sicher auch 1/3 der Zeit gekostet. Zweimal wars eine fehlende Brücke und einmal ne kalte Lötstelle.Außerdem hat viel Zeit gekostet, den Spannungsregler-Anteil einzusetzen und später wieder komplett zu entfernen, weil ich feststellen mußte, dass eine 9V Blockbatterie viel zu wenig Bumms hatte, um das Projekt sauber zu betreiben. Fazit dieser Aktion…. hätte ich einfach nur die Platine aus Phils Hand als Basis gehabt hätte ich zwar mehr gehabt als ich bräuchte, aber wäre in weit weniger Zeit fertig gewesen. Wie gesagt, es mag daran liegen, dass ich wenig vorbereitet war und wenig Erfahrung im LRP-Löten habe, aber naja.Ich war einmal kurz davor die Mini-Version von Phil zu verbauen, aber die beiden sind aktuell noch für was anderes verplant.Ansonsten läuft jetzt alles perfekt. Jetzt müssen nur noch die Einzelteile ins Gehäuse verbaut werden und das Gehäuse auch bearbeitet werden. Wird mich mit meinen Mitteln sicher nochmal nen Nachmittag kosten.Beinahe hätte ichs vergessen. Aus dem Sirenenprojekt habe ich einige sehr interessante Erfahrungen zum Aufbau von “Wahlschaltern” auf den Analogports mitgenommen. Da kann man viel mehr falsch machen, als man glaubt. Auch dazu sollte ich wohl was posten. Wohl als Erstes, weil das sehr schnell gehen sollte, und hier auf ‘nem Breadboard noch ein Testaufbau rumfährt.Naja, und dann gibts ja immer noch das hier rumdümpelnde Projekt mit dem Ethernetshield. Viel gemacht habe ich außer einigen REST-Implementationen damit noch nicht. Und Renovatio soll ja auch nicht ewig warten.Dann noch die Tatsache, dass die Teile für eine Dallas-I²C-Echtzeituhr hier rumfahren, die man mit dem Arduino nutzen kann und die in Punkto Meßwrterfassung sicher gute Dienste leistet.Und fast zu guter Letzt, wollte ich mit den MK-Duinos und dem RS232-TTL Wandler testen, wie man Werte zum PC schicken kann, bzw Kommandos empfangen kann.Das Projekt Herbsterkältung läuft auch ganz toll… meine geht kaum weg, jetzt hab ich wohl auch noch ne Mittelohrentzündung und meine Frau ist jetzt auch fix und fertig, wobei selbige ansonsten zäh wie Juchzenleder ist. :DSieht doch gut aus. 😀

    • #904571
      phil68
      Teilnehmer

      Hi spokekiller,
      bei mir sind die Teile für die Regelung Gestern schon gekommen. Leider bin ich ab Montag im Urlaub und kann die Schaltung mit dem Impulsgeber nicht mehr testen. Scheint wirklich eine interessante Sache zu sein.

      Ich war einmal kurz davor die Mini-Version von Phil zu verbauen, aber die beiden sind aktuell noch für was anderes verplant.

      Ich hab hier noch ein paar fertige Versionen rumliegen. Solltest du noch Bedarf haben, sag einfach bescheid 😉

      Ich habe mir inzwischen auch ein paar Projekte raus gepickt, die für mich interessant sind. Unter Anderem auch eine Uhr(DS 1307 RTC und LCD), ein LED Cube 4x4x4 , die Anbindung des Arduino über einen RS 232 Wandler und die Anbindung des LCDs mit nur 3 pins über ein Shift Register. Ich weiß zwar noch nicht, wann ich dazu komme, aber die Bastelei macht echt Laune 🙂

      Das Projekt Herbsterkältung läuft auch ganz toll… meine geht kaum weg, jetzt hab ich wohl auch noch ne Mittelohrentzündung

      Bei mir macht sich seit 3 Tagen auch eine Erkältung breit… wird doch keine typische Arduino-Krankheit sein 😀

      Grüße Dirk

    • #904591
      spokekiller
      Teilnehmer

      Tutorial #8 — Wahlschalter (wichtige Grundlagen)AnsatzNehmen wir mal folgendes an: unsere Schaltung/Code soll sich an einer bestimmten Zahl Schalterpositionen orientieren, der Einfachheit halber hier mal nur 3 Positionen. Wir nehmen als Grundlage einen normalen 3-Pin Schalter mit ON-OFF-ON Rasterung. Sprich, der mittlere Pin hat Kontakt zu den jeweils Äußeren in den Positionen außen und “liegt frei” wenn in Mittelstellung. Ergo, drei Positionen. (Für einen schnellen Nachbau ist ein solcher Schalter erstmal nicht wichtig.)Jetzt könnte man das ja irgendwie an Digipins klemmen und abfragen, aber das lassen wir schön bleiben, weil Digipins dafür (a) viel zu wertvoll sind und (b) die ja schon alle für Ausgaben belegt sein könnten.Wir nehmen also einen Analog-Pin. Hinter den Analogpins hängt jeweils ein A/D-Wandler mit 10bit Auflösung, was heißt, dass jeder Analog-Pin einfach gesagt 1024 Werte in 1-Schritten abbilden kann. Müßte man es also irgendwie schaffen, das mittels des Schalters auszunutzen…..Und das macht man so, indem man einen Widerstandsstrang aus identischen Widerständen aufbaut. In unserem Beispiel 1kOhm Widerstände.Wir verbinden +5V mit dem einen Bein von R1 und auf das zweite hängen wir den nächsten Widerstand R2 und so weiter. Wir brauchen jetzt nur mal drei 1K Widerstände. Das freie Bein des letzten Widerstands R3 legen wir auf Masse/GND. Damit haben wir eine Art Spannungsteiler aufgebaut. Noch nicht nachbauen, Ihr seht gleich warum.Jetzt müßte man also den mittleren Pol des Schalters auf den Masse-Pin legen und die anderen beiden jeweils auf die Übergänge zwischen den anderen Widerständen. Außerdem legten wir A0 (analog null) auf den Steckpunkt zwischen R1 und Masse.Würde man jetzt die Werte live abfragen und den Schalter umlegen, dann würde man verschiedene Werte bekommen und auch einen in der Nähe von Null. Schaut man aber genauer hin, dann bleiben die Werte alles andere als stabil.In dieser Konstellation “flattert” der Eingang nämlich sehr. Um dies zu verhindern, muß man einen weiteren Widerstand nehmen. Es sollte einer sein, der in der Gößenordung 2-3x der anderen Widerstände liegen sollte. Mehr ist nicht nötig, ich denke das Maximum sollte bei 10k liegen, sonst “prügelt” man den ADC nieder, wenn ich das Konzept richtig begreife. Müßte ich mal testen. Griff in die Kiste, siehe da 2,7kOhm (3,3 kOhm sollten auch gehen)Und bevor ich das mit Worten beschreibe kommt hier eine Skizze, die ist deutlich klarer:[code] analogPin +5 V | | | \ —————- / | \ 1K | / | \ |___ \____|-C- | SW2 | | | | \ | / | \ 1K | / | \ |___ \____|-B- | SW1 | | | | \ | / | \ 1K | / | \ | | |__/\/\/\__| -A- 2.7K | | | _____ ___ GND _[/code]Laßt Euch nicht von den “SWitches” täuschen. Tatsächlich sind dies nur “Kontaktstellen”. In meinem Ansatz von oben wäre der mittlere Kontakt auf -A- und die beiden anderen auf -B- und -C- … außerdem legen wir den Analogpin auf Punkt -A-.Na, kommt Ihr noch mit? Baut das einfach mal nach. Anstelle des Schalters nutzt Ihr auf dem Breadboard optional ein Freihandkabel, dessen eines Ende in -A- steckt und mit dem Ihr an Punkten -B- und -C- jeweils einstecken könnt.Die resultierenden Meßwerte bekommt Ihr im Serial Monitor der Arduino IDE mittles des u.a. Code angezeigt.**edit ** Bild http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture2209-teiler-p1040253.jpg[code]int analogPin = 0;int val = 0; // variable to store the value readvoid setup(){ Serial.begin(9600); // setup serial}void loop(){ val = analogRead(analogPin); // read the input pin Serial.println(val); // debug value delay(1500);}[/code]FunktionsweiseWas passiert denn nun da eigentlich? Nun, durch die Beschaltung mit dem zusätzlichen, “großen” Widerstand habt Ihr geschafft, dass der Analogeingang nicht flattert. Ich denke man nennt das einen Pulldown Widerstand. Damit landet Ihr, wenn ich mich jetzt nicht völlig vertue, in Mittelstellung (also ohne dass -A- woanders hin Kontakt hätte) auf Null als Wert. Die restlichen Werte für mein Beispiel lagen bei mir so ca bei 270 und 560. Und zwar reproduzierbar bombenfest. Zuvor konnte man gut sehen wie die Werte sehr unzuverlässig waren. Das kann man sich jetzt dann in IF-Bedingungen mit gewisser Bandbreite um die Meßwerte herum zunutze machen.NachteileNunja, legt man den Schalter um, dann wird die Veränderung erst erkannt, wenn die Abfrage des Werts das nächste Mal erfolgt. Das kann man abstellen, wenn man sich die Interrupts des Arduino zunutze macht. Ich halte mich damit aber noch ein wenig zurück, weil ich noch nicht genug Substantielles dazu sagen kann.Außerdem muß man die Werte für jedes Projekt individuell feststellen. Allerdings nicht wirklich richtiger Aufwand. Sodele, damit wäre dann schon mal ein offener Punkt weg von der Liste. Ich habe dieses Konzept erfolgreich für die Sirene für meinen Neffen genutzt. Der Schalterwechsel erfährt hier eine gewisse Totzteit, wenn ein Sirenenintervall lange ist. Für den Zweck aber völlig in Ordnung.Cheers

    • #904590
      loony
      Teilnehmer

      Hier vielleicht Anregungen für euch Arduino Begeisterte 😉

    • #904592
      spokekiller
      Teilnehmer

      loony;472364 said:
      Hier vielleicht Anregungen für euch Arduino Begeisterte 😉

      Danke, habs gestern beim Studium der aktuellen c’t gesehen und konnte nicht widerstehen 😀

      phil68 said:
      Ich hab hier noch ein paar fertige Versionen rumliegen. Solltest du noch Bedarf haben, sag einfach bescheid

      Super Angebot, vielen Dank!

      phil68 said:
      Ich habe mir inzwischen auch ein paar Projekte raus gepickt, die für mich interessant sind. Unter Anderem auch eine Uhr(DS 1307 RTC und LCD), ein LED Cube 4x4x4 , die Anbindung des Arduino über einen RS 232 Wandler und die Anbindung des LCDs mit nur 3 pins über ein Shift Register. Ich weiß zwar noch nicht, wann ich dazu komme, aber die Bastelei macht echt Laune

      Ja, die DS1307 habe ich für mich auch ausgesucht. Sind ja nicht viele Bauteile, die man dafür braucht. In der Liste kommt sie weiter hinten, weil die anderen Sachen aktuell einfach interessanter sind.
      RS232 kommt morgen oder übermorgen …(hoffentlich ;)) — sollte ja auch nicht viel sein. RX/TX auf die Pin 1 und 2 und ggf DSR auf RTS und CTS auf äh, ja … irgendwie so… und dann in der bash einfach den Krempel von der COM abgreifen 😀
      Das Schöne daran ist ja, dass man das auch in seinen Code einbauen kann, um Kommandos an den Arduino zu schicken oder Meßwerte, die dieser dann bspw in LED-Muster umsetzt. 😡

      Das mit dem LCD via Shifty und nur drei Pins klingt fein! Das möcht ich sehen!!! 8-[

      Wegen der Erkältung paß auf, das scheint echt zu grassieren. Soll an dem schnellen Wetterwechsel liegen. Bei uns “uffe Malooche” hats irre viele Leute mit den wildesten Formen von Schnodderseuche erwischt.

      Viel Spaß im Urlaub!

    • #904762
      Gonzogonzales
      Teilnehmer

      Moinsen,

      ein interessanter Thread habt Ihr hier.
      Oft findet man leider nur englische Foren zum Thema Arduino.
      Habe mich hier mal angemeldet und das ganze zu verfolgen und wenn
      möglich auch etwas beizutragen.
      Als Board habe ich einen Clone vom UNO ist aber gleich aufgebaut.
      des weiteren habe ich hier noch zwei ProMini, von denen einer seine
      Arbeit in einem WiiCopter verrichtet.
      http://www.scotchs-galerie.de/image/foto/WiiCopter/th_wiicopter_0009.jpg
      Bei dem UNO Board habe ich mir wahrscheinlich den Bootloader
      zerschossen oder den ganzen µC 😯 auf jeden Fall bekomme ich
      kein Sketch mehr drauf. 🙁
      Einen neuen µC habe ich hier noch liegen aber ohne Bootloader.
      Habe am Anfang des Thread gelesen das dieses hier auch erklärt wird.
      Aber entweder ich habe es überlesen oder es fehlt hier noch.
      Würde mich über ein paar Tipps freuen.

      Gruß Ingo

    • #889628
      spokekiller
      Teilnehmer

      Hallo Ingo,ja der Thread wurde praktisch als n00b-Tagebuch von mir gestartet. Ich denke, die meisten, die hier einsteigen werden weniger im Kopter- oder Robotiksektor heimisch sein. Meine Projekte haben einfach nichts damit zu tun, was aber ja nicht heißt, daß Du nicht das eine oder andere Brauchbare hier finden kannst. Dein WiiCopter sieht jedenfalls schonmal imposant aus.

      Bei dem UNO Board habe ich mir wahrscheinlich den Bootloaderzerschossen oder den ganzen µC auf jeden Fall bekomme ichkein Sketch mehr drauf.

      Jetzt mal zu Deinem Problem. Erklärt worden ist das flashen hier noch nicht wirklich. Da Du einen Pro Mini hast, hast Du leider aus meiner Sicht schon mal keine einfache Möglichkeit das zu richten.Also ich würde den Bootloader über einen Programmer flashen. Meiner ist noch in der Post, und alle ATMega328, die ich letztens bestellt hatte, haben den BL schon drauf. Das kostet mich kaum mehr als die Chips “roh” bei den einschlägigen Versendern zu ordern. Sieht bei großen Stückzahlen aber anders aus. Da machen 1€/St. Aufpreis schon schnell was aus.Das hilft Dir jetzt natürlich alles erstmal gar nicht, ich weiß.Für den Mini gibt es ein Tutorial auf der Arduino Seite: http://arduino.cc/en/Hacking/MiniBootloaderAber dort wird auch nur beschrieben, wie Du das über einen Programmer machst. Es geht schlicht nicht ohne. Auch ein einfaches Datenkabel oder FTDI Breakout wie es sie von Sparkfun bspw gibt (oder eine der vielen Handykabel-Basteleien), wird Dir m.W. nicht helfen, da diese nur mit der IDE tun, wenn bereits Bootloadercode drauf ist. Und dann können sie nur Sketches flashen, aber keinen Bootloader.Blöd ist das alles trotzdem, denn im Hintergrund nutzt die IDE ja auch nur AVRDude, um zu flashen, also sollte es doch irgendwie gehen, meine ich???Du kannst Dir jetzt entweder jemanden mit Flasher/Programmer suchen, der Dir das macht, oder einen kaufen (Preise je nach Modell zwischen 15€ und 300€), wobei der USBasp um 20€ zB schon ausreicht.Andere Alternative wäre, bei Läden wie Watterott oder Sparkfun oder wie sie alle heißen einen vorgeflashten Chip zu bestellen. Wenn Du aber so wie wir hier auch eigene Boards designst (viel ist das ja nicht, die zwei Kerkos, ein Quartz, paar Widerständle etc.), dann rate ich Dir zu einem Flasher.ODER, Du besorgst Dir gebraucht ein älteres Board und fährst damit die Prozedur analog Abschnitt 1 hier: http://arduino.cc/en/Tutorial/ArduinoToBreadboard ab… Den alten Arduino brauchst Du, weil der Uno nicht so genutzt werden kann.Was auch gehen müßte, wäre eine von Phil68’s Platinen als Arduino-Ersatz anstelle des Boards im obigen Tutorial zu nehmen.Die schnellste aber ist mE einen Chip mit BL zu bestellen, danach wäre die mit dem Progger noch die schönere, außer man wüßte, ob man einen von Phils Nachbauten nutzen kann (ich denke mal ja, man müßte wissen, warum der UNO nicht im Tutorial nutzbar ist, dann kann man sehen ob unser UNO-Spar-Nachbau die selbe “Macke” hat).Hilft Dir das?

    • #904772
      Gonzogonzales
      Teilnehmer

      Hallo Micha,
      erst mal vielen Dank für deine Antwort.
      Die Links werde ich mir gleich mal anschauen.
      Einen Flasher habe ich, einen als USB auf ISP 10Pol
      http://www.obd-shop.com/danila/product_details.php?id=356&lang=de
      und eine STK500, sollte ja ausreichen.
      Um mein Problem noch ein wenig zu erläutern, ich bekomme
      immer die Fehlermeldung beim Flashen dass das Board nicht zu erreichen
      ist. USB Port und Board sind aber richtig ausgewählt.
      Werde mal schauen ob ich mit Deinen Links weiter komme.

      Gruß Ingo

    • #904773
      spokekiller
      Teilnehmer

      Hehe,na da seh ich doch gleich einen Profi… schon bergeweise Hardware zur Hand. Okay, wenn ich das weiß, dass du da nicht unbefleckt bist….Wie gesagt, ich habs selber bisher nicht gemacht. Was ich auch nicht weiß ist, ob Dein Progger einen Eintrag in der programmer(s).txt für die IDE braucht. Beim USBasp ist das der Fall.Was ich mir aufgrund Deiner Beschriebung auch vorstellen könnte wäre entweder ein Problem mit der Verkabelung… (SCK/MOSI/MISO vielleicht irgendwas verdreht…?) oder ein Powering Problem?Die Tatsache, dass er sagt das Board ist nicht erreichbar ist schon seltsam und deutet für mich an sich auf ein “triviales” Problem hin. Das sag ich deshalb, weil die ICSP Pins auf dem Uno an sich direkt auf die SCK, MOSI und MISO Pins direkt am ATMega geroutet werden. Ich denke da war nichts dazwischen…Vielleicht ist es nur ne Kleinigkeit. Wenn Du aber schon so gutes Material hast, dann würde ich auch empfehlen eine Lösung wie in einem der Tuts anzustreben.Ich bin mal gespannt, wie gut ich mit dem Progging dann zurechtkomme.Halt uns mal auf dem Laufenden wie das für Dich ausgegangen ist.Viel Erfolg!**EDIT…. gehts bei der STK500 auch nicht? Weil da wird der Chip doch sicher direkt eingesetzt? Die Frage wäre dann auch noch wo man die Bootloader Hex Datei findet…?!?! Und wie ist das dann mit den fuses?!?! Alles nicht so einfach.

    • #904774
      Gonzogonzales
      Teilnehmer

      Hallo Micha,

      Ja was die Hardware betrifft sollte es reichen 😀
      Habe schon ein wenig Erfahrung beim Programmieren mit Bascom.
      Funktioniert auch mit den Arduino Boards und dem Bootloader.
      Die Fehlerbeschreibung aus meinem letzten Post bezog sich darauf,
      ein Sketch per Arduino GUI aufzuspielen und nicht auf den Bootloader.
      Mit dem STK500 sollte es auf jeden Fall gehen weiß nur nicht so recht,
      wie das mit den Fuse Bits ist. Die müssen ja auch angepasst werden
      wenn ich mich nicht irre.

      Gruß Ingo

    • #904784
      spokekiller
      Teilnehmer

      Aaaaaaaha!Na dann ist das ja gut ausgegangen. Den Akkulogger solltest Du im Detail vorstellen, so mit kleinem Schaltplan und Teileliste. Das könnte für einige Leute hier durchaus interessant sein. Für mich schon aus Neugier.Bilder machen das Ganze dann besonders schön! Tutorials schreiben ist nicht schwer. :DSchönes WE!

    • #904786
      Gonzogonzales
      Teilnehmer

      Schaltplan… die Platine mit dem Shund ist gekauft, wird etwas schwer.
      Aber Details und Fotos folgen.
      Morgen habe ich etwas mehr Zeit heute muss ich mich auf Halloween
      Party vorbereiten.
      Gruß Ingo

    • #904783
      Gonzogonzales
      Teilnehmer

      So das war ja ein typischer Fall von :doof:
      Man sollte sich halt mal angucken was für ein Chip drauf ist.
      Ich hatte da mal einen ATMega 8 drauf gesteckt welcher mit
      Bascom ohne Bootloader programmiert war. Dass das dann beim Flashen
      nicht klappt ist ja klar.
      Habe den Chip gewechselt und ein paar Test Programme probiert.
      Läuft alles.:banana:

      Des weiteren habe ich angefangen einen Akku Logger aufzubauen.
      Über 2 Analog Eingänge sollen Stromverbrauch und Akkuspannung gemessen werden.
      Für den Stromverbrauch habe ich eine kleine Platine mit einem Shund Widerstand und einem kleinen IC, am Ausgang kommt eine Spannung
      von 0-5V heraus. Max 50A können gemessen werden (0.1V = 1A)
      Für die Spannungsmessung habe ich einen einfachen Spannungsteiler mit 2 Widerständen um die Spannung von 3LiPo Zellen (11.1V) zu messen. Die Auflösung im Arduino beträgt 10Bit am ADC.
      Somit habe ich bei 0-1024 Steps ,entspricht 0,005V pro Step.
      Das ganze soll dann erst mal auf einem kleinem Display ausgegeben werden.
      Gruß Ingo

    • #904791
      0laf
      Teilnehmer

      Hätte da eine Frage 🙂
      Welches Display nehme ich am besten, wenn Arduino es seriell ansteuern soll?

    • #904795
      spokekiller
      Teilnehmer

      0laf;472594 said:
      Hätte da eine Frage 🙂
      Welches Display nehme ich am besten, wenn Arduino es seriell ansteuern soll?

      Hi Olaf,

      naja an sich sind die Displays meist dieselben wie das, welches ich benutzt habe. Es sitzt halt noch eine Wandlerplatine Huckepack. Serielle Displays sind idR deutlich teurer, zumindest habe ich noch kein 16×2 um 10€ gesehen.
      Die Wandler einzeln sind schon relativ teuer, bzw werden relativ teuer verkauft. Ich will in den nächsten Wochen mit einem USB-Adapter für die Hitachi LCD anfangen.

      Achja, fällt mir gerade auf, also ich red hier immer von den Hitachi 4xxxx LCD Display, nicht von grafischen (also Pixel-gesteuert). Gibt aber auch dafür Adapter.

      Beispiele (keine Werbung, es gibt die auch woanders):
      http://www.watterott.com/de/Serial-Enabled-LCD-Backpack
      http://www.watterott.com/de/Serial-Enabled-16×2-LCD-Yellow-on-Blue-5V
      http://www.watterott.com/de/Serial-Enabled-16×2-LCD-Black-on-Green-5V
      http://www.watterott.com/de/16×2-Zeichen-LED-weiss-auf-schwarz-serielle-Ansteuerung-33V

      http://www.watterott.com/de/Graphic-LCD-Serial-Backpack

      Die Steuer-Spannung für die normalen Arduinos muß 5V betragen. Nicht zu verwechseln mit RS232-Seriell, vom PC, das sind andere Pegel (12V-15V).

      Du kannst ggf auch zu einem Display mit I²C greifen, das ist uU noch attraktiver für Dich.

      Halt uns auf dem Laufenden, falls Du konkret an etwas bastelst. Die Mitleser sind an allem interessiert, wie mir scheint.

      Cheers

    • #904806
      spokekiller
      Teilnehmer

      Tutorial #9 — Arduino spricht RS232

      Ansatz
      Wie wir alle wissen hat unser Arduino (Uno) die Möglichkeit, über verschiedene Wege über serielles Protokoll mit der Außenwelt zu kommunizieren. Unter anderem kann man in der Arduino IDE den “Serial Monitor” nutzen, um damit über USB mit ihm zu sprechen. Diese Art der seriellen Kommunikation geht dabei aber über den FTDI Wandlerchip.

      Der ATMega 328 und auch der 168 haben zwei Pins, die auf TTL-Pegeln (+/-5V) serielle Kommunikation ermöglichen. Das ist aber unglücklicherweise nicht das selbe Spannungsniveau der in PCs und vielen anderen Geräten verbauten RS232-Schnittstellen. Diese verwenden den einen anderen Standard und damit Pegel im Bereich +/-12V [+/-15V].

      Ich gehöre zu den Menschen, die öfter noch um PCs rumwerkeln, die RS232 Schnittstellen haben und dazu unter Linux arbeiten. Das kann jetzt ganz besonders interessant sein, da man mittels eines RS232-TTL Wandlerbausteins beide miteinander reden lassen kann. Das selbe gilt natürlich für Geräte wie die Alix-Reihe oder andere Geräte mit Standard RS232 Schnittstellen.

      Aufbau
      Ich wollte den MAX232, so der Name eines der berühmtesten UART-TTL Wandler, erst selber zusammenlöten (das Datenblatt zeigt wie simpel das ist), als ich beim Stöbern bei Pollin auf einen kleinen Bausatz gestoßen bin, der für ein wenig mehr Geld als die Einzelteile auch einen DSUB 9 Stecker und eine feine Platine beinhaltete.
      Der Schaltplan des Adapters gibt darüberhinaus ebenso Auskunft darüber, wie man sich einen entsprechenden Wandler aufs Breadboard steckt. Mehr als ein paar Kerkos und Elkos und den Chip braucht man dazu nicht. Es gibt verschiedene, auch mehrkanalige. Ein einfacher reicht dicke.

      Pollin Artikel 810036 RS232-TTL Wandler

      Wie gesagt, selbst gebaut ist das ganz schnell mit einem MAX232N (zwei-kanalig) und einer handvoll Kondensatoren. Das Datenblatt als Anleitung reicht völlig aus. Wir haben das früher schon gemacht, um C64er und 128er zwecks Datentransfer an PCs zu bringen. Ist wirklich nicht schwierig.
      Insofern, als dass der MAX232N auf dem Pollinwandler zweikanalig ist, aber nur eine Schnittstelle rausgeführt wird, ist es ein wenig Verschwendung… 😀

      Zuerst flashen wir den Arduino mit diesem Sketch:
      [code]
      /*
      Gibt Daten an die seriellen Pins aus um RS232-Kommunikation zu testen
      Feste Textzeichenfolge => TEST
      Uptime des ATMega in Millisekunden
      */

      unsigned long uptime;

      void setup() {
      Serial.begin(9600); // Start library und setzen des Ports auf 9600baud, 8N1
      //Gegenstelle muß gleich eingestellt sein, sonst gibts Datensalat!
      }

      void loop(){
      Serial.print(“TEST –>”);
      uptime = millis();
      Serial.println(uptime);
      delay(1000); // eine Sekunde warten, um den Screen nicht zuzumüllen
      }
      [/code]

      Man nimmt das Ganze in Betrieb, indem man zudem folgendes macht:
      * die CTS und RTS Klemme des Wandlers miteinander verbinden, den Wandler an eine freie RS232 hängen.
      * den 5V Pin des Arduino und GND mit den entsprechenden Pins des Wandlers verbindet (GND->GND, 5v->5v) 😀
      * die TX Klemme des Wandlers auf den RX Pin (#0) des Arduino Uno legt
      * die RX Klemme des Wandlers auf den TX Pin (#1) des Arduino Uno legt

      Das heißt natürlich auch, dass diese Pins für elektronische Beschaltung ausscheiden! Übrigens generell der Fall, wenn Ihr mittels serial.write o.ä. über USB den Serial Monitor nutzt!!!

      Dem Arduino selbst geben wir natürlich auch Saft. Wenn dieser loslegt solltet Ihr an der TX-LED auf dem Board schon erkennen können, daß da Daten fließen. Unter Linux würdet Ihr jetzt zunächst beispielsweise in einer bash mittels “stty” die Einstellungen prüfen (unter Ubuntu scheint das immer 9600, 8N1 zu sein) und dann das entsprechende Device abfragen. Bei mir ging das mittels “cat /dev/ttyS0”.

      Unter Windows sollte das mittels einer geeigneten Terminalsoftware gehen. Früher gabs Hyperterminal. Was unter Win7 aktuell ist, ist mir nicht bekannt.

      Gedanken dazu / Erweiterungen
      Was kann man nicht alles damit anstellen. Klemmen wir doch mal unsere LCDs wieder an den Arduino und schicken dann vom Terminalprogramm aus Text an den Arduino? Der kann diesen mittels Serial.read ja lesen! Dann könnte man diesen auch anzeigen. Oder wir schicken dem Arduino kleine Kommandos, die wir individuell abfragen können und ihn dann entsprechend reagieren lassen…

      Interessant ist das neben dem Debugging auch für das Protokollieren von Daten. Nicht jeder möchte einen Data-Logging Shield kaufen.

      Aber – warum dann überhaupt RS232, das ist doch “Asbach”….fragte mich jüngst ein Kollege. Naja… im Industriebereich ist das noch lange nicht so tot und außerdem kann man RS232 über gute Kabel einige Meter führen (auch dank der 12V-Pegel). Wer bspw schon eine Alix o.ä. am Laufen hat kann Daten damit vom Arduino entgegennehmen, speichern, auswerten und visualisieren (Webseite).

      Ein Bild meines Aufbaus habe ich nicht gemacht… wer Schwierigkeiten mit dem Aufbau hätte, soll sich hier melden. Ist wirklich nicht schwer.

      Für weitere Projekte empfehle ich das Studium der Referenz auf Arduino.cc, dort wird auch gezeigt, wie man die Daten nicht in Textform/ASCII, sondern binär schickt. Außerdem gibts genug spielerische Beispiele für o.a. Anwendung.

      Der Arduino Mega hat einen anderen Mikrokontroller (ATMega 2560?) und damit auch 3 serielle Schnittstellen mehr.

      Viel Spaß

    • #904937
      Gonzogonzales
      Teilnehmer

      So dann will ich hier mal meinen Versuch zur Akkuüberwachung vorstellen. Bilder zum vergrößern, bitte anklicken.http://www.scotchs-galerie.de/image/foto/Fuer_Foren/th_fuer_foren_0041.jpgDer Versuchsaufbau zum messen von Strom und Spannung eines Modellbauakku. Die rote Platine ist ein Stromsensor und auf dem Arduino ProtoShield (aufgesteck auf ein Arduino UNO Board) ist ein Spannungsteiler mit zwei Widerständen http://www.scotchs-galerie.de/image/foto/Fuer_Foren/th_fuer_foren_0042.jpgHier der Stromsensor bis max. 50A von http://www.flytron.com/ Stromsensor hat eine Shund Widerstand und gibt eine über ein ina139 eine Spannung von 0-5V aus. (10a=1V)http://www.scotchs-galerie.de/image/foto/Fuer_Foren/th_fuer_foren_0043.jpgHier sieht man die die zwei Widerstände die als Spannungsteiler dienen. http://de.wikipedia.org/wiki/SpannungsteilerDie Spätere Ausgabe soll dann über ein Display erfolgen.Das 5110 von Nokia habe ich mir bei eBay gekauft. Es ist günstigund soll einfach in der Programmierung sein (schauen wir mal:roll:)http://www.scotchs-galerie.de/image/foto/Fuer_Foren/th_fuer_foren_0044.jpgEin NOKIA 5110 Display mit Breakout Board auf einem Steckboard, daneben ein Arduino ProMinihttp://www.scotchs-galerie.de/image/foto/Fuer_Foren/th_fuer_foren_0045.jpgHier die Rückseite des Displays mit der Pinout Beschriftung.Das Display arbeitet mit 3.3V kann wohl nicht direkt am Arduino angeschlossen werden. Man benötigt noch ein paar Widerstände.Die ersten versuch mit dem messen am Analogeingang habe ich schon probiert und ist recht einfach zu Programmieren.[CODE]/* Auslesen von zwei Analogeingängen mit 10 Bit Auflösung und Ausgabe über die serielle Schnittelle Ausgabe von 0-1023 */void setup() { Serial.begin(9600); // Einstellen der Schnittellengeschwindigkeit}//Hauptprogrammvoid loop() { //Erste Messung an Pin 2 int value1 = analogRead(2); // lese analog input pin 2 Serial.print(“Spannung “); // Ausgabe von Text Serial.println(value1, DEC); // Ausgabe des gelesenen Wertes und Zeilenumbruch //zweite messung an Pin 3 int value2 = analogRead(3); // lese analog input pin 3 Serial.print(“Strom “); // Ausgabe von Text Serial.println(value2, DEC); //Ausgabe des gelesenen Wertes und Zeilenumbruch //kleine Pause delay(1000); // warte 1s bis zum nächsten Durchlauf. }[/CODE]Was kommt als nächstes?Das Display will angeschlossen werden und ein Test Programm mussich mir mal aus dem Netz suchen, ein paar Beispielseiten habe ich schon gefunden.Dan habe mir bei C ein eeprom bestellt (hatten mal wieder nichts da) Dieses soll per I2C die Daten speichern.Sobald ich ein paar weitere Erfolge erziele werde ich berichten. Gruß Ingo

    • #905045
      spokekiller
      Teilnehmer

      Nachdem die T-Jungs heute meine Leitung wieder ans Fliegen gebracht haben… (Holy Shit, 48 Stunden Totalausfall über einen Feiertag…. wenigstens hatten wir Super-Wetter).Sag mal, reichen Dir die 32K Puffer für die Speicherung Deiner Messwerte? Ich fand das Thema auch ganz interessant und hab die Library zu I²C EEPROMS mal angesehen. Die scheint nicht sooooo schwer zu verwenden sein.Ich frag mich momentan noch, wie man da letztlich schreibt. Gibt ja kein Filesystem oder ähnliches. Heisst also man braucht zwischen den Datenblöcken Trennzeichen oder irgendeine Art Formatierung der Datentupel…Ganz so trivial wirds also nicht werden. Vorrang hat bei mir als nächstes jetzt aber definitiv Renovatios “Auftrag”. Sollten meine Feldtests gut laufen, dann stell ich das auch och vor damit dann das “Code Case All in One” endlich mit einem Arduino mit Ethernet bestückt werden kann.Cheers!

    • #905051
      Renovatio
      Teilnehmer

      Manchmal passiert es einfach das die blöde Leistung nicht mehr geht. Gut das ich hier Zuhause auch ein UMTS Stick besitze, dann habe ich trotzdem noch Internet. ^^Danke das du dich darum kümmerst. Gestern Abend ist mir eine geile Idee eingefallen.Also geplant ist, dass das ganze Zimmer mit RGB Leisten ausgestattet wird und diese via Schaltung Ein-/Ausschaltet werden kann. Dies wollte ich eigentlich mit Wippschaltern realisieren.So jetzt komme ich auf die Idee, die Wippschalter wegzulassen und die Leisten via Arduino zusteuern. Ich werde von den RGB Leisten am besten die Anode + abziehen, da die 3 Kathoden Rot, Grün und Blau sind. So hinten am Gehäuse befinden sich dann die 10 oder mehr Ausgänge und davor könnte man dann die gemeinsame Anode + abziehen und an das Arduino anschließen.Um das ganze zu Schalten, wäre eine Fernbedienung oder ein Webinterface über das Private Netzwerk super, da ich eh mein Handy im WLAN haben möchte. Wäre die irgendwie Möglich?In diesen SinneAndre

    • #905065
      spokekiller
      Teilnehmer

      Renovatio;472863 said:
      Also geplant ist, dass das ganze Zimmer mit RGB Leisten ausgestattet wird und diese via Schaltung Ein-/Ausschaltet werden kann. Dies wollte ich eigentlich mit Wippschaltern realisieren.
      So jetzt komme ich auf die Idee, die Wippschalter wegzulassen und die Leisten via Arduino zusteuern. Ich werde von den RGB Leisten am besten die Anode + abziehen, da die 3 Kathoden Rot, Grün und Blau sind. So hinten am Gehäuse befinden sich dann die 10 oder mehr Ausgänge und davor könnte man dann die gemeinsame Anode + abziehen und an das Arduino anschließen.
      Um das ganze zu Schalten, wäre eine Fernbedienung oder ein Webinterface über das Private Netzwerk super, da ich eh mein Handy im WLAN haben möchte.

      Wäre die irgendwie Möglich?

      In diesen Sinne
      Andre

      Hallo Andre,

      ja das sollte gehen. Der Teil, den ich dir gechildert habe, der praktisch die URL entgegennimmt kann auch genutzt werden, um einen der Digitalkanäle ein/aus-zuschalten. Da Du wohl viel mehr Leistung brauchst, als ein Port hergeben kann, empfiehlt sich entweder ein Leistungstransi oder ein MOSFet vorneweg.
      Mit MOsFets habe ich null Erfahrung, von daher würde ich fast wieder auf einen TIP-120 gehen wollen. Relais ginge auch, ist aber glaube ich unnötig.

      Hast Du Details zu den Leisten?

      Gruß

    • #905073
      Renovatio
      Teilnehmer

      spokekiller;472877 said:

      Renovatio;472863 said:
      Also geplant ist, dass das ganze Zimmer mit RGB Leisten ausgestattet wird und diese via Schaltung Ein-/Ausschaltet werden kann. Dies wollte ich eigentlich mit Wippschaltern realisieren.So jetzt komme ich auf die Idee, die Wippschalter wegzulassen und die Leisten via Arduino zusteuern. Ich werde von den RGB Leisten am besten die Anode + abziehen, da die 3 Kathoden Rot, Grün und Blau sind. So hinten am Gehäuse befinden sich dann die 10 oder mehr Ausgänge und davor könnte man dann die gemeinsame Anode + abziehen und an das Arduino anschließen.Um das ganze zu Schalten, wäre eine Fernbedienung oder ein Webinterface über das Private Netzwerk super, da ich eh mein Handy im WLAN haben möchte. Wäre die irgendwie Möglich?In diesen SinneAndre

      Hallo Andre,ja das sollte gehen. Der Teil, den ich dir gechildert habe, der praktisch die URL entgegennimmt kann auch genutzt werden, um einen der Digitalkanäle ein/aus-zuschalten. Da Du wohl viel mehr Leistung brauchst, als ein Port hergeben kann, empfiehlt sich entweder ein Leistungstransi oder ein MOSFet vorneweg. Mit MOsFets habe ich null Erfahrung, von daher würde ich fast wieder auf einen TIP-120 gehen wollen. Relais ginge auch, ist aber glaube ich unnötig.Hast Du Details zu den Leisten?Gruß

      Ja die habe ich. Klick michEs sind sehr wahrscheinlich fast 2 Meter dann im Zimmer verbaut. Nehmen wir aber mal lieber 3 Meter, dann habe ich noch Reserven übrig.Brauche dann aber so mindestens 10 Port Ausgänge (20 sind besser), damit ich die Ausgänge am Case einzeln Schalten kann.

    • #905078
      spokekiller
      Teilnehmer

      Naja, das wird so nicht gehen. Der Aufwand wird erheblich größer, auch für die Ansteuerung. Du hast ja von den 13 verfügbaren Ausgängen nicht alle, weil ein Teil, ich glaube 4 PWM Ausgänge, draufgehen für den Ethernetshield.Wenn Du dann mit den verbleibenden 9 Pins was schalten woltlest dann wäre es an sich überwiegend ein/aus oder man müßte Multiplexer oder Shiftregister einsetzen. Neben dem reinen Hardwareaufwand müßte außerdem dann das Controllinterface (das Webinterface, zumindest der Empfangsteil) komplett umgeschrieben werden.Ich wil sicher nicht den großen Miesmacher raushängen, aber wäre es iO, sich erstmal auf den reinen WOL Teil zu konzentrieren?

    • #905084
      spokekiller
      Teilnehmer

      Renovatio;472893 said:
      Können wir erst mal so machen. Danach können wir weiter versuchen und ausprobieren.Ist ja nur eine Idee von mir, die man vielleicht umsetzen kann.

      Wie gesagt, ich sag nicht absolut nein, aber ich würd Dir eben gerne einfach erstmal überhaupt was liefern. Danach greifen wir ein bissl höher.Ich bin auch mal ganz ehrlich: ich bin alles andere als ein Meister-Elektroniker, aber Phil wird uns sicher ggf dabei helfen. Machbar ist das sicher, was Du möchtest, aber das machen wir einfach in mehreren Schritten. Wird sicher geil aussehen. :banana:**EDIT: Danke Jens, ich hab Deinen Post erst gesehen, als ich das schon abgeshickt hatte. Wenn es soweit ist, werden wir auf diese Daten zurückgreifen müssen. Je nachdem wie Andre/Renovatio sich die Ansteuerungsmuster vorstellt werden wir dann wohl zu Shiftregistern greifen. Was ich mich gerade versuche zu erinnern ist, wie hoch die Ausgangsströme des 74HC595 waren… ggf kann man sich die Leistungstreiber vor dem MOSFet sparen? Naja, kommen wir dazu, wenn es soweit ist. Zuerst muß ich mal Teil 1 meines Versprechens endlich einlösen.***EDIT 2: Mann, erst Hirn einschalten… Du hast ja geschrieben die Angaben beziehen sich auf 10V Gatespannung, dann brauchen wir natürlich die Leistungsstufe. So. Grummel.Cheers

    • #905083
      Hallo1001
      Teilnehmer

      Hallo alle miteinander!

      Mit MOsFets habe ich null Erfahrung, von daher würde ich fast wieder auf einen TIP-120 gehen wollen.

      Wenn es ein P-Kanal FET werden muss (also die Anode soll geschaltet werden), dann würde ich den IRF4905 verwenden (RdsON = 0,020 Ohm). Und wenn es ein N-Kanal FET werden muss (also die Katode soll geschaltet werden), dann würde ich den IRF1010N verwenden (RdsON = 0,011 Ohm).
      Die RGB-LEDs brauchen ca. 1,2A pro Meter, bei 3m währen das dann 3,6A die Dein Netzteil mindestens bereitstellen muss. Die Wärmeentwicklung der FETs kannst Du wie folgt ermitteln:
      RdsON * Stromverbrauch = Spannungsverlust —> Spannungsverlust * Stromverbrauch = Abwärme
      …für den IRF4905: 0,020 * 3,6A = 0,072V —> 0,072V * 3,6A = 0,26W Abwärme
      …für den IRF1010N: 0,011 * 3,6A = 0,04V —> 0,04V * 3,6A = 0,14W Abwärme
      Beide FETs würden also ohne Kühlkörper auskommen, bzw. mit einem sehr kleinen Kühlkörper. Die Angaben beziehen sich allerdings auf eine Gate-Spannung von 10V (siehe Datenblatt der FETs). Das Gate vom FET müsstest Du dann also noch über einen Transistor ansteuern (oder über einen ULN2803)…

      LG Jens

    • #905081
      Renovatio
      Teilnehmer

      Können wir erst mal so machen. Danach können wir weiter versuchen und ausprobieren.Ist ja nur eine Idee von mir, die man vielleicht umsetzen kann.

    • #905088
      Renovatio
      Teilnehmer

      @Hallo1001: Danke für die nette Erklärung. Lerne gerade auf der Schule Elektronik also bin ich gerade erst am Anfang.@spokekiller: Ja, dass können wir so machen. Ich denke Hallo1001 und Dirk können uns sicherlich helfen, damit es auch ordentlich funktioniert.Ich werde auf jeden Fall schon mal alles einbauen ins Gehäuse und dann wenn es mit WOL Funktioniert weitere Schritte gehen.Es drängelt nicht, da ich einfach die Stecker vom Gehäuse abnehmen kann und somit nur bestimmte RGB Leisten an sind.

    • #905136
      phil68
      Teilnehmer

      …ein Haufen Lese-Stoff 😉 Schön, dass sich so viele für die MC interessieren. Ich habe die Temperatur-Regelung :

      Leider bin ich ab Montag im Urlaub und kann die Schaltung mit dem Impulsgeber nicht mehr testen.

      doch noch testen können und bin sehr zufrieden damit! Des Weiteren habe ich noch einen elektronischen Würfel mit zusätzlichen “Blinki-Blinki-Effekten” als “Aufsatz-Shield” und damit austauschbar, für meinen Sohn, fertig gestellt.
      Leider fehlt mir momentan die Zeit für die anderen Projekte, die werden aber auf alle Fälle noch nachgeholt. Die Sache mit dem LED-Cube(3x3x3) und dessen Ansteuerung, sollte ja auch für Andre interessant sein.

      Ich bin auch mal ganz ehrlich: ich bin alles andere als ein Meister-Elektroniker, aber Phil wird uns sicher ggf dabei helfen.

      … Danke 8-[ dafür klemmt es bei mir mit dem Programmieren 😀 Leiterplatten entwerfen und das Ganze umsetzen ist dagegen kein Problem. Abgesehen davon… So lang Hallo1001 hier immer mal rein schaut, mach ich mir da keine Sorgen. Seine wirklich prima umgesetzten und dokumentierten Projekte sprechen für sich!

      Was ich mich gerade versuche zu erinnern ist, wie hoch die Ausgangsströme des 74HC595 waren… ggf kann man sich die Leistungstreiber vor dem MOSFet sparen?

      MOSFETs sind Spannungsgesteuert, die Ströme kannst du getrost vernachlässigen!
      Wenn ich dazu komme, werde ich ein paar meine Projekte hier einstellen.

      Grüße Dirk

    • #905137
      Hallo1001
      Teilnehmer

      Hallo!

      Je nachdem wie Andre/Renovatio sich die Ansteuerungsmuster vorstellt werden wir dann wohl zu Shiftregistern greifen.

      Ein anderer Lösungsansatz währe auch noch der I2C-Bus. Der PCF8574 stellt z.B. 8x weitere Ports zur Verfügung.

      Was ich mich gerade versuche zu erinnern ist, wie hoch die Ausgangsströme des 74HC595 waren… ggf kann man sich die Leistungstreiber vor dem MOSFet sparen?

      Wenn ich das im Datenblatt grade richtig gelesen habe, dann stehen hier maximal 70mA pro Port zur Verfügung. Bei den FETs geht es aber nicht um die Leistung (also mit wie viel Leistung man das Gate eines FETs ansteuert), sondern es geht um die Spannung, mit der das Gate vom FET angesteuert werden muss. Wenn ich das bis jetzt richtig sehe, dann kommen hier 12V zum Einsatz (mal abgesehen von den 5V für den Mµ). Um einen FET ein- und aus- zu schalten, muss man nun das Gate vom FET entweder auf Masse (0V) oder Plus (12V) schalten (ohne Vorwiderstand bzw. 4 bis 10 Ohm, das spielt hier jetzt aber keine Rolle). Der Port vom Mµ kann aber nur zwischen 0V und 5V schalten (da ja der Mµ auch nur mit 5V arbeitet). Man muss hier also ein wenig tricksen und erst mit einen Transistor (Treiber, oder ähnliches) von 0V auf 12V schalten und da kann dann erst das Gate vom FET angeschlossen werden. Wenn die Schaltung später einmal auf einen N-Kanal FET hinaus läuft, dann kann man auch FETs mit Logik-Level wie z.B. den IRL1004 (RdsON = 0,007 Ohm) verwenden, der kann direkt an den Mµ Port angeschlossen werden. Leider gibt es bei den P-Kanal FETs keine mit Logik-Level, von daher bleiben hier nur Transistoren oder FET-Treiber zur Ansteuerung über…

      LG Jens

      PS: Wenn Ihr wollt, dann stelle ich hier auch gerne eine kleine Bastelanleitung für einen ISP-Programmer ein, den kann man mit relativ kleinen Mitteln selber zusammen bauen…

    • #905144
      einball
      Teilnehmer

      spokekiller;472955 said:
      Jaja, ich sag doch… ich check die Dinger gar nicht… und dann hab ich außerdem wieder schneller geschrieben als die Birne benutzt (und hab nebenher eigentlich noch was vööööööllig anderes gemacht :D).

      Aber zurück zum Hauptthema. Also so schlecht fand ich den Vorschlag mit dem ULN2803 nicht… erstens ist der nicht teuer und kompakt und veträgt sich auch mit den 10-12V locker.

      @Dirk
      Wie jetzt! Du hast das echt noch komplett umgesetzt!?!?! Ich hab nur ein wenig mit nem Testsketch rumspielen wollen und meinen Impulsgeber “mal eben” testen wollen und das ging ja sowas von in die Hose. Ich glaub außer der Schaltung von der Lüfterregelung habe ich bisher keine einzige gute zu dem Thema gefunden. Hast Du 1:1 nachgebaut oder hast Du bissl getuned? Zeigen! Zeigen! Zeigen! — Ok, sorry ich dreh mal bissl runter.

      @ALLE
      Aber mal ehrlich, Leutz, als ich das hier angefangen habe hätte ich im Leben nicht erwartet, dass mir das mal soviel Spaß machen würde und ich freu mich auch tierisch dass soviele Leute hier mitlesen und mitmachen. Naja, und nicht zuletzt, dass man von Euch noch soviel lernen kann.
      Dank Euch, ehrlich.

      Die ULN sind SUPER! Die habe ich auch eingesetzt, um ein Lauflicht zu basteln. Extrem fummelig, über 50 Kabel auf der Platine zu legen, aber im Endeffekt hats dann doch sehr viel Spaß gemacht 🙂

      Ja, Spaß ist ein wichtiger Faktor. Ich bin genauso erfreut darüber, dass auch du hier gerne mit µC rumspielst. Ich selbst habe momentan leider kaum Zeit (nicht einmal Zeit hier entsprechend lange Posts zu verfassen) (und Geld) selbst zu basteln.

      Im Anhang ist mein aktuelles Projekt als Schaltplan angehängt: eine USB Bluetooth Brücke mit integriertem FT232R Bitbanging Programmer, über den dann ein Bootloader geladen werden kann, der die Serielle Schnittstelle dann afu sich selbst umroutet und das Programm dann (schneller als per Bitbanging) per RS232 mit 192kbaud lädt. Danach läuft entweder aller Traffic über den µc oder wahlweise kann man den µC anweisen, den Traffic durch die Multiplexer direkt über das Bt Modul laufen zu lassen.

    • #905141
      spokekiller
      Teilnehmer

      Jaja, ich sag doch… ich check die Dinger gar nicht… und dann hab ich außerdem wieder schneller geschrieben als die Birne benutzt (und hab nebenher eigentlich noch was vööööööllig anderes gemacht :D).Aber zurück zum Hauptthema. Also so schlecht fand ich den Vorschlag mit dem ULN2803 nicht… erstens ist der nicht teuer und kompakt und veträgt sich auch mit den 10-12V locker.Es wäre doch ein wenig arg fummelig, für jeden FET einen eigenen Transi reinzuhauen. Ich müßt jetzt nochmal ein wenig hirnen und Renovatios Absicht genauer interpretieren, aber iirc wollte er pro Farbe pro Strang regeln können. Das hieße dann doch pro Strang max. 3 FETs, sofern deren Grenzen eingehalten werden…. Nur mal so angesprochen um ein wenig zu begreifen, in welche Dimension das geht. Wenn ich aber Jens’ Projekte so anschaue, dann haben wir alle Unterstützung die wir brauchen.Jens, das mit dem ISP wäre okay…. mein Paket von fischl mit dem usbasp ist verschollen. Laut deren Mail sollte das am Donnerstag letzte Woche raus sein udn bis heute ist nichts da… das ätzt mich mal voll an, weil ich den progger gleich mit Phils kompakter Platine austesten wollte… @DirkWie jetzt! Du hast das echt noch komplett umgesetzt!?!?! Ich hab nur ein wenig mit nem Testsketch rumspielen wollen und meinen Impulsgeber “mal eben” testen wollen und das ging ja sowas von in die Hose. Ich glaub außer der Schaltung von der Lüfterregelung habe ich bisher keine einzige gute zu dem Thema gefunden. Hast Du 1:1 nachgebaut oder hast Du bissl getuned? Zeigen! Zeigen! Zeigen! — Ok, sorry ich dreh mal bissl runter.@ALLEAber mal ehrlich, Leutz, als ich das hier angefangen habe hätte ich im Leben nicht erwartet, dass mir das mal soviel Spaß machen würde und ich freu mich auch tierisch dass soviele Leute hier mitlesen und mitmachen. Naja, und nicht zuletzt, dass man von Euch noch soviel lernen kann.Dank Euch, ehrlich.

    • #905143
      Renovatio
      Teilnehmer

      @spokekiller: Ich brauche nur die Möglichkeit die RGB Leisten Auszuschalten. Da die RGB Leisten über ein Controller gesteuert werden, müssten wir rein theoretisch nur die Gemeinsame Anode + von den RGB Leisten abziehen.

    • #905140
      einball
      Teilnehmer

      Steuerströme bei MOSFETS vernachlässigbar?Die Ingenieure haben nicht umsonst Probleme damit, die Gatekapazität bei höheren Frequenzen schnell genug umzuladen.Da können bei entsprechend hoher Kapazität und Frequenz Ströme im mehrstelligen Amperebereich fließen :)Zur Zeit mache ich nichts mit einem Arduino, da mir das Geld fehlt. Es sind allerdings bereits einige Dinge in Planung, die nur eine kleine Finanzspritze benötigen um endlich fertiggestellt zu werden … 🙂

    • #905146
      Hallo1001
      Teilnehmer

      Hallo!

      Steuerströme bei MOSFETS vernachlässigbar? Die Ingenieure haben nicht umsonst Probleme damit, die Gatekapazität bei höheren Frequenzen schnell genug umzuladen.

      Die Steuerstrome sind natürlich nicht vernachlässigbar, da hast Du vollkommen Recht. Wie Du aber selber geschrieben hast spielen dabei „höhere Frequenzen“ eine große Rolle. Beim ein- und aus- schalten treten aber eben genau die hohen Frequenzen nicht auf und darum kann man hier die Gate-Kapazität vom FET vernachlässigen. Es währe vollkommen übertrieben einen FET-Treiber mit mehreren Ampere ein zu setzen, solange der FET nur als „simpler“ Schalter verwendet wird. Würde es hier um hohen Frequenzen gehen, dann hätte ich nicht einmal den Logik-Level FET erwähnt…

      Jens, das mit dem ISP wäre okay….

      Ich suche mal schnell alles zusammen und stelle es nachher ein…

      Da die RGB Leisten über ein Controller gesteuert werden, müssten wir rein theoretisch nur die Gemeinsame Anode + von den RGB Leisten abziehen.

      Also einen P-Kanal FET verwenden und das Gate an einen ULN2803 anschließen – fertig. (Das Gate vom FET aber auch noch mit einen Pull-Down Widerstand (z.B. 4,7K) auf Vdd vom ULN legen, damit das Gate auch im ausgeschalteten Zustand 12V Plus abbekommt (der ULN schaltet Open-Drain).)

      LG Jens

    • #905155
      Hallo1001
      Teilnehmer

      Hallo alle miteinander!

      Um einen AVR (welchen sei einmal dahin gestellt) programmieren zu können, bedarf es eines ISP-Programmers. Es gibt verschiedene Typen und alle haben ihre vor und Nachteile. Wer hier finanziell nicht all zu viel Geld ausgeben möchte, bzw. wer sich selber einen Programmer erstellen möchte, der kann wie folgt vorgehen.

      Am Anfang gibt es das „Henne – Ei“ Problem. Moderne Programmer verwenden das STK500 v2 Protokoll, das bedeutet dass hier eine Firmware aufgespielt werden muss. Um aber diese Firmware auf zu spielen, bedarf es eines ISP-Programmers und so dreht man sich im Kreis. Als erstes muss also ein Programmer her der ohne Firmware funktioniert und das nach Möglichkeit natürlich so preiswert wie möglich…

      Der Pony-Prog-Programmer
      http://www.pcfilter.de/AVR-Ecke/Bilder/PonyProg-Programmer1.jpg
      Bei dem Pony-Prog-Programmer handelt es sich um einen Programmer der ohne Firmware arbeitet – sprich anschließen fertig. Mit einem Materialwert von unter 2 Euro ist er auch recht preiswert. Leider funktioniert der Programmer aber nur an einer echten RS232 Schnittstelle. Er kann NICHT an einen USB-RS232-Adapter betrieben werden, was den Einsatz drastisch einschränkt. ABER, und das ist der Vorteil, er kann verwendet werden um die Firmware auf andere ISP-Programmer zu übertragen…

      Der USBTiny-Programmer

      Den Original Programmer gibt es hier, so wie die Treiber die dafür benötigt werden.
      USBTiny
      Eine modifizierte Version davon findet man hier.
      Mini-Programmer
      Hier gibt es eine aktualisierte Firmware für einen ATtiny45/85 mit dem sich ein preiswerter Mini-Programmer aufbauen läst.
      http://www.pcfilter.de/AVR-Ecke/Bilder/USBTiny01.JPG
      Der Materialwert liegt hier bei ca. 4 Euro, je nachdem wo man einkauft. Die benötigte Firmware kann nun mit den Pony-Prog-Programmer überspielt werden und damit hat man das „Henne – Ei“ Problem gelöst. Damit hat man nun bereits einen funktionierenden ISP-Programmer mit einem USB-Anschluss. Allerdings gibt es hier auch noch ein paar kleine Einschränkungen und dass bringt uns zum nächsten Programmer…

      Der STK500-Programmer
      http://www.pcfilter.de/AVR-Ecke/Bilder/AVR-USB-STK500v2-Programmer2-gr.jpg
      http://www.pcfilter.de/AVR-Ecke/Bilder/AVR-USB-STK500v2-Programmer1-gr.jpg
      Der Materialwert liegt hier bei ca. 10 Euro, die sind aber auch gut angelegt. Auch hier muss erst wieder mit dem Pony-Prog-Programmer die Firmware aufgespielt werden. Hat man das Erfolgreich hinter sich gebracht, dann hat man einen vollwertigen STK500-Programmer (bis auf die HV Programmierung, die wird aber auch nicht zwingend benötigt). Die USB Anbindung übernimmt hier ein FT232R Chip, wodurch der Programmer zu allen gängigen Betriebsystemen kompatibel ist. Durch das STK500 Protokoll ist er auch Softwarekompatibel zu der original AVR Software (AVR-Studio, BasCOM, usw.), er kann aber auch problemlos mit AVRdude verwendet werden.

      Mit der kleinen Anleitung kann man selber entscheiden was für einen wichtig ist und wie viel Geld man ausgeben möchte. Auf meiner Homepage findet Ihr alle erforderlichen Unterlagen um solche Programmer herstellen zu können (bis auf den USBTiny, die Daten lade ich erst in ein paar Tagen hoch).
      Homepage

      LG Jens

    • #905193
      spokekiller
      Teilnehmer

      Zunächst an Jens: Danke für die wirklich gute Erklärung. Ich hab jetzt schon viel über das Thema gelesen, aber so übersichtlich und einleuchtend habe ich das bisher noch nirgends gefunden.Mein usbasp ist wohl verschütt gegangen. Ich hab mich bei fisch und fischl gemeldet. Man hat mir gesagt ich soll noch bis Montag abwarten, danach akzeptieren sie die Sendung als verloren.Schade, ich dachte ich kann den Bausatz am WE zusammenlöten und gleich testen. Die erste Reaktion nach höflicher Rückmeldung meinerseits fand ich aber sehr angenehm, dass muss ich sagen.Sodele, und dann hab ich mir heute mal endlich das Renovatio-WOL vorgenommen. Wie das ging kann man eigentlich nur beschreiben mit “Blut und Tränen”… :DZum Verständnis für den Rest: Was wir machen wollen ist über eine URL ein -für Außenstehende kryptisches- Kommando an den Arduino schicken. Der sitzt bei Renovatio daheim hinter dem Router in der NAT Zone. Wir forwarden an den Port des Arduino durch den Router (normales http).Renovatio schickt also besagtes Kommando, welches geparst wird und woraufhin in der ersten Stufe der Arduino ein Magic Packet an die MAC eines bestimmten Rechners schickt, der dadurch aus dem sleep oder soft-off aufwacht.Meinen ersten Parser habe ich verworfen, ich habe mich dann doch jetzt für eine aus meiner Sicht simplere Methode entschieden. Die kann Renovatio auch selber debuggen oder anpassen und dennoch läßt sie Spielraum für die LED-Schaltung, die wir oben besprochen haben und die ich wohl in Software gleich mit einpassen werde. So schwer ist das nicht, einen Pin auf high zu legen (oder low).Den Teil habe ich als beta, getestet und bin soweit zufrieden.Danach hab ich mich dem WOL Teil gewidmet… und das war dann irgendwie nicht ganz so einfach. Und das ist jetzt was für ALLE, die den Arduino im Netz einsetzen wollen und googlen!!!!MAN BRAUCHT DIE BJOERN LIB NICHT MEHR!!! Ab arduino-002x spätestens ist sie unter anderem Namen bereits eingebaut. Man muß bei älteren Codesnippets, die die sogen. bjoern-lib verwendet haben (= udpraw.h) dann nur noch aufpassen, dass man “udpraw” durch “udp” als Klassenname im Code ersetzt. Man merkt das spätestens wenn man anders als ich bei null anfängt. Denn die UDP Beispiele in der IDE tun out of the Box. Das war früher gaaaanz anders.Das hat mich verrückt gemacht, ne Stunde lang die wildesten Compilerfehler einzugrenzen. Alles was man in Google findet, leitet einen aber immer wieder zur bjoern-lib. Im Frust habe ich in der ramdisk mal eben die IDE neu ausgepackt und neugierig eines der Beispiele getestet (nur so, ohne große Hoffnung). Siehe da, kein einziger Fehler…. hmmmm … und da fiel mir die Kommentarzeile zum include von “Udp.h” auf …. naja und da steht es dann, dass dies die bereits integrierte Adpation der alten udpraw von “bjoern” ist.Coole Story. Also, schnell meinen Code angepaßt, den Müll aus meiner “Produktions IDE” rausgeworfen, compiliert und YEAH! Dann den Arduino kurz ins entsprechende Netz geklemmt, die Kiste X schlafen gelegt und das Knöpfchen gedrück, dass das MP rausfeuert. Und BAM! ist er hochgefahren.Sprich, ich muß jetzt nur noch meine zwei Spaghetticodes sinnvoll zusammenführen und sauber dokumentieren. Dann nochmal alles neu testen und dann reden wir über die LED-Schalterei. An sich müssen wir nur darüber reden ob Pin X default high oder low sein soll, der Rest ist eine Frage der Elektronik (s.o.).Dachte, ich mach Euch da mal Mut mit. Also auch jemand mit eher selbst angeeignetem Progging Skill kann auf diese Weise mal einen “lucky strike” machen. Und vielleicht gehts ja irgendwie jemandem mal ähnlich und der soll in google dann nicht nur diesen Asbach-Uralt Murks mit archaischen Infos finden.Cheers,Euer Spoke

    • #905199
      Hallo1001
      Teilnehmer

      Hallo!

      Hm, ich blicke da noch nicht so recht durch was Ihr da vor habt, aber wenn ich das richtig sehe, dann wollt Ihr vom Internet aus Befehle an den Arduino schicken. Währe das Pollin-NET-IO-Board da nicht die einfachere Lösung.
      Link zum Board
      Ich habe mir das Teil auch grade erst bestellt, kann also dazu auch noch nichts Genaueres sagen. Im Internet sind dazu aber sehr viele Beiträge zu finden…

      LG Jens

    • #905201
      spokekiller
      Teilnehmer

      Hallo1001;473015 said:
      Hallo!

      Hm, ich blicke da noch nicht so recht durch was Ihr da vor habt, aber wenn ich das richtig sehe, dann wollt Ihr vom Internet aus Befehle an den Arduino schicken. Währe das Pollin-NET-IO-Board da nicht die einfachere Lösung.
      Link zum Board

      Ja, das sieht schnuckelig aus. Das wäre in Renovatios Fall auch eine sehr preiswerte Alternative.
      ABER (jetzt kommts) … was wir hier nicht diskutiert haben ist, dass die zu startenden Rechner alle recht weit voneinander weg sind. Was also nicht geht und was wir sonst gemacht hätten, wäre schlicht die pwr-button Leiste mit dem Arduino oder so einer Platine zu schalten.

      Somit blieb der Weg über WOL. Was wir also machen ist ein Kommando über http an den Arduino zu schicken, der dann wiederum WOL-Pakete an die entsprechenden Rechner schickt. Dann kann er drauf zugreifen und sie auch wieder runterfahren.

      Im zweiten Schritt kam dann der Wunsch nach der LED-Ansteuerung mit dazu, wo Du ja schon was dazu gesagt hast.

      Das Ganze soll in sein neues Projekt, was er in seiner Sig verlinkt hat ….

      Aber das Pollinboard sieht nach nem schnellen Blick ins PDF wirklich nicht übel aus.

      Danke für den Tip, denn ein Arduiono Uno mit Shield kommt fast auf 50 Steinchen!

    • #905203
      Hallo1001
      Teilnehmer

      Hallo alle miteinander!

      ABER (jetzt kommts) … was wir hier nicht diskutiert haben ist, dass die zu startenden Rechner alle recht weit voneinander weg sind. Was also nicht geht und was wir sonst gemacht hätten, wäre schlicht die pwr-button Leiste mit dem Arduino oder so einer Platine zu schalten.

      Definiere mal „recht weit voneinander weg“. Zum schalten von 230V über USB gibt es von mir in den nächsten Wochen auch noch mal ein Update (alter Link: Master-Slave-Steckdose ) da könnte vielleicht auch etwas passendes dabei sein. Ansonsten ist für weite Strecken der RS485-Bus gut geeignet. Der Arduino könnte über den RS485-Bus Daten versenden und auf der anderen Seite wertet ein ATtiny2313 die Daten aus und schaltet den Rechner ein oder aus (Plus Spielereien, es währen ja am ATtiny2313 noch Ports frei). Der Arduino könnte über den RS485-Bus insgesamt 31 ATtinys ansprechen, dass sollte mehr als ausreichen. Und wenn es mit Kabel nicht geht (weil nicht gewollt ezt.), dann gibt es immer noch die Möglichkeit über Funk zu schalten. Pollin hat da auch etwas nettes im Angebot: Funk-Modul

      LG Jens

    • #905527
      spokekiller
      Teilnehmer

      Hallole….ich bin völlig am Ende mit den Nerven… ich versteh es einfach nicht. Ich brauch Hilfe.Vorgeschichte:Ich hab einen usbasp bekommen. Ich hab dann einen ATmega328P aus meinem Arduino gerissen, mit nem 16er Quartz versehen, Kondensatoren und entsprechend verkabelt (im Prinzip wie Phil68, mit dessen Platine habe ichs auch mal versucht, aber die erste Version hat kein RST nach aussen gelegt). Ein Testsketch läuft darauf einwandfrei, die Beschaltung habe ich so auch in anderen Projekten verbaut und keine Probleme damit gehabt.Ich hab den usbasp mit dem µC so verkabelt: (usbasp -> Atmega)Pin 1 (draufschauend rechts oben, Pfeilmarke der 2*5 Stiftbuchse) ist auf Pin 17 des mega (=MOSI) (ist auch auf der Platine sauber vermerkt, ich bin 100% sicher, dass das pin 1 des usbasp ist)Pin 5 ist auf Pin 1 des mega (=RST)Pin 7 ist auf Pin 19 des mega (=SCK)Pin 9 ist auf Pin 18 des mega (=MISO)Die LED des Testprogramms an Pin 19 ist natürlich entfernt worden. Laut fischls Seite ist die Verdrahtung mE korrekt.Einer der GND Pins der 2*5 ISP Buchse läuft auf GND des mega (bzw des breadboards!)Die +5V Leitung des usbasp nutze ich nicht, stattdessen hängt am atmega eine entsprechende +5V Spannungsquelle (Blink.hex tut).Alle Jumper des usbasp sind OFFEN (also auch der “power to target”)So, nachdem ich heute stundenlang erstmal herausgefunden habe, was man an Linux und dem arduino IDE-Krempel tweaken muss und da gefühlte 20 Fehler erfolgreich bekämpft habe, bin ich letztlich darauf gestoßen, das ich noch irgendein Verbindungsproblem haben muß.Konkretes ProblemIch habe dann beschlossen, mir ein Kompilat eines Sketches im /tmp/ abzufangen und das mittels des avrdude der bei der IDE dabei ist via usbasp direkt an den Chip zu schicken. Auf dem atmega ist bereits ein arduino bootloader und laut ladyada sollte es dennoch gehen (siehe: http://www.ladyada.net/library/arduino/bootloader.html).Und da hat sich bestätigt, dass mein Problem schon “ganz unten” liegt…Ich komme nicht weiter. Ich habe hunderte von Webseiten zu dem Thema gewälzt und die meisten besseren hören damit auf, dass ich “irgendein” Verbindungsproblem habe (falsch verkabelt, Progging zu schnell etc). Hier der Auszug meiner avrdude session, in der man das gut sehen kann. Die device id ist wohl wegen des bootloaders falsch, siehe ladyada.Ich habe versucht den atmega zu löschen, was dieselben rc=1 Fehler zurückgab, der µC hat danach noch einwandfrei sein blink-programm abgefahren. Im Prinzip gehen ALLE avrdude Aktionen auf den u.a. Fehler hinaus.Wie gesagt, ich komm ums Verrecken nicht auf den Chip. Ich habe die Verkabelung ca 50 mal neu gemacht, 50 mal geprüft etc pp.. Es wäre ganz toll, wenn einer von Euch mir hier helfen könnte.[code]./avrdude -p m328p -c usbasp -P usb -F -U flash:w:/tmp/build7754369921443048563.tmp/Blink.cpp.hex -C ./avrdude.conf avrdude: error: programm enable: target doesn’t answer. 1 avrdude: initialization failed, rc=-1avrdude: AVR device initialized and ready to accept instructionsReading | ################################################## | 100% 0.01savrdude: Device signature = 0x000000avrdude: Yikes! Invalid device signature.avrdude: Expected signature for ATMEGA328P is 1E 95 0Favrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option.avrdude: erasing chipavrdude: error: programm enable: target doesn’t answer. 1 avrdude: reading input file “/tmp/build7754369921443048563.tmp/Blink.cpp.hex”avrdude: input file /tmp/build7754369921443048563.tmp/Blink.cpp.hex auto detected as Intel Hexavrdude: writing flash (990 bytes):Writing | ################################################## | 100% 0.68savrdude: 990 bytes of flash writtenavrdude: verifying flash memory against /tmp/build7754369921443048563.tmp/Blink.cpp.hex:avrdude: load data flash data from input file /tmp/build7754369921443048563.tmp/Blink.cpp.hex:avrdude: input file /tmp/build7754369921443048563.tmp/Blink.cpp.hex auto detected as Intel Hexavrdude: input file /tmp/build7754369921443048563.tmp/Blink.cpp.hex contains 990 bytesavrdude: reading on-chip flash data:Reading | ################################################## | 100% 0.43savrdude: verifying …avrdude: verification error, first mismatch at byte 0x0000 0x0c != 0x00avrdude: verification error; content mismatchavrdude: safemode: Fuses OKavrdude done. Thank you.master@tux:/data/Dropbox/arduino-0022/hardware/tools$ [/code]Danke Euch.

    • #905530
      Hallo1001
      Teilnehmer

      Hallo spokekiller!

      Wenn ich das jetzt richtig sehe, dann arbeitest Du mit Linux? Leider kenne ich mich mit Linux nicht aus da ich ein Windows Kind bin, aber vielleicht kannst Du davon etwas für Dich ableiten. Unter Windows bedarf es eines Treibers, damit der USBasp überhaupt erst erkannt wird. Wird unter Linux auch so ein Treiber benötigt? Wenn ja, hast Du diesen installiert? Bei WinXP sieht das in etwa so aus:

      http://www.pcfilter.de/AVR-Ecke/Bilder/USBasp-Programmer4.jpg

      Ob der USBasp an sich überhaupt funktioniert, kann man mit AVRdude in Erfahrung bringen. Bei meiner AVR-Brenner Software (nur für Windows) würde das so aussehen:

      http://www.pcfilter.de/AVR-Ecke/Bilder/USBasb01.jpg

      Mit den AVRdude Parametern: [CODE]avrdude -p m328p -c usbasp -P USB:xx -v[/CODE] kann man das unter Windows in Erfahrung bringen. Für Linux musst Du hier mit Sicherheit die USB Anweisung ändern (kann mir nicht vorstellen das die hier gleich sind). Zumindest sollte sich der USBasp mit den zu sehenden Einstellungen melden. Wird der Programmer nicht erkannt, dann müsste die Meldung ungefähr so aussehen:

      http://www.pcfilter.de/AVR-Ecke/Bilder/USBasb02.jpg

      Die Fehlermeldung „avrdude: Device signature = 0x000000“ weis darauf hin das der AVR nicht richtig geantwortet hat. Du kannst hier zwar nicht feststellen an welcher Stelle es hapert, aber Du kannst sicher sein dass keine Verbindung besteht. Die Fehlermeldung kommt wenn der Programmer nicht erkannt/angeschlossen ist oder der AVR nicht erkannt wird. Wenn Du den Programmer richtig eingerichtet hast (siehe oben), dann kannst Du auch einen Verbindungstest starten.
      Parameter: [CODE]avrdude -p m328p -c usbasp -P USB:xx -F[/CODE]

      http://www.pcfilter.de/AVR-Ecke/Bilder/USBasb03.jpg

      So sollte es in etwa bei Dir aussehen. Ich habe hier bei mir grade einen ATtiny24 angeschlossen, daher auch die Anzeige. Ich hoffe ich konnte Dir damit weiter helfen…

      LG Jens

    • #905596
      phil68
      Teilnehmer

      Hallo zusammen 🙂


      @spokekiller

      Wie hast du eigentlich die Firmware auf den USBasp bekommen? Per Parallel Port,oder war die schon drauf?

      Ich bin auch noch recht frisch in Sachen µC und werde dir wohl kaum weiter helfen können. Da ich aber früher oder später vor dem selben Problem stehen werde, hab ich versucht mich auch mal ein wenig einzulesen und hoffe, dass du oder ein anderer eine Lösung findet. Ich bin sicher, dass dir die Tips von Hallo1001 weiter helfen!

      Alle Jumper des usbasp sind OFFEN (also auch der “power to target”)

      Ich als Newbie würde mal Jumper 3 setzen. Manchmal sind Dinge unergründlich :-k
      Hier der Link ist auch einen Versuch Wert. Ich werd mich, sobald alles Notwendige dazu vorhanden ist, auf alle Fälle mit dem HOWTO an die Problematik ran tasten.

      Grüße Dirk


      @Hallo1001

      Deine Homepage ist echt klasse :d: Ich denke da gibt es Einiges zum nachbauen für mich!

    • #905613
      Hallo1001
      Teilnehmer

      Hallo!

      @ phil68

      hast du eigentlich die Firmware auf den USBasp bekommen?

      Wenn Du den Programmer bei Fischl.de im Shop kaufst, dann ist da die Firmware bereits fertig installiert. Du musst den Programmer nur noch zusammen löten und kannst dann los legen…

      Deine Homepage ist echt klasse Ich denke da gibt es Einiges zum nachbauen für mich!

      Danke… 🙂

      LG Jens

    • #905619
      einball
      Teilnehmer

      Für Linux sind die Anweisungen für den USBProg eigentlich relativ gleich. Es kann allerdings sein, dass du sowohl das “-C avrdude.conf” weglassen musst (afaik überschreibt das deine Einstellungen) und den Programmer musst du mit dem Device, dass du in /dev hast andsprechen, Beispiel: /dev/usb0

      Weiterhin musst du avrdude mit root öffnen, weil dir sonst die Genehmigung fehlt, auf das USB Blockdevice zu schreiben. Das ist natürlich nicht erwünscht und es gibt ein Workaround. Du kannst dich mal bei embeddedprojects.net einmal umsehen. Dort ist das irgendwo gelistet. Mag allerdings sein, dass es für ein anderes USB Device nicht so richtig funktioniert.

      Ich hatte da auch Haarausfall (Ist glücklicherweise wieder nachgewachsen, Howdy Mädels 😉 ), am Schluss hing es dann auch wirklich nur am Aufruf mit rootrechten (=Schreibrechte auf dem USB Device … Bekommt man ansonsten leider nur mit eine speziellen Konfiguration oder Kernelspacezugriffen aufs Device) und der Angabe von /dev/usb (was du erstmal weglassen kannst, weil ich mir da nicht mehr ganz sicher bin ob ich das direkt im -P mit reingeschrieben habe.

    • #905639
      spokekiller
      Teilnehmer

      Hallo Leut,

      ich habe eben erst all Eure Antworten gesehen. Komischerweise habe ich wohl Problememit dem Benachrichtigungssystem des Boards. dirk, hast Du meine PN bekommen? Ich habe jedesmal beim Absenden Server Error 500 erhalten, deshalb bin ich nicht sicher.

      Okay, nun zum Problem.


      @Jens
      :
      Danke, ich denke ich werde es am Montag mal unter Win7 testen, ich habe eine Kiste hergerichtet die den usbasp auch richtig erkennt. Und Du hast Recht, die FW ist schon drauf, das war einer der Gründe, warum ich dort bestellt hatte. Ist aber ein Leihgerät, ich warte immer noch auf die Ersatzsendung zur ersten Bestellung… andere Baustelle.


      @einball

      Das mit den Rechten ist mir bekannt gewesen. Deshalb habe ich eine udev rule, die 666 als Permissions auf den usbasp gibt. Das Fehlerbild mit den Zugriffsrechten ist anders. da meldet avrdude dann direkt “operation not permitted”.
      Der usbasp wird vom Linux-System auch wie es sein sollte erkannt, usb-technisch meine ich. (Fischl beschreibt das u.a. in seinem Readme zur Firmware)
      Das mit dem Ansprechen per device-pfad werde ich austesten, genauso wie Jens’ Tip mit dem Testcycle.
      Warum ich die avrdude.conf mit angebe ist, weil ich den avrdude im Arduino-Pfad genutzt habe. Wenn alle anderen Tips jetzt nicht weietrhelfen will ich mal ne ganz frische Maschine nehmen und avrdude aus dem Repository nehmen. Man weiß ja nie…

      Die Ur-Idee war aber eben, direkt aus der IDE auf den Arduino(-Klon) flashen zu können.

      @Dirk
      Auch das mit dem Jumper schaue ich mir an… mittlerweile habe ich Stifte eingelötet, damit das einfacher geht.

      @alle
      Vielen Dank erstmal. Jetzt abonnier ich den Thread nochmal neu und dann werd ich mir das wohl heute nochmal “schnell” antun es auszutesten.

    • #905644
      spokekiller
      Teilnehmer

      Ach, das ist wirklich alles mal wieder so richtig ********, wenn ich mal so direkt sagen darf. Jetzt schlag ich mir mit einer angeblich narrensicheren Sache wieder Tage um die Ohren.

      Alles nur halbgar dokumentiert und hunderte von halbdeutlichen Aussagen auf tausenden von Websites.

      Also, hab den usbasp an meine Windows Kiste. Den Treiber von der fischl Seite installiert und er taucht auf wie Ihr beschrieben habt.
      Hab mir dann avrdudegui geholt, aber das ist extrem steif und so hab ich mir dann die CLI Version von avrdude angetan. Ist ja nicht schlimm.

      Fehlerbild ist exakt identisch. Die grüne usbasp LED (fischl schreibt nur “die muss an sein”, dann sei alles okay mit dem usbasp) leuchtet dauerhaft. Wieder alles sauber verkabelt, doppelt und achtfach geprüft.
      So und dann häng ich fest. Ich kann avrdude keinen USB Port mitteilen. Wie auch? Im device manager sehr ich nur, dass er an hub 6, port 4 hängt… und jetzt?

      Dann dacht ich, mach mal einfach einen auf “Selbsterkennung”… und das sieht dann so aus:
      [code]
      K:\usbasp\win32_executable>avrdude -c usbasp -p m328p

      avrdude: error: programm enable: target doesn’t answer. 1
      avrdude: initialization failed, rc=-1
      Double check connections and try again, or use -F to override
      this check.
      avrdude done. Thank you.
      [/code]

      So, wie find ich den Port raus bitte? Unter Linux stellt sich mir dieselbe Frage. Ich hab im sylsog nur das Erkennen des devices, keine Angabe eines /dev/-Pfades, wohin er ihn “mounted” hat… ?!?!

      Oh ich hör jetzt lieber erstmal auf, aber so langsam hab ich echt die Schnauze voll, würde den ganzen Sch…. am liebsten wegwerfen und mir einen Parallelprogger zusammenfummeln. Aber so weit kommts noch! Kann ja wohl nicht sein!!!
      So, das mußte raus.

      Jemand ne Idee? Ich glaub es liegt unter Win wie Linux schlicht daran, dass avrdude den usbasp nicht findenn kann.

      Bis dann.

      PS ich leg das jetzt zur Seit und bohr ein paar Löcher. Das entspannt.

    • #905646
      Hallo1001
      Teilnehmer

      Hallo spokekiller!

      Also, hab den usbasp an meine Windows Kiste………………..Hab mir dann avrdudegui geholt, aber das ist extrem steif und so hab ich mir dann die CLI Version von avrdude angetan.

      Hm, was hast Du Dir denn für eine GIU geholt, meinen AVR-Brenner? Wenn nicht, lade Dir doch einfach mal den AVR-Brenner von meiner Homepage herunter, ist ja Freeware… Den USBasp-Programmer habe ich da sogar schon „voreingestellt“, einfach nur auswählen und die GUI übernimmt den Rest für Dich… (Wenn noch was Fehlt meckert die GUI auch, Du brauchst nur den Anweisungen folgen.)

      ………am liebsten wegwerfen und mir einen Parallelprogger zusammenfummeln.

      Ganz böse Falle, zumindest unter Windows. Wenn Du das vor hast, dann musst Du auch noch den GiveIO Treiber installieren, ansonsten hast Du keinen Zugriff auf den LPT-Port. Auch hier empfehle ich Dir wieder meine GUI, da habe ich den GiveIO Treiber mit integriert. (Nach WinXP ist mit GiveIO schluss, der Treiber läuft ab Vista nicht mehr).

      LG Jens

    • #905647
      spokekiller
      Teilnehmer

      Danke Jens, jetzt muß ich nur noch Deine Seite finden :DIch hab mich doch nicht zurückgehalten und nochmal ein paar Seiten zusammengegooglet usw. Ich weiß ja, dass ich gelegentlich ein wenig ungeduldig sein kann…. Was mir halt partout nicht einleuchten will ist, dass ich der einzige Mensch im Universum zu sein scheine, der kurz vor dem Ziel bei diesem Thema hängen bleibt. Alles was ich lese geht immer in dieselbe Richtung. Meist liegts an den Rechten, danach tut alles “einfach so”…Und nach drei Tagen Rum-Ge-Eier hätte ich gerne mal ein kleines Erfolgserlebnis.Danke für den Tip mit dem Parallelprogger, der soll ja zumindest unte rLinux “narrensicher” sein — na, wenn das genauso einfach ist wie mit dem usbasp, dann Prost Mahlzeit.Mir ist noch was eingefallen. Angeblich – laut mindestens 10 Seiten & Blogs – soll das ohne Portangabe gehen. Danach soll es noch am Chip selber liegen.Ich hab hier noch einen ATtiny 2313, fabrikfrisch… den klemm ich ohne Quartze und so auf ein Breadboard und probiers mal mit dem passenden Parameter und schau mal ob er den erkennt. Manche Leute behaupten wenn der Fehler, den ich habe immer noch nicht weggeht, läge es am Chip.Seltsam ist aber, dass ich mit dem Original-Arduino Setup den problematischen Chip problemlos schreiben kann.Mit avrdude kann ich ihn dagegen nicht mal löschen.Achja, ergänzend sei noch gesagt, dass ein Setup von avrdude 5.1 auf einem frischen Linux-Netbook genauso gegen die Wand läuft, exakt gleiches Fehlerbild.Ich schau jetzt mal auf Deine Seite, aber vielleicht kram ich voher mal den Tiny raus. Und dann ist für heute wirklich Schluß. Ist ja nicht so, als hätte ich von alldem wirklich Ahnung. Da erwart ich wohl auch zuviel?Bis dann dann** EditAlso Jens, ich hab Deine Software installiert, die Zusatzsachen auch alle. Habe dann alles verkabelt, Progger zuerst getestet und das Bild entspricht dem ersten. Er scheint also den Progger zu erkennen. Auf der Kommandozeile mit gleichen Parametern sieht das aber komischerweise anders aus… Evtl ein libusb-Problem?Mache ich dann den Test mit dem ATMega328 sieht das aus wie auf dem Screenshot. Das mit den sigs soll auch durch den Arduino Bootloader kommen. Ich will mal versuchen den Chip komplett zu löschen, oder vielleicht ist es doch besser, ich mach mit dem tiny weiter? Achja, Jumper (also bspw slow clock) sind nicht gesetzt gewesen.** Noch ein EditAlso ich hab den Tiny2313 drangeklemmt. Ohne alles, nur den Chip aufs Board. Spannungsversorgung durch den usbasp eingestellt (geprüft, ok) dann Spannung, MOSI, MISO, SCK verkabelt. Den Progger angeklemmt und den AVR-Brenner genutzt, um den AVR-Verbindungstest zu machen. PArameter -p t2313 -c usbasp -P USB:xx -F. Egebnis:[code]: error: programm enable: target doesn’t answer. 1 : initialization failed, rc=-1: AVR device initialized and ready to accept instructions: Device signature = 0x000000: Yikes! Invalid device signature.: Expected signature for ATtiny2313 is 1E 91 0Adone. Thank you.[/code]Ich habs mal mit Slow Clock und ohne versucht, beides gleiches Ergebnis. Ernsthaft. Ich glaube ich verkabel die AVRs falsch !!! Kann mir das mal bitte einer aufmalen?!?! die Daten für die Anschlußbuchse beim USBASP sind auf funf.net/usbasp ganz untenSo, und für heute ist definitiv Schluß. Ich bastel jetzt noch an ein paar anderen Sachen rum.

    • #905651
      einball
      Teilnehmer

      Hej spokekiller,

      greppe doch mal nach dem USB Device mit “ls /dev | grep usb”. Dann gehst du in das Verzeichnis. Dort solltest du ein Device finden, das du dann einfügst. Mein USB/UART Wandler findet sich unter /dev/usb/lp0 .. Und versuche es mit rootrechten. Man weiß ja nie .. 😉

    • #905650
      Hallo1001
      Teilnehmer

      Auf der Kommandozeile mit gleichen Parametern sieht das aber komischerweise anders aus… Evtl ein libusb-Problem?

      Was meinst Du, was sieht anders aus?

      Mache ich dann den Test mit dem ATMega328 sieht das aus wie auf dem Screenshot. Das mit den sigs soll auch durch den Arduino Bootloader kommen.

      Also grundsätzlich ist und bleibt die AVR Signatur immer gleich, egal was da für eine Software (Bootloader) drauf läuft. Ist ja auch logisch, denn durch das aufspielen einer Software „veränderst“ Du ja nicht den Chip. Das einzige was sich mit Bootloader verschiebt, dass ist die Interne Adresse im Flash, da wo also die Software abgelegt wird. Aber auch das ist für einen Verbindungsaufbau (Signatur abfragen) total uninteressant.

      Vielleicht sollten wir mal ganz von vorne anfangen, um wenigstens Verkabelungsprobleme aus zu schließen. Lade Dir mal das Datenblatt vom ATmega328 herunter und schau mal auf die zweite Seite, dort findest Du die Pinbelegung vom Chip. Für einen ISP-Programmer werden immer 5 Signale benötigt (Masse, Reset, SCL, MISO und MOSI). Der Reset-Pin hat hier eine gesonderte Bedeutung. Er muss mit einem Pull-Up-Widerstand (z.B. 10K) auf Vcc gelegt werden. Sollte der Reset-Pin deaktiviert sein (weil er explizit über die FUSE-Bits abgeschaltet wurde), dann ist es nicht mehr möglich den Chip mit einem ISP-Programmer zu programmieren (der Chip kann dann nur noch durch eine HV Programmierung zurückgesetzt werden). Im Normalfall wird der Reset-Pin aber nicht abgeschaltet. Du musst als insgesamt 5 Kabel mit dem USBasp verbinden:
      Masse Mµ —> Masse Programmer
      Reset Mµ —> Reset Programmer
      SCK Mµ —> SCK Programmer
      MISO Mµ —> MISO Programmer
      MOSI Mµ —> MOSI Programmer
      Auch wenn Du ein gesondertes Netzteil benutzt um den AVR mit Spannung zu versorgen, die Massen müssen immer verbunden werden, damit ein gemeinsames Potential besteht…

      Achja, Jumper (also bspw slow clock) sind nicht gesetzt gewesen.

      Der muss auch nicht gesetzt werden, Du kannst hier alle drei Jumper offen lassen…

      LG Jens

    • #905652
      spokekiller
      Teilnehmer

      Hallo1001 said:
      Was meinst Du, was sieht anders aus?

      Ich mein die Ausgabe sieht anders aus, mit dem Kommandostring den ich in AVR-Brenner aufrufe kommt etwas anderes raus, nämlich wieder der rc=1. Habe leider keinen Screenshot gemacht.

      Also grundsätzlich ist und bleibt die AVR Signatur immer gleich, egal was da für eine Software (Bootloader) drauf läuft. Ist ja auch logisch, denn durch das aufspielen einer Software „veränderst“ Du ja nicht den Chip.

      OK, verstanden. Irgendwas hatte ich bei ladyada.net gelesen und das wohl jetzt in der Aufregung falsch interpretiert.

      Vielleicht sollten wir mal ganz von vorne anfangen, um wenigstens Verkabelungsprobleme aus zu schließen. Lade Dir mal das Datenblatt vom ATmega328 herunter und schau mal auf die zweite Seite, dort findest Du die Pinbelegung vom Chip.

      Das war die Grundlage aller meiner Arduino Projekte. Das DB habe ich mir gleich am ersten Tag geholt :D. Aber dennoch einverstanden bei 0 anzufangen. Anders wird das wohl nichts.

      Für einen ISP-Programmer werden immer 5 Signale benötigt (Masse, Reset, SCL, MISO und MOSI). Der Reset-Pin hat hier eine gesonderte Bedeutung. Er muss mit einem Pull-Up-Widerstand (z.B. 10K) auf Vcc gelegt werden. Sollte der Reset-Pin deaktiviert sein (weil er explizit über die FUSE-Bits abgeschaltet wurde), dann ist es nicht mehr möglich den Chip mit einem ISP-Programmer zu programmieren (der Chip kann dann nur noch durch eine HV Programmierung zurückgesetzt werden).

      Das habe ich bei all den bisherigen Tests mit dem 328er gemacht. Allerdings hatte ich auch ein externes 16MHz Quartz und zwei Kondensatoren an den entsprechenden Pins 9 und 10 (TOSC1/2).

      Im Normalfall wird der Reset-Pin aber nicht abgeschaltet. Du musst als insgesamt 5 Kabel mit dem USBasp verbinden:Masse Mµ —> Masse ProgrammerReset Mµ —> Reset ProgrammerSCK Mµ —> SCK ProgrammerMISO Mµ —> MISO ProgrammerMOSI Mµ —> MOSI Programmer

      Alles klar, genau so habe ich es gemacht und auch die Kabel auf Kontakt durchgangsgeprüft. Das hatte ich also durchaus richtig verstanden gehabt.

      Auch wenn Du ein gesondertes Netzteil benutzt um den AVR mit Spannung zu versorgen, die Massen müssen immer verbunden werden, damit ein gemeinsames Potential besteht…

      So hatte ich das ebenfalls. Masse war verbunden, +5V war nicht verbunden. Also auch korrekt. Target hatt eien eigene Spannungsquelle 5V stabilisiert.

      Achja, Jumper (also bspw slow clock) sind nicht gesetzt gewesen.

      Der muss auch nicht gesetzt werden, Du kannst hier alle drei Jumper offen lassen…

      Okay, so hatte ich das ebenfalls. Ich hab zwischendurch verschiedene Varianten durchprobiert, in der Annahme es könnte am Takt oder so liegen. Mein “default” lag aber auf: alle Jumper offen.

      greppe doch mal nach dem USB Device mit “ls /dev | grep usb”. Dann gehst du in das Verzeichnis. Dort solltest du ein Device finden, das du dann einfügst. Mein USB/UART Wandler findet sich unter /dev/usb/lp0 .. Und versuche es mit rootrechten. Man weiß ja nie ..

      Da hast Du durchaus Recht. Ich schau später nochmal. Der usbasp war ja ein Bausatz. Allerdings ist der so gutgemacht, da muß man sich schon Mühe geben, etwas falsch aufzubauen. Ich habe vorhin aber dennoch noch einmal alles auf korrekte Bauteilposition getestet. Nur zur Sicherheit und dass wir den Punkt abhaken können.Also nochmal abschließend. Ich stelle fest ich habe korrekt verkabelt; sowohl auf proggerseite pins korrekt als auch am m328p. Hmmmm….Unter Linux und Win bekomme ich identische Probleme unter verschiedenen Setups aber identischen Tools (ich mein jetzt in Bezug auf avrdude, nicht irgendein anderes Tool).Beim m328p hatte ich eine externe clock, beim tiny 2313 nicht. Beides zeigt identische Fehlerbilder. Proggertest nach Jens Art tut, alles danach tut nicht.Was nun? Ehrlich gesagt ich habe jetzt gerade keinen Ansatzpunkt mehr. Sollte ich es in Ruhe nochmal versuchen dokumentiere ich alles akribisch, sodaß Ihr besser helfen könnt.Danke Euch wie immer fürs Helfen!

    • #757764
      spokekiller
      Teilnehmer

      phil68;473513 said:
      Hi Micha,das ist wirklich ärgerlich!

      In der Tat 🙄

      Da du ja nun ein aufgesetztes Windows hast, wäre dies noch einen Versuch wert. http://tutorial.cytron.com.my/2011/09/30/how-to-program-arduino-by-using-avr-usbasp-programmer/

      Das hatte ich in Deinem Post zuvor schon gesehen. Ein analoges Tutorial hatte ich am Donnerstag unter Linux schon getestet. Ich habe es eben auch unter Win nochmal getestet.Dabei habe ich mich an die Verdrahtung nach diesem Schema “http://www.instructables.com/id/Adding-ICSP-header-to-your-ArduinoAVR-board/step3/ICSP-header-pinout/&#8221; gehalten, was den Arduino angeht (mein Originalboard). Auf Proggerseite wie auf der fischlseite dokumentiert.Arduino mal external powered (nix leuchtet auf’m Arduino : /) und einmal mit eigener Stromquelle, alle Leitungen verbunden außer +5V (im Bild VTG).Ergebnis:Flashen eines kleinen Sketches Binary sketch size: 1018 bytes (of a 32256 byte maximum)[CODE]java.lang.NullPointerException at processing.app.debug.AvrdudeUploader.getProgrammerCommands(AvrdudeUploader.java:106) at processing.app.debug.AvrdudeUploader.uploadUsingPreferences(AvrdudeUploader.java:68) at processing.app.Sketch.upload(Sketch.java:1603) at processing.app.Sketch.exportApplet(Sketch.java:1568) at processing.app.Sketch.exportApplet(Sketch.java:1524) at processing.app.Editor$DefaultExportHandler.run(Editor.java:2293) at java.lang.Thread.run(Thread.java:619)[/CODE]Und Versuch, den Bootloader mit usbasp aufzuspielen (ist jetzt in der 0023 offiziell drin, wie es scheint).[CODE] avrdude: error: programm enable: target doesn’t answer. 1 avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check.[/CODE]^naja und den Fehler kenn ich schon zur Genüge. Alle beide Fehler habe ich mit einem vergleichbaren Tut für Linux auch unter Linux bekommen….

      Könnte es sein, dass das der gelieferte Programmer eine fehlerhafte Software drauf hat :-k

      Also ganz ehrlich, das glaube ich mittlerweile fast auch. Irgendwas stimmt da nicht auf / mit / am Progger…. Die Fehlerbilder sind immer gleich, wirklich immer. Was auch immer gleich ist, ist der Progger. Leider habe ich natürlich jetzt das typische Henne-Ei Problem. Momentan habe ich jetzt auch weder die Zeit noch die Nerven mal eben schnell einen anderen Progger zu bauen. Tja. Wenigstens konnte ich gestern den HDD-Pimper fertigmachen. Tut auch. Keine Lötfehler und ist kompakt geworden. Muß ihn jetzt nur noch ansprechend einbauen. Aber DAS ist eine ganz andere Geschichte.Nochmal gefragt: hattest Du meine PM gestern bekommen?Ein etwas geknicketer Spoke…

    • #905653
      phil68
      Teilnehmer

      Hi Micha,
      das ist wirklich ärgerlich!

      Was nun? Ehrlich gesagt ich habe jetzt gerade keinen Ansatzpunkt mehr.

      Da du ja nun ein aufgesetztes Windows hast, wäre dies noch einen Versuch wert. http://tutorial.cytron.com.my/2011/09/30/how-to-program-arduino-by-using-avr-usbasp-programmer/
      Könnte es sein, dass das der gelieferte Programmer eine fehlerhafte Software drauf hat :-k

      Grüße Dirk

    • #905655
      Hallo1001
      Teilnehmer

      Hallo spokekiller!

      Ich habe es geschafft den gleichen Fehler zu reproduzieren… 🙂

      http://www.pcfilter.de/AVR-Ecke/Bilder/USBasp04.jpg

      Der Fehler tritt bei mir mit dem USBasp-Programmer auf, wenn die SCK, MISO oder MOSI Leitung in der Zielschaltung auch noch mit anderen Bauteilen verbunden ist (bei mir eine Diode). Entferne ich den Chip (so dass nichts weiter an den ISP-Leitungen angeschlossen ist), dann funktioniert der USBAsp-Programmer tadellos. Ich habe daraufhin auch gleich einmal meine anderen Programmer auf dieses Phänomen hin untersucht. Diese Problem tritt weder beim „PonyProg-Programmer“ noch beim „USBtiny-Programmer“ oder beim „STK500-Programmer“ auf. Wenn Du Dir einen der anderen Programmer aufbauen solltest (siehe Post weiter oben), dann solltest Du damit auch keine Probleme haben…

      LG Jens

    • #905658
      spokekiller
      Teilnehmer

      Ah! DAS ist interessant. Ok… aber wie paßt das dann zusammen, daß ich den Attiny2313 ganz ohne weitere Bauteile angeschlossen hatte und dennoch diesen Fehler bekommen habe? Da war wirklich gar nix dran. Nicht mal am Resetpin.

      Vielleicht habe ich vor lauter “Aufregung” dort einen anderen Fehler gemacht?

      Außerdem auch seltsam, an meiner Zielschaltung mit dem atmega328 war ja auch nur der Quartz … und der hängt ja nicht an den ISP Leitungen… ICh hätte ein Bild machen sollen.

      Ich stecks morgen nochmal neu zusammen. Also NUR den Zielchip auf ein Board, ISP Leitungen dran und Feuer frei. Mal sehen.

      Gute Nacht und Danke für die Mühe.

    • #905659
      Hallo1001
      Teilnehmer

      aber wie paßt das dann zusammen, daß ich den Attiny2313 ganz ohne weitere Bauteile angeschlossen hatte und dennoch diesen Fehler bekommen habe? Da war wirklich gar nix dran. Nicht mal am Resetpin.

      Also generell wird Reset immer nach Vcc geschaltet, da ansonsten der Mµ Humbug macht (Programm neu starten, sehr hohe Empfindlichkeit gegen Berührung, usw…). Ich kann mir gut vorstellen, dass ohne Pull-Up-Widerstand der Mµ einfach im Reset-Modus hängen bleibt (den der Programmer ja auslöst) und so der Mµ natürlich auch nicht antworten kann…

      Außerdem auch seltsam, an meiner Zielschaltung mit dem atmega328 war ja auch nur der Quartz … und der hängt ja nicht an den ISP Leitungen…

      Waren am Quarz auch die Kondensatoren angeschlossen, ohne schwingt der Quarz nämlich auch nicht. Aber ansonsten hast Du Recht, der Quarz hat nichts mit den ISP-Ports zu tun. Bei Fishel gibt es dazu auch noch einen Schaltplan mit einem ATmega8:

      http://www.fundf.net/usbasp/pic/simple_mega8.png

      Ansonsten kannst Du auch mal im Internet nach der Beschaltung vom AVR suchen, da gibt es tonnenweise Links dazu, wie der z.B.:

      Minimalbeschaltung

      LG Jens

    • #906158
      spokekiller
      Teilnehmer

      Hallo1001;473525 said:

      aber wie paßt das dann zusammen, daß ich den Attiny2313 ganz ohne weitere Bauteile angeschlossen hatte und dennoch diesen Fehler bekommen habe? Da war wirklich gar nix dran. Nicht mal am Resetpin.

      Also generell wird Reset immer nach Vcc geschaltet, da ansonsten der Mµ Humbug macht (Programm neu starten, sehr hohe Empfindlichkeit gegen Berührung, usw…). Ich kann mir gut vorstellen, dass ohne Pull-Up-Widerstand der Mµ einfach im Reset-Modus hängen bleibt (den der Programmer ja auslöst) und so der Mµ natürlich auch nicht antworten kann…

      Nachdem ich jetzt ein paar Tage so gaaar nichts damit gemacht habe, fielen mir im Nachhinein noch ein paar Sachen dazu ein. Ich hatte bei meinen allerersten Versuchen RESET immer per 10k auf +5V. Erst nachdem ich im Web ein Blog fand, dass den usbasp am ATtiny2313 ohne alles andere zeigte habe ich das mal ausprobiert.
      Ich könnte mir vorstellen, dass mein Fehlerbild dennoch irgendwas in dieser Richtung ist. Beim Test am Arduino Uno fiel mir auf, dass die Kontroll LED (hängt an einem der Digipins des ATMega328) ganz schwach flackerte… sowas hatte ich mal und da war es genau das: der Controller hing im Endlos-Reset.

      Außerdem auch seltsam, an meiner Zielschaltung mit dem atmega328 war ja auch nur der Quartz … und der hängt ja nicht an den ISP Leitungen…

      Waren am Quarz auch die Kondensatoren angeschlossen, ohne schwingt der Quarz nämlich auch nicht. Aber ansonsten hast Du Recht, der Quarz hat nichts mit den ISP-Ports zu tun. Bei Fishel gibt es dazu auch noch einen Schaltplan mit einem ATmega8:

      Ja, klar… das war mit das erste was ich gelernt hatte. Ohne Kondensatoren kein Quartz und beides so nahe wie möglich am µC zusammen. 😀

      **Schnipp**

      Ansonsten kannst Du auch mal im Internet nach der Beschaltung vom AVR suchen, da gibt es tonnenweise Links dazu, wie der z.B.:

      Minimalbeschaltung

      LG Jens

      Da fiel mir eben der 100nF KerKo zwischen +5V und GND auf… ist das ein sogenannter “decoupler”?
      Ansonsten Danke für den Link. Ich schaus mir in Ruhe am Samstag nochmal an. Heute kam mir noch ein Gedanke und ich werde mir die Ausgangsseite des Bausatzes genauer auf Lötfehler anschauen.

      Ich muß unbedingt Renovatios WOL-Duino endlich fertig machen und am Sonntag ist in Stuttgart Hobby-Elektronik Messe, da werd ich nach vielen Jahren Abstinenz mal wieder aufschlagen.

      LG,
      Micha

      PS: und um es uns allen leichter zu machen, werde ich von den nächsten (Fehl)versuchen Bilder machen, sonst wird das echtzu anstrengend.

    • #906183
      spokekiller
      Teilnehmer

      Leut, … ich flipp aus! Ich habs hinbekommen … gerade eben erst.Es sind mehrere Dinge gewesen, aber ich hab erfolgreich getest, geflashed und alles geht nachdem ich alle kniffligen Sachen behoben hab. Doku folgt in allen Details.Ein saumäßig froher MichaUpdate / EDIT 20. Nov 2011Also es hat sich tatsächlich um einen Lötfehler gehandelt. Dieser war an einer Stelle, wo er blöderweise die Resetleitung über einen Widerstand gebrückt hat. Der Verdacht kam mir bei Beobachtung der rasend schnell und schwach flackernden LED auf meinem Arduino Uno und auch durch Hallo1001s Kommentar zuvor bezüglich des PullUps (hatte an sich keine Beziehung, lenkte mich aber in die richtige Richtung).Blöderweise ist die Lötstelle direkt darüber absichtlich gebrückt, und deshalb ist es mir erst beim nochmaligen Kontrollieren aufgefallen.Ich konnte nun mittels dreier Modifikationen die Arduino IDE so nutzen, dass ich per usbasp flashen und auch den Bootloader draufbretzeln konnte. Bei Letzterem kommt allerdings ein bekannter Fehler, der wohl mit der Firmware un/oder avrdude zu tun hat. Er meldet die Checksumme falsch, was aber nicht wirklich schlimm ist, da es trotzdem funktioniert.Leider sind die Modifikationen an der IDE eine Einbahnstraße. Einmal modifziert kann man nicht einfach kurz mal eben “zurückswitchen” per Software. Man muss die – zugegeben kleine Modifikation – rückgängig machen und die IDE neu starten. Alles in allem aber völlig okay.Geht es nur ums bootloader flashen ist das alles nicht nötig. Den String zum bootloader flashen muss ich zwar noch capturen, aber das hex-file selber ist in der IDE-Dateistruktur vorhanden.Ansonsten war ich heute 5 Stunden auf der Hobby#Elektronik in Stuttgart und war sehr sehr enttäuscht. Das war früher eine der beliebtesten Bastlermessen in Süddeutschland und ist völlig ausgedörrt. Nur ein paar Ramschhändler und K+M Computer waren da. Nicht mal Conrad Elektronik hat sich gezeigt. Für Konsolenzocker gabs reichlich Werbetrucks, die ca 1/3 der Halle dominierten.Weswegen ich das aber erwähne: es gab unter anderem Vorführungen bzw Workshops von einigen Linuxgruppen, bei denen auch Mikrocontroller und Robbies eine Rolle spielten. Daneben war der Stuttgarter Hack(er)space Club, Shackspace mit einer eigenen Arduino-Produktion, dem shackduino vertreten. So sehr mir das gefalen hat, ist der shackduino zwar leicht umsetzbar, hat aber leider keinen USB Anschluß. Man setzt dort auf eine RS232 Anbindung via MAX232. Allerdings hat man das ansonsten gut design(ed/t). Für Kids gabs einen Workshop “wir löten einen ATmega auf die 8×8 Matrix und lassen unseren Namen als Laufschrift abfahren”.Mikrocontroller sind “VOLL IN”, das kann man auch an der Vielzahl aktueller Publikationen und Artikeln in c’t, bei Franzis Buchverlag etc sehen.Alles in Allem war es den Besuch leider nicht wirklich wert (10 Euro Eintritt, nichts gekauft). Ich werde mir aber u.U. den Hackspace in Stuttgart-Wangen mal anschauen… die Typen vom Verein sahen aber schon wirklich aus wie man sich die Nerds in den US-Film-Klischees vorstellt. Und das von mir, einem Geek der ersten Stunde… Achja… erste Stunde: die Massen an C64ern und Plus 4 etc pp trieben mir dann doch ein breites Grinsen aufs Gesicht. Vor allem, wenn man berücksichtigt, wieviele Teenies vor 300×200 Punkten bei 8 maximalen Farben die damaligen Klassiker mit irre Begeisterung zockten. Sch… auf drei-D, Retro ist cool. Oder so.

    • #906869
      spokekiller
      Teilnehmer

      Hallo, Zeit für ein Update der Roadmap für die nächsten Wochen.Nachdem ich in den vergangenen Tage Renovatios Auftragsarbeit für einen Remote-Wake-On-LAN Dienst mittels Arduino Uno+Ethernetshield fertigstellen konnte, sollte dieser hier noch vor Weihnachten vorgestellt werden.Der Code genügt geringen Ansprüchen, macht was er soll und ist einsteigertauglich. Bei einigen Optimierungsversuchen ist mir aufgefallen, dass weniger manchmal mehr sein kann. Die von mir gewählten und optisch schöneren zweidimensionalen Arrays fraßen erkennbar mehr Speicher, als die gleiche Zahl (gemessen an den Datentupeln) eindimensionale Arrays. Der Code bringt Euch auch die Grundlagen zum URL-Parsing näher.Nebenbei bemerkt ist mir aufgefallen, dass der Ethernetshield schwere Kost für Akkubetrieb zu sein scheint. Ein-zwei Stunden unbeaufsichtigt und meine 2.1Ah-Zellen waren tiefentladen. Die waren aber auch schon nicht mehr ganz frisch…Dann sind heute meine zwei Bausätze zum I²C-Modul für LCDs mit Hitachi Controller von Pollin gekommen. Leider mit Stiftleisten statt Buchsenleiste. Ein wenig ärgerlich, denn vor Weihnachten bestelle ich nicht mehr und so muß ich behelfsmäßig für meine Tests verkabeln. Noch müssen sie aber erst zusammengelötet werden und die passende Library für den Arduino getweakt werden. Danach kann man sich zukünftig die vielen Kabel sparen und auch die Kontrastregler landen auf dem Modul. Gelötet sind die wohl schnell und ich hoffe ich bekomme nächste Woche noch den Bobbes (schwäbisch für den gluteus maximus) hoch, um Euch was damit zu zeigen.Ach, und dann liegen hier noch Teile für Relaisplatinen und die I²C-Echtzeituhr. Aktuell habe ich keinen Verwendungszwek für beides, weswegen ich das alles noch vor mir herschiebe. Herrje. ;-)Zu mehr wirds aufgrund “Real Life” Themen und vorweihnachtlichem Chaos (warum flippen da alle immer aus?) wohl nicht reichen. Leider. Ab Weihnachten bin ich einige Wochen in Japan, weswegen auch erst mal Sendepause sein dürfte, weil ich dort kein Internet haben werde. So richtig OFF zu sein ist ganz erholsam, wenn man wie ich auch im Beruf dauernd vor dem Blechdeppen (PC) sitzt.Außerdem habe ich neuen Appetit auf Arduino bekommen, als ich gesehen habe, dass es einen Tree gibt, in dem ein paar Jungs den bootloader auf kleine ATtinys umgesetzt haben, sodass er (a) nicht soviel Platz frißt und (b) den Einsatz mit der Arduino IDE ermöglicht. Nur um ein paar LEDs blinken zu lassen braucht es ja an sich keinen relativ teuren (immerhin 3-5x ggüber einem ATtiny2313) ATMega328.Vielleicht werde ich mir auch die Programmierung der Tinys mit Basic mal anschauen. Man kann sicher einige schöne Modding-Projekte damit realisieren, die auch den non-Arduino Freaks im Forum gefallen dürften.Wie Ihr seht, die Birne steht nicht still… irgendwo muß ich nur mal anfangen. 😀Phil68 werkelt im Stillen sozusagen auch an so einigen interessanten Projekten, die Euch sicher sehr sehr gefallen dürften. Würde mich nicht wundern, wenn daraus die neue inoffizielle MK-Luftkühler-Plattform werden würde. Mal sehen, braucht alles Zeit.In diesem Sinne seid gespannt auf das was da kommt. Wir neuen Arduino / µC Freaks lassen Euch nicht hängen.

    • #906878
      einball
      Teilnehmer

      spokekiller;474078 said:
      Weswegen ich das aber erwähne: es gab unter anderem Vorführungen bzw Workshops von einigen Linuxgruppen, bei denen auch Mikrocontroller und Robbies eine Rolle spielten. Daneben war der Stuttgarter Hack(er)space Club, Shackspace mit einer eigenen Arduino-Produktion, dem shackduino vertreten. So sehr mir das gefalen hat, ist der shackduino zwar leicht umsetzbar, hat aber leider keinen USB Anschluß. Man setzt dort auf eine RS232 Anbindung via MAX232. Allerdings hat man das ansonsten gut design(ed/t). Für Kids gabs einen Workshop “wir löten einen ATmega auf die 8×8 Matrix und lassen unseren Namen als Laufschrift abfahren”.Mikrocontroller sind “VOLL IN”, das kann man auch an der Vielzahl aktueller Publikationen und Artikeln in c’t, bei Franzis Buchverlag etc sehen.Alles in Allem war es den Besuch leider nicht wirklich wert (10 Euro Eintritt, nichts gekauft). Ich werde mir aber u.U. den Hackspace in Stuttgart-Wangen mal anschauen… die Typen vom Verein sahen aber schon wirklich aus wie man sich die Nerds in den US-Film-Klischees vorstellt. Und das von mir, einem Geek der ersten Stunde… Achja… erste Stunde: die Massen an C64ern und Plus 4 etc pp trieben mir dann doch ein breites Grinsen aufs Gesicht. Vor allem, wenn man berücksichtigt, wieviele Teenies vor 300×200 Punkten bei 8 maximalen Farben die damaligen Klassiker mit irre Begeisterung zockten. Sch… auf drei-D, Retro ist cool. Oder so.

      Den Shackspace will ich mir auch mal anschauen. Ich bin gerade dabei (gerade bedeutet seit 2 Jahren), einen kleinen Hackerspace hier aufzuziehen. Wenigstens eine kleine Grupe zu gründen, die etwas mit µC und/oder Elektronik macht. Leider hat sich bis jetzt nur einer gefunden. In solchen kleineren Städten funktioniert das leider nicht wirklich gut. Schade drum.Wenn du zum Shackspace gehst, nimmst du mich dann mit? Treffen wir uns irgendwo? vorzugsweise Samstags ;)In der c-base sitzen auch noch ein paar (viele!!) C64, Amigas und andere Pre-PCs im Hardwarelager. Auch eine nette Sammlung 😉

    • #906881
      spokekiller
      Teilnehmer

      einball;474847 said:
      Den Shackspace will ich mir auch mal anschauen. Ich bin gerade dabei (gerade bedeutet seit 2 Jahren), einen kleinen Hackerspace hier aufzuziehen. Wenigstens eine kleine Grupe zu gründen, die etwas mit µC und/oder Elektronik macht. Leider hat sich bis jetzt nur einer gefunden. In solchen kleineren Städten funktioniert das leider nicht wirklich gut. Schade drum

      Ja, das kann ich nachvollziehen, da kommen bei mir alte Erinnerungen mit Computerclub damals in den 90ern hoch. Mitmachen wollen immer alle, aber eben nur solange bis sie mal was mithelfen sollen. Und Zuverlässigkeit — ach i wo!

      einball;474847 said:
      Wenn du zum Shackspace gehst, nimmst du mich dann mit? Treffen wir uns irgendwo? vorzugsweise Samstags 😉
      In der c-base sitzen auch noch ein paar (viele!!) C64, Amigas und andere Pre-PCs im Hardwarelager. Auch eine nette Sammlung 😉

      Ja das kann ich machen, logo. Mühlacker ist bei Pforzheim oder? Wir könnten uns beispielsweise am Stuttgarter Hbf oder in Leonberg treffen… Samstags wäre auch okay, aber erst gegen Nachmittag.
      Ich weiß aber nicht, ob ich es noch vor Weihnachten schaffe. Anhand der Webseite ist die Shackspace Anlage sensationell aber die Leute, naja… ob ich wohl auch so daneben war in dem Alter? Manche meiner Freunde behaupten sowas.

      Details machen wir per PN und jabber oder Telefon.

    • #906898
      spokekiller
      Teilnehmer

      Da mußte ich jetzt gut lachen drüber. SIC! Ganz wunderbar hast du das getroffen. Sehe ich genau gleich.Und umgekehrt paßt das durchaus auch: ich hab bei der Arbeit öfter mal Studenten und das find ich immer super-erfrischend. Man ist eben immer so alt wie man sich fühlt. Oder nicht? (Das erzähl ich mal meinen Rückenmuskeln, die sind da wohl anderer Meinung… hahahaha).Davon mal abgesehen hatte ich nicht den Altersunterschied gemeint. Ich meinte eher, die Jungs im shackspace wären mir einfach, na sagen wir: selbst für meinen Geschmack etwas zu blödelhaft, einfach zu übertrieben durchgeknallt. Aber das sieht auf den Videos vielleicht nur so aus. Wa sie dagegen in dem neuen Bau aufgerichtet haben gefällt mir soweit wirklich gut, von daher ist ein bisschen zuviel Geblödel auch okay 🙂 Na Du wirst schon noch merken, was ich meine 😀

    • #906893
      einball
      Teilnehmer

      Ich finde das urkomisch, wenn sich die Leute über das Alter Gedanken machen. Vor allem bei sowas. Ich nenne dir drei Argumente, warum du das mit dem alter schnell mal wieder vergessen solltest:

      Punkt 1: Hackerethik der alten Schule

      Beurteile einen Hacker nach dem, was er tut und nicht nach üblichen Kriterien wie Aussehen, Alter, Rasse, Geschlecht oder gesellschaftlicher Stellung.

      Punkt 2: Ich habe häufig mit Leuten über 30 zu tun. Ich komme mit ihnen klar. Mir sind ältere Leute im Normalfall lieber. Deer Grund ist einfach die Erfahrung. Ich lerne viel mehr von einem (lebens-)erfahrenen Hacker, als von einem jungen Heißsporn, wie ich einer bin 😉

      Punkt 3: In der c-base rennt Jung und Alt rum. Dort ist es den Leuten auch egal, wie alt du bist 😉

    • #907310
      ThaRippa
      Verwalter

      Mal wieder was von mir: es geht!http://dl.dropbox.com/u/30909448/IMG_1044.JPGIch kann also jetzt das Noritake-VFD nicht nur beschreiben, sondern auch den Cursor verschieben und sowas. Dimmen sollte nur ein paar Codezeilen entfernt sein. Ich habe die LiquidCristal-Library auf die Besonderheiten der Noritake-Steuercodes angepasst und LiquidVFD genannt. Code gibts, sobald der komplizierter und dabei vorzeigbarer geworden ist.Wehmutstropfen: ich benötige momentan satte 10 Digitalpins wegen der Parallelansteuerung. Das Ding kann wohl auch Seriell, aber das hab ich noch nicht begriffen. Seriell bräuchte nur einen Pin, und wäre immernoch schnell genug für ein bisschen Text, ein paar Temperaturen und Drehzahlen.Aber dea geijd! Ä ganzes Wochnendä ä schworza Bildschirm, un dea geijd!

    • #907350
      spokekiller
      Teilnehmer

      Meinen Glückwunsch, ganz tolle Leistung!!! Find ich toll, dass es Dir endlich gelungen ist. Was ist denn das für ein serieller Anschluß, womöglich I²C?LG, Spoke

    • #907354
      ThaRippa
      Verwalter

      Ich hab das Teil.http://www.farnell.com/datasheets/57190.pdfFür mich liest sich das wie ein stinknormales COM-Interface, also Nullmodemmäßig. Theoretisch müsste man da mit Windows Terminal oder Putty hinschreiben können. Wenn ich nen COM-Port hätte. Und lust das zu verbinden. Ich such mir demnächst mal nen Codeschnipsel wo wer seriell überträgt (die Beispiele lesen ja alle nur seriell) und versuche mir daraus was zu drehen.

    • #907355
      spokekiller
      Teilnehmer

      Ja, das wird ein “normaler” Serial-Port nach RS232 Art sein. Wohl wie ich das lese aber mit 5V-TTL Pegeln, das heißt Du darst das Ding auf keinen Fall einfach direkt an eine PC-RS232 (COM) hängen, die ballert das VFD einfach kaputt.Das müßte man mit einem RS232-TTL Wandler dazwischen mal antesten. Baudrate sieht ja gut aus und dann setzt man 8N1 oder 8N0 …. 19200 ist schon klasse. Da geht dann auch was.Achso, und meiner Meinung nach sollte es möglich sein, das gute Stück auch “nur” mit 4 Datenleitungen zu nutzen, sodaß Dir am Arduino vier frei werden. Bei den Libs für die Displays mit Hitachi Controller geht das, aber das weißt Du sicher noch.Bist gar nicht auf die Idee gekommen, das mal anzutesten? ;-)Die Schwierigkeit beim seriellen anschluß ist eher, dass Du eine Lib brauchst, die die Kommandos implementiert für bspw Position, Zeilensteuerung, Zeichenwahl. Ich bin jetzt nicht so sicher, ob das mit Deiner modifizierten so einfach gehen wird.Wenn du Spaß am weiterfummeln hast kannst Du auch versuchen, einen Aufbau mit shiftregister zu machen. Wäre mir aber an sich zuviel. Ich würde als erstes die 4 DL-Tricks durchprobieren.Was ist denn an dem Noritake VFD so besonders gegenüber einem guten Display mit HD-Controller? Kann man die Pixel individuell ansteuern wie bei einem grafischen?LG**EDIT….ich hab das wohl verschnarcht, aber es gibt doch auch fertige Libs für rein serielle Displays…. evtl schau da mal nach und pass die an, das könnte uU jetzt nicht mehr schwer sein, wo Du weißt, auf was es ankommt.

    • #907358
      ThaRippa
      Verwalter

      Wenn ich nur 4 Ports angebe, funzt es nicht. Bei den anderen VFDs steht 4 und 8-Kabel-Betrieb extra da, bei meinem halt parallel und seriell. Was ich will ist doch, dass der Arduino mit dem ding seriell redet. Stimmen da nicht die Pegel? Das mit den Steuersignalen ist anscheinend etwas anders. Beispielsweise ein Cursor-Move ist aus drei Zeichen aufgebaut. Escape, dann C und dann die Position. Für alle anderen Befehle gibts schlicht andere Hexcodes als in HD-Controllern üblich. Dafür scheint man keine Leitung zu haben, die zwischen Zeichen und Steuerzeichen wählt. Ist ja auch sinnig für den seriellen Betrieb ;)Wie gesagt, wenn ich dem Teil Chars senden kann und es die ausgibt hab ich so gut wie gewonnen, weil dann bau ich mir alle Steuerbefehle von Hand in ne eigene Library. Dann kanns endlich weitergehen, weil ich dann wieder Pins frei hab zum Messen und Regeln. Als nächstes brauch ich alle 10 Minuten einen Impuls – ohne sleep.

    • #907360
      phil68
      Teilnehmer

      Als nächstes brauch ich alle 10 Minuten einen Impuls – ohne sleep.

      Etwas ähnliches hab ich in meiner Regelung schon umgesetzt.

      long previousMillis = 0; // store last updatelong timer = 30000; // timer 30 secondsvoid setup(){}void loop(){unsigned long currentMillis = millis();if(currentMillis-previousMillis>timer){ digitalWrite(PowerOffPin, HIGH); // Power-Off-Impuls ondelay (1000); // wait 1 seconddigitalWrite(PowerOffPin, LOW); // Power-Off-Impuls offpreviousMillis = currentMillis(); // start count}}

      In dem Fall wird der Impuls(1s) ausgeführt, wenn die verstrichene Zeit 30s übersteigt, also aller 30s.Grüße Dirk

    • #907365
      ThaRippa
      Verwalter

      Super, danke. Wird aber erst umgesetzt wenn ich wieder Pins frei habe 🙂 Da fällt mir ein, ich brauch noch ein paar Transistörchen, um wirklich schalten zu können.

    • #907385
      einball
      Teilnehmer

      Haaaalo, stop! So wie du, phil, es machst, schläft der Prozessor eine ganze Weile (delay() beschäftigt ihn glaube ich, so lange, bis die zeit rum ist).

      Nimm lieber einen Timer, der alle x sekunden einen Interrupt feuert. Damit ist die CPU für andere Aufgaben frei .

    • #907386
      ThaRippa
      Verwalter

      Naja die eine Sekunde warten ist in dem Beispiel ja nur damit die LED an bleibt.

    • #907382
      spokekiller
      Teilnehmer

      ThaRippa;475329 said:
      Wenn ich nur 4 Ports angebe, funzt es nicht. Bei den anderen VFDs steht 4 und 8-Kabel-Betrieb extra da, bei meinem halt parallel und seriell.

      Achso. Schade.

      ThaRippa;475329 said:
      Was ich will ist doch, dass der Arduino mit dem ding seriell redet. Stimmen da nicht die Pegel?

      Doch, die passen, aber Du solltest ggf einen kleinen Transistor zwischenklemmen (2N2646/2N3909 … müßte jetzt schauen), weil ich nicht weiß wieviel Strom da gezogen wird und wenn alle 8 Datenleitungen laufen wird zuviel Gesamtstrom gezogen, was Dir den µC ‘grillen’ kann.

      ThaRippa;475329 said:
      Wie gesagt, wenn ich dem Teil Chars senden kann und es die ausgibt hab ich so gut wie gewonnen, weil dann bau ich mir alle Steuerbefehle von Hand in ne eigene Library. Dann kanns endlich weitergehen, weil ich dann wieder Pins frei hab zum Messen und Regeln. Als nächstes brauch ich alle 10 Minuten einen Impuls – ohne sleep.

      Falls es dann immer noch zu weig Pins wären könntest Du einen Multiplexer nehmen, da bläst Du einen Kanal auf 16 auf, mit relativ geringem Aufwand, auch in der Programmierung. Und die Schaltzeiten zwischen zwei MX-Ports sind so schnell, dass es ist, als wenn Du die Sensoren zeitgleich ausliest. Fürs Schalten dagegen sind ShiftICs handlicher (weil die MXer ja nur einen Port gleichzeitig aktiv halten können).

    • #907384
      ThaRippa
      Verwalter

      Na nee, ich verstehe das so, dass ich für seriell exakt einen Pin brauche. Dazu halt noch 5V und Masse. Das ist so auch als Stecker (wie Lüfteranschluss) ausgeführt. Dann brauch ich erstmal keine Multiplexer oder Schiebedingsis. Wenn dann steht ja hier schon wie ich die einbinden kann. Aber wie gesagt, es sollte erstmal so gehn.Das Temperaturmessen will ich mit den Digitalfühlern machen, die du vorgestellt hast. Also ein weiterer Pin. Dann noch einen für den Impuls alle 10 Minuten ans Logo-Display, und einen oder zwei für Lüfter. Wobei da weiß ich noch nicht was ich mach – könnte ja auch mit Analog-Outs und Verstärkern gehen. Ich hab 2×3 120er zu regeln. Darüber mach ich mir aber Gedanken wenn der Rest läuft. Gemach!Ich hab dank BF3 im Moment nicht oft Zeit zum basteln (die lieben Kollegen fordern zum zocken auf) und ab mitte Dezember gehts mit Star Wars : The Old Republic weiter…

    • #907392
      phil68
      Teilnehmer

      Haaaalo, stop! So wie du, phil, es machst, schläft der Prozessor eine ganze Weile (delay() beschäftigt ihn glaube ich, so lange, bis die zeit rum ist).

      Ja ist mir bekannt, die 1s sollte zu verschmerzen sein :-k In meinem Beispiel ist das Teil einer Temp-Regelung. Ich nutze den Impuls zum Herunterfahren des Rechners.

      Grüße Dirk

      EDIT: Du meinst so?

      #include

      long previousMillis = 0; // store last update
      long timer2 = 30000; // timer 30 seconds

      void timer1() {
      digitalWrite(PowerOffPin, LOW); // Power-Off-Impuls off
      }

      void setup()
      {
      timer.setInterval(1000, timer1);
      }

      void loop()
      {
      unsigned long currentMillis = millis();
      if(currentMillis-previousMillis>timer2){
      digitalWrite(PowerOffPin, HIGH); // Power-Off-Impuls on
      timer.run();
      previousMillis = currentMillis(); // start count
      }
      }

      …ist sicher recht umständlich, aber ich bin in der Lernphase und totaler Programmier-Noob 8-[

    • #907416
      Renovatio
      Teilnehmer

      Natürlich spoke, hier muss doch einer mal was größeres Präsentieren. ^^Wir machen daraus ein sehr Spannendes Thema.

    • #907412
      spokekiller
      Teilnehmer

      ThaRippa;475358 said:
      Na nee, ich verstehe das so, dass ich für seriell exakt einen Pin brauche. Dazu halt noch 5V und Masse. Das ist so auch als Stecker (wie Lüfteranschluss) ausgeführt. Dann brauch ich erstmal keine Multiplexer oder Schiebedingsis. Wenn dann steht ja hier schon wie ich die einbinden kann. Aber wie gesagt, es sollte erstmal so gehn.Das Temperaturmessen will ich mit den Digitalfühlern machen, die du vorgestellt hast. Also ein weiterer Pin. Dann noch einen für den Impuls alle 10 Minuten ans Logo-Display, und einen oder zwei für Lüfter. Wobei da weiß ich noch nicht was ich mach – könnte ja auch mit Analog-Outs und Verstärkern gehen. Ich hab 2×3 120er zu regeln. Darüber mach ich mir aber Gedanken wenn der Rest läuft. Gemach!Ich hab dank BF3 im Moment nicht oft Zeit zum basteln (die lieben Kollegen fordern zum zocken auf) und ab mitte Dezember gehts mit Star Wars : The Old Republic weiter…

      Ja, nee, okay, is klar. Ich hab nicht gewußt, dass das restliche Zeug doch überschaubar ist. Ich wollte da gleich mit dem Muxer ran. Der bezog sich nicht aufs Display.Ach ich bin z.Zt nicht ganz beim Thema, scheint mir. Aber Ihr habt den Thread ja voll im Griff 😎 Schön. Ehrlich.Wenn der Renovatio dann demnächst seinen Arduino Mega abgreift, dann geht hier vollends der Punk ab. 😆

    • #907428
      spokekiller
      Teilnehmer

      einball;475403 said:
      Hjey phil,

      ich weiß nicht, wie sich das mit dem Arduino verhält, sorry!
      Die Sekunde ist verschmerzbar, ja. doch ich redete eigentlich von dem Impuls alle 10 Minuten, den ThaRippa angesprochen hatte.

      Ohne die IDE zu nutzen, gibt es die Möglichkeit, einen Timer zu starten. Bei einem Overflow wird ein Interrupt generiert, über den du dann eine Variable hochzählen lassen kannst (Der Timer feuert immer mehr als einen Interrupt pro Sekunde, je nach Taktfrequenz und Einstellung). In der Mainloop machst du das genau so, mit einer IF Abfrage, die überprüft, ob über den Daumen gepeilt 10 Minuten vergangen sind und dann den Impuls an das Display abgibt oder auch nicht.

      Mal so schnell dazu ergänzt… in phils speziellem Fall könnte das dennoch ein Problem sein, weil er schon beide interrupts nutzt, die der ATMega328 hat. Oder war sogar einer schon für den Timer… ??? tilt.
      Innerhalb der Arduino-Sprache gibts m.W. nur die Möglichkeit, den Timer, der automatisch seit dem letzten Reset läuft (ne Art System Uptime) per millis () Funktion abzufragen.
      Versteht jemand was ich sagen will? Müßte man ggf mal noch googlen, aber phils Code ist ja voll funktionsfähig.
      Delay ist m.E. für sowas jedenfalls ‘voll unschön’, weil er in der Zeit Nul-Loops fährt und Taktzyklen belegt, in denen dann einfach nichts gemacht wird. Die millis also in Intervallen abzufragen ist okay. Wenn es nicht auf hochpräzise Zeitmessung ankommt ist der durch den Programmcode-Lauf zu erwartende Zeitrahmen, den man daneben liegt locker zu verschemrzen, nicht wahr?

      Ich geh jetzt schlafen, also delay(8h) 😆

    • #907425
      einball
      Teilnehmer

      Hjey phil,

      ich weiß nicht, wie sich das mit dem Arduino verhält, sorry!
      Die Sekunde ist verschmerzbar, ja. doch ich redete eigentlich von dem Impuls alle 10 Minuten, den ThaRippa angesprochen hatte.

      Ohne die IDE zu nutzen, gibt es die Möglichkeit, einen Timer zu starten. Bei einem Overflow wird ein Interrupt generiert, über den du dann eine Variable hochzählen lassen kannst (Der Timer feuert immer mehr als einen Interrupt pro Sekunde, je nach Taktfrequenz und Einstellung). In der Mainloop machst du das genau so, mit einer IF Abfrage, die überprüft, ob über den Daumen gepeilt 10 Minuten vergangen sind und dann den Impuls an das Display abgibt oder auch nicht.

    • #907439
      Hallo1001
      Teilnehmer

      Hallo alle miteinander!

      Innerhalb der Arduino-Sprache gibts m.W. nur die Möglichkeit, den Timer, der automatisch seit dem letzten Reset läuft (ne Art System Uptime) per millis () Funktion abzufragen.

      Ist auch kein Problem… 😉 Als erstes musst Du herausfinden wann der Timer überläuft (also welchen Zahlenwert er maximal annehmen kann) und mit welcher Schrittweite er arbeitet. Dann erstellst Du eine Variable mit dem gleichen Byte-Format (char, short, long), damit die Variable auch genau den gleichen Zahlenwert annehmen kann. Ich nenne die Variable einfach mal „Z1“. Und dann brauchst Du in der Hauptschleife nur noch diesen Code einbauen:

      [CODE]If (millis() >= Z1) { // wenn Zeit abgelaufen, dann…
      Z1 = millis() + 1000 // Zeit neu einstellen (1000 = 1 Sekunde)

      Code // was nach Zeit X ausgeführt werden soll

      }
      [/CODE]

      Arbeitet „millis()“ in 1ms Schritten, dann währe 1000 eine Sekunde. Möchtest Du z.B. die Zeitschleife alle 5 Sekunden aufrufen, dann müsstest Du hier 5000 dazu addieren. Damit erhältst Du eine „Zeitbasis“ die sehr genau arbeitet und das System nicht tot legt…

      LG Jens

    • #907454
      spokekiller
      Teilnehmer

      Hi Jens,ich hatte was anderes gemeint, nämlich dass man zwar die Zeit genau aufzeichnen kann und vergleichen, aber durch die Laufzeiten Deines Codes es nicht möglich sein dürfte, im Voraus zu sagen: in 10min und 30 sec tu dies/jenes — jedenfalls nicht so.Im Falle der IF Abfrage kann man ja nicht bestimmen, ob sie bspw zu spät oder zu früh abgefragt wird. Ich denke ich rede hier von Zeitunschärfe im sec oder sogar millisec-Bereich (je nach Code). Ein Interrupt für einen “mitlaufenden Zähler” wäre da die Lösung.Wirklich wichtig oder schlimm dürfte das aber nicht sein — ich war nur mal wieder Erbsen zählen.So wie Du es vorgestellt hast findet es sich auch in phill68s Code und auch in einigen Beispielen, wer die IDE kennt kann sich den Demosketch “BlinkwithoutDelay” in den Examples ansehen. Sehr simpel und verständlich.Bei dieser Zeitdiskussion fällt mir wieder ein, dass hier noch irgendwo eine I²C fähige DS1307 rumliegen dürfte… *raschel, such*Cheers.

    • #907473
      thethe
      Teilnehmer

      Bestimmt wisst Ihrs schon und ich verlinke hier trotzdem, dass die Arduino-Entwicklungsumgebung 1.0 erschienen ist.

    • #907497
      Hallo1001
      Teilnehmer

      Hallo spokekiller!

      ich hatte was anderes gemeint, nämlich dass man zwar die Zeit genau aufzeichnen kann und vergleichen, aber durch die Laufzeiten Deines Codes es nicht möglich sein dürfte, im Voraus zu sagen: in 10min und 30 sec tu dies/jenes — jedenfalls nicht so.

      Warum nicht? Du kannst Doch einfach “10min & 30sek” dazu addieren. Es geht eben nur nicht wenn der Timer vor diesen “10min & 30sek” überläuft. Welchen Zahlenwert kann denn der Timer hier maximal annehmen und mit welcher Schrittweite arbeitet “millis()”?

      Im Falle der IF Abfrage kann man ja nicht bestimmen, ob sie bspw zu spät oder zu früh abgefragt wird.

      Also “zu früh” kann die IF Abfrage nie erfolgen, denn der Vergleich ist ja “>=”. Der Code kann also “genau” oder “größer” der angegebenen Zeit ausgeführt werden. Aber Du hast natürlich Recht, hängt das Progi bei einer anderen Abarbeitung fest, dann kann die IF Abfrage natürlich nicht zur gewünschten Zeit durchlaufen werden…

      LG Jens

    • #907505
      spokekiller
      Teilnehmer

      Hallo1001;475478 said:
      Aber Du hast natürlich Recht, hängt das Progi bei einer anderen Abarbeitung fest, dann kann die IF Abfrage natürlich nicht zur gewünschten Zeit durchlaufen werden…LG Jens

      Genau darauf wollte ich hinaus. Sorry, bin heute wieder nicht dazu gekommen die Tutorials fertigzumachen. 😥EDIT – 08. DezemberHallo,leider kann ich aufgrund einiger privater Probleme und Terminschwierigkeiten diesen Monat und auch größtenteils im Januar nichts zu diesem Thread beitragen.Der Thread wird deswegen NICHT sterben. Arduino bzw ATMega und leichte, kleine Lösungen basierend darauf werden mich weiter beschäftigen.Es gibt eben nur Zeiten im Leben, da sind andere Dinge wichtiger.Es tut mir vor allem Leid für all diejenigen, die jetzt über die Feiertage viel freie Zeit haben werden (anders als ich) und auf neue Anregungen gewartet haben. Ich bin mir aber sicher, dass die Crew, die mich in den letzten Monaten so angespornt hat, dafür sorgen wird, dass es nicht ganz so leer bleiben wird. ;-)Leider kann ich somit auch am angedachten (Augsburger) Treffen im Januar nicht dabei sein, was mich ganz besonders ärgert. Aber aufgeschoben ist nicht aufgehoben. Liebe Grüße an alle Mitleser und MK’ler und bis hierher ein dickes Danke für all die Unterstützung, die Hilfe in materieller und immaterieller Form. Besonderen Dank an Phil68, für die so zahlreich angefertigten MK-Duino Prototypen und Korrekturen,an Hallo1001 für die Grundkurse in Programmertechnik und Elektronik,Renovatio für seine Geduld (bis ich endlich seinen WOLDuino-Prototypen fertig hatte) und tollen Ideenund ThaRippa fürs Mitmachen im Hintergrund und seine Empfehlungen in anderen Threads.Von meiner Seite aus solls im neuen Jahr mit coolen Ideen, kleinen Bausätzen und ner Menge spinnigem Moddingkrempel weitergehen.Und einball, wir gehen auch zum shackspace in Stuttgart…habs nicht vergessen…Frohes Weihnachtsfest und guten Rutsch, falls man sich bis dahin “nimmer hört” 😀

    • #910316
      BigPlanet
      Teilnehmer

      Hallo ans Forum.

      Bin seit 3 Wochen (stolzer) Arduinobesitzer.

      Kurz zu meiner Person :

      Bin Ü50 und spreche verschiedene Sprachen:
      (C, Java, HTML, PHP, MYSQL usw.)

      Bin seit 20 Jahren am programmieren – verschiedene Sachen (bisher hauptsächlich BW-Sachen.

      Die Arduinos und das ganze drumrum und die Möglichkeiten dazu – das ist schon gigantisch. Kaum hast du mal ein Sketch gemacht fallen dir schon mehrere Erweiterung udgl. dazu ein. Ich habe seit 2 Tagen das Board und den Thread “Elektronikprojekte auf Arduino Plattform” gelesen und mich entschlossen meine Senf auch dazu zu geben (wenn ich darf)

      Freue mich auf Gedankenaustausch.

      Grüße
      BigPlanet

    • #910382
      Renovatio
      Teilnehmer

      Schön dir hier zu sehen BigPlanet und super das du so viele Sprachen sprechen kannst. 🙂

    • #910391
      Renovatio
      Teilnehmer

      phil68;478671 said:
      Hallo BigPlanet 🙂
      Schön, dass du dich hier meldest!

      Die Arduinos und das ganze drumrum und die Möglichkeiten dazu – das ist schon gigantisch. Kaum hast du mal ein Sketch gemacht fallen dir schon mehrere Erweiterung udgl. dazu ein.

      Ja, es lässt einen nicht mehr los. Ich habe jetzt meine (fast) komplette Regelung fertig, aber leider im Moment keine Zeit das Projekt hier vorzustellen. Im Februar sollte das dann wieder klappen.

      Bin Ü50 und spreche verschiedene Sprachen:
      (C, Java, HTML, PHP, MYSQL usw.)

      Respekt, dann kann ich dir ja meinen zusammen gewürfelten, “schlechten Code” um die Ohren hauen und korrigieren lassen 😉


      @spokekiller

      Hab gerade erst dein letztes Posting gesehen… Ich hoffe, dass du die Probleme möglichst schnell aus der Welt schaffen kannst und drücke dafür beide Daumen!

      Grüße Dirk

      Dann bin ich mal gespannt.

      @spoke:Hab das gar nicht gelesen das du gerade Problem hast und hoffe das du sie schnellst möglich aus dem Weg schaffst.

    • #910389
      phil68
      Teilnehmer

      Hallo BigPlanet 🙂
      Schön, dass du dich hier meldest!

      Die Arduinos und das ganze drumrum und die Möglichkeiten dazu – das ist schon gigantisch. Kaum hast du mal ein Sketch gemacht fallen dir schon mehrere Erweiterung udgl. dazu ein.

      Ja, es lässt einen nicht mehr los. Ich habe jetzt meine (fast) komplette Regelung fertig, aber leider im Moment keine Zeit das Projekt hier vorzustellen. Im Februar sollte das dann wieder klappen.

      Bin Ü50 und spreche verschiedene Sprachen:
      (C, Java, HTML, PHP, MYSQL usw.)

      Respekt, dann kann ich dir ja meinen zusammen gewürfelten, “schlechten Code” um die Ohren hauen und korrigieren lassen 😉


      @spokekiller

      Hab gerade erst dein letztes Posting gesehen… Ich hoffe, dass du die Probleme möglichst schnell aus der Welt schaffen kannst und drücke dafür beide Daumen!

      Grüße Dirk

    • #910393
      phil68
      Teilnehmer

      Würde mich gerne heute nochmal mit einem kleinen Problemchen an euchwenden – wenn ich darf.

      Warum solltest du nicht dürfen 😉 Da du recht viele “Sprachen” sprichst, werden wir deine Hilfe sicher oft in Anspruch nehmen!Grüße Dirk

    • #910392
      BigPlanet
      Teilnehmer

      Hallo

      @all
      – vielen Dank für den freundlichen Empfang.
      Würde mich gerne heute nochmal mit einem kleinen Problemchen an euch
      wenden – wenn ich darf.

      Grüße

    • #910399
      BigPlanet
      Teilnehmer

      Also vorab – ich helfe gerne wenn ich kann. Da wir zum 1. April 2012 ein neues Domizil beziehenkanns mit meiner Präsenz mal dünn werden. In dem neuen Haus liegt unser SZ ebenerdig. Da bauich einen begehbaren Schrank ein. Ich hab das schon mal gemacht -:) da kommt ein PIR-Sensor mit Arduino dran und der steuert das Licht. Poti zum ändern der Leuchtzeit ist schon probeweise gebaut. Aber jetzt habe ich das Problem : ein Taster soll von Leuchtzeit auf Dauerleuchten schalten. Ich glaube ich habe heute 4 oder 5 Sketche getestet und – nix. ich dachte ich frage einfach den Status ab und den Istzustand : etwa so“taster_val = digitalRead(inputPin); delay(10); taster_val_prell = digitalRead(inputPin); if (taster_val == taster_val_prell) { if(taster_val != tasterstatus) { if(taster_val == HIGH) { if(wie_oft == 0) { Serial.println(” Ein”); }else { Serial.println(” Aus”); } wie_oft++; } } tasterstatus = taster_val; }Aber die Ausgabe ist nicht binär sprich “Ein” oder “Aus” je nach Tastendruck. Das schwankt immerauch wenn ich keine Taste drücke.Kann mir da jemand die richtige Richtung weisen?vielen Dank im Voraus

    • #910405
      phil68
      Teilnehmer

      Hm…
      Bin zwar ziemlicher Anfänger, aber versuch es mal so:

      taster_val = digitalRead(inputPin);
      delay(10);
      taster_val_prell = digitalRead(inputPin);
      if (taster_val == taster_val_prell && taster_val != tasterstatus && taster_val == HIGH && taster_val == HIGH && wie_oft == 0)
      {
      Serial.println(” Ein”);
      }
      else
      {
      Serial.println(” Aus”);
      }
      wie_oft++;
      tasterstatus = taster_val;

      Grüße Dirk

    • #910422
      phil68
      Teilnehmer

      Sorry, hatte etwas vergessen :+

      taster_val = digitalRead(inputPin);delay(10);taster_val_prell = digitalRead(inputPin);if (taster_val == taster_val_prell && taster_val != tasterstatus && taster_val == HIGH && wie_oft == 0){Serial.println(” Ein”);}else{Serial.println(” Aus”);}wie_oft++;tasterstatus = taster_valnew;

      So hätte ich gedacht, das andere war nur der Übersicht halber.Grüße Dirk

    • #910414
      BigPlanet
      Teilnehmer

      Hallo Dirk
      Danke erstmal – aber du hast nur alle if’s in ein IF gepackt.
      Das macht logisch gesehen keinen Unterschied (denke ich).
      Aber ich checks dennoch. Klar.

      Danke für die Zeilen

    • #910434
      BigPlanet
      Teilnehmer

      Servus Dirkwoher bzw. wie holst du taster_valnew neu?Habe ich da was nicht geschnallt oder übersehen -:)GrüßeBigPlanet

    • #910442
      phil68
      Teilnehmer

      Vielleicht wäre es besser, wenn du den ganzen Sketch postest :-k Wenn du einfach zwischen 2 Zuständen schalten willst, sollte das funktionieren.

      taster_val = digitalRead(inputPin);delay(10);taster_val_prell = digitalRead(inputPin);if (taster_val == taster_val_prell && tasterstatus == LOW && taster_val == HIGH ){Serial.println(” Ein”);tasterstatus = HIGH;}else if (taster_val == taster_val_prell && tasterstatus == HIGH && taster_val == HIGH ){Serial.println(” Aus”);tasterstatus = LOW;}

      Grüße Dirk

    • #910449
      Gonzogonzales
      Teilnehmer

      Hmm das mit dem Taster am Digitaleingang verstehe ich nicht.
      Das mit dem Licht umschalten von Zeit- auf Dauerlicht verstehe ich schon.
      Hier mal ein paar Gedankenspiele.
      Du hast den PIR Sensor der das licht für eine gewisse Zeit anschalte.
      Jetzt weiß Frau/Mann nicht was es anziehen will. läuft also wild im Schrank hin und her.
      Bei Jeder Bewegung kannst Du den Zähler ja wieder zurück setzen.
      So bleibt das Licht nur solange an, wie sich im Schrank jemand aufhält.
      Zweite Variante statt Taster einen Schalter, wenn an dann keine
      Zeitsteuerung und wen aus, dann Zeitsteuerung.
      Dritte Variante, einen mehrstufigen Drehschalter. Bei diesen werden
      pro Schaltstufe ein Widerstand dran gehängt und in Reihe geschaltet.
      So wie bei dem LCD Shield von DFrobot.
      So kann man an nur einen Port x Taster abfragen.
      Hier mal der Schaltplan vom LCD Shield.
      http://www.dfrobot.com/image/data/DFR0009/LCDKeypad%20Shield%20SCH.pdf
      Wenn man das auf einen Drehschalter umstrickt an statt Taster zu
      nehmen, kannst Du verschiedene Zeiten pro Stellung einstellen.
      So wie eine Stellung für Dauerlicht.
      Hat auch den Vorteil, das Du die Zeiten genau weist, wen der
      Schalter eine bestimmte Stellung hat. Ein Poti ist da etwas ungenauer.

      Die Abfrage ist wie beim Poti, Du liest den Analogwert ein und
      Fragst diesen ab.
      Hier mal ein Beispiel von dem LCD Shield
      [CODE]//example use of LCD4Bit_mod library

      #include
      //create object to control an LCD.
      //number of lines in display=1
      LCD4Bit_mod lcd = LCD4Bit_mod(2);

      //Key message
      char msgs[5][15] = {“Right Key OK “,
      “Up Key OK “,
      “Down Key OK “,
      “Left Key OK “,
      “Select Key OK” };
      int adc_key_val[5] ={30, 150, 360, 535, 760 };
      int NUM_KEYS = 5;
      int adc_key_in;
      int key=-1;
      int oldkey=-1;

      void setup() {
      pinMode(13, OUTPUT); //we’ll use the debug LED to output a heartbeat

      lcd.init();
      //optionally, now set up our application-specific display settings, overriding whatever the lcd did in lcd.init()
      //lcd.commandWrite(0x0F);//cursor on, display on, blink on. (nasty!)
      lcd.clear();
      lcd.printIn(“KEYPAD testing… pressing”);

      }

      void loop() {

      adc_key_in = analogRead(0); // read the value from the sensor
      digitalWrite(13, HIGH);
      key = get_key(adc_key_in); // convert into key press
      if (key != oldkey){ // if keypress is detected
      delay(50); // wait for debounce time
      adc_key_in = analogRead(0); // read the value from the sensor
      key = get_key(adc_key_in); // convert into key press
      if (key != oldkey){
      oldkey = key;
      if (key >=0){
      lcd.cursorTo(2, 0); //line=2, x=0
      lcd.printIn(msgs[key]);
      }
      }
      }
      //delay(1000);
      digitalWrite(13, LOW);
      }

      // Convert ADC value to key number
      int get_key(unsigned int input){
      int k;
      for (k = 0; k < NUM_KEYS; k++){ if (input < adc_key_val[k]) { return k; } } if (k >= NUM_KEYS)
      k = -1; // No valid key pressed
      return k;
      }[/CODE]
      Ich habe den LCD Kram jetzt nicht raus geschmissen.
      Dafür ist der Code Komplett.
      Weiter Infos zum LCD Shield gibt es hire.
      http://www.dfrobot.com/index.php?route=product/product&product_id=51
      Jetzt Könnte man das ganze noch weiter auf hübschen,
      in dem man noch ein paar Taster und das LCD dazunimmt.
      Dann könnte man am Display die Zeiten für die einzelnen
      Schaltstufen vom Drehschalter ändern. Das Ganze schön in einer
      Edelstahl Platte oder Holz Platte eingebaut, sieht das richtig Chic aus.
      Gruß Ingo

    • #910462
      BigPlanet
      Teilnehmer

      Klasse Ingo
      an den Schalter und so habe ich auch schon gedacht.
      Das mit dem Hin und Her im Schrank – glaube ich löst das ganze
      ich habe eben nur an das naheliegende NICHT gedacht – nämlich die
      Bewegung. -:)

      Ich verfolge das mal weiter und melde mich mit meinen “Forschungsergebnissen”.

      Das Forum ist toll – danke an alle.
      Grüße
      BigPlanet

    • #911192
      BigPlanet
      Teilnehmer

      Siehe unten. Da hat die Software /Forum) doch wirklich 2 mal meinen Beitrag einstellt.Bigplanet

    • #911196
      BigPlanet
      Teilnehmer

      Hallo Leute
      habe wieder ein bisserl Zeit für meinen PIR-Sensor. Nach einigen hinundher (leidiges Tasterproblem) habe ich mich entschlossen
      das Poti als Erkennung für Dauerlicht zu
      “benutzen”. Ideen : drehe ich das Poti auf 1023 (fürn Arduino) überspringe ich das
      ganze Sketch und frage nur immer das Poti ab.

      Änder sich nix am Poti ist weiter Dauerlicht. Wenn sich was ändert springe ich die die
      loop zurück und benutze wieder die Pausenfunktion nach Stand des Potis.
      So kann ich regeln von 1 bis 8 Minuten und Dauerlicht.!

      Ich warte noch auf einige Teile dann bau ich das ganze mit einenm Standalone ATMega
      auf eine Platine. Sketch und Fotos folgen. Bis dann.
      Bigplanet

    • #914974
      spokekiller
      Teilnehmer

      Hallo liebe Bastelfans,ich möchte diesen Post nutzen, zu erklären, warum es hier meinerseits so still und leise geworden ist.Leider war aufgrund einiger größerer Probleme ein sehr langer Klinikaufenthalt notwendig, den ich nach fast 80(!) durchgehenden Tagen demnächst abschließe.Wie man sich vorstellen kann ist für ein knappes viertel Jahr mein Privatleben völlig an mir vorbeigelaufen. Dazu gesellt sich die logische Folge, dass auch mein Beruf darunter gelitten hat.Zu allem Übel kommt dann auch noch dazu, dass meine Krankheit noch Nachbehandlung bedarf.Da ich also die nächsten Wochen weiterhin mehr mit der Realität zu kämpfen haben werde, als mir lieb sein dürfte, habe ich beschlossen in dieser Zeit nichts Neues zu posten. Einfach aus dem Grund, weil ich es nicht mag, nur halbe Sachen zu bringen und weil es Euch gegenüber unfair wäre.Ich bitte um Euer Verständnis, dass es also mit Postings nichts wird. Ihr könnt bei Fragen auch per PM auf mich zukommen. Ich möchte versuchen, zumindest diese prompt zu beantworten.Ich hoffe, dass sich vieles bis Mitte des Jahres vollständig stabilisiert hat. Bei dem Einen und Anderen werde ich mich die Tage noch per PM melden.Ich bedanke mich für Euer Verständnis.Grüße,Spoke

    • #915005
      borsti67
      Teilnehmer

      weia, dann auch weiterhin gute Besserung!

    • #916621
      spokekiller
      Teilnehmer

      Hallo liebe arduino / AVR Fans,aktuell arbeite ich an einem Tutorial über den Anschluß von Hitachi-LCDs an den Arduino via I²C. Der Text ist fast fertig, der Sketch funktioniert und nur ein paar Bilder und Feinschliff fehlen noch.Weiterhin habe ich es geschafft, einen ATTiny85 – einen kleineren und preislich günstigen Bruder des ATMega328 – im fabrikfrischen Zustand mittels usbasp auf 8MHz umzu-fusen und dann über die Arduino IDE mit einem Sketch zu “betanken”. Nach einiger Zulage an Grundlagenwissen kann ich auch damit ein neues Tut für Euch erarbeiten. Für Fälle, wo nur einige wenige Funktionen geschaltet werden müssen, sind die Tinys eine gute Alternative. Im Extremfall kann man sie auch auf ihrem interenen Oszilaltor laufen lassen und spart sich das Quarz und die Abblock-Kondensatoren.Wenn heute schlechtes Wetter wäre, würde ich Euch das I²C-LCD Tut schon einstellen, aber es ist hier richtig Kaiserwetter, also werd ich heute mittag wohl ein wenig Modellfliegen gehen?!?!Aber die nächsten Tage habe ich ein wenig Urlaub, und da kann ich Eure Wißbegier sicher ein wenig füttern…Grüße,Euer spoke

    • #917239
      spokekiller
      Teilnehmer

      [SIZE=”3″]Tutorial #10 – wir fummeln mit I2C herum[/SIZE]*** Ab HIER wird mit arduino 1.0 ide gearbeitet ***** edit: einige Korrekturen, Dank an Hallo1001 (das kommt davon, wenn man nicht sauber recherchiert ;))Hallo Leute,ich nehme mir heute die Zeit, ein wenig von einem Ausflug in die I2C Welt zu berichten.Bei Verwendung der Hitachi LCD Displays fallen ja meist einige Pins für die Kontrolle desselbigen weg, die man anderweitig für sein Projekt verwenden könnte. Natürlich gibt es die Möglichkeit, Schieberegister o.ä. zu Pin-Sparzwecken zu benutzen. All das erschien mir zu fummelig und bei meinem n00bigen Einstieg fiel mir auf, dass der Arduino bzw ATMega328/168 auch I2C sprechen kann.Ich kann das sicher nicht besser erklären als die Wikipedia oder die Jungs bei mikrocontroller.net, deshalb verweise ich hinsichtlich der Grundlagen zu I²C darauf. Ein wenig aber will ich hier loswerden, damit Ihr jetzt nicht kreuz und quer durchs Netz eiert. Dabei sind die graden Zahlen immer die Schreibadresse und die ungraden Zahlen die Leseadresse (also Schreibadresse + 1). Die Adresse 0 verwendet man in der Regel nicht. [Danke Jens!]So können an einem Bus bspw eine Dallas-Echtzeituhr hängen, ein 866MHz Funkmodul, ein Arduino und ein Display. Dabei muß jedes Gerät einen I2C Chip haben, welcher nicht nur die Kommunikation erledigt, sondern auch die Adresse des jeweiligen Gerätes über Jumper festlegt. Der Rest ist dann Softwaresache.Nun gibt es bei Pollin einen Bausatz, mit dem man LCDs mit Hitachi Controller um I2C pimpen kann. Basis ist ein PCF 8574P Chip, der das erledigt. Den Bausatz habe ich mir besorgt und zusammengefummelt. Ich bin eigentlich durch Zufall darüber gestolpert. Der Bausatz ist unter Artikel-# 810145 zu finden http://www.pollin.de/shop/dt/NDU4OTgxOTk-/Bausaetze_Module/Bausaetze/LCD_I2C_Modul.html … achja, und er ist öfters mal für 1-2 Monate “ausverkauft”.Exkurs zum Bausatz – was zum Schmunzeln & Hintergründe[SPOILER]Der Bausatz, von dem ich im Überschwang gleich zwei Stück bestellte, ist grundsätzlich ordentlich zusammengestellt. Leider gibt es erhebliche Ärgernisse. Bei einem meiner Bausätze war ein falscher Trimmer mitgeliefert worden. Besonders ärgerlich, da ich wegen eines einzelnen Trimmers, den ich nicht habe meist einen Riesen-Aufwand veranstalten muß um ihn zu besorgen (wer zahlt schon für 30 cent Bauteile gerne 6€ Versandkosten?).Weiterhin sind die Bohrungen für die Trimmer viel zu klein. Aufbohren ist nicht, weil die Lötpads um die Löcher auch sehr klein sind. Also feilt man zuletzt die Trimmerbeine schmaler. Fummelei und absolut unnötig, denn es ist reichlich Platz für anständige Lötflächen auf der Platine gegeben.Außerdem muß man aufpassen, welchen Widerstand man als R1 einsetzt, denn sonst kann es sein, dass das Backlight des LCD nicht seine nötige Spannung abbekommt. Ergo, keine Beleuchtung bei mir. Für Laien noch dazu frustierend, daß das Backlight über den I2C Controller gesteuert wird (also per Software ein/aus-geschaltet werden muß). Von alledem leider keine Erwähnung im beiliegenden Aufbauplan.Außerdem konnte ich manche Bauteile nur sehr schwer verlöten, weil das Zinn von den Pads regelrecht abperlte und ich trotz mehrfachem Nachlöten nur murksige Lötstellen hingebracht habe. Lötlaien sollten sich das von jemandem machen lassen. Das ist übrigens nicht der erste Pollinbausatz bei dem ich diese Erfahrung gemacht habe. Eventuell hilft eine vorherige Reinigung mit Spiritus? Im Netz fand ich Infos, dass ich damit nicht alleine dastehe….Außerdem, und das ist der Gipfel, sind die aufgedruckten Adressen für die Jumper des I2C Controllers schlicht falsch — letzteres wird dem Anfänger erheblich graue Haare bringen und u.U. viele Stunden bei der Fehlersuche bescheren. Nicht jeder kommt auf die Idee, daß der Fehler nicht im eigenen Programm steckt. [Edit: das mag daran liegen, daß der PCF auch in einer “~A”-Fassung mit anderen Adressen hergestellt wird und der Bausatz auch mit diesem einmal ausgeliefert wurde]Und das wirklich Letzte ist, daß Pollin diesen Bausatz schon seit Jahren immer wieder in dieser Weise neu auflegen läßt! Kommt dann noch dazu, daß die Bohrungen für die Schrauben nicht M2,5 oder M3 sind sondern so ungefähr M2,8 😉 — aber die waren schnell aufgebohrt. :devil:Und weil ich grad am Meckern bin, sind in der Platine zwei fette 10k Pullups drin, die einem den I2C Bus zunageln. Das ist an sich ein zu großer Wert (4,7k hättens auch getan) und gehört auch in der Doku erwähnt, denn am I2C Bus darf immer nur ein Gerät Pullups haben. [-XWas ich leider bei meinen beiden LC Displays (1 von Pollin, 1 von Watterott) auch immer wieder feststelle ist, daß die in einer Vielzahl von Demo-Aufbauten verwendeten 10k Trimmer für den Kontrast viel zu groß sind. Erst auf die letzten paar Grad regelt man tatsächlich. Danach ist alles dunkel, will sagen der Kontrast 0. [strike]Wer das vorab schon weiß sollte statt 10k mal mit 1k/5k experimentieren und dann lieber die verlöten. Ich werde das u.U. nochmal nachholen. Laut LCD-Datenblatt ist mein Regelbereich nur 0,75V “breit”.[/strike] Naja und hier hatte ich auch einen Gedankenfehler. Durch die Auswahl eines kleineren Trimmers wird mein Regelbereich nicht gröber. Um diesen Effekt zu erreichen müßte man beispielsweise einen 4,7kOhm Widerstand und einen 1kOhm Trimmer in Reihe schalten. Der Aufwand lohnt aber meist nicht. Einmal eingestellt reicht ja. Meist faßt man das nicht mehrmals an [Auch hier Danke Jens].Nichtsdestotrotz hab ich diesen Mist dann die Tage endlich mal fertiggestellt. So – genug gemeckert (zurecht wie ich meine!).Der Bausatz hat dabei aber den Vorzug, dass er mit einer ansonsten anständigen Platine kommt, die auch für LCDs mit 2*8 Pinout geeignet ist. Nicht vergessen, die passenden Buchsen müssen separat bestellt werden!Ende Exkurs zum Bausatz[/SPOILER]Unser Demo-Aufbau Wir identifizieren am I2C Modul die Pins für die Spannungsversorgung (+5V) und die Datenleitung SDA sowie die Clock SCL. Wir stecken dann:Arduino Analog #5 -> SCLArduino Analog #4 -> SDADamit alles richtig arbeitet müssen wir zumindest auch die beiden GND/Masse-Schienen miteinander verbinden. Will sagen, vom Arduino und dem Displaycontroller. SDA und SCL nutzen diese als Basis.http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture3187-i2c-p1040333-2.jpgFür die Software gebe ich Euch einen kleinen Beispielsketch, der sehr schnell zeigt, wie alles funktioniert. Zur Ansteuerung verwendet man eine zusätzliche Lib, die unter dem Namen “LCDi2c” auf der Arduino Seite gefunden werden kann. Sie ist wohl alles andere als “perfekt”. Aus Zeitmangel und ein wenig Unlust habe ich zwar mal reingeschaut, aber dann doch die Finger weg gelassen.Die Lib findet Ihr hier: http://arduino.cc/playground/Code/LCDi2cHinweise zur fehlerhaften Implementierung des Pollin Bausatzes findet Ihr hier: http://hmario.home.xs4all.nl/arduino/LiquidCrystal_I2C/notes_for_pollin_interface.txt (ist auch unten mit angehängt!)Bei mir funktionieren die Display-Backlight Befehle nicht (s.o.) und es sind auch noch keine Sonderzeichen und Umlaute unterstützt. Wer dennoch Umlaute schickt, bekommt meist japanische Katakana Zeichen serviert, was darin liegt, dass der Pointer wohl in den Bereich der japanischen Zeichensätze im Displaycontroller verrutscht.Das alles läßt sich mit ein wenig vertretbarem Aufwand und konzentriertem Studium der Datenblätter des PCF und des LCD richten. :roll:Wer also unbedingt experimentieren will, der kann sich hier austoben.Allerdings darf ich auch darauf hinweisen, daß unser Elektronikguru Hallo1001 auf seiner Seite bereits ebenfalls ein I2C-fähiges Display entworfen hat. Dieses basiert auf einem kleinen Atmel Controller statt auf einem PCF. Ihr findet das hier: http://www.pcfilter.de/AVR-Ecke/Page28.htmlBei Hallo1001s Bausatz handelt es sich um ein wesentlich durchdachteres Konzept, das viele der o.a. Schwächen nicht aufweist.Ich habe damit einen Brocken in meinem meterlangen Backlog mal vom Tisch. Ob ich damit nochmal arbiten werde hängt von vielen Faktoren ab, momentan halte ich es aber nicht für wahrscheinlich. ;)Weitere Bausatzbilder für Größenvorstellung:[SPOILER]http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture3189-i2c-p1040335.jpghttp://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture3188-i2c-p1040334.jpg[/SPOILER]Ich hoffe Ich konnte Euch dennoch damit ein wenig unterhalten. Ich wende mich dann mal wieder ernsteren Tuts zu… :)Grüße,Euer Spokekiller

    • #917425
      spokekiller
      Teilnehmer

      [SIZE=”3″]Tutorial #11 – Interrupts mal ganz einfach[/SIZE]VorgeplänkelDiesmal gehen wir – auf eine sehr simple Art und Weise – mal an das Thema mit den Interrupts heran. Wenn man das Thema [strike]gurgelt[/strike] googlet, dann bekommt man eine Vielzahl an Resultaten, wovon die meisten den durchschnittlichen Anfänger doch verwirren dürften. :roll:Auch deshalb habe ich persönlich das lange vor mir hergeschoben, obwohl ich davon überzeugt war, daß man sehr Nützliches damit anstellen könne.HintergrundGehen wir von Folgendem aus: unser Versuchsaufbau besteht aus einem Arduino, der einen Taster abfragt und daraufhin irgendetwas machen soll. Der Taster startet oder stoppt dabei eine Aktion bzw. Subroutine.Da unser Hauptprogramm die void loop() ja ständig “loopt” also in einer Schleife immer wieder von vorne beginnt, würde eine normale Abfrage des Tasters und das Warten auf das Resultat unser Programm erheblich, wenn nicht sogar völlig, ausbremsen. <<< Zugegeben, es handelt sich hier nur um einige Taktzyklen. Je nachdem was wir sonst noch machen, dürfte das im Amateurbereich kaum ins Gewicht fallen.Anders gesagt: in der Zeit in der wir auf einen Abfragewert warteten, passierte nichts anderes mehr :-k . Erst wenn das Resultat da wäre, ginge es weiter. Damit eben das nicht passiert, benutzt man Interrupts. Ältere unter uns kennen diese zur Genüge aus der Zeit des “nicht plug and play”, als man an vielen ISA-Steckkarten noch die Adressen für belegte Interrupts entweder per Jumper oder Software setzen mußte.Diese Interrupts machen genau das, was sich dem Namen nach vermuten läßt: sie unterbrechen das laufende Programm und bewirken eine bestimmte Reaktion. Interrupts werden also bevorzugt da eingesetzt, wo die Reaktion auf ein Ereignis zeitkritisch ist.TechnikDie Arduino Unos mit ihren ATMega 168/328 besitzen zwei solcher Interrupts, die im Falle meines beispielhaften Unos auf die physischen Pins 2 und 3 (Digital OUT) gemapped sind. Besitzer eines Arduino Mega mit dem ATMega 644 dürfen sich freuen, denn sie haben sogar 4 (Digital Out 2,3,4,5) davon.Soweit die Theorie. Was müßten wir also nun machen, um einen davon zu nutzen? Das wird gar nicht so schwierig sein. Zunächst bauen wir eine typische Abfrage-Anordnung mit einem Taster (wahlweise ein loses Stück Kabel) auf dem Steckbrett auf.[spoiler]http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture3211-interrupt-tutorial.png[/spoiler]Der Auswertungsteil läuft auf den Digitalpin #2, denn auf diesem läuft physisch unser Interrupt #0 auf. Was wir nun noch tun, ist ein sehr überschaubares Programm schreiben (siehe unten), welches die tatsächliche Zuordnung zwischen Interrupt und Reaktion erledigt.Dazu nutzen wir die Funktion attachInterrupt(), zu der es auch ein Pendant, nämlich detachInterrupt() gibt. Dem Englischen mächtig erkennen wir, daß erstgenannte Funktion dazu da sein muß, den Interrupt an irgendwas zu “befestigen”. Genau das tut sie auch:attachInterrupt(0, blink, CHANGE); –> heißt im Klartext: Interrupt #0 (physisch Pin2!) löst die Routine “blink” aus, wenn sich sein Zustand in irgendeiner Weise ändert (CHANGE)Es gibt dabei insgesamt vier Parameter für den Modus, nämlich

      • CHANGE = löst aus, wenn Pegel sich beliebig verändert
      • LOW = löst aus, wenn Pegel auf LOW ist (0 Volt)
      • RISING = löst aus, wenn der Pegel von LOW auf HIGH (0->+5V) geht
      • FALLING = analog, also wenn der Pegel fällt

      [strike]Aha! Also könnte man auch einen Sensor überwachen, und immer Alarm schlagen, wenn eine Temperatur FÄLLT, aber nicht, wenn sie STEIGT. Ja, das ginge wohl. Wo das Sinn machen würde bleibt zunächst fraglich. Es gibt aber sicher Anwendungsbereiche dafür. :D[/strike]Im Nachhinein … an sich ist das Quatsch, denn es gäbe für so eine Anwendung keine Sensoren. Man könnte aber sehr wohl die Drehzahl eines Lüfters dementsprechend überwachen, und bei fallendem Wert Alarm geben.Zurück zu unserem Aufbau. Unser kleiner “sketch” (Programm) verbindet also Interrupt #0 = Digi Pin #2 mit der Routine Blink und löst aus, FALLS sich der Pegel am Pin #2 physisch ändert.[spoiler][code]//Interrupt null ist auf digital pin 2, Int1 auf digi 3//ändert sich der Pegel am Pin dann geht die onboard LED aus oder anint pin = 13;volatile int state = LOW;void setup(){ pinMode(pin, OUTPUT); attachInterrupt(0, blink, CHANGE);}void loop(){ digitalWrite(pin, state);}void blink(){ state = !state;}[/code][/spoiler]Na dann, Programm geflashed und ausprobiert. Wenn immer Ihr den Taster betätigt sollte sich die kleine Status-LED, die mit Pin 13 verbunden ist, verändern. Dabei kommt es durchaus vor, daß der Taster “prellt”, d.h. bei einem gefühlten Druck tatsächlich mehrere Impulse ausgelöst werden. Deshalb nicht beunruhigt sein, wenn sich das nicht eins-zu-eins abspielt.Das Entprellen von Tastern kann sehr aufwendig sein und kann in Hard- oder Software erfolgen. Das lassen wir heute aber mal raus.Wichtig ist es, zu verstehen, daß in der Zeit, in der Ihr nichts tut, die Loop einfach weiterläuft. Das beweise ich Euch auch ganz leicht. Wir ändern den Code ein wenig ab, siehe unten.[spoiler][code]//Interrupt null ist auf digital pin 2, Int1 auf digi 3//ändert sich der Pegel am Pin dann geht die onboard LED aus oder anint pin = 13;volatile int state = LOW;int Timer = 0;void setup(){ // starte serielle Schnittstelle Serial.begin(9600); //konfiguriere Ausgabepin und Interrupt pinMode(pin, OUTPUT); attachInterrupt(0, blink, CHANGE);}void loop(){ Serial.print(Timer); digitalWrite(pin, state); Timer++;}void blink(){ state = !state;}[/code][/spoiler]Aktiviert nun zur Laufzeit Euren “Serial Monitor” in der IDE und laßt Euch den veränderten Wert für den “Timer” ausgeben. Während nun also der Interrupt auf Lauer liegt, sehen wir, daß der “Timer” immer weiter hochzählt, was er aber nur tut, wenn die Loop auch weiterläuft. Also stimmt es, der Interrupt ermöglicht das Warten auf eine Eingabe ohne Anhalten des Programmes!Der “Timer” wird irgendwann überlaufen, aber das ist in diesem Fall ja nicht schlimm, er dient ja nur dem Nachweis.Mehr zum CodeNun noch eine Erklärung zur Art und Weise, wie wir die LED Ausgabe angegangen sind. Wie Ihr sehen könnt, schreiben wir in der loop nur ein schlichtes “digitalWrite(pin, state);” ohne eigentlich anzugeben, was passieren soll, oder?Nicht ganz! Denn es passiert ja folgendes: wenn unser Interrupt auslöst, dann rufen wir blink() auf und in dieser “invertieren” wir den Zustand von “state”, d.h. wenn er low war, wird er high und umgekehrt. Den Ausgangszustand legten wir im Setupbereich fest: “volatile int state = LOW;”Dies ist eine sehr elegante Möglichkeit festzulegen, mit welchem Ausgangszustand wir anfangen wollen. Der Bezeichner “volatile” sagt dem Compiler dabei, daß sich diese Variable ohne Einfluß des eigentlichen Codelaufes verändern kann. Das muß man sich aber nicht unbedingt merken.Weitere Gedanken zum ThemaWir werden Interrupts demnächst in einer Kombination mehrerer Tutorials benutzen. Dort wird Sie Verwendung in einer Temperaturüberwachung finden, die wiederum einen Lüfter ansprechen läßt. Also das, was hier wohl viele mittlerweile schon selbst implementiert haben dürften. Phil68 hat das jedenfalls schon getan und dabei noch einiges an Zusatzarbeit geleistet (Not-AUS etc). :respekt:Interrupts können auch an Timer, in diesem Fall ein echter, gebunden werden und man kann Aktionen lostreten, wenn sich dieser verändert. Dies dürfte auch noch einmal ein interessantes Tutorial ergeben. :banana:Oben gezeigter Code basiert übrigens absichtlich auf dem Referenzbeispiel von arduino.cc, weil ich denke daß er ist dort für Anfänger nicht ausreichend erläutert ist. Tut nicht?Falls es nicht funktioniert, prüft bitte nach, ob Ihr Euren Abfrage-Pin wirklich auf dem Digital #2 habt. Das ist ein gern gemachter Fehler (hust, ist mir auch passiert, weil man pausenlos an Int 0 denkt…). :)Ansonsten das Üblich… Tippfehler etc. pp.. Wenn gar nichts mehr geht, eine Nacht drüber schlafen und ein Hilfe-Post hier.Vielen Dank für Eure Aufmerksamkeit. Ich hoffe es hat sich der Fehlerteufel diesmal fern gehalten. ;)Grüße, Euer spokeEdit: Ergänzungen in Rot.

      Ein Hinweis noch von Hallo1001, der für die Fortgeschrittenen Leser auch nicht uninteressant sein dürfte said:
      Für diese [obige] Tasterabfrage währe FALLING die optimale Wahl. Wenn Du hier nämlich den Taster nach Masse verdrahtest, dann brauchst Du den Widerstand nämlich nicht. Der AVR besitzt interne Pull-Up Widerstände, den musst Du nur aktivieren – fertig… Der Interrupt löst dann also nur aus wenn der Port nach Masse geschaltet wird.

      Ich weiß allerdings nicht, ob die in der Arduino-Welt per default aktiv sind, ich glaube dass ich widersprüchliche Angaben dazu gefunden habe. Da aber in vielen Schalt-Beispielen von angesehenen Seiten wie bspw ladyada immer vorgegangen wird wie in diesem Fall, gehe ich davon aus, daß die internen Pullups nicht aktiviert sind….(?) Ich gestehe, ich war jetzt auch zu faul zum Nachsehen.Edit #2: Mir ist eben beim Rumbasteln doch noch ein etwas plastischeres Beispiel aus meinem eigenen Repertoire eingefallen. Letztes Jahr hatte ich ganz zu Anfang meiner Arduino Pfriemelei eine Sirene für meinen kleinen Neffen gebaut, die 3 verschiedene Muster zur Auswahl über einen Schalter hatte. Leider war es so, dass manche Muster recht lange (5~10s) waren, die man durchgehend warten mußte, bis zur nächsten Abfrage des Wahlschalters. Hätte ich diesen Wahlschalter mit einem Interrupt abgefragt dann hätte ich auch mitten innerhalb eines Musters zum nächsten wechseln können. So. Jetzt aber. 😀

    • #917706
      phil68
      Teilnehmer

      Hi Micha :)Schön, dass es hier weiter geht! Ich bin ein eifriger Leser und Fan deiner Tutorials! Nach dem Pentathlon werde ich wieder etwas mehr Zeit haben und hier mal mein Projekt vorstellen. Ich hoffe, dass mir dann auch die Profis noch sagen können, was an meinem Aufbau und Sketch noch zu verbessern ist.

      Ich weiß allerdings nicht, ob die in der Arduino-Welt per default aktiv sind, ich glaube dass ich widersprüchliche Angaben dazu gefunden habe.

      …sind sie nicht 😉 Grüße Dirk

    • #917712
      spokekiller
      Teilnehmer

      Danke Dirk!Wenn Du Deine Version der Steuerung vorstellst, dann halte ich mich mit der Basisversion zurück und versuche für das nächste Mal etwas Anderes zu finden. Es gibt ja so unglaublich vieles.Vielleicht das Programm, daß ich für Renovatio entworfen habe, um seine Rechner im lokalen Netz über URL aufzuwecken?Mir wird schon was einfallen. 😉

    • #917793
      spokekiller
      Teilnehmer

      Hallo zusammen,bin eben beim Studium des blogs von adafruit auf einen Artikel bei Makezine gestoßen. In diesem geht es um grundsätzliche Probleme mit Produktfälschungen und Markennamenmißbrauchs, sowie im Speziellen im Umfeld des Arduino.Externer Link (Makezine Blog) – englisch

    • #917794
      ThaRippa
      Verwalter

      Ich hab meinen ja auch von ebay und er roch stark nach China…aber er funktioniert. Elektronik in dieser “Gewichtsklasse” kopieren können die Chinesen einfach. Und billige Chinaschnäppchen sind “leider Geil”. 😉

    • #917796
      sneasel
      Teilnehmer

      Hallo,

      ich bin seit einigen Wochen in den Club der Arduinobesitzer eingestiegen. Erstmal ein riesen Lob für diesen Thread man findet nicht nur viele Infos sondern diese sind auch sehr gut und verständlich erklärt (Auf vielen Seiten werden die ganzen Grundlagen weggelassen, die für einen blutigen Anfänger wie mich lebenswichtig sind)
      :respekt::respekt::respekt:

      Nun zu meinem ersten Arduinoversuch :banana:
      Mein erstes Projekt soll ein Spielzeug für meine Katzen sein 😯

      Ursprünglich wollte ich über den Arduino einen kleinen Elektromotor steuern der über einen Hebelarm eine Maus an einem Seil durch den Raum schleudert. Die Motorsteuerung habe ich mit einem L293D realisiert.
      Das Spielzeug soll wie eine normale Lampe an der Decke hängen.
      Im Laufe der Zeit sind mir immer mehr Ideen in den Sinn gekommen die ich jetzt gerne umsetzten würde.
      Einige wie die Erkennung der Katzen per Infrarot-Sensor habe ich schon in meine Testumgebung (Breadboard) eingebaut.
      Andere bereiten mir aber noch Kopfzerbrechen 🙁

      Nummer 1: Die Stromversorgung
      Grundlegend wollte ich die Stromversorgung über einen Akku sichern.
      Dieser wird vermutlich 9,6V mit 1500mAh (Conrad) besitzen.
      Der Akku soll über die Stromversorgung der Lampe aufgeladen werden.
      D.h. ich brauche ein Netzteil welches 230V/16A in 9,6V mit ca 150-200mA (Man sollte NiMh-Akkus mit C/10 laden) wandeln kann.
      http://www.voelkner.de/products/68312/Steckerladegeraet-fuer-8-Zellen-und-9V-Block.html (Den wollt ich auseinanderbasteln)
      Hier sollte man unterscheiden ob das Netzteil 150-200mA liefern kann oder es sich selber regelt und nicht mehr abgibt.
      (Hab ewig gebraucht bis ich sowas herausgefunden hab).
      Nachdem ich die richtige Volt/Ampere-Zahl bekommen habe will ich noch einen Laderegler bauen. Die einfachste Lösung wird wohl eine IC Uln2004 A Dip (ist pro Kanal ein Transistor und ne Diode drin oder so ähnlich) mit einem Relai dran sein. Durch diesen kann ich dann den Stromfluss zum Akku stoppen wenn dieser voll geladen ist.
      Nun zum Akkufüllstand. Diesen will ich über diese Wunderschöne anzeige Visualisieren: http://www.tinkersoup.de/product_info.php?products_id=428&osCsid=df794e8c6b8f9501ce070d09f7abd41a

      Meine erste Frage: Wie kann ich den Füllstand eines NiMh-Akkus auslesen (Der Spannungsverlauf ist ja überhaupt nicht linear, deshalb weiß ich nicht obs mit Spannungsteilung funktioniert), bzw. sollte ich einen anderen Akku verwenden? (Lipos sollen schwer zu laden sein und von Bleiakkus wurde mir auch abgeraten)?
      Zum Steuern des Relais kann man diese -Delta Methode anwenden (Wenn der Akku voll geladen ist fällt die Spannung beim Weiterladen).

      Meine zweite Frage: Da ein Arduino nicht gerade günstig ist wollte ich fragen ob ich diesen durch einen Atmega328 ersetzen kann, den ich über den Arduino Programmiere.
      Ich weiß das dieses Unterfangen nicht so einfach geht, jedoch wollte ich mal nachfragen ob man diesen Atmega einfach auf den Arduino setzten kann, das Programm uploaden kann und dieser dann wie ein Arduino funktioniert?
      http://www.watterott.com/de/ATmega328-Arduino-Bootloader

      So das wärs erstmal von meinem ersten Projekt.

      MfG Matthias

    • #917798
      spokekiller
      Teilnehmer

      sneasel;486669 said:
      Meine zweite Frage: Da ein Arduino nicht gerade günstig ist wollte ich fragen ob ich diesen durch einen Atmega328 ersetzen kann, den ich über den Arduino Programmiere.Ich weiß das dieses Unterfangen nicht so einfach geht, jedoch wollte ich mal nachfragen ob man diesen Atmega einfach auf den Arduino setzten kann, das Programm uploaden kann und dieser dann wie ein Arduino funktioniert?http://www.watterott.com/de/ATmega328-Arduino-BootloaderSo das wärs erstmal von meinem ersten Projekt.MfG Matthias

      Hallo Matthias,an dieser Stelle nur eine ganz schnelle Antwort auf die zweite Frage: Ja, das geht. Du kannst den Chip von Watterot nehmen, oder aber auch einen “blanken” ATMega328.Sofern Du einen mit bootloader hast, wechselst du einfach die Chips auf Deinem Uno, flashst den Code und nimmst ihn raus. Danach kannst du ihn gemäß den vielen “Breadboard-Arduinos” verbauen, also im Prinzip nur mit extra Quartz+Kondensatoren und dem 10k Widerstand an Reset. Damit können wir auch helfen.Nimmst Du einen ohne Bootloader ist das auch nicht schlimm, allerdings solltest du dann einen Programmer haben oder eben dann mit dem Arduino als ISP flashen. Es gibt viel pro+contra und vor allem steht dabei die Frage “willst Du den Mehraufwand betreiben” im Raum.Der Einfachheit halber bestell Dir einen mit Bootloader… Grundsätzlich ist ein einfacher Arduino-Klon schnell aufgebaut, siehe Phil68s Prototypen. Dabei ist ein Anreiz, daß man die 5V Spannungsregler und die teuren USB-Protokollchips (bei neueren Versionen kein FTDI mehr sondern ein kleiner ATMega8U2) benötigt.Und da noch ein Hinweis… willst du mit 5V laufen lassen? Wäre besser, dann sparst Du den Leistungsverlust am Längsregler (LM7805) und kannst auch andere Akkus nehmen.Zum Rest Deiner Fragen kommen sicher noch andere Antworten, bzw benötige ich etwas mehr Zeit. Generell ist die Abfrage der “Kapazität” glaube ich nicht möglich.Und noch eine Sache mit reingeworfen, die LiPos würde ich meiden, denn dafür braucht es komplexe Lader und die Dinger sind selbst dann noch extrem feuergefährlich. Im Bekanntenkreis hat es einem Modellflieger dadurch den Werkzeugschuppen abgebrannt. Ohne Witz.Achja, und ich fühle mich geschmeichelt wegen Deines Lobs, herzlichen Dank. \D/Gruß,MichaEDIT:Beim nochmaligen Lesen: mal ehrlich…. wenn du ohnehin so weit gehen würdest einen Lader mit zu integrieren, dann nimm dir doch einfach von vorneherein ein kompaktes 5V/2A Netzteil (oder kleiner, kommt auf die Motoren an) und hänge das mit an die Lampe…. Der Aufwand mit dem Lader zerlegen ist ja irre… Außerdem muß dann noch eine Akkuweiche bzw ein USV-artiger Mechanismus mit rein, denn es macht doch keinen Sinn den Akku während des gleichzeitgen Abzapfens von Leistung noch zu laden, oder?Außerdem: Schaltungen wie diese zehren den Akku innerhalb eines Tages wahrscheinlich ohnehin aus. Also wäre das kleine Netzteil effizienter, anstelle dauerndem Laden/Entladen des Akkus, was ja nicht ohne Verluste abgeht.Achso, jetzt fällt mir grade ein, die Lampe ist ja nicht dauernd eingeschaltet…. Mist. Hehe… naja, das wird noch lustig werden

    • #917800
      sneasel
      Teilnehmer

      Hallo,

      schonmal Danke für die schnelle Antwort.

      Das Laden des Akkus im Betrieb müsste funktionieren (Aus verschiedenen Foren zusammen gegoogelt :D). Die Spannung des Ladegeräts muss nur für den Verbraucher OK sein.

      Bei dem ladegerät wollte ich nur das Gehäuse zerschlagen und an die jeweiligen Anschlüsse für Steckdose und Verbraucher kabel löten bzw stecken. (Vll Löte ich sie auch von außen an)

      Das Katzenspielzeug soll auch nur ca 5min pro Stunde laufen. Wenn es einmal durch den Infrarotsensor aktiviert wurde soll es nach ca.5 min Betrieb 55min gesperrt werden.

      Wirklich schlimm. Umso weiter man mit der Idee kommt desto mehr Probleme werden sichtbar 😮

    • #917803
      spokekiller
      Teilnehmer

      sneasel;486674 said:
      Hallo,

      schonmal Danke für die schnelle Antwort.

      Das Laden des Akkus im Betrieb müsste funktionieren (Aus verschiedenen Foren zusammen gegoogelt :D). Die Spannung des Ladegeräts muss nur für den Verbraucher OK sein.

      Bei dem ladegerät wollte ich nur das Gehäuse zerschlagen und an die jeweiligen Anschlüsse für Steckdose und Verbraucher kabel löten bzw stecken. (Vll Löte ich sie auch von außen an)

      Ich nehme an, das hier http://www.computerbase.de/forum/showthread.php?t=1049247
      bist du, ne?

      Also ganz so einfach mit dem Zerschlagen und zusammenfummeln dürfte es dann doch nicht sein. Sieh es mal so: wenn Dein Lader an dem Akkupack hängt und parallel dazu Deine Schaltung, die dann wiederum Strom vom Akku zieht, dann hast Du ja auch in gewissem Rahmen einen Fluß, der sich so auswirken könnte, daß Dein Lader gleichzeitig ne Stromquelle fü die Schaltung ist …. sicher, geladen würde nur sobald die Lampe angeschaltet ist, aber… naja….

      Wart mal noch ne Nacht, ich bin sicher der Hallo1001 oder Phil haben da auch einiges dazu zu sagen.

      sneasel said:
      Wirklich schlimm. Umso weiter man mit der Idee kommt desto mehr Probleme werden sichtbar 😮

      Nicht die Flinte ins Korn werfen. Mir gehts schon die ganze Zeit so. Ich hab nie eine Ausbildung in diesen Dingen genossen und lese mir fast alles neu an und probiere sehr sehr viel aus. Erfolg nicht immer garantiert.

      Manchmal ist es auch so, daß man in so einem Projekt Abstriche machen muß. Wenn Du in Deinem Beispiel alle 4-5 Tage den Akkupack selber laden müßtest, das wäre nicht soooo schlimm, oder? Freut sich dann die Katze eben über die Blinklichter vom Ladegerät 🙂

    • #917822
      phil68
      Teilnehmer

      Hallo Matthias 🙂

      Erst mal kurz… von Eigenbau-Ladereglern würde ich die Finger lassen, das kann ordentlich nach hinten losgehen!
      Der Arduino selbst benötigt recht wenig Strom und könnte, mit einfachen Akkus, 4 Tage am Stück betrieben werden. das Ganze kann dann noch durch Ausnutzung des Sleep Modus erheblich verlängert werden.

      Das Katzenspielzeug soll auch nur ca 5min pro Stunde laufen. Wenn es einmal durch den Infrarotsensor aktiviert wurde soll es nach ca.5 min Betrieb 55min gesperrt werden.

      Wenn man das bedenkt und einen sparsamen Motor findet, würde ich dir zu einer Akku-Box raten und die Akkus dann im Bedarfsfall(1 x pro Woche) mit einem handelsüblichen Lader aufladen. Evtl. lässt sich das alles(samt Atmega) in einer Box umsetzen, die dann auch noch den Vorteil hat, transportabel und sehr flexibel einsetzbar zu sein.

      Bei sparkfun gibt es ein LiPo Power Pack http://www.nuelectronics.com/estore/index.php?main_page=product_info&cPath=6&products_id=17

      oder den USB LiPoly Charger http://www.sparkfun.com/products/10161 das könnte evtl. was für dich sein.

      Hier findest du ein Beispiel zur Akku Kapazitätsmessung mit Arduino:
      http://www.komputer.de/wordpress/archives/358

      Denke mal dass Hallo1001 sich auch dazu meldet. Das ist hier definitiv der absolute Spezi 😉

      Grüße Dirk

    • #917827
      Hallo1001
      Teilnehmer

      Hallo Matthias!

      Wie kann ich den Füllstand eines NiMh-Akkus auslesen…………….

      Mit „einfachen Mitteln“ überhaupt nicht. Hier brauchst Du ordentlich Hardware (Bauteile) und das ist für so ein kleines Projekt nicht unbedingt der einfachste Lösungsansatz.

      ………..sollte ich einen anderen Akku verwenden? (Lipos sollen schwer zu laden sein und von Bleiakkus wurde mir auch abgeraten)?

      Als erstes müssen wir einmal klären welche Spannung Du überhaupt brauchst. Mit welcher Spannung arbeitet der Motor? Daraus können wir dann auf den Akkupack schließen.

      Solltest Du mit 3,7V auskommen, dann wäre eine einfache Li-Ion-Zelle (Handyakku, der ähnliches) sicherlich die optimale Wahl. Hier könntest Du dann nämlich einen MAX1811 als Laderegler einsetzen und Deine Probleme hätten sich erledigt…
      Es ist auch möglich zwei Li-Ion Akkus zusammen zu schließen, dann würdest Du auf gut 7,4V bis 8,4V kommen. Allerdings wird es dann mit dem laden nicht mehr sooooo einfach. Mit einer einstellbaren Strom UND Spannungsquelle lassen sich auch zwei in Reihe geschaltete Li-Ion Akkus problemlos laden. Dummerweise musst Du dann auch genau wissen was Du da machst, anderenfalls brennen Dir die Akkus ab… Beim Li-Ion Akku kannst Du mit dem Arduino problemlos die Akkuspannung messen, liegt sie unter 3,7V (bei zwei Zellen unter 7,4V) dann wird einfach nachgeladen – fertig…

      Bei NC und NiMh-Akkus sieht es dann schon etwas schlechter aus, den Füllstand zu ermitteln. Aber eigentlich ist der Füllstand auch relativ an zu sehen. Wenn Du mit einer Ladung X den Akku lädst, dann braucht er eine Zeit Y mit Deiner Schaltung bis er wieder leer ist. Wenn der Arduino also arbeitet, brauchst Du nur einen Zähler mitlaufen lassen, quasi als Verbrauchszähler. Ist eine Zeit Y abgelaufen (kannst Du ja experimentell ermitteln), dann schaltest Du einfach ein Ladegerät ein und der Akku wird wieder mit einer Ladung X aufgeladen – fertig… Hier müsstest Du nicht einmal die eigentliche Akkuspannung kennen, wichtig ist nur das der Akku nicht überladen werden kann (aktive Ladeschaltung).

      Und zum Schluss noch die Bleiakkus. Also von Bleiakkus würde ich auch die Finger lassen, es gibt aber auch Blei-Gel-Akkus, mit denen kann man sich durchaus anfreunden. Das laden der Bleiakkus ist relativ unproblematisch, hier würde sogar eine in Reihe geschaltete Glühlampe ausreichen (als Strombegrenzer). Liegt die Ladespannung bei der Ladeschlussspannung vom Akku, dann ist es auch nicht möglich den Akku zu überladen. Auch hier wird sich der Füllstand ohne großen Bauteilaufwand nicht 100%-tig bestimmen lassen, aber für „Bastelzwecke“ reicht es alle male aus. Verwendest Du einen 12V Akku und die Spannung singt unter 11V ab, dann kannst Du problemlos bis 14V (bzw. den Angaben aus dem Datenblatt) wieder nachladen – fertig…

      LG Jens

    • #917873
      sneasel
      Teilnehmer

      Hallo,der Motor kann mit 4V-14V arbeiten:http://www.conrad.de/ce/ProductDetail.html?hk=WW1&insert=U0&utm_source=zanox&utm_medium=deeplink&utm_content=article&utm_campaign=affiliate&WT.mc_id=affiliate_zanox_produktdaten&productcode=229021&zanpid=1628338496085532672Dann müsste ich noch den Atmega328 versorgen, da muss ich aber selbst erstmal gucken :DMeine einzige Idee um den NiMh-Akkufüllstand zu messen wäre einfach einen Verbraucher anzuschließen und über Spannungsteilung durch den Arduino jede Minute die Spannungswerte ausgeben lassen.Dann könnte man daraus auf den Füllstand Schließen:9,6V = 100%9,59V = 75%9,58V = 50%9,4V = 25%…Bleiakku hört sich für mich noch immer am besten an :DZ.B. http://www.voelkner.de/products/78933/Bleiakku-12V-2-3Ah-Np-Yuasa.htmlIch würde als Ziel schon gerne ein komplett selbstständiges Spielzeug haben d.h. der Akku sollte sich selbstständig laden.(Ich würd auch das Aufladen gerne mit Solarzellen probieren, sind nur en wenig teuer :D)MfG Matthias

    • #917906
      sneasel
      Teilnehmer

      http://www.voelkner.de/products/118825/Doppelzahnrad-Sortiment-M0-5-20tlg..htmlDas soll mein Getriebe werden :DEDIT:Ich hab mal meine Idee zu “Papier” gebracht :DMal ne Frage kann ich das Relai auch durch meine L293d steuern? (Als zweiter “Motor”)

    • #917903
      spokekiller
      Teilnehmer

      sneasel;486757 said:
      Hallo,

      der Motor kann mit 4V-14V arbeiten:
      http://www.conrad.de/ce/ProductDetail.html?hk=WW1&insert=U0&utm_source=zanox&utm_medium=deeplink&utm_content=article&utm_campaign=affiliate&WT.mc_id=affiliate_zanox_produktdaten&productcode=229021&zanpid=1628338496085532672
      Dann müsste ich noch den Atmega328 versorgen, da muss ich aber selbst erstmal gucken 😀

      Du kannst durchaus zwei verschiedene Spannungen nutzen. Siehe dazu das Tutorial mit dem TIP-120, welches sich auch auf diverse Motorregler übertragen läßt.
      Sei der Akku bspw ein 9.6V, und Du ließest den Motor mit ebenso 9.6V laufen, so könntest Du per LM7805 5V Versorgungsspannung wählen. Dabei verbrätst Du natürlich einiges an Verlust am Regler. Unter dem Aspekt der Sparsamkeit wäre also der Betrieb des Motors mit 5V vorzuziehen.

      Man kann den 328 “leider” nicht mit Spannungen höher 5.5V betreiben, ohne Risiko für dessen Wohlergehen. Siehe dazu auch das Datenblatt (Abhängigkeit Taktfrequenzen zu Versorgungsspannung).

      Davon mal abgesehen ist mir aufgefallen, daß Du für den Motor noch ein Getriebe brauchen wirst, denn seine Lastdrehzahl ist mit über 3000 Upm immer noch zu hoch für Deine Anwendung. Ich weiß nicht, ob Du das schon erwähnt hattest.

    • #918224
      sneasel
      Teilnehmer

      Da ich nach einigen Tagen noch immer keine Antwort auf den Edit meines letztes Posts bekommen habe, vermute ich, dass ihr immer in die aktiven Themen des Forums guckt. :idea:Ich habe mal eine Zeichnung meines Konzepts erstellt.Sind dort noch grobe Fehler vorhanden, bzw. was sollte ich verändern?Kann ich das relai auch über die L293D stuern (Ist ja noch ein Platz für einen zweiten “Motor”)?http://www.meisterkuehler.de/forum/attachments/bastelecke/974d1335012265-vorstellung-elektronikprojekte-arduino-plattform-katzentraum2.png

    • #918236
      spokekiller
      Teilnehmer

      Hi,ja, ich habs erst bemerkt, daß Du wieder was geschrieben hast, als der neue Post kam.So… ich hab nur schnell schnell drüber geschaut und dabei sind mir folgende Gedanken gekommen.1. Hä? (Scherzle)2. hat die L293 Brücke eingebaute Freilaufdioden? Falls nein, dann würde ich welche an den induktiven Lasten setzen. Man kann nicht vorsichtig genug sein (siehe hier )3. Ich komm mit dem Teil unten nicht ganz klar… damit liest Du die Akkuspannung aus, ja?4. Wieso läuft die Stuerleitung fürs Relais von Pin13 über den Laderegler?Sind ne Menge dumme Fragen und ein langer Arbeitstag. Nicht böse sein, falls was absolut dämliches dabei war… Der Hallo und der Phil sagen sicher auch noch was dazu.Die L293 Brücke kann sicher auch noch das Relais ab. Ansonsten sollte der Spulenstrom eher nicht über 100 mA liegen. Besser wäre es dann entweder wirklich über die Brücke zu schalten, oder einen kleinen Transistor zwischen Relais und Digipin zu bauen. Je nach Spulenstrom sollte da dann ggf ein BC 548A~C reichen.Ich hatte mir erst ein paar besorgt, die nur knapp 100mA Spulenstrom brauchen, die kann man auch direkt schalten, ich machs aber trotzdem nicht. Ich müßte im Datenblatt nochmal schauen, wie die Asugänge bei einzelnen Lasten ausgelegt sind.Achja, und nimm ggf auch einen anderen Pin, denn der 13er hat ja auch noch die kleine LED samt Vorwiderstand dran und die wären ja beide nur im Weg.So, Senf dazugegeben. 😉

    • #918276
      sneasel
      Teilnehmer

      Zu 2: Soweit ich weiß hat die L293D ne Diode drin (für jeden Kanal)http://www.produktinfo.conrad.com/datenblaetter/150000-174999/156134-da-01-en-4_KANAL_TREIBER_IC_L293D_STM.pdfZu 3: Damit wollt ich die Spannung auslesen (hab ich da was falsch gemacht?Zu 4: kapier ich net :D. Die Steuerung des Relais sind doch die beiden mittleren Pins jeweils an der Ober und Unterseite (Aus der Sicht meines Bildes). Damit ist die Steuerung doch einmal mit Pin 12 –> Relaisteuerung –> Relai —> 5V+ verbunden.neue Frage: Mit dem Teil kann ich mir das Relai doch sparen oder?http://www.voelkner.de/products/78918/Bleiakku-Ladegeraet-H-Tronic-AL-300-Pro.htmlMal ne Frage wenn ich einfach an den Stecker für die Steckdose die beiden Kabel von dem Lampenanschluss an der Decke löte, welche Gefahren sind damit verbunden (Montage natürlich mit ausgeschalteter Sicherung ..). Kann da im Betrieb was schlimmes passieren?Mfg Matthias

    • #918288
      spokekiller
      Teilnehmer

      Zu 4. hast Recht, habe daneben-geschaut. Mea culpa.

      Mal ne Frage wenn ich einfach an den Stecker für die Steckdose die beiden Kabel von dem Lampenanschluss an der Decke löte, welche Gefahren sind damit verbunden (Montage natürlich mit ausgeschalteter Sicherung ..). Kann da im Betrieb was schlimmes passieren?

      Im Ernst jetzt? :DAlso mir hat man beigebracht, daß 220/230V Leitungen nicht gelötet werden, sondern mit Aderendhülsen geklemmt. Alternativ kann man spezielle Klemmen nehmen und spart sich die Aderendhülse.Kann vielleicht einer vom Rest der Truppe noch was dazu sagen? Wir haben doch auch richtige Elektriker hier im Forum.Wegen des Auslesens vom Akku: ich hatte nicht mitgekriegt, daß wir letztlich wieder bei Bleiakkus gelandet sind. Ist jetzt angekommen.

    • #918290
      sneasel
      Teilnehmer

      Ich hab noch immer kein gutes Argument gegen Bleiakkus gesehn.
      Pro:
      – Man kann den Füllstand anhand der Spannung messen
      – Günstig

      Contra:
      – Bissl groß und schwer 😀

      Ob löten oder klemmen ist mir egal 😀 (Werds nach deinem post einfach klemmen :D)

    • #918291
      ThaRippa
      Verwalter

      230V-Adern löten: in Gehäusen, warum nicht? Im Haus/Dosen/Schaltern: Aderendhülsen, zur Not verlötzinnte Aderenden und mit Klemmen klemmen.

    • #918292
      spokekiller
      Teilnehmer

      Ich sag nichts gegen die Bleigelakkus. Ich habs nur überlesen.Löten soll man die nicht, weil sie dann eher zum Brechen neigen, so wurde mir das erklärt. Ich denke aber, wenn man das anständig macht, sodaß die Kapillarwirkung das Lot nicht unter die Isolation zieht ist das unbedenklich. Allerdings war nicht irgendwo der Einwand wegen VDE und so gewesen? Oder hatte ich das in einem anderen Thread gelesen…?Meine Birne, Mensch… kaum biste vierzig ist aus…EDIT: mir war nicht klar, ob er im Gehäuse ist. Im Prinzip isses auch nicht so wild. Ich bin eben bei sowas extrem vorsichtig (jaja, ich weiß…). Im Ernstfall schlägts ihm dann eben bei nem kurzen hoffentlich die Sicherung raus. Kabelbrand wird er wohl nicht gleich haben…. muahahaha

    • #918300
      sneasel
      Teilnehmer

      Also die Kabel von der Lampe werde ich anklemmen. Ist denn sonst alles in Ordnung, bzw. kann ich bestellen und loslegen :D(Bei dem Netzteil kann ich mir das Relay doch sparen oder?

    • #918302
      spokekiller
      Teilnehmer

      sneasel;487213 said:
      Ist denn sonst alles in Ordnung, bzw. kann ich bestellen und loslegen :D(Bei dem Netzteil kann ich mir das Relay doch sparen oder?

      Wegen des Relais… ich dachte das nutzt Du, um den Akku nur zu laden, wenn er unter eine bestimmte Spannung fällt und um sicherzustellen, daß das Ladegerät nihct auch noch den Arduino mit antreibt… oder steh ich jetzt vollends auf’m Schlauch?

    • #918306
      sneasel
      Teilnehmer

      Wenn das ladegerät Arbeitet versorgt es doch automatisch den Arduino mit oder?
      Das Relai sollte ja nur verhinder, dass der Akku immer auch wenn er voll ist geladen wird. (Das Netzteil regelt das aber ja schon selbst.)

    • #918311
      spokekiller
      Teilnehmer

      sneasel;487219 said:
      Wenn das ladegerät Arbeitet versorgt es doch automatisch den Arduino mit oder?
      Das Relai sollte ja nur verhinder, dass der Akku immer auch wenn er voll ist geladen wird. (Das Netzteil regelt das aber ja schon selbst.)

      Alles klar, dann paßt das. Jetzt hab ichs auch verstanden. 😉

    • #918400
      Hallo1001
      Teilnehmer

      Hallo Matthias!

      Zu 3: Damit wollt ich die Spannung auslesen (hab ich da was falsch gemacht?

      Also ein ordentlicher Schaltplan wäre hier schon einmal gut gewesen, auf der Zeichnung findet man sich nicht wirklich durch. Das auslesen der Akkuspannung muss über einen Spannungsteiler erfolgen, so wie Du das da machst grillst Du den Arduino Port. Und wenn Du nicht sicherstellen kannst das am Arduino Port nicht mehr als 5,0V anliegen, dann kannst Du zusätzlich noch eine Z-Diode mit verbauen…

      http://www.pcfilter.de/Hallo1001/Temp/Schaltplan.GIF

      LG Jens

    • #918412
      sneasel
      Teilnehmer

      Hallo,Das mit der Zener Diode hatte ich schon wieder vergessen :(Aber noch eine Frage:Wenn man bei dir z.B. 8V hinter dem R2 hat. Dann müsste ja die Zener durchlässig werden und den Arduino retten. Bei dir würden aber doch die 8V sowohl zum Arduino als auch durch die Zener fleißen? Kannst du mit vielleicht sagen was ich da falsch verstehe?Ich hätte es so gemacht :banana:(Ich will gerne alles halbwegs verstehen, was ich da zusammen bastel :D)MfG Matthias

    • #918440
      Hallo1001
      Teilnehmer

      Hallo Matthias!

      Wenn man bei dir z.B. 8V hinter dem R2 hat. Dann müsste ja die Zener durchlässig werden und den Arduino retten.

      Korrekt, die Spannung kann hinter R2 nicht über 5,1V ansteigen (durch die Z-Diode), egal was Du an Akkuspannung da rein jagst (in angemessenen Grenzen natürlich).

      Bei dir würden aber doch die 8V sowohl zum Arduino als auch durch die Zener fleißen?

      Schau mal hier vorbei:
      http://de.wikipedia.org/wiki/Spannungsteiler
      Der Spannungsteiler besteht aus zwei Widerständen. Der „Mittelabgriff“ ergibt sich durch die Werte der Widerstände. Mit den Werte die ich Dir hier herausgesucht habe ergibt sich ein Spannungsverhältnis von 3:1. Liegt die Akkuspannung also bei 15,0V, dann beträgt die Spannung beim Arduino Port 5,0V. Um hier auf die besagten 8V zu kommen müsstest Du also einen Akku mit 24V verwenden. Mit der Z-Diode würde das aber auch keine Rolle spielen, die schneidet die Spannung bei 5,1V ab…

      Bei Deiner neuen Schaltung mit Z-Diode würde immer 5,1V am Arduino Port anliegen, egal ob der Akku voll oder leer ist. Deinem Spannungsteiler fehlt hier der gemeinsame Bezugspunkt (Masse)…

      LG Jens

    • #918522
      sneasel
      Teilnehmer

      So hier auch meine Zeichnung:

    • #918521
      sneasel
      Teilnehmer

      So ganz versteh ich das noch nicht :-k

      Ich habe mal in deine Zeichnung meine Berechnungen geschrieben.
      Wo liegt da mein Denkfehler? (Ich hätte am Arduino 66% der Spannung anliegen)

      Schönen ersten Mai wünsche ich :p

      Matthias

    • #918531
      Hallo1001
      Teilnehmer

      Hallo Matthias!

      Ich habe mal in deine Zeichnung meine Berechnungen geschrieben. Wo liegt da mein Denkfehler? (Ich hätte am Arduino 66% der Spannung anliegen)

      Deine Berechnungen stimmen schon (bis auf einen kleinen Einheitsfehler), Du interpretierst sie nur falsch. Über den gesamten Spannungsteiler fällt eine Spannung von 13,8V ab (also Akkuspannung). Wären beide Widerstände gleich groß, dann hättest Du in der Mitte also eine Spannung von 6,9V (Akkuspannung / 2). Jeder der beiden Widerstände „verheizt“ also die Spannung in Abhängigkeit seiner Widerstandswerte. Bei Deiner Berechnung „verheizt“ R2 also 9,2V und R1 „verheizt“ 4,6V. Entscheidend ist für Dich das Potential wo Akku und Arduino zusammen angeschlossen sind (also Masse). Es wird hier also die Spannung zwischen Masse und dem Mittelabgriff vom Spannungsteiler gemessen und das ist R1. Die Spannung an R2 wird also vernichtet, sie liegt nicht am Arduino Port an…

      Beim berechnen vom Stromverbrauch hat Du Dich mit der Einheit verhauen. Hier werden keine 0,61A (610mA) verbraucht, es sind 0,61mA…

      http://www.pcfilter.de/Hallo1001/Temp/Spannungsteiler.jpg

      LG Jens

    • #918581
      sneasel
      Teilnehmer

      So nächster Versuch :DIst es denn so richtig interpretiert?@spokekiller:Da du immer wieder in deinem Thread schöne Tutorials erstellt hast, wäre es vielleicht ne gute Idee diese in deinem ersten Post (wie in einem Inhaltsverzeichnis) zu verlinken.Oben rechts über jeden Post kannst einfach auf permalink klicken und dann die URL einspeichern. Dann kann man auch nach belieben über Spannungsteiler reden, ohne ein schlechtes Gewissen zu haben, deinen Thread voll zu spammen :PBsp:Einführung: Erste Schritte oder Ardu-Waaas?http://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform.html#post461908Tutorial #2: Temperaturen messen und einfache Anzeigehttp://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform.html#post462116(Das soll nur ein Vorschlag sein. Nicht das ich dir Arbeit aufbrummen will auf die du keine Lust hast)MfG Matthias

    • #918869
      spokekiller
      Teilnehmer

      Danke für den Tip. Ja, mittlerweile ist der Thread viel größer und kreativer geworden, als ich je zu hoffen gewagt hätte. Das mit dem Inhaltsverzeichnis ist sicher eine gute Idee.Das werd ich die nächsten Tage mal durchziehen.Und man darf hier ruhig auch über sein eigenes Thema “spammen”, denn durch Dein Projekt hab ich jetzt auch wieder was dazugelernt.GrüßeEDIT:Ich habe die letzten beiden tutorials anfassen müssen, weil die Nummerierung falsch war.Das Inhaltsverzeichnis steht jetzt im ersten Post.

    • #919343
      sneasel
      Teilnehmer

      Hallo,ich hab nochmal ne Zeichnung von dem ganzen Projekt gemacht.Dabei bin ich noch über einige Fragen gestolpert :D1. Ist es jetzt so richtig mit der Spannungsteilung (Und ist der -Pol von einer Batterie sowas wie ne Erdung)?2. Um die Leistung des Motors zu steigern (er hält 4-14V aus) wollte ich diesen direkt über die Batterie versorgen (bzw. die L293D). Ich versteh nur nicht so recht ob ich an alle drei Stromanschlüsse die 12V legen kann/soll. :DHier ein Link zum Datenblatt. Es geht um die Eingänge 1.2 EN, Vcc1, Vcc2http://www.datasheetcatalog.org/datasheet/texasinstruments/l293d.pdfJoa hier noch das Bild :DMfG Matthias

    • #919350
      sneasel
      Teilnehmer

      Ich hab mal die Zeichnung verständlicher gemacht 😀

      Die Anschlüsse an die L293D hab ich nach folgendem Tutorial nachgebaut:
      http://www.arduino-tutorial.de/2010/06/motorsteuerung-mit-einem-h-bridge-ic/
      Die drei von mir genannten Kanäle müssten ja zur Stromversorgung da sein. Die Steuerung müsste ja bei meinem Motor über Pin 2 und 7 laufen.
      Aus dem Datenblatt kann ich aber nicht rauslesen wofür die Pins gut sind und wieviel Volt dort anliegen darf:
      “Supply voltage, VCC1 (see Note 1) . 36 V
      Output supply voltage, VCC2 . 36 V”
      Warum ist Vcc2 ein Output? Wieviel der 12EN braucht weiß ich überhaupt nicht.

      MfG matthias

    • #919349
      Hallo1001
      Teilnehmer

      Hallo Matthias!

      1. Ist es jetzt so richtig mit der Spannungsteilung

      Ja.

      (Und ist der -Pol von einer Batterie sowas wie ne Erdung)?

      Nur wenn Du ihn mit der Erde verbindest.

      2. Um die Leistung des Motors zu steigern (er hält 4-14V aus) wollte ich diesen direkt über die Batterie versorgen (bzw. die L293D). Ich versteh nur nicht so recht ob ich an alle drei Stromanschlüsse die 12V legen kann/soll.

      Pin8 auf jeden Fall auf den Akku, Pin1 würde ich auf einen Arduino Port legen. Die Pins 9 bis 16 musst Du überhaupt nicht beschalten, da hängt ja nichts dran.

      Joa hier noch das Bild

      1.) Wo ist die Masseverbindung zwischen Ladegerät, Akku und Arduino?
      2.) Wie soll das Ladegerät den Akku laden?

      LG Jens

    • #919354
      Hallo1001
      Teilnehmer

      Hallo Matthias!

      Die Anschlüsse an die L293D hab ich nach folgendem Tutorial nachgebaut:…………………………..Aus dem Datenblatt kann ich aber nicht rauslesen wofür die Pins gut sind und wieviel Volt dort anliegen darf:

      Dann such doch mal im Internet nach weiteren Einträgen vom L239. Der Link ist auch gut verständlich und beantwortet all Deine Fragen:
      http://www.skilltronics.de/versuch/elektronik_pc/l293.html

      Output supply voltage, VCC2 . 36 V” Warum ist Vcc2 ein Output?

      Mal wieder falsch interpretiert. Wenn Du an Vcc 36V anlegst, dann liegen am Motor (das ist hier mit Output gemeint) auch 36V an. Die 36V sind hier die Maximalspannung die der L239 verarbeiten kann, in Deinem Fall wäre es also die Akkuspannung…

      ———–

      Deinem neuen Bild entnehme ich dass der Akku immer ununterbrochen geladen wird. Wozu brauchst Du dann den Spannungsteiler? Du nimmst weder Einfluss auf den Ladevorgang, noch läst Du Dir die Akkuspannung anzeigen. Wozu dann der Aufwand?

      LG Jens

    • #919367
      sneasel
      Teilnehmer

      Hallo,

      schonmal Danke für die Tips.
      Der Akku wird ja nur geladen wenn das Licht angeschaltet ist.
      Ausserdem will ich ihn vielleicht in der Zukunft über Solarenergie versorgen.
      Ist denn sonst alles OK in meinem Projekt?
      Ich würde gerne am WE alles bestellen und würde mich über eine Bestätigung freuen [-o< (Besonders ob ich den -Pol als Erdung verwenden kann [Das ist doch beides ein Medium in den der Strom abfließen kann]) Hier nochmal der Link zu dem letzten Bild: http://www.meisterkuehler.de/forum/attachments/bastelecke/1001d1336674493-vorstellung-elektronikprojekte-arduino-plattform-katzentraum-final2.jpg

      MfG Matthias

    • #919395
      Hallo1001
      Teilnehmer

      Hallo Matthias!

      Der Akku wird ja nur geladen wenn das Licht angeschaltet ist.

      Hm, dann hängt der Akku also auch unabgeschaltet am Ladegerät, wenn das Ladegerät aus ist. Nun, das zieht Dir den Akku leer, denn die Elektronik im Ladegerät verbraucht auch Strom. Darum soll man Akkus ja auch wieder aus dem Ladegerät nehmen, wenn man es ausschaltet.

      Ausserdem will ich ihn vielleicht in der Zukunft über Solarenergie versorgen. Ist denn sonst alles OK in meinem Projekt?

      Dann kannst Du doch nicht fragen ob Deine Schaltung so OK ist, Du bist doch noch nicht einmal mit dem Entwurf fertig. In Deinem Schaltplan sehe ich keine Vorbereitung für Solar und einfach parallel schalten kannst Du die Solarzelle nicht auf den Akku. Such mal hier nach „Solar-Laderegler“, so etwas in der Richtung musst Du schon mit vorsehen, wenn Du eine Solarzelle verwenden möchtest.

      Ich würde gerne am WE alles bestellen und würde mich über eine Bestätigung freuen

      Das was da so auf dem Bild zu sehen ist scheint soweit OK zu sein, ist immer schlecht zu sagen wenn da keine Werte an den Bauteilen dran stehen. Es wird aber mit Sicherheit nicht Deine letzte Bestellung sein…

      (Besonders ob ich den -Pol als Erdung verwenden kann [Das ist doch beides ein Medium in den der Strom abfließen kann])

      Wie schon einmal gesagt, es spricht nichts dagegen den Minuspol auf Erde zu legen. Nur wo zu soll das hier gut sein? Das Ladegerät ist Schutzisoliert, von da hast Du keine Überspannung zu erwarten. Was für einen Vorteil hätte es denn wenn Du Deine Schaltung hier erdest?

      LG Jens

    • #919399
      Hawk
      Teilnehmer

      Haftpflicht- und Hausratversicherung inkl. Brandschutz ist vorhanden? 😉

    • #919398
      sneasel
      Teilnehmer

      Ich will das Gerät erstmal ohne Solarstromversorgung realisieren. Diese kommt dann vielleicht irgendwann mal dran.

      Ich hab den Unterschied zwischen Masse und minus Pol der Batterie nicht so ganz verstanden.:banana::banana::banana:
      Aber wenn ich die Spannungsteilung richtig angeschlossen hab soll mir das erstmal reichen.

      Das Ladegerät dürfte doch nicht allzuviel Strom fressen oder?
      Zum Notfall könnte man ja noch ein Relay zwischen Akku und ladegerät hängen. (Ne Diode müsse doch auch gehn oder?)

      Dann werd ich ma bestellen und sehn wie weit ich komme [-o< MfG Matthias

    • #919408
      sneasel
      Teilnehmer

      :d: Wird schon alles gut gehn :d:

      Nochwas 😀
      ich will gern meinen Arduino durch einen Atmega 328 mit Arduino Bootloader ersetzen.
      Dazu würd ich folgendem Tutorial folgen:
      http://arduino.cc/en/Main/Standalone

      Ich will aber auf alles unnötige verzichten. Dann muss ich doch nur:
      – Die 5V Versorgung mit Spannungsregler und Kondensatoren nachbauen
      – Den PullupResisitor an den Reset Port
      – Den 16MHz Quarz mit den beiden Kondensatoren
      nachbauen. (Natürlich + Kabel und Strom/Ground-Anschlüsse)
      Das müsste doch reichen (Der Resetknopf und die Leds müssten doch egal sein)

      MfG Matthias

    • #919419
      sneasel
      Teilnehmer

      Ich will ja einen Atmega 328 mit Arduino Bootloader kaufen:http://www.watterott.com/de/ATmega328-Arduino-BootloaderDann müsste ich diesen doch nurnoch auf meinen Arduino Uno stecken und das Programm uploaden 😀

    • #919416
      Hallo1001
      Teilnehmer

      Hallo Matthias!

      ich will gern meinen Arduino durch einen Atmega 328 mit Arduino Bootloader ersetzen.Dazu würd ich folgendem Tutorial folgen:

      Wenn Du jetzt eh anfängst alles neu auf zu bauen, warum verwendest Du dann nicht gleich einen kleineren AVR. Für Dein Projekt würde ein Tiny25 oder Tiny24 vollkommen ausreichen. Und ob Du nun die paar Programmzeilen mit der Arduino Gui, in Basic oder in GCC erstellst ist doch eigentlich egal. Aber egal wie, Du brauchst auf jeden Fall einen ISP-Programmer, ansonsten kannst Du weder den Bootloader für den AT328 aufspielen, noch kannst Du den Tiny24 brennen. Hast Du einen ISP-Programmer?

      Ich will aber auf alles unnötige verzichten. Dann muss ich doch nur:
      – Die 5V Versorgung mit Spannungsregler und Kondensatoren nachbauen
      – Den PullupResisitor an den Reset Port
      – Den 16MHz Quarz mit den beiden Kondensatoren
      nachbauen. (Natürlich + Kabel und Strom/Ground-Anschlüsse)
      Das müsste doch reichen (Der Resetknopf und die Leds müssten doch egal sein)

      Jo, das passt…

      LG Jens

    • #919515
      spokekiller
      Teilnehmer

      sneasel;488403 said:
      Ich will ja einen Atmega 328 mit Arduino Bootloader kaufen:
      http://www.watterott.com/de/ATmega328-Arduino-Bootloader

      Dann müsste ich diesen doch nurnoch auf meinen Arduino Uno stecken und das Programm uploaden 😀

      Das ist korrekt. Das hatte ich auch schon gemacht, bevor ich mir einen Programmer zugelegt hatte.

    • #920802
      sneasel
      Teilnehmer

      Hallo,

      mein Katzenspielzeug ist soweit fertig und befindet sich jetzt in der Optimierungsphase 😀
      Ich habe mal den Stromverbrauch ausgemessen und bin auf folgende Ergebnisse gekommen:
      Motor: 50ma
      Arduino: 100ma
      Da der Motor nur ca 5min/Stunde laufen soll ist der Durchschnittsverbrauch ca 4ma. (Super)
      Der Arduino allerdings sollte viel weniger verbrauchen.
      Ist der hohe Stromverbrauch von 100ma ein Resultat der Spannungsumwandlung von 12 auf 5V?
      Ich hab irgendwo im Internet gelesen dass der Arduino bei 5V 7ma + 6ma pro LED vebraucht stimmt das?
      Dann sollte ich vll noch eine Extra 5V Stromversorgung für den Arduino einbauen. (4AA Batterien z.B.)

      EDIT: Ist es richtig dass ich für 16Mhz ca. 5V brauche?
      Seite: 316
      http://www.atmel.com/Images/doc8161.pdf

      MfG Matthias

      PS: Ich hab mal ein Bild von meiner Konstruktion hochgeladen 😀
      Da kann man auch meine Lötkünste begutachten #-o

    • #920854
      spokekiller
      Teilnehmer

      Ja, nee, also nicht ganz….Gehst Du mit Deiner extra Arduinospannung direkt auf die Pins GND und +5V dann mußt Du exakt 5V nehmen. Ansonsten brauchst Du etwa 6V Minimum, wenn Du über die Hohlbuchse gehst, weil der Längsregler einen Drop von ca 0,7V hat, wenn ich mich richtig erinnere. Also mußt Du mindestens 5,7 V einspeisen.Das Schaubild auf Seite 399 dürfte Deiner Frage eher dienlich sein (29-140). Dort wird in Abhängigkeit von Spannung und Frequenz der Stromverbrauch (nur für den 328er) angegeben.Also bei 5V (ist fix, bspw durch den Längsregler) und 16MHz (fix) sind es dann knapp unter 10 mA….Das Schaubild das Du meinst ist ohnehin schon gegeben, denn dort wird gezeigt, in welchem Frwuenzbereich man den ATMega328 laufen lassen kann und welche Spannung man dafür in Abhängigkeit dazu mindestens anlegen muß. Nicht falsch, aber diese Werte sind durch Deinen Uno ja schon fest vorgegeben.Die 100mA kommen mir ein wenig hoch vor, denn Du hast ja sonst nicht viel dran. Allerdings bin ich nir nicht sicher, ob die auch von mir genannten Schaubilder die “Leerlaufleistung” beziffern.Du hast den AD Wandler in Beschlag und ein bissl was an den Digi Pins… dazu Verlust an den vielen Widerständen… Kommt mir jetzt erst… wie hast Du die Stromaufnahme des Arduino gemessen? Ich meß meinen mal im Leerlauf später nach.

    • #920856
      sneasel
      Teilnehmer

      Ich habs mit nem Multimeter gemessen. Allerdings vor dem Spannungswandler. (ka ob das von Bedeutung ist)
      Verbraucht denn vll der Bewegungssensor so viel?
      Oder die L293D Motorsteuerung auch wenn der Motor nicht bewegt wird?

      MfG Matthias

    • #921156
      sneasel
      Teilnehmer

      Nach meinem ersten Versuch will ich jetzt eine zweite Version von meinem Katzenspielzeug bauen :DDafür hab ich mir schon en kleinen Getriebemotor und ein kleines Gehäuse besorgt :DMeine Ziele sind es:- Den Arduino durch einen Atmega328 ersetzen und damit den Stromverbrauch senken (hoffe auf 10mA)- Eine eigene Platine Ätzen (nachdem das 10. Kabel von der L293D abgebrochen ist, hab ich sie beim Wiederanlöten zerkocht :D)- Den Bleiakku durch 4 NiMh Akkus zu ersetzen (~5V) und diese per Solarzelle wieder aufladen.- Insgesamt hoffe ich auf einen Stromverbrauch von 25mA/h (20mA Arduino, L293D, Sensor + 60mA/12 Motor [Der Motor läuft nur 5min/h])Ich denk da hab ich mir genug vorgenommen :-kSo ich hab mir schon für alle Vorhaben Tutorials und Tips zurechtgelegt, ausser zu den Solarzellen.Zum Testen habe ich mir eine mini Solarzelle mit 6,7V gekauft.Laut Multimeter bringt diese bei bewölktem Himmel:-im Freien 4-5V-im Raum mit transparenten Vorhängen ca 1,1VZum Laden müsste ich doch auf ca.6-7V kommen.Überladen müsste ja bei sehr geringen mA-Werten (ca.50mA) kein Problem sein. Dann kann ich doch einfach die Solarzelle an die Akkus anschließen und muss nur eine Diode dazwischenschalten um den Rückfluss zu blokieren. Ist das so richtig?Meint ihr damit erreiche ich die nötige Spannung?(Würde die 5 Zellen an jede Seite meines Gehäuses pappen :D)http://www.ebay.de/itm/5x-5-5V-50mA-0-25W-68x35mm-Solarmodul-Solarzelle-Monokristallin-vergossen-/251036208143?pt=Bauteile&hash=item3a72ec8c0fMfG Matthias

    • #923249
      Sc0rp
      Teilnehmer

      Hi Jungs,erstmal fetten Dank an spokekiller für den Thread – ist echt Klasse. Hab mich schon mal ein bissel reingelesen und habe nun Lust mich auch mal zu versuchen.Ich möchte im Zuge meines “Projekt.Aussenborder” eine digitale Temperaturüberwachung realisieren. Das Projekt hat eine externe Radiator-/Pumpen-/Lüfter-Kombination zum Ziel. Es ist noch im Entstehen – Bauteile für die Wasserkühlungsseite sind alle vorhanden und werden demnächst zusammengebastelt (evtl. mit Projektdokumentation).Nun hat die AT-Pumpe (und der Inline-Tempsensor von AT ebenfalls) nur diese NTC-Kacke zum Messen der Temperatur, das ist mir ein wenig zu ungenau – und zudem auch lokal beschränkt, sofern man die Pumpe nicht via USB anschliesst, sieht man gar nix.Das Dilemma soll ein eigener Mikrokontroller lösen – die Arduino-Plattform scheint perfekt dafür geschaffen zu sein, folgende Funktionalitäten zu liefern:- digitale Temperaturmessung (via I²C), Sensoren sollten modular “anstöpselbar” sein (reine Hardwarelösung via Steckern)- LCD Anzeige, quasi Output am Kontroller- Ethernet (via Ethernet-Shield) inkl. Oberfläche- später zusätzliche Steuerung und “Auswertung” von LüfternDas mit dem Ethernetshield ist kein Problem, wird einfach gekauft ;). Allerdings habe ich noch Probleme, den passenden Arduino auszusuchen (siehe http://de.wikipedia.org/wiki/Arduino-Plattform):- reicht ein Uno? Wäre das Ethernetshield kompatibel?- muss ich was Grösseres nehmen? – leider sagen mir die nackten Zahlen (KiB Flash/EEPROM/SRAM) nix, mit den I/O-Pins kann ich was anfangen …- Power nehme ich von einem Steckernetzteil – welche Spannung und Stromstärke sollte im günstigsten Fall da rauskommen? Die Platinen sagen alle 7-12V -> aber wo geht am wenigsten Strom verloren?Danke im Voraus für Eure Antworten – ich bin totaler Noob was die Plattform angeht … noch ;)Sc0rp

    • #923260
      spokekiller
      Teilnehmer

      Hi Sc0rp,zunächst vielen Dank für Dein Lob. Ich freue mich wirklich sehr darüber :banana:. Leider ist “real life” gerade vorrangig, denn sonst würde es hier auch mal endlich wieder weitergehen.Zu Deinen Fragen:Du kannst einen Arduino Uno nehmen, der ist für Dein Projekt geeignet und auch mit dem Ethernetshield kompatibel. Wenn Du möchtest, kannst Du auch einen Arduino Ethernet ohne PoE Module nehmen. Mit diesem habe ich aber keine praktische Erfahrung. Ich selber besitze einen Arduino Uno Rev 2 mit separatem ETH-Shield in (ich glaube) Rev2.Den Uno gibt es mittlerweile in Hardware Rev 3. Zur Einfachheit verlinke ich mal zu Watterott. Ich bekomme dafür kein Geld und Du kannst die Sachen auch ganz woanders kaufen.Arduino: http://www.watterott.com/de/Arduino-Uno?x07568=fe0035d4a45bab73a3e609cd5c21fd71Passender ETH Shield:http://www.watterott.com/de/Arduino-Ethernet-Shield?x07568=fe0035d4a45bab73a3e609cd5c21fd71Von der Beschreibung des Shields “neue Version” mußt Du Dich nicht verwirren lassen. Es gibt mW nur zwei Versionen, wovon die neuere eben den microSD Sockel auch wirklich nutzen kann. Die alte hatte ihn nur schon drauf, er lag aber brach.Das PoE Modul würde ich mir schenken, das brauchst Du sicher nicht.NB: den Leonardo oder Mega würde ich dir als Einsteiger nicht empfehlen. Beide sind zudem overpowered. Der Uno reicht dicke.Aber etwas konkreter zu Deinen Fragen:

      Sc0rp said:
      – reicht ein Uno? Wäre das Ethernetshield kompatibel?

      Ja, siehe die Links oben

      Sc0rp said:
      – muss ich was Grösseres nehmen? – leider sagen mir die nackten Zahlen (KiB Flash/EEPROM/SRAM) nix, mit den I/O-Pins kann ich was anfangen …

      Nein, der Uno reicht gut aus, außer Du möchtest gleich ein Dutzend Pumpen und Ventis laufen lassen. Der Uno hat einen ATMega 328, der bietet ausreichend Speicher für einige libraries und ne Menge Code. Da kann man schon viel damit anfangen.

      Sc0rp said:
      – Power nehme ich von einem Steckernetzteil – welche Spannung und Stromstärke sollte im günstigsten Fall da rauskommen? Die Platinen sagen alle 7-12V -> aber wo geht am wenigsten Strom verloren?

      Also, ich muß etwas ausholen: Du kannst die Spannung für den Arduino vom USB nehmen. Einfach an den USB Port des Arduino anstecken. Geht netürlich auch mit einem passenden 5V Netzteil mit USB Stecker. Daneben gibt es noch zwei Pins, die an einer der Steckleisten (siehe mein erster Post) +5V als Betriebsspannung annehmen.http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture1986-arduino-uno-beschriftung-einiger-wesentlicher-komponenten.jpgDie beiden Pins links unten, wo 5V und GND stehen sind faktisch Ein- wie Ausgänge. Schließt Du da exakt +5V an, dann läuft er prima.Wenn Du nun größere Verbraucher ansteuern willst, dann sieht das ähnlich aus, wie bei meinem Tutorial mit dem TIP-120. Die Versorgungsspannung für die “großen” Verbraucher, wie Lüfter und Pumpe haben ihre eigene Spannungsquelle und nur die Masseschiene mit dem Rest gemein. So geht das auch mit MosFET statt einem Leistungstransi wie dem TIP.Worauf ich raus will ist, daß Du die Spannung für den Arduino passend nimmst, und nicht im Bereich 7-12V über den Hohlstecker. Geht zwar, aber da verlierst Du einiges durch den Längsregler und erzeugst auch Wärme.Die Ausgangs-Ports der Arduinos können nicht allzuviel Strom liefern, ich glaube es sind um die 50~80mA pro Port (nicht als Dauerlast wenn viele gleichzeitig aktiv sind).Müssen sie ja auch nicht, siehe o.a. Beispiel. Wenn man höhere Ströme braucht bedient man sich entsprechender Treiber-ICs (wie beispielsweise H-Brücken LD398 für Robotermotoren).Für Lüfter und Pumpen it ein entsprechender MOSFET sinnvoll.Auf meiner To-Do-Liste steht noch eine kleine Vorstellung mit einer Lüfter-Steuerungsstufe mit MosFet und LCD. Das sollte Dir helfen. Ich versuche mal, ob ich das übers WE hinbekommen zu veröffentlichen, denn die Teile habe ich alle.Die Lüftertachos, die Du auswerten willst, werden über die Analogports des Uno ausgewertet, von denen sind 6 verfügbar. Solltest Du aber I²C verwenden, fallen A4 und A5 weg für denselbigen.Macht aber auch nichts, denn Du kannst, sofern erforderlich, die Analogeingänge multiplexen. Das ist nicht viel Aufwand und gibt Dir bis zu 4*16 extra Ports. Nachteil dabei könnte sein, dass Dir die Digitalpins ausgehen, weil man den Multiplexer ja auch ansteuern muß.Ich würde Dir bei den Sensoren zu den Dallas OneWire Sensoren wie dem DS18B20 raten, weil man sie mit einem Digitalpin auslesen kann. So würdest du Dir die Analogpins freihalten.Achso, und eines solte man noch wissen: der ETH-Shield belegt einige Pins des Uno, sodaß man diese nicht mehr für andere Zwecke nutzen kann. Welche weiß ich auswendig gerade leider nicht.Jetzt hör ich lieber auf, bevor Dir die Birne explodiert.

      Sc0rp;492457 said:
      Danke im Voraus für Eure Antworten – ich bin totaler Noob was die Plattform angeht … noch 😉

      Keine falsche Bescheidenheit. Immerhin bist Du ja einer meiner RAID-Götter 🙂 Und ich bin auch nicht grade ein Vollprofi, eher ein “N00b, Level 2”.Ich helf Dir aber gerne. Du wohnst ja auch nicht sooo weit weg von mir, da kann man sich ja dann auch mal zum Basteln treffen, wenn Du möchtest.

    • #923270
      Sc0rp
      Teilnehmer

      Re,

      spokekiller;492469 said:
      zunächst vielen Dank für Dein Lob. […]

      *hehe* Wie war das mit “keine falsche Bescheidenheit” ?

      spokekiller;492469 said:
      Du kannst einen Arduino Uno nehmen, […]

      UNO – checkEthernetShield – check

      spokekiller;492469 said:
      Den Uno gibt es mittlerweile in Hardware Rev 3. Zur Einfachheit verlinke ich mal zu Watterott. Ich bekomme dafür kein Geld und Du kannst die Sachen auch ganz woanders kaufen.

      Das wäre mir auch egal, wenn nicht sogar lieber ;). Aber ich bekomme einen UNO von einem Kollegen, der hat noch einen über, evtl. sogar inkl. Shield. D.h. ich müsste mir von Watterott ehr ein Breakboard und Kabel besoren, die DS18(B)20 hab ich schon massig seit Ewigkeiten z.H. – ich hoffe ich finde die noch :+. Den SD-Sockel brauche ich zum Loggen …

      spokekiller;492469 said:
      Das PoE Modul würde ich mir schenken, das brauchst Du sicher nicht.

      Im Moment nicht, kann man später ja nachrüsten – muss erstmal abklären ob mein Cisco-Switch PoE kann …

      spokekiller;492469 said:
      Also, ich muß etwas ausholen: Du kannst die Spannung für den Arduino vom USB nehmen. Einfach an den USB Port des Arduino anstecken. Geht netürlich auch mit einem passenden 5V Netzteil mit USB Stecker. Daneben gibt es noch zwei Pins, die an einer der Steckleisten (siehe mein erster Post) +5V als Betriebsspannung annehmen.

      Ich hab irgendwas von 5,1 V oder 5,7 V (das war aber glaub ich der Längsrichter-Hohlstecker-Eingang) an Mindestspannung gelesen, hab zwar persönlich noch nie nachgemessen, aber kommt aufm USB-Port 5,1V an?

      spokekiller;492469 said:
      Wenn Du nun größere Verbraucher ansteuern willst, […]

      Jo, das mit den “Verstärker bzw. Endstufen” hab ich schon geschnallt ;), ist aber definitv etwas für später …

      spokekiller;492469 said:
      Auf meiner To-Do-Liste steht noch eine kleine Vorstellung mit einer Lüfter-Steuerungsstufe mit MosFet und LCD. Das sollte Dir helfen. Ich versuche mal, ob ich das übers WE hinbekommen zu veröffentlichen, denn die Teile habe ich alle.

      Jo, kein Stress, ich hab auch nicht viel Zeit zum Basteln … meine Reihenfolge der Funktionalitätsprioritäten wäre:- (digitale) Temperaturen messen und Loggen- Temperaturen auf LCD ausgeben- Temperaturen auf Webfrontend ausgebenspäter kommt dann noch die Lüfterauswertung und -steuerung dazu (viel später – jetzt macht das erstmal die Pumpe und ich habe den Mikrocontroller als mobiles Temperaturmesssystem, damit kann ich nämlich meine Rackgehäuse auch mal durchmessen, Stichwort Hitzestau)

      spokekiller;492469 said:
      Ich würde Dir bei den Sensoren zu den Dallas OneWire Sensoren wie dem DS18B20 raten, weil man sie mit einem Digitalpin auslesen kann. So würdest du Dir die Analogpins freihalten.

      Auf jeden, die habe ich schon irgendwo rumkullern, sind auch die einzigen, die bei einem guten P/L Verhältnis ordentliche Werte liefern, abegesehen davon, das man die nahezu unendlich aufreihen kann. Je nachdem welchen Modus man bei 1Wire benutzt (parasitär oder powered) sollen ja Längen bis 100m (und mehr) möglich sein – hängt stark vom Kabel ab.

      spokekiller;492469 said:
      Achso, und eines solte man noch wissen: der ETH-Shield belegt einige Pins des Uno, sodaß man diese nicht mehr für andere Zwecke nutzen kann. Welche weiß ich auswendig gerade leider nicht.

      Sofern ich gelesen habe, sind das vier Digital-Pins. Ist mir aber egal, im Moment brauche ich nur LCD + I²C + EhternetShield, das sollte passen.

      spokekiller;492469 said:
      Jetzt hör ich lieber auf, bevor Dir die Birne explodiert.

      Hab ich schon mehrfach erfolglos ausprobiert, das blöde Ding geht einfach nicht kaputt … 😆

      spokekiller;492469 said:
      Ich helf Dir aber gerne. Du wohnst ja auch nicht sooo weit weg von mir, da kann man sich ja dann auch mal zum Basteln treffen, wenn Du möchtest.

      Das wäre cool, da könnte man sich sicher mal zu ‘nem Bierchen treffen und quatschen – im Moment sieht mein 3m²-Bastelkeller aus, als wäre eine Bombe expoldiert. Muss auch erstmal meine anderen WaKü-Projekte fertig machen.Apropos WaKü, falls du da mal Teile brauchst -> wende dich vertrauensvoll an mich. Hab ja jetzt auch einen Phobya Benchtable inkl. aller WaKü-Grundkomponenten, da kann man sicher mal ein paar Schaltungen in der Praxis testen (und Projektdokumentationen inkl. Bildern erstellen) …Sc0rpps: Breakboard’ing ist zwar nicht direkt das Thema dieses Threads, aber da könnte ich auch noch eine Empfehlung gebrauchen, was man da als Anfänger (aber ambitioniert! 😉 ) nehmen sollte …

    • #923287
      spokekiller
      Teilnehmer

      Sc0rp;492480 said:
      Re,

      spokekiller;492469 said:
      zunächst vielen Dank für Dein Lob. […]

      *hehe* Wie war das mit “keine falsche Bescheidenheit” ?

      *fg*

      Sc0rp said:

      spokekiller;492469 said:
      Also, ich muß etwas ausholen: Du kannst die Spannung für den Arduino vom USB nehmen. Einfach an den USB Port des Arduino anstecken. Geht netürlich auch mit einem passenden 5V Netzteil mit USB Stecker. Daneben gibt es noch zwei Pins, die an einer der Steckleisten (siehe mein erster Post) +5V als Betriebsspannung annehmen.

      Ich hab irgendwas von 5,1 V oder 5,7 V (das war aber glaub ich der Längsrichter-Hohlstecker-Eingang) an Mindestspannung gelesen, hab zwar persönlich noch nie nachgemessen, aber kommt aufm USB-Port 5,1V an?

      Du hast drei Möglichkeiten, den Uno mit Spannung zu versorgen (jeweils exklusiv):
      1) über die Hohlbuchse, mit irgendwas um mindestens 6-7V, weil der Längsregler angeblich bis zu 2V Drop hat
      2) über USB, dann geht das natürlich am Längsregler vorbei und dann reichen die glatten 5V vom USB natürlich. Du hast aber halt nur 500mA in Summe, was zum Spielen aber mE reicht
      3) über besagte Pins

      Ausprobiert habe ich alle drei schon. Man soll aber eben nicht alles auf einmal machen. Obwohl ich meine auf arduino.cc mal gelesen zu haben er könne erkennen ob Saft über USB oder Hohlbuchse kommt und schaltet dann eines von beiden ab.

      Sc0rp said:

      spokekiller;492469 said:
      Wenn Du nun größere Verbraucher ansteuern willst, […]

      Jo, das mit den “Verstärker bzw. Endstufen” hab ich schon geschnallt ;), ist aber definitv etwas für später …

      Mein Übereifer, verzeih 🙄

      Sc0rp said:

      spokekiller;492469 said:
      Jetzt hör ich lieber auf, bevor Dir die Birne explodiert.

      Hab ich schon mehrfach erfolglos ausprobiert, das blöde Ding geht einfach nicht kaputt … 😆

      ROFL

      Sc0rp said:

      spokekiller;492469 said:
      Ich helf Dir aber gerne. Du wohnst ja auch nicht sooo weit weg von mir, da kann man sich ja dann auch mal zum Basteln treffen, wenn Du möchtest.

      Das wäre cool, da könnte man sich sicher mal zu ‘nem Bierchen treffen und quatschen – im Moment sieht mein 3m²-Bastelkeller aus, als wäre eine Bombe expoldiert. Muss auch erstmal meine anderen WaKü-Projekte fertig machen.

      Cool. Klingt sehr gut.

      Sc0rp said:
      ps: Breakboard’ing ist zwar nicht direkt das Thema dieses Threads, aber da könnte ich auch noch eine Empfehlung gebrauchen, was man da als Anfänger (aber ambitioniert! 😉 ) nehmen sollte …

      Kein Thema…. also ich habe mit dem kleinen Set von Watterott angefangen: http://www.watterott.com/de/Breadboard-incl-Kabelset

      Das Board ist mir aber schnell zu klein geworden, sodaß ich noch eines in der Größe bei Reichelt gekauft habe:
      http://www.reichelt.de/Laborkarten/STECKBOARD-2K4V/3/index.html?;ACTION=3;LA=446;ARTICLE=67680;GROUPID=3374;artnr=STECKBOARD+2K4V;SID=15PvyQH6wQAQ8AAA0HzlI24b3db00cee4c1867d1730940e26a60a
      Bei letzterem habe ich die Bananenbuchsen weggelassen und der Vorteil ist für mich bei dieser Größe, daß ich auch mal zwei unterschiedliche Sachen aufbauen kann, ohne eine bestehende Schaltung aus Platzgründen abbauen zu müssen.

      Für den UNO habe ich mir außerdem eine Plexiplatte zurechtgearbeitet, auf die ich ein Breadboard wie das von Watterott (640/200 Kontakte) geklebt habe und den Uno fixiert. Gummifüßle drunter und dann reiß ich mir nicht immer den ganzen Kram vom Tisch wenn ich bei ner ruckartigen Bewegung an irgendwas (insbesondere dem USB-Kabel) hängenbleibe. Außerdem sind so die wichtigsten Sachen für schnelle Basteleien beisammen.

      Der verbleibende Platz, auf dem bringe ich einen 4*AAA Akkuhalter mit Klettverschluß unter, die liefern geladen etwas über 5V und reichen mit 900mAh auch mal für längere Experimente. Ich knips das ohnehin für das nächste Tut.
      BTW, ich kann mich erinnern, daß der ETH-Shield mir mal 2,3Ah Akkus in unter einer Stunde leergesogen hat.

      Achja, was sich mE auch lohnt ist das Jumperwire Set von Watterott. Einball meinte auch, die seien selbst nicht billiger gemacht: http://www.watterott.com/de/Jumper-Wires-Breadboard

      Schönes WE!

    • #923289
      Sc0rp
      Teilnehmer

      Re,
      damit es für die anderen überscihtlich bleibt, fasse ich mal zusammen:

      spokekiller;492500 said:
      Spannung für den Arduino:
      Du hast drei Möglichkeiten, den Uno mit Spannung zu versorgen (jeweils exklusiv):
      1) über die Hohlbuchse, mit irgendwas um mindestens 6-7V, weil der Längsregler angeblich bis zu 2V Drop hat
      2) über USB, dann geht das natürlich am Längsregler vorbei und dann reichen die glatten 5V vom USB natürlich. Du hast aber halt nur 500mA in Summe, was zum Spielen aber mE reicht
      3) über besagte Pins

      Ausprobiert habe ich alle drei schon. Man soll aber eben nicht alles auf einmal machen. Obwohl ich meine auf arduino.cc mal gelesen zu haben er könne erkennen ob Saft über USB oder Hohlbuchse kommt und schaltet dann eines von beiden ab.

      Dann werde ich mich für die Pins entscheiden, allerdings brauche ich das USB-Kabel wohl zu allererst für die Ausgabe bzw. erste Überwachung des MC’s, oder?

      spokekiller;492500 said:

      Sc0rp said:
      ps: Breakboard’ing ist zwar nicht direkt das Thema dieses Threads, aber da könnte ich auch noch eine Empfehlung gebrauchen, was man da als Anfänger (aber ambitioniert! 😉 ) nehmen sollte …

      Kein Thema…. also ich habe mit dem kleinen Set von Watterott angefangen: http://www.watterott.com/de/Breadboard-incl-Kabelset

      Ich hatte mir das Zeug von Pollin rausgesucht:
      Boards: http://www.pollin.de/shop/t/NzM3OTA5OTk-/Werkstatt/Werkstattbedarf/Sonstiges/Labor_Steckboards.html
      (ich bin für das ganz grosse, da muss ich nix 2x kaufen ;))
      Steckbrücken:
      http://www.pollin.de/shop/dt/Njc0OTg0OTk-/Werkstatt/Werkstattbedarf/Sonstiges/Steckbruecken_Sortiment.html

      spokekiller;492500 said:
      Für den UNO habe ich mir außerdem eine Plexiplatte zurechtgearbeitet, auf die ich ein Breadboard wie das von Watterott (640/200 Kontakte) geklebt habe und den Uno fixiert. […]

      Das schreit nach einem Foto, und die ganze Infos übers Breadboarding (nicht Breakboarding …) solltest du auch mal in einen Spoiler packen – das ist für Anfänger nämlich auch ganz interessant.

      spokekiller;492500 said:
      Der verbleibende Platz, auf dem bringe ich einen 4*AAA Akkuhalter mit Klettverschluß unter, die liefern geladen etwas über 5V und reichen mit 900mAh auch mal für längere Experimente.

      Hmm, 4×1,2V Nennspannung bei AAA kenn ich nur, allerdings hab ich mich nocht nicht intensiv mit Entladekurven und Spannungsabfall beschäftigt. Bei mir bekommt das Teil ein extra Steckernetzteil, vermutlich mit einer Hohlbuchse die an die Pins angeschlossen ist, dann kann ich auch mal die 5V vom Computernetzteil nehmen.

      spokekiller;492500 said:
      Schönes WE!

      Dabke und gleichfalls … ich werde mal eine Einkaufsliste zusammenstellen und mich auf die Suche nach den DS18[B]20 machen.

      Sc0rp

    • #923292
      Sc0rp
      Teilnehmer

      Hab ich doch grade gefunden:
      http://www.watterott.com/de/RGB-LCD-Shield-Kit-16×2-Character-Display

      Das finde ich ja cool … mal guggen, obs das auch grösser gibt 😉

      Sc0rp

    • #923294
      spokekiller
      Teilnehmer

      Ich korrigiere meine Aussage:der Chip muß sicher nicht getauscht werden, denn das ist nur ein I2C Port Expander. Dann müßte für die Verwendung kompatibler LCDs die Library umgeschrieben werden. Da fällt mir ein, ich hab das ja mit dem Pollin-i2c adapter so ähnlich schon mal gemacht. Ich glaube das ging gut…. müßt den Mist mal wieder rauskramenGrübel… schon wieder was auf der langen Liste… adafruits lib mal ansehen

    • #923293
      spokekiller
      Teilnehmer

      Sc0rp said:
      Dann werde ich mich für die Pins entscheiden, allerdings brauche ich das USB-Kabel wohl zu allererst für die Ausgabe bzw. erste Überwachung des MC’s, oder?

      Korrekt. Du benötigst es zum Upload Deines Codes und kannst es nutzen, um per “Serial Port Monitor”-Funktion in der IDE Ausgaben zu verfolgen.

      Sc0rp said:
      Ich hatte mir das Zeug von Pollin rausgesucht:
      Boards: http://www.pollin.de/shop/t/NzM3OTA5…eckboards.html
      (ich bin für das ganz grosse, da muss ich nix 2x kaufen )
      Steckbrücken:
      http://www.pollin.de/shop/dt/Njc0OTg…Sortiment.html

      Supi, sieht alles gut aus und Steckbrücken kann man nie genug haben. Ich find die von mir erwähnten Jumperwires als zusätzliches Zubehör aus einem anderen Grund gut: man kann mit ihnen den Arduino sehr flexibel mit dem Aufbau auf dem Breadboard verdrahten. Die siehst du in fast jedem meiner Tuts.

      Sc0rp said:
      Das schreit nach einem Foto, und die ganze Infos übers Breadboarding (nicht Breakboarding …) solltest du auch mal in einen Spoiler packen – das ist für Anfänger nämlich auch ganz interessant.

      Foto kommt. Was genau meinst Du mit den BB-Infos? Die möglichen Größen oder was? Ich steh auf der Leitung.

      Sc0rp said:
      Hmm, 4×1,2V Nennspannung bei AAA kenn ich nur, allerdings hab ich mich nocht nicht intensiv mit Entladekurven und Spannungsabfall beschäftigt.

      Damit hast Du ja auch völlig Recht. Nur, wenn die Dinger ganz voll sind und nicht viel Last haben, dann stehen da meist ein wenig mehr Volt zur Verfügung.
      Außerdem muß man dazu sagen, ist der Arduino gar nicht sooo empfindlich.Schaut man in das Datenblatt, steht da, daß der ATMega 328 einen recht weiten Spannungsbereich hat.
      Dazu gehört aber gesagt, daß das alles starke Abhängigkeiten zur Taktung und gewissen Fuses hat (man kann den sogen. Brownout setzen, also ab wann er wegen Unterspannung aus macht).
      Wie auch immer, man soll das nicht unnötig verkomplizieren. Wie Du an manchen Tutorialfotos sehen kannst, fahre ich die meiste Zeit mit meinen 4,8V-nominal Akkus meine Experimente und hatte nie Probleme. Ist eine von vielen guten Möglichkeiten.

      Sc0rp said:
      Bei mir bekommt das Teil ein extra Steckernetzteil, vermutlich mit einer Hohlbuchse die an die Pins angeschlossen ist, dann kann ich auch mal die 5V vom Computernetzteil nehmen.

      Ich hab irgendwo mal ne Menge stabilisierte 5V/2A Mini-Stecker-NTs gefunden und die nutze ich sehr gerne. 5V bekommt man ja heute aus so vielen möglichen Quellen….

      Achja, das Adafruit LCD Kit gibts leider mW nicht größer. Selbst wenn man manuell ein anderes LCD anhängen würde, was kein Problem darstellt, so müßte da wohl entweder das IC auf der Platine getauscht werden, oder zumindest die Library von Adafruit angepaßt werden.
      Ich habe das auch schon gesehen und meine “nice to have” Liste gesetzt 😀

    • #923304
      Sc0rp
      Teilnehmer

      Re,

      spokekiller;492508 said:
      […] Da fällt mir ein, ich hab das ja mit dem Pollin-i2c adapter so ähnlich schon mal gemacht. […]

      Gleich mal geguggt: http://www.pollin.de/shop/dt/NDU4OTgxOTk-/Bausaetze_Module/Bausaetze/LCD_I2C_Modul.html

      Das scheint ja ein richtig cooles Teil zu sein “PCF8574 = Remote 8-bit I/O expander for I 2 C-bus” da könnte man ja quasi Tonnen an Displays dranhängen 😉

      Ein Frage hätte ich diesbezüglich noch: das LCD-Shield hat auch Taster – wie werden die eingebunden? Auch über I²C? Oder nehmen die mir I/O-Pins weg?

      Sc0rp

      ps: die Liste wird ümma länger 😉

    • #923343
      spokekiller
      Teilnehmer

      Sc0rp;492518 said:
      Ein Frage hätte ich diesbezüglich noch: das LCD-Shield hat auch Taster – wie werden die eingebunden? Auch über I²C? Oder nehmen die mir I/O-Pins weg?

      Nee, keine Sorge, die haben das bei adafruit schon sinnvoll gelöst und fragen die Pins über I2C ab. Wahrscheinlich kann man die Zustände einzelner I/O Pins des Expanders abfragen, oder es wird irgendwie über Interrupt gelöst. Ich hab die Software dazu noch nicht angeschaut.

      Sc0rp;492518 said:
      ps: die Liste wird ümma länger 😉

      Yo, so gehts mir auch gerade. Aktuell liegen hier 5 halbfertige Projekte rum und Teile für 3-4 neue und ne Liste mit Sachen, die ich danach austesten will, gibts auch. Ich denk in den nächsten Wochen könnte es im Privaten ruhiger werden. Wenn dann nicht der Job reinspuckt könnte das ein kreativer Sommer werden.

      Noch ‘n schönes WE

    • #923375
      Sc0rp
      Teilnehmer

      Re,
      habe mal meinen Sonntag genutzt um mir für die nächste Woche einen Einkaufsplan zusammen zu basteln:
      [spoiler]
      [TABLE]Shop|Teil|Preis
      Pollin|Breadboard | 12,95
      Pollin|Kabelset | 4,75
      Pollin|Steckernetzteil | 14,95
      Watterott|Jumperset | 6,55
      Watterott|Kabelsortiment | 9,95
      Watterott|Temperatursensoren | 2,00/Stk
      ebay|Arduino UNO + LCD-Shield | 25,99
      [/table]
      Später kommt dann noch:
      SainSmart 20×4 LCD-Shield (via I²C)

      Plus diverses Kleinzeug (Hohlbuchsen, Schiebeschalter …) und natürlich noch das Ethernet-Shield (welches allerdings irgendwie nicht einfach zu fassen ist …)
      [/spoiler]
      Für alle die es eben interessiert …

      Sc0rp

    • #923401
      Sc0rp
      Teilnehmer

      Hi @ all,
      habe durch meine Kollegen diese “Arduino on SPEED” angetragen bekommen:
      UNO -> http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,892,893&Prod=CHIPKIT-UNO32
      MEGA -> http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,892,894&Prod=CHIPKIT-MAX32

      Falls man mal “etwas mehr Bums” braucht 😆

      Sc0rp

    • #923411
      spokekiller
      Teilnehmer

      Ich hatte mir das schon mal angesehen, als die c’t das erste Mal davon kurz berichtet hatte. Damals glaube ich hatte man geschrieben, daß die Kompatibilität zu den Shields nicht immer gegeben sei. Sprich, was für Arduino designed wurde kann, muß aber nicht funktionieren.Schnell sind die Kits, aber das ist idR für mich bisher kein Thema gewesen. Aber ist gut, daß Du das hier mal erwähnt hast.Ich bin immer wieder erstaunt, wie fein sich diese AVRs für so kleine Projekte eignen.Für mich war die tollste Erkenntnis, wie wunderbar kompakt sich ein Arduino-Projekt auf einen eigenen, kleinen Klon umsetzen läßt. Ne handvoll Bauteile, alles unter 8~10€… fertig ist die Basis.Zugegeben, es gibt auch genug PIC-Lösungen, aber für mich ist es eben Arduino bzw ATTiny und ATmega geworden.Es ist übrigens auch fraglich, fällt mir gerade ein, ob die libraries Dritter ohne groß getweake auf den Chipkits zum Laufen gebracht werden können. Ist wahrschienlich nicht so schwer, könnte aber auch anders sein.Die eigentliche Zielgruppe von Arduino, nämlich Nicht-Techniker, sehe ich mit diesen Boards nicht mehr angesprochen. Und Semi-Profis oder Leute mit entsprechendem Hintergrund haben eine Fülle an µC-Plattformen (muß man nur mal bei Watterott in die Auswahl gehen: Beagle, Panda, Propeller…).

    • #923549
      Sc0rp
      Teilnehmer

      Sodele, mal ein Update von mir:* Breadboard: check* Kabel: check (aka “Jumper Wires”)* Steckbrücken: massen-check ;)* µC: check (Arduino Nano Klon vom Arbeitskollegen bekommen)* Ethernet: check (das kleine Shield – auch vom Arbeitskollegen)* Temp-Sensors: negativ, sind noch in der Pipe (bekomme ich auch erstmal vier vom Arbeitskollegen)* Netzteil: check (hab mich für ein “Schaltnetzteil” entschieden, 5V/2A sollten erstmal reichen)Somit kann ich loslegen, zuerst werde ich mal den Nano mittels USB befeuern und dann sukzessive alles anschalten (Reihenfolge: Ethernet,Netzteil, Temp-Sensoren, LCD) – derweil warte ich weiter auf günstige Auktionen. Geplant ist ein Mega und ein Uno, inkl. dem 16×2-LCD-Shield (Taster!) und dem 20×4-LCD-Shield. Evtl. hab ich Glück und bekomme noch das Prototype-Shield dazu ;). Da ich nun den Nano habe, und der auch schon den Webserver packen soll, wird meine mobile Temp-Messprobe (hoffentlich) sehr kompakt ;).Apropos, ich habe bei Watterott auch ein schickes Gehäuse erstanden.Sc0rpEDIT: das mit dem UNO und dem 20×4-LCD-Shield hat sich eben auch erledigt 😉

    • #923557
      Sc0rp
      Teilnehmer

      Re,

      spokekiller;492791 said:

      Sc0rp;492784 said:
      * Ethernet: check (das kleine Shield – auch vom Arbeitskollegen)

      Kannst Du beizeiten mal Bilder von dem Shield machen? Ich wußte nicht, daß es für den Nano ein offizielles Shield gibt.

      Ein offizielles Shield kenne ich persönlich auch nicht – ich habe dieses dazu bekommen:
      http://www.geeetech.com/enc28j60-ethernet-module-p-263.html
      Allerdings gibt es auch irgendwo bei eBay ein Shield für den Nano zum aufstecken (18$ ungerade).

      spokekiller;492791 said:
      Und ein wenig neidisch bin ich darauf, daß Du den Sainduino samt Shield (wenn auch nur ein Breakout) und LCD für so wenig Geld geschossen hast. :d:

      Hehe, darfst du. War aber auch schon der fünfte Versuch, als nächstes kommt noch das Mega dazu (ging auch immer unter 30€ über’n Tisch). Das Shield hab ich extra gewählt, Motordriver und Xbee brauch ich eh nich …

      Inzwischen hab ich auch drei der DS18B20 vom Arbeitskollegen bekommen, der ersten Temp-Messung steht also nix mehr im Wege 😉
      Icke freue mir auf das Wochenende!

      Sc0rp

    • #923555
      spokekiller
      Teilnehmer

      Sc0rp;492784 said:
      * Ethernet: check (das kleine Shield – auch vom Arbeitskollegen)

      Kannst Du beizeiten mal Bilder von dem Shield machen? Ich wußte nicht, daß es für den Nano ein offizielles Shield gibt. Die Jungs aus Italien sind aber nicht immer die schnellsten beim Update der Webseite.

      Und ein wenig neidisch bin ich darauf, daß Du den Sainduino samt Shield (wenn auch nur ein Breakout) und LCD für so wenig Geld geschossen hast. :d:

    • #923586
      spokekiller
      Teilnehmer

      Ah, okay, das ist das alternative Modul. Es gibt auch UNO-Klone, die den Wiznet bzw enc28j60 schon drauf haben. Die waren cwohl eine Zeit lang nicht so gut unterstützt wie der offizielle Shield, aber das hat sich erheblich geändert. Der Chip ist eben deutlich billiger.Ich geb zu ich hab das Datenblatt zum Modul nicht gelesen, aber da steht was von 3.3V Pegeln. Das könnte mit dem SainDuino problematisch werden (oder Du nutzt einen Pegelwandler).Der Nano hat meines Wissens normale TTL (5V) Pegel. Aber ich nehme an, der besagte Kollege hatte das schon im Betrieb und ich mach mir nur mal wieder zuviele Sorgen….Achso, aber zum Nano noch was:

      Arduino said:
      The FTDI FT232RL chip on the Nano is only powered if the board is being powered over USB. As a result, when running on external (non-USB) power, the 3.3V output (which is supplied by the FTDI chip) is not available and the RX and TX LEDs will flicker if digital pins 0 or 1 are high.

    • #923701
      Sc0rp
      Teilnehmer

      Re,

      spokekiller;492827 said:
      Ah, okay, das ist das alternative Modul. Es gibt auch UNO-Klone, […].

      Jo, ich habs für’n Freundschaftspreis bekommen, und es sit eben auch sehr kompakt, quasi perfekt für mein erstes Vorhaben ;).

      spokekiller;492827 said:
      Ich geb zu ich hab das Datenblatt zum Modul nicht gelesen, aber da steht was von 3.3V Pegeln.

      Das ist mir nach dem Lesen verschiedener Quellen bekannt, aber der TRduino hat ja auch ‘nen 3,3V-Pin – das wäre auch meine erste Frage gewesen, wenn du sie nicht schon beantwortet hättest:

      Arduino said:
      The FTDI FT232RL chip on the Nano is only powered if the board is being powered over USB. As a result, when running on external (non-USB) power, the 3.3V output (which is supplied by the FTDI chip) is not available and the RX and TX LEDs will flicker if digital pins 0 or 1 are high.

      Dann baue ich mir eben irgendwann einen Adapter, der meine stabilisierten 5V auf den Mini-USB-Port bringt und fertig. Ich hab keine Ahnung, was der µC an Strom braucht – muss ich mich begoogeln ;).Ich habe meinen Nano auch schon zum Blinken gebracht – und gleich mal den Code auf ein S-O-S aufgebohrt, einfach nur um zu sehen, das das Blinken kein ominöser Fehler ist :lol:.Mittlerweile ist auch meine Bestellungen von komputer.de eingetroffen. Da kann ich zwischendurch schnell mal was ausprobieren – Erfolge erziehlt man ja Hammerschnell mit der Plattform!Und diese Woche sollte dann auch mein UNO inkl. 20×4 LCD kommen – dann gehts richtig los!Sc0rpEDIT: das DS18x20-Tutorial habe ich nun auch erfolgreich abgeschlossen – mit zwei Sensoren 😉EDIT2: zum Thema 3,3V habe ich folgendes gefunden: http://www.mikrocontroller.net/part/LP2950 – damit könnte ich auch das EtherShield über mein externes 5V-Netzteil (PC-Netzteil) betreiben! Falls es mehr als 100mA zieht, kann man auch einen aus der 78xx-Familie nehmen (bzw. den Ersatz LM 3940 IT-3.3)

    • #923762
      Sc0rp
      Teilnehmer

      Re,
      hab nun auch mein EtherShield zum Laufen gebracht, war etwas tricky, denn die ‘alte’ Library verwendet noch die beiden Header-Files “WConstants.h” und “Wiring.h” – beide wurden ab IDE v1.0 durch “Arduino.h” ersetzt -> muss man also notfalls im Code anpassen, siehe:
      http://code.google.com/p/arduino/issues/detail?id=682

      Ich hab auch schon das Example “etherShield -> etherShield_web_temperature” ausprobiert … ich sage mal es läuft. Zumindest bekomme ich Temp-Werte über die Weboberfläche angezeigt, allerdings nur einen (von im Moment zweien) und der ist auch noch falsch …

      Bis ich einen funktionierenden Sketch habe, werde ich noch dieses Shield kaufen, da es wesentlich kompakter als mein jetziges ‘Breakout’ ist – und auch keine extra Jumperkabel benötigt.

      Achja, mein UNO und LCD-Shield sind angekommen -> mehr Arbeit 😉

      Sc0rp

    • #923889
      spokekiller
      Teilnehmer

      @Sc0rp
      Meine Güte, Du machst ja irre Fortschritte… Schön, daß es Dich so fesselt. Und ich sehe mich mal wieder darin bestätigt, wenn ich sage mit dieser Plattform kann man sehr schnell sehr leicht zu guten Ergebnissen kommen.

      Zum Thema aktuelle Arbeiten meinerseits… ich hab mir mal zwei Stunden freigeräumt und mein nächstes Low-Level Tutorial begonnen. Leider, so muß ich sagen, kämpfe ich noch mit einigen Macken.
      http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture3506-next-tutorial.jpg

      Was man hier sieht ist zweierlei…
      Zunächst mal meine seit ein paar Monaten in Betrieb genommene Arduino-Baseplate. Diese hab ich mir aus PS-Glas (Bastelglas) etwas scheps zurechtgesägt und – natürlich mit polierten Kanten – den Arduino und ein kleines BB fixiert. So ganz zufrieden bin ich mit dem Aussehen nicht. Bei den Löchern hab ich mich ein wenig verbohrt und die Kantenpolitur war etwas “zu flach”, sodaß man kleinere Kratzer noch erkennen kann.
      Da das Material aber ohnehin sehr anfällig ist, spielt das keine Rolle. Durch die schwarzen Moosgummifüße reiße ich mir jetzt auch nicht immer alles vom Tisch, wenn ich mal beim Fummeln hängen bleibe. Klare Gummifüße hab ich mittlerweile und somit werden die schwarzen Moosgummis dann ersetzt.

      Desweiteren sieht man die kommende Lüftersteuerung, die das PID Verfahren implementiert. Sie arbeitet diesmal mit einem MosFET statt einem Leistungstransi und verwendet einen bekannten Aufbau, nämlich das 16×2 LCD mit einem Dallas 18B20 Temperatursensor.

      Der Code stammt diesmal nicht von mir, weißt aber erhebliche Schwächen auf, wie ich meine. Ich finde auch die Beschaltung des LCD zu Arduino als unglücklich.
      Wenn es auch 50% der Zeit tut, so habe ich massig Echos und “Preller” auf den Signalen. So stürzt das Programm gerne mal ab, der Lüfter läuft weiter aber auf dem LCD sehe ich nur Müll.
      Ich werde also im Laufe des morgigen Tages zu meinem LCD-TEMP Setup zurückkehren und dann den Drehimpulsgeber (der recht heftig prellt) evtl über eine Abblock-Kondensator-Anordnung mal ein wenig zügeln versuchen. Im Datenblatt habe ich dazu was gesehen.
      U.U. liegt es auch an dem fürchterlichen Drahtverhau. Sehr viele wackelige Übergänge…

      Wir werden auch hier wieder von Interrupts Gebrauch machen (für den DIG zur Einstellung der Zieltemperatur). Ansonsten ist das aber für die meisten Leser etwas, was Ihr in etwa 30 Minuten aufgebaut haben dürftet.

      Wer jetzt keinen MosFET zur Hand hat, aber den TIP-120 noch aus den vorigen Experimenten, der kann auch diesen nehmen! Aber dazu später mehr. Ich denke auch darüber nach, einen zweiten Interrupt zu nutzen und den DIG durch zwei Taster (+/-) mal zu ersetzen.

      Ich hoffe, ich kann Euch damit für die lange Wartezeit ein wenig entschädigen.

      Bis dahin, Gruß,
      Euer Spoke

    • #923897
      Sc0rp
      Teilnehmer

      Abend,

      spokekiller;493152 said:
      @Sc0rpMeine Güte, Du machst ja irre Fortschritte… Schön, daß es Dich so fesselt. Und ich sehe mich mal wieder darin bestätigt, wenn ich sage mit dieser Plattform kann man sehr schnell sehr leicht zu guten Ergebnissen kommen.

      Sagen wir mal so … die Examples und Tutorials sind wirklich easy! Sofern man alle benötigten Bauteile hat, sind sie schnell aufgesetzt und auch die entsprechenden Sketche geladen hat -> (sehr) schnelle Erfolge.Allerdings stellte sich bei mir recht schnell Ernüchterung ein, als ich versuchte zwei Sachen zu verheiraten. Temp-Sensoren und EtherShield überfordern aktuell meine C/C++ Kenntnisse (kanpp gegen Null 🙁 ) gewaltig, und besonders der Web-Server hat es in sich. Abgesehen davon gibt es auch Massen an Sketchen zu Dallas-Sensoren und viele hab ich auch schon zum laufen bekommen, aber an dem Webserver beiss ich mir bislang die Zähne aus!

      spokekiller;493152 said:
      Was man hier sieht ist zweierlei…Zunächst mal meine seit ein paar Monaten in Betrieb genommene Arduino-Baseplate. Diese hab ich mir aus PS-Glas (Bastelglas) etwas scheps zurechtgesägt und – natürlich mit polierten Kanten – den Arduino und ein kleines BB fixiert.

      Sowas werde ich mir auch noch bauen, allerdings aus Plexiglas. Vermutlich gleich in zwei Ausführungen: NANO und UNO/MEGA. Btw. bin ich mit meinem Nano sehr zufrieden, er steckt direkt auf dem BB und man hat daher weniger Kabelsalat 😉 – ich mache Euch demnächst auch ein Bild!

      spokekiller;493152 said:
      Desweiteren sieht man die kommende Lüftersteuerung, die das PID Verfahren implementiert. Sie arbeitet diesmal mit einem MosFET statt einem Leistungstransi und verwendet einen bekannten Aufbau, nämlich das 16×2 LCD mit einem Dallas 18B20 Temperatursensor.

      Das wird dann insgesamt ein Aquaero-Clon 😉 – apropos, bestimmt bekommt man in der Bucht ‘nen Defekten. Den kann man dann prima ‘umbauen’!

      spokekiller;493152 said:
      Der Code stammt diesmal nicht von mir, weißt aber erhebliche Schwächen auf, wie ich meine. Ich finde auch die Beschaltung des LCD zu Arduino als unglücklich.

      Auch schon mal mit ‘nen I²C-Display probiert? Ich hätte eines da 😉 bzw. könnte man auch das von Pollin holen/nehmen …

      spokekiller;493152 said:
      Wenn es auch 50% der Zeit tut, so habe ich massig Echos und “Preller” auf den Signalen. So stürzt das Programm gerne mal ab, der Lüfter läuft weiter aber auf dem LCD sehe ich nur Müll.

      Davon liest man aber nix in den Anleitungen, wohl aber das jede Menge Kondensatoren eingesetzt werden … leider bin ich elektrotechnisch nicht so bewandert *sigh*

      spokekiller;493152 said:
      Wir werden auch hier wieder von Interrupts Gebrauch machen (für den DIG zur Einstellung der Zieltemperatur). Ansonsten ist das aber für die meisten Leser etwas, was Ihr in etwa 30 Minuten aufgebaut haben dürftet.

      Aufbauen ist eh kein Problem, apropos: es wäre schön, wenn du deine Aufbauten als Fritzing-Schema UND die entsprechenden Sketche (wohl dokumentiert :roll:) bereit stellen würdest, das würde besonders Einsteigern unglaublich helfen (Fritzing-Schema natürlich als Breadboard-Sicht).Interrupts sind aber schon höhere Schule, oder? 8-[Eine echte Lüftersteuerung auf Arduino-Basis wäre natürlich super, besonders wenn hier die ganzen Cracks den Support mit übernehmen würden! Allerdings müsste ‘meine’ Treiberendstufe (aka Verstärker) 25W bei 12V regeln können (4-12V max.2,5W bei neun Lüftern plus Reserve) – bekommt man das mit vertretbarem Aufwand gelöst? Und am Besten wäre noch, wenn man den Regel-Tacho aus den neun Lüftern selbst wählen könnte (über Schieberegister?) bzw. müssten alle neun zyklisch abgefragt werden, ob sie überhaupt drehen (Defekt feststellen und anzeigen)Ich habe diverse Module gekauft: Buzzer, Humidity-Sensor , Real-Time-Clock. Falls du mal einen davon haben möchtest -> PN genügt! ;).Ich werde jetzt erstmal mein 20×4 I²C-LCD anklemmen und mal schauen, ob ich die Temps darauf bekomme … und evtl. einen Taster ausprobieren (LED an/aus -> schneller Erfolg 😆 )Sc0rp

    • #923904
      spokekiller
      Teilnehmer

      Hoi,so ich will mal nur eben schnell auf Deinen Post antworten.* Was das Proggen angeht, einfach dranbleiben. Das gibt sich. Die Erfahrung braucht Zeit.* Ich habe den I2C Adapter von Pollin und wollte zunächst damit arbeiten. Da den aber wenige hier haben dürften, fand ich es praktischer zu einem der Tuts zurückzugehen.* Was das mit der Elektronik angeht, auch da lernt man immer ein wenig dazu. Ich brauch auch immer viel Beistand, den ich gottseidank auch bekomme ;-)* Thema Fritzing und Dokumentation allgemein. Ich geb zu, ich war nicht immer besonders fleißig und habe oftmals einen Schaltplan nachzureichen nur versprochen.Ich bemühe mich sehr, neben Real-Life, immer wieder auch etwas Neues zu finden. An dieser Stelle nochmal die Ansage, daß Ihr nur zu fragen braucht, ich helfe wo es geht.Einen Plan in Fritzing zu bringen hat mich meist fast soviel Zeit gekostet, wie das Tut zu schreiben, sodaß ich an der Stelle oft faul war. Miest stehen aber zumindest im Code die Pinouts und idR kann man auch – wie ich hoffe – etwas ergänzend aus den Fotos erkennen.Aber, Kritik ist angenommen, ich werd Fritzings also doch machen.Was die Lüftersteuerungen angeht. Hallo1001 und BigReval und einige andere arbeiten da auf höherem Niveau bereits an sehr eleganten Lösungen. Ich kann verstehen, daß es viel Spaß macht selbst zu entwickeln. Dennoch rate ich dazu, deren Lösungen auch mal zu betrachten. Man kann sich zumindest hinsichtlich der Leistungsendstufen einiges abschauen.Was die Dimensionierung im nächsten Tut angeht, so arbeite ich mit einem IRF510, der laut Datenblatt dauerhaft 50W ertragen kann. Dazu schau ich mir mal die “PWM-Pfeif-Dämpfstufe” an, die mittels RC-Glied frei gesagt “das Pfeifen herausnimmt”.Phil68 hat auf der Grundlage des kommenden Tutorials bereits ausgebaut und Notabschaltung, Alarme etc pp eingebaut.Sc0rp, wir könnten uns mal zusammentelefonieren und uns dann vielleicht auch mal treffen. Material hast Du genug und ich bring meine Erfahrung mit und dann schauen wir, was draus wird?!?!Und abschließend… an einem Feuchtigkeitssensor wäre ich leihweise interessiert, aber das sprechen wir dann so.Was die Tachosignale angeht, bietet sich ein Multiplexer an. Siehe dazu das entsprechende Tut, wobei dort Ausgänge geschaltet werden. Schieberegister wäre mir dann doch zu unhandlich undd er MXer kann auch recht hochfrequent arbeiten.Jetzt darf mich nur das Real Life nicht einholen… Vorsprung hab ich ja ein wenig.EDIT: PS, und … ja, Interrupts gehen schon ans Eingemachte. Aber man kann auch auf einem Einsteigerlevel arbeiten wie ich und dann versteht man doch recht zügig, wie es im Ansatz funktioniert. Auch hierzu mein Beitrag zu empfehlen http://www.meisterkuehler.de/forum/bastelecke/31427-vorstellung-elektronikprojekte-arduino-plattform-4.html#post486245

    • #923912
      spokekiller
      Teilnehmer

      Kleines Update zum Stand des nächsten Tutorials.Also ich habe nun den Drehimpulsgeber mit RC-Filter etwas weniger störanfällig bekommen. Jetzt ist es allerdings so, daß die Impulse fast immer doppelt gezählt werden, weswegen ich mir den Code nochmal genauer ansehen muß. Dafür reicht mir aber heute die Zeit nicht mehr.Ich habe auch ganz selten noch Störungen, die dazu führen, daß der Arduino einen Impuls wahrnimmt, obwohl ich den DIG nicht betätigt habe.Ansonsten verhält sich der Lüfter sehr gut. Diese PID Methode ist scheinbar eine feine Sache.Ich denke es macht wenig Sinn, weitere Filter einzubauen. Ich nehme an, daß der Aufbau auf dem Breadboard generell etwas anfällig ist und ich habe auch noch nicht die Display-Beschaltung geändert. Mir gefällt nicht, daß aktuell eine der Datenleitungen für das LCD auf Pin13 (eingebaute LED und Widerstand) liegt.Somit werde ich mich dann ans Dokumentieren machen. Sollte alles gut laufen, dürfte im Laufe der nächsten Woche Tutorial #12 fertig werden.

    • #923917
      phil68
      Teilnehmer

      Hallo Micha 🙂
      Schön, dass wenigstens du die Zeit findest hier weiter zu machen. Ich hab leider im Moment Stress auf Arbeit und so keine Zeit, um mich mit dem Arduino und vielen anderen Dingen weiter zu beschäftigen 😥

      Der Sketch mit dem Drehimpulsgeber ist der, den ich auch in meinem Aufbau verwende?? Ich hatte keine Probleme mit den Impulsen… Vielleicht hilft es dir, wenn ich den letzten Sketch meiner Temp-Regelung hier einstelle. Ich habe soweit versucht alles zu dokumentieren. In der Schaltung integriert hatte ich:

      • Abschaltung bei überschreiten einer bestimmten Temperatur
      • Abschaltung bei unterschreiten eines bestimmten Durchflusses
      • Not-Aus bei überschreiten bei einer Temperatur(falls Abschaltung nicht greift)

      Bei Abschaltung:

      • Anzeige warum abgeschalten wurde(Temp, Durchfluss) und Zeit die seitdem vergangen ist

      Im normalen Betrieb:

      • Anzeige von Temperaturen, Durchfluss, Online-Zeit, Ausgangsspannung für die Lüfter, Regelung in %
      • Umschaltung der Anzeige(6s Interval) zwischen 2 Info-Seiten(Temp, Regelung -> Durchfluss, Spannung)
      • Umschaltung sobald am PID ein anderes Temp-Setting gewählt wird
      • Reset der Regelung( Zeitmessung, Anzeige usw.)

      Da ich ja auch totaler Anfänger bin, kann man meinen Sketch wohl auch nur als Experiment ansehen. Aber vielleicht könnte dir das trotzdem weiterhelfen. Leider hab ich keine Zeit mehr gefunden, das Ganze zu optimieren… Den Aufbau des Sketches wollte ich nach Fertigstellung nochmals überarbeiten. Da ständig neue Ideen mit eingeflossen sind(kennst du ja ;)) nicht wirklich einfach.

      Ein kleines Video, der die Regelung in Aktion zeigt, könnt ich ja evtl. fix erstellen. Wenn es dir weiter hilft, könnt ich das morgen mit in Angriff nehmen.

      Grüße Dirk

      EDIT: Erst mal der Sketch…

      [SPOILER]

      /* Chris Barnes, Smart Fan Controller with PID */
      #include
      #include
      #include
      #include
      #include

      #define encoder0PinA 2 // rotary encoder pin A
      #define Hallsensor 3 // hallsensor pin 3
      #define encoder0PinB 4 // rotary encoder pin B // definitions
      #define ONE_WIRE_BUS 5 // temperature input is on pin 5
      #define FAN 6 // output pin for fan
      #define DisplayBacklight A0 // backlight pin A0
      #define PowerOffPin 15 // power-off pin 15(A1)
      #define PowerOnPin A2 // power-on pin A2
      #define taster 17 // rotary encoder click
      #define Temp1 27 // critical temperature 1 to ignore PID and turn on fans
      #define Temp2 29 // critical temperature 2 to ignore PID and power-off
      #define Temp3 31 // critical temperature 3 to ignore PID and hard-power-off

      int TempSens0; // temperatur sensors 1 – 2
      int TempSens1;
      int TempSens2;
      int pwmprozent; // varible used for calculations (%)
      int pwmvolt; // varible used for calculations (volt)
      int calc; // varible used for calculations (rpm)
      int setpointold;
      int tasterValue;
      int tasterValueprell;
      int tasterstatus;

      int long seconds;
      int long minutes;
      int long hours;
      int long days;
      int long months;
      int long years;

      int screen = 0;
      int screenMax = 1;
      bool screenChanged = true; // initially we have a new screen, by definition

      #define TEMPERATURE 0 // defines of the screens to show
      #define FLOW 1

      volatile int NbTopsFan; // measuring the rising edges of the signal
      volatile unsigned int encoder0Pos = 0; // encoder value for ISR

      unsigned char StatusPowerOff = LOW; // Power-Off-Impuls status
      unsigned char StatusHardPowerOff = LOW; // Hard-Power-Off-Impuls status
      unsigned char Status1 = LOW; // status counter Power-Off
      unsigned char Status2 = LOW; // status flow control
      unsigned char Status3 = LOW; // status display overheat

      static unsigned long lWaitMillis;

      long previousMillis = 0; // store last update
      long previousMillislcd = 0; // store last update (lcd switch)
      long timer1 = 5000; // timer1 5 seconds
      long timer2 = 500; // timer2 0,5 second
      long timer3 = 2000; // timer3 2 seconds

      OneWire oneWire(ONE_WIRE_BUS); // setup temperature sensor
      DallasTemperature sensors(&oneWire);

      //Setup PID
      double Setpoint, Input, Output; // I/O for PID
      double aggKp=40, aggKi=2, aggKd=10; // original: aggKp=4, aggKi=0.2, aggKd=1, aggressive turning,50,20,20
      double consKp=20, consKi=0.5, consKd=2; // original: consKp=1, consKi=0.05, consKd=0.25, conservative turning,20,10,10
      PID myPID(&Input, &Output, &Setpoint, consKp, consKi, consKd, REVERSE); // initialize PID

      LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // setup lcd

      StopWatch SW; // setup for timer counter

      void setup()
      {
      Serial.begin(9600); // start serial Port for Temperature readings
      lcd.begin(20, 4);
      ClearLCD();
      analogWrite(DisplayBacklight, 128);
      delay(2000);
      showWelcome();
      sensors.begin(); // start library
      sensors.requestTemperatures(); // send the command to get temperatures
      Input = sensors.getTempCByIndex(0); // set input to current temperature
      Setpoint = 24; // inintialize desired temperature in deg C
      encoder0Pos = 24;

      myPID.SetMode(AUTOMATIC); // PID setup

      // TCCR2B = TCCR2B & 0b11111000 | 0x01; //adjust the PWM frequency, note: this changes timing like delay()
      // setup pins
      pinMode(FAN, OUTPUT); // output for fan-speed, 0 to 255
      pinMode(taster, INPUT); // taster is an input
      tasterstatus=digitalRead(taster);
      pinMode(encoder0PinA, INPUT); // rotary A input
      digitalWrite(encoder0PinA, HIGH); // turn on pullup resistor
      pinMode(encoder0PinB, INPUT); // rotary B input
      digitalWrite(encoder0PinB, HIGH); // turn on pullup resistor
      pinMode(PowerOffPin, OUTPUT); // output for PowerOffPin
      digitalWrite(PowerOffPin, LOW); // turn on pulldown resistor
      pinMode(PowerOnPin,INPUT); // input for PowerOn control
      analogWrite(PowerOnPin, 0);
      pinMode(Hallsensor, INPUT); // input for rpm
      digitalWrite(Hallsensor, HIGH); // turn on pullup resistor
      pinMode(DisplayBacklight, OUTPUT); // output for backlight
      analogWrite(DisplayBacklight, 255); // set backlight on

      // Set up Interupts
      attachInterrupt(0, doEncoder, CHANGE); // encoder pin on interrupt 0
      attachInterrupt(1, rpm, RISING); // hallsensor pin on interrupt 1

      lWaitMillis = millis() + 1000; // initial setup overflow
      }

      void loop()
      {
      SW.start();

      unsigned long currentMillis = millis();
      int sensorValue = analogRead(PowerOnPin); // read value from PowerOnPin
      if (sensorValue<50&&PowerOff==HIGH){ //
      analogWrite(FAN, LOW); // turn fan off if value = 0
      analogWrite(DisplayBacklight, 128); // set backlight low
      showOverheat();
      }
      else if (sensorValue<50&&Status2==HIGH){
      analogWrite(FAN, LOW); // turn fan off if value = 0
      analogWrite(DisplayBacklight, 128); // set backlight low
      show0Flow();
      }
      else if (sensorValue<50&&Status2==LOW){
      analogWrite(FAN, LOW); // turn fan off if value = 0
      ClearLCD(); // clear display
      analogWrite(DisplayBacklight, 128); // set backlight low
      lcd.setCursor(0,1);
      lcd.print(" SYSTEM ");
      lcd.setCursor(0,2);
      lcd.print(" CONTROLLED OFF ");
      }
      else if (sensorValue>50&&Status2==LOW){ // if value PowerOnPin “high”
      analogWrite(DisplayBacklight, 128); // display backlight on
      }

      sensors.requestTemperatures(); // get temperature and give it to the PID input
      Input = sensors.getTempCByIndex(0); // sensor for control
      TempSens0 = sensors.getTempCByIndex(0); // sensor temp1
      TempSens1 = sensors.getTempCByIndex(1); // sensor temp2
      TempSens2 = sensors.getTempCByIndex(2); // sensor temp3

      tasterValue = digitalRead(taster); // read value from click-button
      delay(10);
      tasterValueprell = digitalRead(taster);
      if (tasterValue==tasterValueprell&&tasterValue!=tasterstatus&&tasterValue==HIGH){ // if value “high”
      clicked(); // call clicked
      tasterValue = tasterstatus;
      }

      if( (long)( millis() – lWaitMillis ) >= 0) // millis is now later than my ‘next’ time(for overflow)
      {
      lWaitMillis += 1000; // do it again 1 second later
      }
      else
      {
      delay(1);
      }

      {
      Output = constrain(Output, 0, 255);
      Output = map(Output, 0, 255, 60, 255); // MOSFET control between 60-255
      pwmvolt = Output*0.049; // volt calculation (V)
      pwmprozent = Output*0.3922; // pwm calculation (%)
      }

      if(pwmvolt<4.7){ // display 0 if < 5V pwmvolt = 0; } { seconds = SW.value() / 1000 % 60; // calculate time minutes = SW.value() / 1000 / 60 % 60; hours = SW.value() / 1000 / 60 / 60 % 24; days = SW.value() / 1000 / 60 / 60 / 24 % 30; months = SW.value() / 1000 / 60 / 60 / 24 / 30 % 12; years = SW.value() / 1000 / 60 / 60 / 24 * 365 % 1; } int setpointValue = Setpoint; if (setpointValue != setpointold) { setpointold = Setpoint; ClearLCD(); // clear display lcd.setCursor(0,1); lcd.print(" CHANGING SETPOINT "); lcd.setCursor(0,2); lcd.print(" T SETPOINT:"); lcd.setCursor(13,2); lcd.print((int)Setpoint); lcd.setCursor(15,2); lcd.print("'C"); } else if(sensorValue>50&&setpointValue==setpointold&&currentMillis-previousMillislcd>timer1) // save last time changed display
      {
      screen++;
      if (screen > screenMax) screen = 0; // all screens done? => start over
      screenChanged = true;
      previousMillislcd = currentMillis;
      }
      if (screenChanged) // only update screen if screen is changed
      {
      screenChanged = false; // reset for next iteration
      switch(screen)
      {
      case TEMPERATURE:
      showTemperature();
      break;
      case FLOW:
      showFlow();
      break;
      default:
      // cannot happen -> showError() ?
      break;
      }
      }

      {
      NbTopsFan = 0; // set NbTops to 0 ready for calculations
      sei(); // enables interrupts
      delay (1000); // wait 1 second
      cli(); // disable interrupts
      calc = (NbTopsFan * 60 / 4.5); // (pulse frequency x 60) / 4,5
      }
      // compute PID value
      double gap = abs(Setpoint-Input); // distance away from setpoint
      if(gap<1)
      {
      myPID.SetTunings(consKp, consKi, consKd); // close to setpoint, be conservative
      }
      else
      {
      myPID.SetTunings(aggKp, aggKi, aggKd); // far from setpoint, be aggresive
      }
      myPID.Compute();

      if(sensorValue>50&&Input<=Temp1&&Output<=60){ // write PID output to fan if not critical ; set min 5V, lower - turns fan off analogWrite(FAN,0); } else if(sensorValue>50&&Input<=Temp1&&Output>60){ // write PID output to fan if not critical
      analogWrite(FAN,Output);
      }
      else if(sensorValue>50&&Input>Temp1){ // write PID output to fan if critical
      analogWrite(FAN,255); // 12V fan
      Output = 255; // remember status
      }

      if(sensorValue>50&&Input>=Temp2&&Input50&&StatusPowerOff==LOW&&StatusHardPowerOff==LOW&&Status1==LOW&&Status2==LOW&&calc<=20){ // reading input, temps, sensor, status and timer digitalWrite(PowerOffPin, HIGH); // soft Power-Off-Impuls on Status2 = HIGH; // remember Status2 on previousMillis = currentMillis; // start count } else if((StatusPowerOff==HIGH!=Status2==HIGH)&&StatusHardPowerOff==LOW&&currentMillis-previousMillis>timer2){ // reading input, temps, sensor, status and timer
      digitalWrite(PowerOffPin, LOW); // soft Power-Off-Impuls off
      StatusPowerOff = LOW; // remember Power-Off-Impuls off
      Status1 = HIGH; // remember Status1 on
      previousMillis = currentMillis; // start count
      }
      else if(sensorValue>50&&Input>=Temp3&&StatusHardPowerOff==LOW){ // reading input, temps, sensor, status and timer
      digitalWrite(PowerOffPin, HIGH); // “Hard” Power-Off on
      StatusHardPowerOff = HIGH; // remember Hard-Power-Off-Impuls on
      SW.stop();
      SW.reset();
      previousMillis = currentMillis; // start count
      }
      else if(StatusHardPowerOff==HIGH&&currentMillis-previousMillis>timer1){ // reading input, temps, sensor, status and timer
      digitalWrite(PowerOffPin, LOW); // “Hard” Power-Off off
      StatusHardPowerOff = HIGH; // remember Hard-Power-Off-Impuls off
      previousMillis = currentMillis; // start count
      }
      }

      void doEncoder() // pinA and pinB are both high or both low, spinning forward, otherwise it’s spinning backwards
      {
      if (digitalRead(encoder0PinA) == digitalRead(encoder0PinB))
      {
      encoder0Pos++;
      }
      else
      {
      encoder0Pos–;
      }
      Serial.println (encoder0Pos, DEC); // print out encoder value to serial
      Setpoint=encoder0Pos;
      }

      void rpm () // function calls interupt
      {
      NbTopsFan++; // function measures the rising and falling edge of the hall effect sensors signal
      }

      void clicked()
      {
      StatusHardPowerOff = LOW;
      Status1 = LOW;
      Status2 = LOW; // Hard-Power-Off-Impuls Status2 off
      SW.stop();
      SW.reset();
      ClearLCD();
      lcd.setCursor(0,1);
      lcd.print(” OVERHEAT STATUS & “);
      lcd.setCursor(0,2);
      lcd.print(” COUNTER RESET “);
      delay(1000);
      }

      void printTime()
      {
      lcd.print(days);
      printDigits(hours);
      printDigits(minutes);
      printDigits(seconds);
      lcd.print(” “);
      }

      void ClockDisplay() // digital clock display of the time
      {
      lcd.print(months);
      printDigits(days);
      printDigits(hours);
      printDigits(minutes);
      lcd.print(” “);
      }

      void printDigits(int digits) // utility function for digital clock display: prints preceding colon and leading 0
      {
      lcd.print(“:”);
      if(digits < 10) lcd.print('0'); lcd.print(digits); } void ClearLCD() // function clear display { lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 1); lcd.print(" "); lcd.setCursor(0, 2); lcd.print(" "); lcd.setCursor(0, 3); lcd.print(" "); } void showWelcome() { ClearLCD(); // function startup message lcd.setCursor(0, 1); lcd.print(" SMART FAN "); lcd.setCursor(0, 2); lcd.print(" STARTING UP "); lcd.setCursor(12, 2); for (int i=0; i<7; i++){ lcd.print('.'); delay(300); } } void showTemperature() // function display sensors { ClearLCD(); lcd.setCursor(0,0); lcd.print(" T SETPOINT:"); lcd.setCursor(14,0); lcd.print((int)Setpoint); lcd.setCursor(16,0); lcd.print("'C"); lcd.setCursor(0,1); lcd.print(" T H2O:"); lcd.setCursor(14,1); lcd.print(TempSens0); lcd.setCursor(16,1); lcd.print("'C"); lcd.setCursor(0,2); lcd.print(" T CPU:"); lcd.setCursor(14,2); lcd.print(TempSens1); lcd.setCursor(16,2); lcd.print("'C"); lcd.setCursor(0,3); lcd.print(" T GPU:"); lcd.setCursor(14,3); lcd.print(TempSens2); lcd.setCursor(16,3); lcd.print("'C"); } void showFlow() // function display flow, pwm & runtime { ClearLCD(); lcd.setCursor(0,0); lcd.print(" PUMP:"); lcd.setCursor(10,0); lcd.print(calc); lcd.setCursor(12,0); lcd.print("l/h"); lcd.setCursor(0,1); lcd.print(" CONTROL:"); lcd.setCursor(10,1); lcd.print(pwmprozent); lcd.setCursor(13,1); lcd.print("%"); lcd.setCursor(0,2); lcd.print(" FAN:"); lcd.setCursor(10,2); lcd.print(pwmvolt); lcd.setCursor(12,2); lcd.print("V"); lcd.setCursor(0,3); lcd.print(" RUNTIME:"); lcd.setCursor(10,3); ClockDisplay(); } void showOverheat() // function display overheat { unsigned long currentMillis = millis(); ClearLCD(); lcd.setCursor(5,3); printTime(); if (Status3==LOW&&currentMillis - previousMillislcd > timer2)
      {
      lcd.setCursor(0,0);
      lcd.print(” ! OVERHEAT ! “);
      lcd.setCursor(0,1);
      lcd.print(” SYSTEM “);
      lcd.setCursor(0,2);
      lcd.print(” TEMP-CONTROLLED OFF “);
      Status3 = HIGH;
      previousMillislcd = currentMillis;
      }
      else if (Status3==HIGH&&currentMillis – previousMillislcd > timer2)
      {
      lcd.setCursor(0,0);
      lcd.print(” “);
      lcd.setCursor(0,1);
      lcd.print(” “);
      lcd.setCursor(0,2);
      lcd.print(” “);
      Status3 = LOW;
      previousMillislcd = currentMillis;
      }
      }

      void show0Flow() // function display 0-flow
      {
      unsigned long currentMillis = millis();
      ClearLCD();
      lcd.setCursor(5,3);
      printTime();
      if (Status3==LOW&&currentMillis – previousMillislcd > timer2)
      {
      lcd.setCursor(0,0);
      lcd.print(” ! CAUTION ! “);
      lcd.setCursor(0,1);
      lcd.print(” SYSTEM “);
      lcd.setCursor(0,2);
      lcd.print(” FLOW-CONTROLLED OFF “);
      Status3 = HIGH;
      previousMillislcd = currentMillis;
      }
      else if (Status3==HIGH&&currentMillis – previousMillislcd > timer2)
      {
      lcd.setCursor(0,0);
      lcd.print(” “);
      lcd.setCursor(0,1);
      lcd.print(” “);
      lcd.setCursor(0,2);
      lcd.print(” “);
      Status3 = LOW;
      previousMillislcd = currentMillis;
      }
      }

      x ( ergibt zusammen geschrieben den Embarassed Smiley x(.

      [/SPOILER]

      Aufbau:
      http://www.abload.de/thumb/testc6k9s.jpg
      [SIZE=”1″]Der Durchflusssensor an pin 3 ist im Bild nicht angeschlossen und der Lüfter hängt hier(Test) nur an 5V.
      [/SIZE]
      Der Rest folgt noch…

    • #923948
      spokekiller
      Teilnehmer

      Hi Dirk,ja, den Sketch kannst mir mal zuschicken und ich denke so ein Video wäre auch eine feine Sache. Aber nur wenn es keine Umstände macht…Thanx, Micha

    • #924075
      Sc0rp
      Teilnehmer

      Tagchen,@Dirk:Erstmal Fragen über Fragen:1) könntest du für die Anfänger auch eine Bauteilliste erstellen?2) gibt es dafür evtl. auch ein Fritzing-Schema?3) wieviel Leistung kann man damit regeln?4) kann man alle DFM’s anschließen?5) wo kann man die “Klicks/l” der DFM’s anpassen?Ich habe die letzten Tage erfolgreich meine 10 neuen China-Dallas-Sensoren getestet (11 Sensoren gleichzeitig am Nano ;)), und mich am Code versucht – ich schaffe es irgendwie nicht, meine wirklich einfache Aufgabe zu bewältigen: eine Zeile pro Sensor, Kommata-getrennte Ausgabe der Werte (ID bzw. ROM, Typ, Temp. in Celsius).Aber ich bleibe dran …Gestern habe ich mal meinen Sainduno UNO in das Gehäuse von Watterott gepackt, Bilder hab ich gemacht – allerdings in miserabler Qualität (meine Knipse ist für sowas i-wie nicht geeignet *sigh*). Ich war sehr überrascht, wie die beiden zusammenpassen … Link zu Gallerie:http://www.abload.de/gallery.php?key=k5zLd852OT:http://www.heise.de/newsticker/meldung/Arduino-Generalschluessel-zum-Hotelzimmer-1652076.html(wozu so’n µC alles taugt …)Sc0rp

    • #924089
      phil68
      Teilnehmer

      Hallo Chris!

      1. Ja kann ich machen
      2. Nein, da zu Zeitaufwändig
      3. Ich hab einen IRF 540 verbaut… total oversized… 100V – 22A(bei 25°) 😆
      4. Ja
      5. Hier:

      {
      NbTopsFan = 0; // set NbTops to 0 ready for calculations
      sei(); // enables interrupts
      delay (1000); // wait 1 second
      cli(); // disable interrupts
      calc = (NbTopsFan * 60 / 4.5); // (pulse frequency x 60) / 4,5
      }

      Sehe gerade, dass das noch die Umdreheungen pro Minute sind 😀 (Test mit Lüfter, wobei die 4.5 auch falsch sind 8-[) Bei einem GMR würde das so aussehen:

      calc = (NbTopsFan * 3600 / 492);

      um die Liter pro Stunde anzuzeigen.

      Da ich ja keine Wakü mehr betreibe, habe ich dann keine Notwendigkeit mehr gesehen weiter zu basteln.

      Grüße Dirk

    • #924119
      spokekiller
      Teilnehmer

      [SIZE=”4″]Tutorial #12 — “Einfache” Lüfter-Regelung mit Potential für mehr[/SIZE]

      Danksagung
      Ich bedanke mich diesmal besonders bei Chris Barnes, der die Idee und die Vorarbeit zu diesem Projekt geliefert hat. Desweiteren bei Brett Beauregard, Miles Burton und der Menge Programmierer, die die OneWire Lib ermöglicht haben.
      Und natürlich dem MK-Team aus der Bastelecke!

      Zur Sache…
      Benötigte Teile, “hart”:
      1x Arduino Uno oder Nano oder entsprechender Klon mit der selben Zahl I/O Pins
      1x Lüfter, wie in PCs üblich, aber kein PWM-Lüfter!
      1x Drehimpulsgeber, bspw. Alps STEC12 oder STEC11 Serie
      1x Temperatursensor Dallas DS18B20(+)
      1x Diode 1N4001~1N4007 als Freilaufdiode (ich benutze 1N4005)
      1x LCD, 16×2 o.ä., HD44780 kompatibler Chipset
      1x Trimmer oder Poti 10kOhm oder Widerstand mit ca 1~5kOhm
      1x Widerstand 4,7 kOhm oder ein wenig größer (ich benutzte 8,2 kOhm)
      1x IRF510 MosFET oder Vergleichstype
      1x 5V Stromquelle, bzw USB Anschlußkabel für Arduino
      1x 12V Stromquelle, stabilisiert 12V, >=350mA (vom Lüfter abhängig)
      Breadboard, Steckbrücken, also das übliche Kleinmaterial

      ..”soft”
      Arduino IDE 1.0 (nicht zwingend, wurde aber nur damit getestet)
      PID-library, via Arduino.cc -> http://www.arduino.cc/playground/Code/PIDLibrary
      Dallas Library -> http://www.milesburton.com/Dallas_Temperature_Control_Library, bzw http://download.milesburton.com/Arduino/MaximTemperature/DallasTemperature_372Beta.zip
      Dallas OneWire Lib 2 -> http://www.pjrc.com/teensy/td_libs_OneWire.html

      Grundlegendes
      Wir bauen heute eine Anordnung, die einen Lüfter in Abhängigkeit der gemessenen Temperatur eine DS18B20 Temperatursensors regelt. Dabei kommt eine Methode zum Einsatz, die eine Art “Trendbewertung” macht. Das Konzept ist als “PID Controlling” bekannt. Siehe dazu http://de.wikipedia.org/wiki/Regler#PID-Regler.
      Die zum PID passende Library ist oben verlinkt.

      Wir finden in dieser Schaltung einiges wieder, was in Tutorials 1-4 zur Anwendung kam. Außerdem Elemente, die in Tutorial #6 vorkamen.
      Solltet Ihr neu hier sein, dann lest Euch BITTE UNBEDINGT erst die vorgenannten Tuts durch, bevor Ihr hier anfangt. Von den Interrupts lassen wir diesmal zunächst noch die Finger.

      Wir benutzen einen sogenannten Drehimpulsgeber (DIG, rotary encoder), der zunächst aussieht wie ein Poti, der aber pro voller Umdrehung eine bestimmte Anzahl “clicks”, also Schaltimpulse auf gewissen Pins ausgibt. Es ist übrigens für unser Tut relativ egal ob Ihr einen DIG mit 24, 12 oder 6 Impulsen pro Umdrehung besorgt. Mehr Grundlagen dazu befinden sich unter http://www.arduino.cc/playground/Main/RotaryEncoders, wo es um Längen besser eklärt ist, als ich es könnte.

      Für das Auslesen des DS18B20 nutzen wir die OneWire Lib und die dazugehörige Dallas Temperature Control Library. Zum DS18B20 gibt es hier (http://datasheets.maxim-ic.com/en/ds/DS18B20.pdf) ein sehr gutes Datenblatt.

      Alle Libraries gehören ordentlich unter ../arduino-1.0/libraries/….

      Wir benutzen desweiteren unser altbewährtes, preiswertes und HD44780-kompatibles Text LCD wieder. Dazu nutzen wir die schon bekannte und eingebaute LiquidCrystal Library. Natürlich kann man auch größere Displays verwenden, oder eines mit IIC-Anschluß. Das aber bleibt dann Eurer Experimentierfreude überlassen.

      Der genutzte MosFET ist für diesen Zweck ausreichend dimensioniert. Siehe dazu auch Hallo1001s Kommentar weiter unten.

      Aufbau
      Wir fangen damit an, das LCD zu verdrahten. Siehe nachfolgendes Fritzing.
      [spoiler]
      Pinmapping:
      LCD #1 -> GND (-)
      LCD #2 -> +5V
      LCD #3 -> Schleifer (= mittlerer Pin) des Trimmers für den Kontrast
      LCD #4 (RS) -> Arduino 5
      LCD #5 -> GND (-)
      LCD #6 (Enable) -> Arduino 6
      LCD #7-10 -> OFFEN
      LCD #11 (Data4) -> Arduino 7
      LCD #12 (Data5) -> Arduino 8
      LCD #13 (Data6) -> Arduino 9
      LCD #14 (Data7) -> Arduino 10
      LCD #15/16 optional Backlight über kleinen Vorwiderstand (180~330 Ohm)
      http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture3539-lcd-setup-basics.png
      [/spoiler]

      Die beiden verbleibenden Abgriffe des Schleifers gehen jeweils auf +5V und GND (-), womit der Trimmer zum Spannungsteiler wird.

      Fahrt nun damit fort einen DS18B20 über Vorwiderstand so zu beschalten, daß die beiden äußeren Pins auf GND (-) gehen und der mittlere Pin über den 4,7 kOhm Widerstand auf +5V. Verbindet diesen mittleren Pin außerdem mit Pin 12 des Arduino (im Bild unten das gelbe Kabel, die beiden grünen Brücken gehen auf Masse). Mein Widerstand war deutlich größer, das ist okay, nur kleiner als 4k7 darf er nicht sein!
      [spoiler]
      http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture1989-ds18b20-aufbau-single-en-detail.jpg
      [/spoiler]

      Nehmt Euch nun den MosFet vor und betrachtet dieses Bild genauer:
      http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture3527-irf510-schaltbild-pinout.jpg

      Steckt den IRF510 auf eine freie Stelle des Breadboards so ein, das im Vergleich mit dem nachfolgenden Fritzing-Schema das Pinout von links nach recht “G-D-S” entspricht.
      Zur Kontrolle:
      G -> geht zum Arduino Pin 11
      D -> geht zur Anode der Diode (Seite ohne Ring)
      S -> geht auf die gemeinsame Masseschiene

      Es wird ein wenig klarer, wenn Ihr dieses Bild anseht, welches einen Teil der Schaltung wiedergibt.
      http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture3540-teilbild-pid-controller.png

      Spätestens jetzt dürften einige sagen, “Moment mal!”. Richtig. Wir erinnern uns an das Tut mit dem Leistungstransi TIP-120. Dort mußten wir darauf Acht geben, daß wir die Masseschienen der 5V Quelle unseres Arduino und des 12V Netzteils unseres Lüfters verbinden.
      Aber nur die Masse! Verbindet auf keinen Fall die +12V des Lüfter-Netzteils mit den 5V-Eingängen des Arduino. Ihr könntet dadurch unter Umständen Euren Arduino beschädigen. Im harmlosesten Fall läuft Eure Anordnung nur nicht.

      In unserem Tut speisen wir den Arduino aus der USB-Leitung, daher verbinden wir den GND Pin des Arduino mit der Masseschiene des Breadboards.

      So, damit wären wir durch die Verdrahtung fast durch…

      Jetzt fehlt nur noch der Drehimpulsgeber. Mein STEC12 hat fünf Pins. Davon gehören zwei zum eingebauten Taster. Ich verzichte auf diese Funktion diesmal. Verbleiben drei Pins auf der gegenüberliegenden Seite. Bitte beachtet das Datenblatt zu Eurem DIG.
      Verdrahtung:
      Terminal A -> Arduino Pin 2
      Terminal B -> Arduino Pin 4
      Terminal C -> GND (-)/Masse (Terminal C ist meist der mittlere der drei auf einer Seite angeordneten Pins des DIG)

      Bild:[spoiler]
      http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture3542-p1040598-fancontroller.jpg
      [/spoiler]
      Bedenkt dabei bitte, daß Ihr unbedingt einen der beiden Signalpins des DIG an Digitalpin 2 des Arduino hängt. Das ist wegen der Konfiguration der Interrupts (welche physisch nur auf Pins 2+3 gemapped werden können) wichtig.

      Hier nochmal zwei Bilder, die Euch beim Aufbau helfen können.
      Von den beiden Klemmen geht die rote auf den Pluspol des separaten 12V NT und schwarz auf den Minuspol.
      [spoiler]http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture3541-p1040597-fancontroller.jpg
      http://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture3543-p1040599-fancontroller.jpg
      [/spoiler]

      Wenn Ihr nun noch den angehängten Sketch flashed könnt Ihr dem Arduino seine 5V geben und die 12V Quelle dazu einschalten. Der Arduino zeigt einen kurzen “Hallo”-Bildschirm und zeigt sodann die Temperatur an, die er aktuell am DS18 mißt.

      Außerdem zeigt er die Vorgabetemperatur, bzw 28 Grad an. Verrichtet mit dem DIG ein paar Klicks in beide Richtungen und schaut Euch die dazu passende Reaktion des “Fan Controllers” an. Ihr werdet ein sehr interessantes Bild erhalten.

      Fehlersuch-Hilfe:
      [spoiler]
      Display zeigt gar nichts an: Spannung abklemmen, Beschaltung der Pins zum Arduino prüfen
      Display zeigt imemr noch nichts an: Kontrasteinstellungen am Trimmer verändern
      Display zeigt nur Blöcke oder Müll: definitiv Verkabelungsproblem, wahrscheinlich Reihenfolge falsch.

      Gemessene Temperatur ist 0 oder -127: Prüft die korrekte Verdrahtung des DS18B20… Widerstand evtl vergessen oder eine der Drahtbrücken zur Masse. Läuft das Meßkabel auf den korrekten Arduino-Pin?

      Ich drehe am DIG, aber nichts passiert. Ausschalten! Datenblatt prüfen. Verkabelung ist sehr wahrscheinlich falsch. Es könnte auch sein, das die Kabel an den falschen Arduino-Pins sitzen.
      [/spoiler]

      Zähneknirschend muß ich abschließend sagen, daß mir dieses Tutorial so viele Probleme bereitet hat, wie noch kein anderes zuvor. Bis zuletzt habe ich das Prellen, Flattern und Sprünge machen meines DIG nicht hinbekommen. Ich habe nach genauem Hinhorchen am DIG den Verdacht, daß er evtl defekt ist (obwohl nagelneu). Die Tatsache, daß es bei Phil68 einwandfrei läuft gibt der Vermutung zusätzliche Nahrung. Ich hatte wirklich alles ausprobiert, was physikalisch vertretbar war (Abblock-Kondensatoren, etc pp) und auch anderen Testcode benutzt. Leider immer dasselbe.
      Bei einem Preis von etwas über 2€ kein Bauteil, das ich gerne nagelneu in die Tonne treten mag.

      Ich denke diese Schaltung werde ich mittelfristig fest in zwei meiner Rechner verbauen. Ob ich dann wieder mit DIG arbeite oder ggf lieber ein Poti nehme und über analog auslese… wer weiß.

      Wer den Code genauer studiert, findet viele interessante Anreize, und auch eine weitere schöne Möglichkeit zur Verwendung von Interrupts. Ihr habt Wissen aus alten Tuts mit ganz neuen Elementen verknüpft und ich bin sicher, daß Ihr auch eigene Ideen bekommt, wie man Impulsgeber sinnvoll einsetzen kann.

      Ich hoffe Ihr habt Spaß dabei gehabt. Ich freu mich auf Eure Kommentare.
      LG,
      Euer Micha

      PS: die Arbeit, Fritzings zu erstellen ist ein echter Zeitfresser. Ich denke ich werde in Zukunft lieber detaillierte Beschriebungen liefern und Fotos. Nur in besonderen Fällen werde ich Fritzings machen. Sorry, aber das frißt unfassbar viel Zeit in Relation zum Gesamtaufwand.

    • #924135
      Hallo1001
      Teilnehmer

      Hallo Dirk!

      Ich hab einen IRF 540 verbaut… total oversized… 100V – 22A(bei 25°)

      Vorsicht Falle, so oversized ist der IRF540 gar nicht. Der IRF540 hat einen Rds(ON) von gut 0,077 Ohm und das wohlgemerkt bei Vgs von 10V. Ich nehme man an dass Du das Gate direkt am Arduino angeschlossen hast, damit beträgt Vgs nur 5V und damit steigt Rds(ON) zwangsläufig an. Leider finde ich im Datenblatt keine Daten wie Rds(ON) bei 5V aussieht, aber ich schätze mal dass er dann bei wenigstens 0,150 Ohm liegt. Rechne das mal mit „läppischen“ 2A (24W bei 12V) durch:
      0,15Ohm * 2A = 0,3V —> 0,3V * 2A = 0,6W Abwärme
      Wenn Du den IRF540 nur als „Schalter“ verwendest und damit 2A schaltest, dann fallen bereits 0,6W Abwärme an. Und ich nehme mal an dass Du hier nicht nur ein- und aus- schaltest, Du wirst sicherlich mit PWM arbeiten. Bei PWM kommen noch die Umladeverluste dazu (weis jetzt allerdings nicht wie man die berechnet), so dass die tatsächliche Abwärme sicherlich locker über 1W liegt. Oder anders herum, wenn Du mit 2A „regeln“ willst kommst Du nicht mehr ohne Kühlkörper aus…

      LG Jens

    • #924137
      spokekiller
      Teilnehmer

      Sc0rp;493372 said:
      Ich habe die letzten Tage erfolgreich meine 10 neuen China-Dallas-Sensoren getestet (11 Sensoren gleichzeitig am Nano ), und mich am Code versucht – ich schaffe es irgendwie nicht, meine wirklich einfache Aufgabe zu bewältigen: eine Zeile pro Sensor, Kommata-getrennte Ausgabe der Werte (ID bzw. ROM, Typ, Temp. in Celsius).
      Aber ich bleibe dran …

      Ich melde mich dazu bei Dir noch. Hab ein wenig Geduld, ich bin mit dem Kopf zu tief im nächsten Tutorial. Ich kann Dir Code für Mehrfachsensor-Auslesung dann zuschicken.

      Was genau meinst Du mit ROM, Typ? Wir reden doch von den DS18B20, ja? Du meinst die Adresse der kleinen Sch*****r? 😀

    • #924140
      Sc0rp
      Teilnehmer

      Re,

      spokekiller;493438 said:
      Was genau meinst Du mit ROM, Typ? Wir reden doch von den DS18B20, ja? Du meinst die Adresse der kleinen Sch*****r? 😀

      Genau, in dem Beispiel-Sketch heisst das “ROM” – ich vermute, das es die ID des Chips ist. Mein Plan ist es, die kleine “S*h*i**dinger” auf eine (Lüfter-) Molexbuchse zu “kleben” und dann entsprechend zu verkabeln. Die Buchse deshalb, da sie drei Kontakte hat, nicht direkt mit den Lüftern zu verwechseln ist (Buchse auf Buchse passt nich) und keine offenliegenden Kontakte hat. Und da ich gleich alles richtig machen möche, kommt die ID des Chips gleich als Banderole aufs Kabel …

      Den “Einzeiler” brauche ich als Vorstufe zum Loggen … grundsätzliches Ziel ist es, auch den Messinterval via Webfontend einstellen zu können.

      Sc0rp

    • #924149
      spokekiller
      Teilnehmer

      Sc0rp;493441 said:
      Re,
      Den “Einzeiler” brauche ich als Vorstufe zum Loggen … grundsätzliches Ziel ist es, auch den Messinterval via Webfontend einstellen zu können.

      Sc0rp

      Alles klar, ist so gut wie auf dem Weg zu Dir. Die Ausgabe mußt Du Dir aber noch ein wenig anpassen. :d:

      Das mit dem Webfrontend… ich glaube mit dem Frust vom STEC12 im Bauch gehe ich mal von meiner ursprünglichen Idee für das nächste Tut ab. 🙁

      Wie wärs, wenn wir mit dem Arduino mal ins Netz gehen und ein paar LEDs zum Leuchten bringen, Temperaturen abfragen etc etc…?

      Da kann man wenigstens auch mal kleine, schnelle Erfolge damit haben! :banana:

      EDIT: der von Dir gewünschte Code:

    • #924236
      Sc0rp
      Teilnehmer

      Hi,
      sodele, ich bin nun komplett:
      http://www.ebay.de/itm/221081466171?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649 -> meins!

      spokekiller;493452 said:
      EDIT: der von Dir gewünschte Code:

      Super! Danke dir! Mo/Di hab ich frei, da werde ich wieder mal basteln 😉 und deinen Sketch ausprobieren – btw. das WizNet-Shield und das Nano-EthernetShield sind auch auf dem Weg zu mir … dann wird es langsam Ernst.

      Ich habe zwar mit Fritzing noch nicht viel gearbeitet, aber ich würde mich bereit erklären, (eure) Schaltpläne dahin zu übertragen – ich finde die Schema’s ziemlich gut! Sie sind übersichtlich und für Laien besser verständlich … und da Fritzing ja “portable” ist, kann ich es auch überall benutzen 😉

      Sc0rp

    • #924798
      spokekiller
      Teilnehmer

      Sc0rp;493545 said:
      Ich habe zwar mit Fritzing noch nicht viel gearbeitet, aber ich würde mich bereit erklären, (eure) Schaltpläne dahin zu übertragen – ich finde die Schema’s ziemlich gut! Sie sind übersichtlich und für Laien besser verständlich … und da Fritzing ja “portable” ist, kann ich es auch überall benutzen 😉
      Sc0rp

      Also ich hab da gar nichts dagegen, wenn Du das machen möchtest. Ich habe immer wieder mal darüber nachgedacht, die alten Tuts zu ergänzen. Aber schlicht der anteilige Zeitaufwand für ein Fritzle hat mich davon abgehalten.
      In der Regel halte ich die Tuts auch für Anfänger gut genug beschrieben, um die Verkabelung richtig zu machen.
      Das mag nicht immer zutreffen, zugegeben… also wenn Du da unterstützen willst, immer gerne.

      Allerdings sei auch vorgewarnt, daß im Standardumfang nicht sehr viele Bauteile vorhanden sind. Manche Sachen, ich glaube bspw den Muxer aus einem der ersten Tuts, gab es nicht.

      Übrigens ein weiterer letzter Grund, warum es nicht dazu gekommen ist ist, daß sich nie jemand an mich wandte, weil er mit einem Tut nicht zurecht kam. Köntne natürlich auch daran liegen, daß kaum einer die Sachen auch nachbauen will oder eben, daß es so einfach ist, wie ich annehme.

      Also, immer mach, ich füge die Dinger dann gerne an den entsprechenden Stellen ein. Ich bin durchaus dankbar dafür.

    • #924949
      K_Men
      Teilnehmer

      Respekt, echt gut

    • #927547
      spokekiller
      Teilnehmer

      Sodele, nachdem mal wieder viel Zeit ohne Beiträge ins Land gegangen ist, und zudem mein Raspberry Pi angekommen ist, ist es nötig mal wieder ein wenig Struktur zu formen.Die dunklen Tage sind im Anmarsch und so habe ich mir überlegt, statt großer und komplexer Teilprojekte, lieber kleine und überschaubare Sachen zu machen.Die Roadmap wären somit aktuell:#13 – Voraussichtlich etwas zum Einstieg in die Nutzung des Ethernetshields, Setup, was es zu beachten gibt#14 – Voraussichtlich etwas zum Einstieg in die Nutzung des Ethernetshields, Wie man übers Netz ein/aus schaltet und Pins ausliest#15 – Voraussichtlich zur Ansteuerung von 7-Segment-Anzeigen#16 – Voraussichtlich zum Thema einfache serielle Datenkommunikation zwischen zwei Arduino an einem Beispiel#17 – Eventuell zum Thema “MyDuino”, oder wie man seine Projekte auf eine Lochrasterplatine bringt ohne dabei sein Prototyping Board zu opfernLeonardo, der neue AlteAußerdem gibt es zwischenzeitlich die Arduino Leonardos. Ich bin noch ein wenig am Hadern mit mir selbst, ob es Sinn macht, mir einen zuzulegen. Würde mich ein Neueinsteiger jetzt fragen, ob UNO R3 oder Leonardo, dann würde ich wohl doch eher zum Leonardo neigen. Dabei muß aber klar sein, daß der Leon noch recht neu ist, und nicht zwingend alle vorhandenen Shields damit laufen. Softwareseitig ist er mittlerweile nach meinem Verständnis gut unterstützt.Preislich gibt es die Leos in dem Preissegment in welchem auch die UNO zu finden sind. Der Chip auf dem Leo ist deutlich moderner und bringt Features mit, die an sich weniger von Einsteigern genutzt werden (bspw selber flashen eines eigenen USB Microcodes).Wer also aktuell einsteigen möchte, der sollte sich neben der Frage, ob der Arduino als Plattform generell für hn/sie geeignet ist auch bei Arduino.cc schlau machen, ob der Leo dem UNO gegenüber der Vorzug zu geben wäre.Und um die Sache schwierig zu machen, gibt es eine Menge Klone, die durchaus Ihre Anerkennung verdient haben. Schaut Euch die obigen Posts von Sc0rp an, da gibt es viele Hinweise zu günstigen Sainduino Kits.AusblickWenn alles läuft, wie ich mir das denke, gibt es das erste Ethershield-Tut gegen Ende nächster Woche. Unter Umständen auch zusammen mit #14Ich habe mir vorgenommen, bis Weihnachten wieder ein wenig Leben in die Bude zu bringen. Drückt mir die Daumen, daß das auch so läuft.Ich freu mich auf Eure Feedbacks.

    • #927636
      Sc0rp
      Teilnehmer

      Re,
      und nicht zu vergessen, das es auch andere Duino’s gibt:
      http://tiny-circuits.com/products/tinyduino/asm2001/

      😉

      Sc0rp

    • #927641
      spokekiller
      Teilnehmer

      Sc0rp;497298 said:
      Re,
      und nicht zu vergessen, das es auch andere Duino’s gibt:
      http://tiny-circuits.com/products/tinyduino/asm2001/

      😉

      Sc0rp

      Ja, die Tiny sind mir die Tage auch vor die Nase gekommen, ein Kollege hat mich drauf aufmerksam gemacht und ich glaube in einem anderen Thread (beim Pi wars wohl) hatte ich sie erwähnt.

      Ich find die micro-kompakt Lösung super, vor allem wenn man “wearables”, also in die Kleidung integrierte Elektronik, designen möchte.

      Danke für den Link Sc0rp.

    • #928983
      spokekiller
      Teilnehmer

      Hi Leut,

      aaaaalso ich bin mal wieder voll abgesoffen, und dabei hatte ich mir wirklich vorgenommen, was zu machen. Mega-Sorry. Schuld dran sind ne Menge Sachen, wie RasPi, Elektronikstuff und RealLife.

      Morgen dürfte meine fette Reichelt Order eintreffen, dann hab ich hinsichtlich der Teile zumindest keine Ausrede mehr. Dann könnte ich glatt einen zweiten Thread zum RPi aufmachen, denn vieles ist da erstaunlich simpel umzusetzen.

      Gut, — also mal kurze Checklist:
      * Wetter schei… -> gut
      * Material alles da -> auch gut
      * Ordnung inner Werkstatt X_x au weia….
      * Zeit …. äh, wie jetzt? Was ist Zeit? Hat jemand ne Katalognummer?

      Spaß beiseite. Die Firma Watterott macht gerade eine Umfrage auf Ihrer Website, wer Interesse an einer MakerFaire in Deutschland hat. Bitte schaut Euch das mal an. Ich könnt immer heulen, wenn ich sehe, was es an g…uten Veranstaltungen in den US of A gibt und bei uns…? Nix?

      Ansonsten bitte ich Interessenten, die gerne einen “MCP23017-e/sp” im DIP28 package hätten oder brauchen können (siehe oben diskutiertes Adafruit IIC LCD Shield, auf dem dieser Chip eingesetzt wird), sich bei mir zu melden. Einzelpreis knapp 2€. Gibt es auch woanders billiger, aber die VK sind bei Mouser.de wirklich der Kracher (außer man käme über 65€ Warenwert).

      Tja, ansonsten fällt mir jetzt gerade nichts mehr ein. Ich geb mir Mühe, am Freitag abend zumindest mal das nächste tut mit den Erklärungen zum ETH-Shield reinzustellen.

      Achso, doch.. eines noch: hier springen doch auch Leute aus dem Großraum Stuttgart rum… hätte man denn allgemein Lust, sich mal in Stuttgart im shackspace zu treffen? Dabei kann man ja dann auch mal über eine eigene Arduino/RasPi Hacking-Veranstaltung nachdenken?!?!?

      Oder man sieht sich auf der Hobby+Elektronik Ende November???

    • #928986
      Renovatio
      Teilnehmer

      Hey,schön das es wieder weiter geht, bin auch irgendwie ein wenig ab gesoffen.Neuer Stoff ist im Anmarsch also geht’s diese Woche weiter.Leider kann ich beim Treffen nicht mit machen, ist gerade ein wenig zu weit weg und hab keine Ferien.In diesen SinneAndre

    • #929022
      Sc0rp
      Teilnehmer

      aaaaaalso:
      * abgesoffen: dito, nachdem ich meine Garten auf Vordermann gebracht habe, diverse Möbel auf- und abgebaut habe, Überstunden gebunkert habe und endlich abschließend nach vielen Tests feststellen musste, das die blöde Maus mein Serverboard irreparabel zerstört hat (wohlgemerkt durch Urin *sigh*) …
      * Hobby-Elektronik: hmm, könnte man sich ja verabreden 😉
      * wegen dem “MCP23017-e/sp” hab ich mal Google befragt: http://de.rs-online.com/web/p/i-o-expander/0403806/ -> wäre das nix?

      Auch in der nächsten Zeit wird es nix mit Arduino, ich muss erstmal mein Fileserver BiGBOX fertig bekommen, danach muss ich SUPAMAN upgraden und dann bekommt der Wohnzimmer-PC (SCHLUMPF) sein Silent-Upgrade (WaKü) und irgendwie sollte dazwischen meine Workstation ZOCKER noch ihr Radiator-/Lüfter-/Steuerungs-Upgrade erfahren *sigh* – alle wichtigen Teile sind vorhanden, zur Rabattaktion werde ich mir evtl. noch ‘ne ordentliche Pumpe kaufen …

      Und wenn ich damit durch bin, kommt dann der Benchtable dran – inkl. Arduino-Messsystem …

      Sc0rp

    • #929044
      spokekiller
      Teilnehmer

      Hab nur kurz mal reingeschaut… also ich verstehe nicht, wie ich den MCP23017-e/sp bei RS nicht gefunden habe… und dann liefern die scheinbar innerhalb D VK-frei? Schade, daß die die RPi nur aus UK liefern – *schnellduck* hab aber jetzt wieder nicht genau geschaut :DZum Thema BiGBOX etc… machst Du nen Thread dazu oder bastelst Du ohne Doku hier im Forum?

    • #929045
      Sc0rp
      Teilnehmer

      Re,
      [OT]

      spokekiller;498773 said:
      Zum Thema BiGBOX etc… machst Du nen Thread dazu oder bastelst Du ohne Doku hier im Forum?

      Naja, da ich leider nicht im Besitz einer ordentlichen Kamera bin, lässt sich keine ordentliche Dokumentation machen – hab ich schon versucht *schnüff*. Im Moment dokumentiere ich meine Projekte in mein privates Wiki … vllt. peppe ich sie später auf und ziehe sie um 😉

      … nach dem Benchtable … 😉

      Sc0rp
      [/OT]

    • #929527
      spokekiller
      Teilnehmer

      *** Off Topic, aber in eigener Sache ***Leider muß ich jetzt diejenigen enttäuschen, die angesichts des neuen Posts endlich (und zurecht) ein Tut erwartet haben. Zumindest kann ich sagen, daß sich abzeichnet, daß ich wohl bald wieder ein wenig mehr Zeit und Energie dafür haben dürfte. But now to something completely different:Spokekiller zum Anfassen? Den Wirrkopf mal live treffen? Mal Techno-Babbeln mit dem guten Spoke? Das alles ist am kommenden Sonntag (25.11.) auf der Hobby+Elektronik bzw der Modellbau Süd in Stuttgart möglich.Wer sich gerne zwanglos mit mir dort treffen möchte, der kann das tun und soll mir bitte eine PN schicken, damit ich meine Handy-Nr rausrücke, denn sich auf der Messe an einem festen Ort zu fester Zeit zu verabreden erscheint mir zu umständlich.Also bei Interesse dem guten Spoke ne PN bis spätestens Samstag abend, 20.00 ins Postfach gedübelt und dann sehen wir uns Live und in bunt.Würde mich freuen!

    • #929538
      Sc0rp
      Teilnehmer

      Spoke treffen: japp, Hobby-Elektronik: nein – daher schlage ich vor, wir verabreden uns mal in Stgt zu ‘nem Bier bzw. Drink … gern auch zu ‘nem richtigen Steak ;). Dieses Wochenende gehts zeitlich nicht bei mir, Nachtschicht Fr-Sa und Privates am Sa., Familie am So. – da bleibt kein Platz für die Messe …

      Sc0rp

    • #929979
      Sc0rp
      Teilnehmer

      Und wieder was neues an der µC-Front:http://smartduino.com/(kleines Video via Golem.de: http://video.golem.de/pc-hardware/9750/smartduino-mit-vier-kernen.html)Sc0rp

    • #932135
      Sc0rp
      Teilnehmer
    • #932302
      Anonym
      Inaktiv

      :-k Habe jetzt mal alle Seiten übersprungen :+ Und ich weiß nicht ob ich es schon gesagt habe…..Tolle Arbeit die hier macht!Mal ne Frage ob sowas machbar ist…………Ist es möglich eine Wakü Steruerung zu basteln, Mit zwei Wassertemp, Durchflussmessung und zwei Lüfterreglung und Pumpensteurerung?Was meine Idee ist einen Raspbeerie Pi Als Computer zu nutzen, wenn man einen Computer dafür Braucht.Ist sowas schaffbar für einem wie mich der Kaum Ahnung hat von Elektrik? Meine Idee dahinter ist eine Wasserkühlung fürn ne alte XBOX360 damit zu Realisieren.Da ich meine Wakü Steuerung ala aquaero 5LT nicht mehr missen möchte.*Edit*Welche Programmiersprache ist das? Lassen sich die Codes für einen Leicht schrieben der zb.C plus plus gelernt hat?Und wieviel Geld kann man für einen Programm Code verlangen?

    • #932436
      spokekiller
      Teilnehmer

      Zaperwood;502256 said:
      :-k Habe jetzt mal alle Seiten übersprungen :+ Und ich weiß nicht ob ich es schon gesagt habe…..Tolle Arbeit die hier macht!

      Danke…. wenn ich momentan nur mehr Zeit hätte um endlich mal hier weiter zu machen.

      Zaperwood;502256 said:
      Mal ne Frage ob sowas machbar ist…………Ist es möglich eine Wakü Steruerung zu basteln, Mit zwei Wassertemp, Durchflussmessung und zwei Lüfterreglung und Pumpensteurerung?

      Ganz allgemein, von der Hardware her würde ich mal sagen, ja. U.U. ist einiges was Hallo1001 schon für sich mal entworfen hat da interessant für Dich. Auch hat BigReval ein solches Projekt am Laufen, aber das scheint auch gerade zu ruhen.

      Zaperwood;502256 said:
      Was meine Idee ist einen Raspbeerie Pi Als Computer zu nutzen, wenn man einen Computer dafür Braucht.

      Hä? Verstehe ich jetzt nicht, was Du damit sagen willst. 😀

      Zaperwood;502256 said:
      Ist sowas schaffbar für einem wie mich der Kaum Ahnung hat von Elektrik?

      Mit etwas Hilfe vielleicht, aber ganz ohne wirds Dir auch schwerfallen das Ding später zu verändern oder zu “troubleshooten”.

      Zaperwood;502256 said:
      Meine Idee dahinter ist eine Wasserkühlung fürn ne alte XBOX360 damit zu Realisieren.
      Da ich meine Wakü Steuerung ala aquaero 5LT nicht mehr missen möchte.

      Verstanden.

      Zaperwood;502256 said:
      *Edit*
      Welche Programmiersprache ist das? Lassen sich die Codes für einen Leicht schrieben der zb.C plus plus gelernt hat?
      Und wieviel Geld kann man für einen Programm Code verlangen?

      [/QUOTE]

      Die Sprahce ist ein von “Wiring” abgleiteter C-Pseudocode. Wenn Du die AVRs direkt in C programmieren wolltest wird der zu erbringende Grund-Aufwand deutlich höher. Aber das Proggen fällt Dir evtl. im Endeffekt leichter, wenn Du die AVR-Spezifika erst mal kennst.

      Das mit dem Geld verlangen ist so ne Sache. Im Arduino Umfeld lebt das alles sehr sehr stark vom Open Source Gedanken und Du mußt Dir auch im Klaren sein, daß Programmieren gegen Geld einen Kaufvertrag darstellt und Du dann durchaus auch Pflichten zu erbringen hast oder diese mühsam mit einem entsprechenden Vertrag dann auch auszuschließen. Geld dafür nehmen, so außerhalb des weiteren Bekanntenkreises als kleine Aufwandsentschäigung bspw, würde ich persönlich eher nicht machen. AUßER Du hast mit sowas schon reichlich Erfahrung, und dann rechnest Du den Aufwand nach Stundensatz und ich denke der professionelle Stundensatz für solche Arbeiten liegt je nach Land und Niveau der Programmierung zwischen 25€ ~250€ /h, was Dir jetzt wohl auch nicht viel helfen wird, oder? 🙂 Vielleicht diskutierst Du dieses Thema dann im OT Bereich noch mit anderen Leuten, wird sicher ein professionellter Progger hier unterwegs sein.

      *Luft hol …………..*
      Und zu guter Letzt, ich würde kein Geld nehmen von Dir für ein wenig Progging und auch wohl kaum einer der Anderen, die hier im Thread mitwirken (unter Vorbehalt).

      Gruß ^ _^ /~

      EDIT: ich glaube es ist ein Werkvertrag, kein Kaufvertrag im klassischen Sinn … ist lange her, daß ich das gelernt hatte… aber cih denk man merkt auf was ich raus wollte

    • #932451
      Anonym
      Inaktiv

      :+ Ich kann nicht Programmieren aber in der Verwandschaft ist einer der das Kann, gelernt hat.Aber ob der Überhaupt sowas für mich machen würde weiß ich nicht? und ob er es kann?Und sorry für Unverständliche Fragen von mir bin halt erschlagen worden von den Infos hier :d: Positiv gemeint.Ich würde später mal gerne meine XBOX360 mit ner Wakü betreiben und wollte nur indirekt Fragen, wegen den Totgeburt Themen die Anfangen aber nach 3 Posts enden und nichts bei rum ge kommen ist.zb. so ein Thema “Will ne Wakü für die XbOx360 bauen” < als beispieloder den vielen Wakükühlerbau Themen wo alle sich ins Zeug legen und Tipps geben und dann auch nichts passiert.Und dann zu recht "sauer" sindhttp://www.meisterkuehler.de/forum/wasserkuehlung-bastelecke/30775-projekt-xbox-360-wakue.htmlhatte gedacht das man ja für Arduion einen PC braucht für LCD Steruerung und Display Anzeige und da ist mir das Raspberry Pi eingefallen.:banana:

    • #932453
      SirSmokeALot
      Teilnehmer

      HuhuFind den Thread hier auch klasse! Mein Arduino Uno ist heute angekommen=)Heut abend werd ich dann mal die ersten Tuts ausprobieren, wenn ich Zeit finde.@ZaperwoodAlso du brauchst den Pc nur um die Sketches auf das Board zu laden. Hast du deine Waküsteuerung mal fertig und betriebsbereit, lädst du den fertigen Sketch auf das Board und brauchst dann keinen PC mehr. Das Board steuert dann alles.

    • #932454
      Anonym
      Inaktiv

      SirSmokeALot;502422 said:
      Huhu

      Find den Thread hier auch klasse!
      Mein Arduino Uno ist heute angekommen=)
      Heut abend werd ich dann mal die ersten Tuts ausprobieren, wenn ich Zeit finde.

      uhhhhhhhhhh Ich wieviel kostet das denn?
      Das Starterset?
      Ich habe mittlerweile so viel vor zu kaufen das ich nicht weiß wo ich anfangen soll.
      zb. ne Abkanntbank :-k mein Thema davon ist auch schon “uralt” Und Gewindeschneider für eventuell Kühlerbau…..wenn ich deinen Kühlerbau sehe gibt es mir Hoffnung mit Minimal Werkzeug sowas zu stemmen.

      SirSmokeALot;502422 said:
      @Zaperwood

      Also du brauchst den Pc nur um die Sketches auf das Board zu laden. Hast du deine Waküsteuerung mal fertig und betriebsbereit, lädst du den fertigen Sketch auf das Board und brauchst dann keinen PC mehr. Das Board steuert dann alles.

      :banana: Wird ja immer besser

      Danke und @spokekiller auch Dir nochmals Danke…eben in der Eile vergessen….

    • #932459
      SirSmokeALot
      Teilnehmer

      Nein hab ihn einzeln bestellt, waren 22€.Und son Laborsteckbrett für 7€.Da ich ja auch schon davor über ne Lüftersteuerung nachgedacht hab, hab ich vor 1-2 Monaten angefangen sämtliche Elektrogerät die weggeschmissen werden sollten zu zerlegen. Daraus hab ich mir Kabel selbst gebastel und um die ersten Tuts zu durchlaufen und ein wenig rumzuspielen gabs da auch genug Zeug.Bin mal gespannt, wie gut das klappt.

    • #932469
      spokekiller
      Teilnehmer

      Danke Euch für Euer Lob,ich kann jetzt eben nur mal schnell antworen, deshalb so kurz.Die ersten Tuts sind noch “alter” Code bzw in Arduino-Speak “Sketch”, die mit der alten Umgebung geschrieben sind. Sie sollten mE aber immer noch laufen.Auf Seite 5, ab Post 241 hat Sc0rp mal ein paar der Basics zusammengestellt. Ansonsten würde ich die Einzelteile die Du je nach Tut brauchts grob bündeln und zu Anfang nur mal das bestellen, was Du wirklich brauchst. Ansonsten “müllst” Du Dich schnell zu.Auch wenn es momentan leider immer noch nicht weitergeht, stellt bitte munter Eure Fragen. Nur dadurch bleibt der Thread auch am Leben und wächst dynamisch weiter.GrußEDIT: wer hätte das gedacht, aber Eure Fragen haben mich doch dazu animiert heute mal ne schnelle Stunde zu “opfern” und den ersten Teil des ETH-Tutorials zu schreiben. Falls das so bleibt dürfte dann am Sonntag spätestens was Endgültiges kommen

    • #932505
      Renovatio
      Teilnehmer

      Hey Micha, schön zu hören das du heute eine Stunde gebastelt hast. Hoffe doch sehr, dass wir dich dazu animieren können, weiter zu machen, trotz das die Zeit fehlt. Wenn ich mehr Kenntnis hätte, würde ich helfen, aber die hab ich eben mal nicht. :)Viel Spaß beim BastelnAndre

    • #932506
      SirSmokeALot
      Teilnehmer

      Das hört sich ja schon mal gut an.Hab jetzt auch die ersten kleinen Versuche hinter mir.Allerdings wird das ganze garnicht so “einfach” wie ich mir das erhofft hatte. Hab ganze zwei 100Ohm Wiederstände gefunden, damit lässt sich nich viel machen in hinsicht auf Leds oder den 7-Seqment bausteinen die ich hab. Hab dann 5 Potis gefunden die ich auf 100-150Ohm gestellt bekommen hab. Allerdings wollten nicht alle Leds des Segments blinkten, muss mal das andere benutzbar machen und testen obs daran liegt.Und gerade versuche ich mich noch kurz an einem einfachem Temperaturfühler auslesen.

    • #932508
      spokekiller
      Teilnehmer

      Fein, das ist doch schon mal was! Was füe einen Temperaturfühler hast Du? Einen anlogen oder einen der digitalen, I2C / Onewire?

      Ich muß mal schauen es gibt neben den DS18 auch noch zwei andere Alternativen, wobei die Eine mE jetzt nicht so spektakulär ist. Aber die andere hat ne deutlich höhere Auflösung und ist auch über I2C ansprechbar. Preislich aber in der selben Region.

      Für einfache Sachen tuts auch ein LM35, aber wie ich schon zu Anfang mal geschrieben habe, sind die analogen Sensoren nicht so bequem.

      Cheers

    • #932523
      SirSmokeALot
      Teilnehmer

      Naja :+, hab nur an nen Bausatz gedacht der nach Temperatur nen Lüfter steuert. Das geht allerdings über einen Heißleiter mit 10kOhm wie ich feststellen musste. Weiß nich ob das praktikabel ist, aufjedenfall hab ich so noch keine gescheiten Werte rausbekommen.

      Hab mir heut mal n paar Widerstände besorgt und gleich noch ne Hand LEDs. Damit und mit nem Poti und Buttons hab ich dann heut mal etwas rumgespielt. Nix Spannendes aber man muss ja mal anfangen=).

      Das mit den 7 Segment Anzeigen wollte nicht ganz so wie ich… eine alleine war mir irgenwie zu wenig also hab ich gleih 2 genommen, damit war dann aber Steckboard recht zugebaut und alle Pins am Arduino belegt. Und irgendwo war dann irgendwas falsch und immer ein Balken ging nicht. Also morgen doch erstmal nur eins und dann das 2.

      Morgen wollt ich mal schaun ob ich nich noch irgendwo n altes 3310 oder so hab, dafür gibts ja auch ne Menge Anleitungen zum anbinden.

      Bin noch sehr Planlos im Datenblätter lesen muss ich sagen…
      zb hab ich hier nen BD244B , der sollte wohl bis 80V regeln können? Was ich dort nie richtig rauslesen kann is die Angaben über die Base… also bei nem NPN zb wie viel Volt ich brauche das er durchschaltet bzw. wieviel Volt für volles durchschalten dran muss.

    • #932542
      spokekiller
      Teilnehmer

      ******
      PLATZHALTER TUT 14.2 – Aufgewacht!!! Der Uno weckt Rechner über URL getriggert auf
      ******

    • #932540
      spokekiller
      Teilnehmer

      [SIZE=”3″]Tutorial #13 – Mit dem Arduino ins Netz… der Arduino Uno und der Ethernet-Shield[/SIZE]GrundlagenFür den Arduino Uno gibt es einige Erweiterungen, die man schlicht auf die Header der Platine aufstecken kann. Unter anderem gibt es einen Ehternetshield, der auf einem WizNet 5100 Controller basiert. Der Controller stellt dabei einen TCP und UDP Stack zur Verfügung, welche man bequem über eine der vielen Arduino-Libraries kontrollieren kann. Damit ist es u.a. möglich, beispielsweise I/O Operationen über http auf dem Arduino vorzunehmen. Beispielsweise kann man Ausgänge über simples Aufrufen einer URL ein-/ausschalten oder Digital-/Analog-Eingänge auslesen.Mir liegt der Ethernet-Shield nur in seiner einfachen Form vor. Soweit ich weiß ist mein ETH-Shield Version 2. Es gibt eine neuere Fassung R3, die u.a. PoE (Power over Ethernet) über ein zusätzliches Modul unterstützt. Das Tutorial berücksichtigt daher nur meinen R2 Shield. Es sollte aber auch relativ problemlos auf modernere Fassungen des Shields anwendbar sein.Die Hardwarehttp://www.meisterkuehler.de/forum/members/spokekiller-albums-arduino-projekte-picture3834-arduino-eth-shield.jpgDem aufmerksamen Betrachter wird auch sofort auffallen, daß der Shield einen SD-Card Slot trägt. Genauer gesagt einen micro SD-Card Slot. Dieser ist aber erst ab Version R2 inklusive auch wirklich nutzbar. Wer gebrauchte Komponenten erwirbt, sollte dies berücksichtigen.Einen Wermutstropfen gleich vorweg: man kann nicht beides gleichzeitig verwenden. Entweder den ETH-Teil oder den SD-Card Teil. Das liegt daran, daß beide über das SPI (Serial Peripheral Interface, siehe Wikipedia) angesteuert werden. Diese Ansteuerung erfolgt über den ICSP Header (siehe Bild).Der ETH-Shield belegt die Pins 11,12 und 13 auf einem Uno exklusiv für sich (Arduino Mega 50,51,52). Pin 10 wird für die Selektierung des Wiznet Controllers, Pin 4 für die SD Card genutzt. Alle diese Pins stehen Euch für die Verwendung in Euren Schaltungen und Sketches nicht zur Verfügung.Für den Mega gibt es noch einige weitere Dinge zu beachten, welche Ihr auf arduino.cc nachlesen könnt.Wenn Ihr sowohl den WizNet als auch die SD Card verwenden wollt, regeln dass idR die Libraries recht gut. Sofern man eine davon nicht benutzen will, bspw nur die SD-Card, so sagt die offizielle Doku, man müsse die andere Komponente deaktivieren. Ging bei mir bisher aber auch ohne diesen Schritt…Konkret hieße das, Pin 4 als output zu deklarieren und per digitalwrite auf „high“ zu setzen. Um den WizNet zu deaktivieren müßte man Pin 10 als high output definieren.Im Allgemeinen werdet Ihr Euch darüber nicht so sehr den Kopf zerbrechen müssen. Jedenfalls nicht für meine Tutorials. Aber es ist gut zu wissen, wenn man eigene Projekte bauen will.Weitere Details zur Verwendung der Lib und der Ansprache des WizNet Controllers findet Ihr ausführlich kommentiert in meinen Beispiel-Sketches.Der Shield bietet ansonsten eine Datenrate bis zu 100 Mbit/s, welche in der Praxis aber kaum Bedeutung haben sollte, da der auf dem Uno befindliche ATMega 328 gar nicht die Fähigkeit haben dürfte, diesen Durchsatz auch abzuarbeiten.Außerdem wichtig: der RESET auf dem ETH-Shield resettet sowohl den Arduino als auch den Shield!StromaufnahmeAnsonsten ist bei Batteriebetrieb des Arduino Uno mit dem ETH-Shield zu bedenken, daß beide ganz ordentlich Strom ziehen. Ich muß es nochmal nachmessen, aber als ich einen Auftrag für Renovatio erledigt hatte, waren meine 2.3 Ah-Akkus nach etwa 2 Stunden leer. Da sie zu dieser Zeit nicht ganz voll gewesen sein dürften, sollte man von etwa 750~1000mAh ausgehen. Davon verbrennt den Löwenanteil der WizNet 5100.…und was kommt jetzt?Im nächsten Schritt gibts ein wenig “Butter bei die Fische” und wir werden ein Tut durchziehen, in welchem wir mittels eines http-URLs eine LED auf dem Board schalten.Daraufhin kommt die Vorstellung einer Auftragsarbeit für Renovatio, bei der über URL von außen ein “Magic Packet”-Burst Rechner im lokalen Netz des Arduino aufwecken kann.AlternativenEs gibt den Arduino auch als Arduino Ethernet. Preislich gibt sich das nicht viel, nur ist der Aufbau deutlich kompakter und alles auf einer Platine. Was die belegten Pins und die Ansteuerung angeht vermute ich stark, daß diese identisch sein wird.Es gibt auch einige Klone und außerdem auch Netzwerk-Platinen auf Basis eines ENC Chipsatzes. Diese sind ein wenig billiger, sind mW aber auch sher gut ansprechbar, will sagen es gibt Libs dazu.

    • #932541
      spokekiller
      Teilnehmer

      Tutorial ist fertig 10.10.2013
      Tutorial 14.1 – Computer, Schilde auf Maximum! Äh nein, falsch — Arduino, Mach High Pin 4!!!

      Was wollen wir machen?
      Das Ziel dieses Tutorials wird es sein, einem Arduino Uno mit Ethernetshield per URL mitzuteilen, welche Digitalpins wir einschalten wollen. Das Tutorial bleibt dabei aber mit Absicht sehr einfach gehalten, denn es sollen lediglich die Grundzüge vermittelt werden, damit Ihr zukünftig Aufgaben wie die IP-Konfiguration, das Parsing von URLs etc. selbst einbauen könnt.

      Wie schwierig ist es?
      Nicht wirklich schwierig. Wer nur ein wenig Programmiererfahrung besitzt, wird sich spielend zurechtfinden. Alle Anderen brauchen wahrscheinlich nur wenig Zeit, den Code zu verstehen. Wer bisher keines der Tutorials gemacht hat, kann hier m.E. durchaus ins kalte Wasser springen. :d:

      Was benötigt man?
      privates Netzwerk (Switch/Hub, anderer Rechner, Kenntnis über den IP-Adressbereich, Ethernetkabel)
      1x Arduino UNO
      1x ETH-Shield
      6x 330 Ohm Widerstand (R)
      6x Standardtype LED, Farbe ist praktisch egal. Der Vorwiderstand R ist ggf anzupassen
      Empfohlen: Breadboard und Verbindungsstrippen, IDE 1.0.1 (oder höher), 9 LEDs mit Vorwiderstand.

      Grundaufbau:
      Baut Euren Arduino samt dem ETH-Shield auf. Das Aufstecken ist bei mir ein wenig fummelig, da der ICSP/SPI Header gerne ein wenig scheps sitzt und dadurch Uno und Shield gerne verkanten. Nicht mit Gewalt.
      Verkabelt den RJ45-Port des Shield mit dem Switch/Hub Eures Netzwerkes. Ihr könnt ihn während der Programmierung stecken lassen, das macht normalerweise nichts aus. 🙂

      Verdrahtet Vorwiderstände und LEDs an die Digitalpins 2-8.
      Benutzt bitte keine Pins mit zweistelliger Kennung. Erstens handelt der Sketch das nicht ab, zweiten sind eh die meisten davon durch den ETH-Shield belegt.

      Programmcode:
      Das Einzige was anzupassen ist, ist die IP-Adresse, damit sie auf Euer Netz paßt. Danach den Sketch/Code in die IDE bringen, und auf den Arduino flashen, siehe Anhang zu diesem Thread. Solltet Ihr Probleme haben, den Code zu validieren oder zu kompilieren, gebt mir bitte Bescheid und sagt mir auch, welche IDE Version benutzt wird. Wenn möglich wäre der Fehler en detail auch noch hilfreich.

      Wie funktionierts?
      Also gehen wir mal durch den Sketch/Code…

      1. Wir ziehen die Libraries rein, Ethernet und SPI sind beide ein Muß
      2. Jetzt definieren wir einige Parameter, die wir für den Ethernet-Teil brauchen. Eure IP müßt Ihr anpassen. Die MAC-Adresse könnt Ihr so lassen, das ist eine Dummy-Adresse.
      3. der Ethernetserver wird definiert (also der Teil Software, der auf eingehende Pakete lauscht)

      Zu void setup()
      Wir definieren die serielle Schnittstelle für eventuelles Debugging über den “Serial Monitor” der IDE.
      Wir fahren die ETH-Schnittstelle hoch und den Server. Ab JETZT sind wir wirklich im Netz.

      Zu void loop()
      Bei den vergangenen Lösungen sind wir hier mit dem Großteil unseres Sketches zuhause gewesen. Diesmal lösen wir das anders. Denn es könnte ja sein, daß wir neben dem HTTP-Gewurschtl (siehe Sketch) noch einiges anderes machen wollen, was den vorgenannten Teil nur unübersichtlich machen würde.
      Deshalb lagern wir besagtes Gewurschtl alles in eine eigene Subroutine/Prozedur “checkClient()”aus. Damit sind wir hier fertig.

      Zu checkClient()
      Per
      [code]
      EthernetClient client = server.available();
      [/code]
      Öffnen wir den Datenstrom, der über unseren Server hereinkommt. Dabei ist “client” hier kein reserviertes Keyword und dürfte auch anders heißen. Wir definieren client als “Ethernetclient” und “server.available” ist die eventuell bestehende Verbindung eines Clients zu unserem Shield.
      Mittels true/false Abfrage wird kontrolliert, ob eine Verbindung besteht, bevor wir etwas damit anstellen.
      Auch wenn die Benennung etwas strikt klingt, so sind das keine Einbahn-Verbindungen. Es kann der Server durchaus Daten zurückschicken. Vielmehr muß man das so betrachten: “wer hat die Verbindung initiiert?”. Siehe dazu auch die .available() Properties der Klassen Server und Client innerhalb der Lib Ethernet (respektive EthernetClient, EthernetServer aber dazu ganz unten mehr).

      Ab jetzt machen wir es uns so einfach wie möglich. Wir lesen und schreiben nur soviel echtes HTML, wie wir unbedingt benötigen, damit ein Browser nicht aus dem Tritt kommt.
      So prüfen wir also ab, ob wir einen Header gesendet bekommen haben und falls ja, so senden wir einen knappen HTTP 200 Response zurück, damit der Browser weiß, daß die Anfrage empfangen wurde. Dieser Vorgang wird durch das Setzen einiger boolean flags dokumentiert, sodaß wir den Header nicht mit jedem Päckchen wieder senden.

      Jetzt kommt der eigentlich spannende Teil. Mittels
      [code]
      char c = client.read();
      [/code]
      beginnen wir, den Input der nach dem empfangenen Header des Browsers kommt, zu interpretieren. Wir wollen URLS haben nach diesem Muster
      [code]
      http://192.168.100.177/?131214158714
      [/code]
      Jetzt denkt Ihr sicher “hä, Moment, Du liest doch aber nur “chars” also einzelne Zeichen und damit habt Ihr recht. Wir ignorieren alles was vor dem ersten Fragezeichen kommt und beginnen dann mit der Ausleserei Zeichen für Zeichen. Damit ist dann klar, welcher Pin geschaltet werden soll.
      Die folgende switch/case Routine wertet nun alle Möglichkeien von 1-9 aus und feuert einen Befehl an eine weitere Subroutine ab.
      Diese bewerkstelligt letztlich die eigentliche Schaltfunktion und aktiviert Pin x für einen kurzen Zeitraum und zieht ihn dann wieder nach unten. Außerdem sind wir noch so nett und drücken dem Browser einen kruden Text zurück, welchen Pin wir aktiviert haben… Und dann fangen wir von vorne an.

      ….und ACTION!
      Also, dann, Saft an den Arduino, das Ethernet eingesteckt? Die LEDs verdrahtet? Dann jetzt ab an einen PC im selben subnet und den Browser angeworfen. Zuvor könnt Ihr mit inem schnellen Ping auf die Adresse des Arduino die Verbindung testen. Sollte das nicht tun, zurück auf Anfang.

      Einen URL absetzen nach obigem Muster. Was passieren sollte ist, daß
      (a) die LEDs am Arduino in diesem Muster aufleuchten und wieder ausgehen
      (b) im Browser die Ausgabe “Turning on Pin …” kommt. Das ist in der Tat vom Arduino an den Browser zurück gesendeter Text!

      Bevor jetzt die ersten Seufzer kommen…
      Ich hab ja gesagt das ist absichtlich sehr einfach gehalten… Ich wurde oft gefragt “kann man einen Webserver auf einem Arduino laufen lassen”. Und meine Antwort war immer: “wozu denn?”
      Es gibt hundert gute Argumente gegen einen kompletten http-response stack. Wenn ich nur Funktionen schalten will, wozu muß ich denn dann komplexe Stringfolgen auswerten? Ihr müßt daran denken, daß jedes Zeichen, das ich vergleiche ja fest in meinem Code eingebettet ist und dort Speicher frißt.
      Macht es Sinn, das auf ein EEPROM oder SDE-Card zu betten? Ja, das wäre denkbar. Es gibt auch ein schönes Beispiel, wo man ein JPEG von einer SD Card per http-url abrufen kann. Aber schnell ist natürlich was anderes.
      Man wird bei einer Steuerungslösung über HTML-Seiten die Seite entweder lokal lassen oder auf einem echten Webserver liegen lassen. Mittels dort eingebetteter Javascripts oder AJAX kann man dann schöne Regler malen lassen und diese dann URLs in Richtung Arduino abfeuern lassen. Das geht bequem und schnell und spart dem Arduino ne Menge komplexe Sketches und “Stringschubserei” zurück an den anfragenden Client.

      Mögliche Erweiterung / Anpassung:
      [spoiler]
      Statt auf ein “?” zu prüfen, kann man außerdem auf ein “/on/” oder “/off/” prüfen, womit es dann möglich ist gezielt einen Pin ein/auszuschalten. Also bspw http://192.168.100.177/on/5.
      Außerdem kann man einiges an Fehlerfang Routinen einbauen.
      Was ich bspw gemacht hatte, war über einen Optokoppler an einem Digipin einen Rechner per http-URL hart zu resetten. Was auch geht sind Textnachrichten auf ein LCD, oder Relais schalten etc pp.
      Ihr müßt allerdings die Routine anpassen und nicht ein einzelnes Zeichen lesen, sondern strings, die Ihr dann parst oder zerlegt.
      Und an der Stelle wirds nochmal ein wenig komplex. Wir wissen ja nicht, wann der String zu Ende ist und da client.read() einen DatenSTROM liefert, den wir erst zum Ende der Routine schließen (client.stop()), bleiben uns zwei Möglichkeiten:
      A. Wir lesen doch wieder “chars” ein, wie oben, und prüfen auf ein Leerzeichen am Ende, welches dann das Ende signalisiert, wie in unserem Beispiel. Diese bauen wir dann zusammen in einen String, Zeichen für Zeichen, das ist ja nicht schwer. Erst dann fangen wir mit der Auswertung an.
      B. client.available() kann auch einen Pointer auf die Länge des empfangenen “Strings” zurückgeben, das sähe dann so aus:
      [code]
      int _available = client.available();
      if (_available> 0) {
      client.read(clientline, _available); // liest den URL bis zur maximalen Länge des empfangenen Stroms.
      [/code]
      Anzumerken, daß beide Methoden eine Kette aus chars erzeugen, nicht zu verwechseln mit der Klasse string. Der Nachteil bei B kann sein, daß man eine Menge Müll einliest, den der Browser oder ein Angreifer mitschickt und damit die Routine in einen Buffer Overflow zwingt.

      Ich denke das reicht jetzt. Euch dürfte teilweise schon die Birne rauchen… 😀
      [/spoiler]

      Aber … ich will doch auch was lesen!!!
      Sicher doch, das geht natürlich auch. Anstelle einer aufwendigen switch/case Routine kann man eine URL abfragen, die bspw. so aussieht http://192.168.100.177/get/sensor1
      Man fragt den Datenstrom ab, könnte diesen in einen Array zerlegen und dann die jeweiligen Wörter interpretieren, einen Analog oder Digitalsensor abfragen und den Wert per client.print() zurückgeben.
      Aber für den Anfang könnt Ihr einfach die Teile in triggerPin() anpassen, damit sie den angefragten Pin auslesen und zurückschreiben. Die Routinen dafür sind schon im Code, denn wie oben erwähnt schreiben wir ja krude Antworten zurück.

      “The usual ranting” oder was noch gesagt werden muß…
      [spoiler]Ich hatte den Code urprünglich vor nahezu zwei Jahren mal für IDE 0022 geschrieben. Dementsprechend ernüchternd lief der erste Compilerlauf.
      Hm… zu schön wäre es gewesen, wenn das auf Anhieb geklappt hätte. So flogen mir also einige Klassen um die Ohren. Bei den Nachforschungen und vor allem bei einem schnellen “Import Library ->Ethernet” wurde mir dann so einiges klar. Es hatte sich durchaus was getan. Es gab jetzt die Möglichkeit, IPAdress anstelle einer byte-declaration zu nutzen. Hmmmm… Client und Server Libs konnten getrennt eingebunden werden. Das macht besonders Sinn, wenn man wenig Speicherplatz hat und sowieso nur eine “Client” – also rein sendende – Verbindung aufbauen will. Wozu denn dazu noch den ganzen Kladeradatsch mitkompilieren den man gar nicht nutzen will. SIC!

      Schön und gut, aber durch die teilweise Abwärts-Kompatibilität sind einige Definitionen aus alten Codes noch gut, andere muß man isolieren und anpassen.
      Ein Beispiel. Wohlgemerkt lediglich Ethernt.h und SPI.h sind eingebunden:
      Geht immer noch:
      [code]
      Server server = Server(80);
      [/code]
      Sollte aber so lauten:
      [code]
      EthernetServer server = EthernetServer(80);
      [/code]

      Ging früher:
      [code]
      Client client = server.available();
      [/code]

      Geht aber nimmer und MUSS jetzt so lauten:
      [code]
      EthernetClient client = server.available();
      [/code]

      Somit werden die Schwierigkeiten beim Langzeit-Entwickeln im Arduino Feld deutlich. Sucht man Codebeispiele oder prüft die Referenz auf Arduino.cc, so finden sich viele Schnipsel, die mal gut gelaufen sind, und vielleicht auch heute noch laufen. Vielleicht aber auch nicht.
      Speziell für Anfänger ist das sicher nicht schön. Man kopiert einen Code, der an sich auch gut aussieht und kriegt das “ums Verrecken” nicht zu laufen.

      Deshalb bin ich oft so extrem deutlich und sage auch immer, wie ich den Sketch/Code kompiliert habe. Für etwas Fortgeschrittene ist es außerdem gar keine so doofe Idee, ältere IDEs noch vorzuhalten, denn dem AVR auf dem UNO ist es relativ gleichgültig, wie der Urcode aussah, solange er seinen endgültigen Maschinencode ordentlich bekommt.
      So kann man alte Schnipsel auch nochmal “schnell neu flashen/uploaden” ohnesich eine Stunde Zeit nehmen zu müssen, alles zu überarbeiten. Allerdings gebe ich auch zu, daß es speziell im Bereich der ETH-Library schon früher besonders oft (viele) Neuerungen gab.

      Alles nicht so tragisch, denn die Community ist ja groß und hilfsbereit. Dennoch gruselts mich – zugegeben nur ein wenig – grade bei dem Gedanken, den ebenso alten Sketch für das WakeOnLan-Paket für das nächste Tut überarbeiten zu müssen. Bei dem ganzen UDP Geraffel hat sich wohl auch einiges getan.
      [/spoiler]

      Ich hoffe, es hat Euch gefallen. Als nächstes kommt ein Tutorial, in welchem der Arduino diesmal als Sender genutzt wird, welcher über einen elektronischen “Event” (Taster) eine Aktion im Netz auslöst. Das bildet dann die Grundlage für eine Meßwertweiterleitung an einen Dienst (Pachube, Twitter, etc pp) oder eine DB usw usf.

      Grüße und gutes Gelingen!

    • #932531
      spokekiller
      Teilnehmer

      SirSmokeALot;502497 said:
      Naja :+, hab nur an nen Bausatz gedacht der nach Temperatur nen Lüfter steuert. Das geht allerdings über einen Heißleiter mit 10kOhm wie ich feststellen musste. Weiß nich ob das praktikabel ist, aufjedenfall hab ich so noch keine gescheiten Werte rausbekommen.
      [……]
      Das mit den 7 Segment Anzeigen wollte nicht ganz so wie ich… eine alleine war mir irgenwie zu wenig also hab ich gleih 2 genommen, damit war dann aber Steckboard recht zugebaut und alle Pins am Arduino belegt. Und irgendwo war dann irgendwas falsch und immer ein Balken ging nicht. Also morgen doch erstmal nur eins und dann das 2.
      [……]
      Bin noch sehr Planlos im Datenblätter lesen muss ich sagen…
      zb hab ich hier nen BD244B , der sollte wohl bis 80V regeln können? Was ich dort nie richtig rauslesen kann is die Angaben über die Base… also bei nem NPN zb wie viel Volt ich brauche das er durchschaltet bzw. wieviel Volt für volles durchschalten dran muss.

      Das Alles kommt mir sehr bekannt vor. Ich sag immer wieder und bemerke vor allem auch immer wieder, daß mir eine Menge an Grundlagen in der Elektronik fehlen.
      Einen Vorteil haben wir aber hier im Forum: es gibt ein paar gnädige Bewanderte, die immer wieder mal hier reinschauen und dann Tips geben.

      Das Gemeine ist manchmal, daß -auch wenn man eigentlich murkst – es doch irgendwie funktioniert und man es infolge dessen das nächste Mal wieder so macht.

      Selbst wenn man eine gute Anleitung hat kann es manchmal dennoch in die Hose gehen, bestes Beispiel meine Versuche mit dem Impulsdrehgeber… bei Phil68 hats getan und bei mir nicht ums Verr…. x( 🙁

      Wie auch immer, mir machts immer noch Spaß und wenn ich momentan den Kopf nicht in einer Menge RL-Zeugs hätte, dann käme ich auch endlich mal mit meinen eigenen Erweiterungen weiter.

      Jetzt schau mer mal, daß ich bis heute abend den ersten Teil des ETH-Tuts drinhabe. Seufz.

      Achja, und noch dazu was…. Ich würde wirklich von den analogen Temp-Fühlern abraten. Besorg Dir so nen Dallas DS18, die kosten in gut sortierten Läden zwar 1,80~2,50 pro Stück aber machen deutlich mehr Spaß.

    • #932546
      Renovatio
      Teilnehmer

      Da hast du dir was vorgenommen. Schön das du das Tut auch von meinem Auftrag nimmst, aber irgendwie hab ich es bisher noch nicht geschafft ein Arduino zu bestellen. Mal schauen ob ich noch eins anwende oder nicht. Denke aber mal schon. Erstmal geht es darum mein Zimmer fertig zu machen und denke das Arduino folgt sobald, wenn meine Boxen fertig sind.Andre

    • #932606
      SirSmokeALot
      Teilnehmer

      So gestern hab ich erstmal nen Lüfter per Poti und Transistor geregelt bekommen. Und die 7-Seqment Anzeige funktioniert auch wunderbar.Handy hab ich leider nur ein 3510i gefunden, hab ich aber auch erst gemerkt als ich es auseinander hatte*g*. Pinbelegung gibt es dazu zwar.. allerdings bekomm ich an das display keine 8 Kabel gelötet, da ist einfach zu wenig Platz bzw. ich bin noch nich geübt genug. Wobei ich auch nur 2mm starkes Lötzinn hab und es bestimmt noch dünnere Drähte gibt, könnte also noch was werden wenn ich dünneres Kabel und Lot bekomme, mal schaun.Als nächstes werd ich mir mal nen Schieberegister und Tempsensoren bestellen und wahrscheinlich dann auch gleich mal n einfacheres Display , wird das beste sein. Und am besten gleich noch son Murxer oder wie das Teil hies.

    • #932703
      Apus_Apus
      Teilnehmer

      Hallo,als Neuling mit Arduino möchte ich mein Wunschprojekt kurz beschreiben.Mit diesen Hardware Komponenten,http://www.play-zone.ch/de/digitale-waage-mit-hx711-adc-bis-3kg.htmlhttp://www.play-zone.ch/de/elektronik-kit-zubehoer/avr-arduino-freeduino/arduino-sets-bundles/arduino-uno-atmega328p-pu-mit-protoshield-v5-kompat-board.htmlhttp://www.play-zone.ch/de/snootlab-memoire-kit.htmlmöchte ich eine Waage realisieren, die bei einer spontanen Gewichtsänderung von plus oder minus X Gramm, (z.B. 30 Gramm)mit Datum und Uhrzeit das aktuelle Gewicht auf der SD-Karte protokolliert.Zu jeder Komponente gibt es auch eine Sketch-Datei. >> auf den html-Seiten der LinksWie ich die Sketche miteinander “verheirate” ist für mich noch ein Problem.:?:Wer weiß das? Ich hoffe auf Versändnis für mein Fage.Inzwischen versuche ich mich in den Programm-Syntax hineinzufinden.Wo meine Probleme liegen, zeigt vielleicht folgendes:Wie ich z.B. eine Hx711.h für die Waage wo einordnen muss, damit ich sie als Library mit # include im Sketch eintragen kann, habe ich schon heraus gefunden. Leider ist mein Wunschtermin an dem es funktionieren sollte (muss), schon Anfang April2013.:+Gruß, Apus^²

    • #932714
      spokekiller
      Teilnehmer

      Hallo Apus_Apus,also so wie ich das verstehe bist du völlig neu in dem Thema. Dann wäre es an sich gut, sich der Sache in Teilschritten zu nähern. Empfehle Dir, das Beispiel auf “http://arduino-praxis.ch/2012/02/kitreview-sd-card-rtc-logshield/&#8221; für den Logger und die Uhr durchzuspielen.Danach würde ich mir die Dokumentation der Waage genauer ansehen, denn die muß zunächst einmal geeicht sein. Danach sollte es mittels library kein großes Problem sein den aktuellen Wert der Messung aus dem ADC auszulesen und in einer Variable abzulegen. Dieser Schritt muß innerhalb des Setups im Sketch passieren.Danach kannst Du in jedem Durchlauf den Wert der Variable mit dem Wert davor vergleichen und triggerst damit je nach Gewichtsveränderung. Eine einfache IF-Klausel reicht dafür. Würde dann empfehlen, einen Sprung in eine Unterroutine zu verwenden, in welcher der Wert ggf mitsamt dem ebenfalls dort ausgelesenen Uhren-Zeitstempel auf SD Karte geschrieben wird.Der Beispielcode der in der Lib für die Waage dabei ist sagt an sich auch schon alles. Nur die Eichung muß eben sein, aber das siehst du ganz prima hier:[code]/* sample for digital weight scale of hx711, display with a HD44780 liquid crtstal monitor * * hardware design: syyyd * available at http://syyyd.taobao.com * * library design: Weihong Guan (@aguegu) * http://aguegu.net * * library host on * https://github.com/aguegu/Arduino */// Hx711.DOUT – pin 9// Hx711.SCK – pin 10#include Hx711 scale(9,10);void setup() { Serial.begin(9600); scale.setScale(705.0f);}void loop() { double weigth = scale.getGram(); Serial.println(weigth,1); delay(200);}[/code]Für ein erstes Projekt sicher nicht ganz einfach, aber 1 Monat Zeit ist an sich selbst dann reichlich denke ich.Mehr kann ich im Moment nicht dazu sagen, ich müßte die Lib zur Waage genauer studieren und dafür fehlt mir momentan ein wenig die Zeit.EDIT: hab mich vertan, Du hast ja zwei Monate. Na das reicht dann doppelt … selbst wenn Du nur zwei Stunden in der Woche am proggen bist. Nur lernen mußt Du es halt … Schritt für Schritt. Leider.

    • #932725
      Apus_Apus
      Teilnehmer

      spokekiller;502698 said:
      Hallo Apus_Apus,

      also so wie ich das verstehe bist du völlig neu in dem Thema. Dann wäre es an sich gut, sich der Sache in Teilschritten zu nähern. Empfehle Dir, das Beispiel auf “http://arduino-praxis.ch/2012/02/kitreview-sd-card-rtc-logshield/&#8221; für den Logger und die Uhr durchzuspielen.

      Danach würde ich mir die Dokumentation der Waage genauer ansehen, denn die muß zunächst einmal geeicht sein. Danach sollte es mittels library kein großes Problem sein den aktuellen Wert der Messung aus dem ADC auszulesen und in einer Variable abzulegen. Dieser Schritt muß innerhalb des Setups im Sketch passieren.

      Danach kannst Du in jedem Durchlauf den Wert der Variable mit dem Wert davor vergleichen und triggerst damit je nach Gewichtsveränderung. Eine einfache IF-Klausel reicht dafür.
      Würde dann empfehlen, einen Sprung in eine Unterroutine zu verwenden, in welcher der Wert ggf mitsamt dem ebenfalls dort ausgelesenen Uhren-Zeitstempel auf SD Karte geschrieben wird.

      Der Beispielcode der in der Lib für die Waage dabei ist sagt an sich auch schon alles. Nur die Eichung muß eben sein, aber das siehst du ganz prima hier:

      Den Code habe ich hier mal raus genommen, er steht weiter oben.

      Für ein erstes Projekt sicher nicht ganz einfach, aber 1 Monat Zeit ist an sich selbst dann reichlich denke ich.

      Mehr kann ich im Moment nicht dazu sagen, ich müßte die Lib zur Waage genauer studieren und dafür fehlt mir momentan ein wenig die Zeit.

      EDIT: hab mich vertan, Du hast ja zwei Monate. Na das reicht dann doppelt … selbst wenn Du nur zwei Stunden in der Woche am proggen bist. Nur lernen mußt Du es halt … Schritt für Schritt. Leider.

      Hi spokekiller,

      danke dass Du so detailliert antwortest.
      Die Struktur dieses Forums ist mir von einem anderen Forum auch schon vertraut und ich fühlte mich hier gleich gut aufgehoben.
      Ich habe Meisterkühler leider erst so spät entdeckt.
      Momentan experimentiere ich nur mit einem geliehenen Arduino Duemilanove 😉
      Auf mein bestelltes eigene Equipment warte ich noch, kommt vielleicht schon morgen.
      Dort wo ich mir den Arduino ausgeliehen habe, kann ich leider keine Hilfe erwarten.

      In den Sketches müsste ich doch sehen, ob sich die Shields kaskadi