Freitag, 20. November 2015

10. Arduino & ATtiny

Inhalt
- Arduino 
- ATtiny 


Arduino

Was die Programmiertechnik (Skripte)angeht,  für Fragen und Hilfestellungen um den Arduino bist Du hier richtig:
http://forum.arduino.cc/index.php?PHPSESSID=9e4aba9d0779caeb274f9b70c690bdac&board=31.0
http://www.arduinoforum.de/arduino-Forum-Arduino-Projekte

Was brauche ich noch? Elektronikwissen um Transistor, Diode, Wiederstande usw.
http://www.elektronik-kompendium.de/
 
Beim Arduino ist ein Prozessor aus der Atmel- Familie verbaut.
Entscheidend ist nicht die Bezeichnung des Boards (Nano, Uno, Mega usw) sondern der verbaute Chip (Atmega 168, 328, 1280, 2520). Ports (also Aus- u. Eingänge) haben für unsere Belange alle Chips genug. Insbesondere der Flash- Speicher auf dem Chip, wo der Maschienencode für das Programm liegt, macht hier zB bei einer Serveranwendung schnell einen Strich durch die Rechnung.

Und wegen des Speichers habe ich mich für einen Mega 2520 entschieden und gleich 2 für je 12 € über Amazon erstanden. Wahrscheinlich hätte es auch ein 328-iger getan (zB Uno, Nano), aber so habe ich genug Reserve an Ports, Arbeitsspeicher und PWM- Ausgängen. Und der Preis ist super. Ein Ethernetshield mit Kartenslot macht den Mega auch noch als Server tauglich (das heist Datenübergaben nicht nur für Internet, sondern auch ohne Internetanbindung für Verbindungen via Netzwerkkabel an den PC) und Daten können lokal auf der Micro-SD- Karte gespeichert werden!
Eine Relais-Karte für 5 € und ein RTC- Modul für den Zeitstempel der Temperaturmessungen runden das vorerst ab. Ob die Relaiskarte die Lüfter schalten wird oder ich per FET und PWM den Lüfter mit 3 Geschwindigkeiten steuere, weis ich noch nicht. Die Lüfter und den Servo kann ich nicht direkt über den Arduino steuern, da die Ports max 40 mA vertragen! Also ist ein bisschen Elektronik drumherum notwendig.

Was schwebt mir eigentlich vor?

Ein Überhitzungsschutz a la Veco ist für meine Kollis nicht nötig. Bei unter 90 Grad im Stillstand ist alles ok.
Laut Wiki entzündet sich Holz erst ab 280 Grad, Kunststoffe ab 200 Grad, Polyethylen ab 350 Grad.
Temperaturstabil sind die Doppelstegplatten bis 125 Grad, andere Kunststoffe aber nur bis 40 Grad (Siehe Veco).

Der Arduino soll in meinem Fall den Lüfter einschalten bei 5 Grad über Zimmertemperatur um Anfangs das Takten zu verhindern. Der Kolli läd sich quasi auf.
Zusätzlich den Servo für die Luftklappe auf.
Bei 0 Grad Differenz Lüfter aus. Bei Differenz -2 Grad Servoklappen zu um bei Bewölkung den Lüfter ausgehen zu lassen aber nicht ständig Klappen auf und zu. Die Werte können ja noch angepasst werden, je nach Zufriedenheit.

Ich möcht gleich die Temperatursensoren für die Aufzeichnung/ Leistungserfassung benutzen. DS1820 habe ich günstig erstanden( 1,70 €/ Stk) und die lassen sich ohne weiteres direkt am Arduino betreiben. (1 Wire Bus, ich brauche keine Analog/Digital- Wandler).

Sensor an Stiftsockelleisten anlöten und dann in Stiftsockelbuchsen auf Platine stecken, --> dann lassen sich die Sensoren einfach austauschen.
Ein Aussentemperatursensor,
pro Kolli ein Sensor am Lüfter im Luftweg nach innen, für jedes Zimmer ein Sensor. 
Später auch evtl. Feuchtesensor. Und eine aktive Abluft auf der Nordseite um Wärme im Haus besser zu verteilen. Mal schauen.
Bei einem "umgedrehten" Kolli würde ich zusätzlich einen Sensor Nähe Lufteingang bzw. "oben" platzieren. Temperaturdifferenz wird dann von dem Sensor bestimmt, der die höhere Temperatur hat.
Vieleicht ist das aber auch nicht nötig, aber das läst sich ja dann im Praxisversuch feststellen.


Und es läst sich wunderbar eine Startsequenz erstellen. Erst Kolli1 Servoklappe auf, dann Lüfter an. Als nächstes Kolli 2. 
Ich hatte den Fall, das zugleich beide Kollis eingeschaltet haben (4 Lüfter a 0,3 A und 2 Servomotoren). Das hat mein Netzteil (2.2 A) nicht gepackt!
Die Spannung brach zusammen durch die Anlaufströme der 6 Motoren. 
Das gleiche Phänomen habe ich auch bei Verwendung eines Solarmodules! Hier könnte zB eine Routine erst ab einer bestimmten Spannung am Modul die Startsequenz starten.

Auch besteht eine Verbindung von Kolli1 zu Kolli2, derzeit ist diese zu. Bei Bedarf könnte ich per Servo mit einer Klappe beide Kollis zu einem Kolli 5 qm verbinden und evtl. schon bei schwacher Sonne Wärme ernten. Oder Umluftbetrieb. Oder im Sommer Nachts das Wohnzimmer kühlen. Alles vollautomatisch! Ich muss mir dazu nur die richtige Programmierlogik ausdenken.

Diese 4 Komponenten sollen den Arduino zur Eierlegendenwollmilchsau machen:
- Temperaturlogger mit DS1820
- Serverbetrieb, Update auf PC ermöglichen (per Lan an Router -> per WLan dann abrufbar )
- Luftklappensteuerung/ Servosteuerung
- Lüftersteuerung/ Drehzahlsteller/ Luftvolumen auslesen

später auch das:
(und das sind Zusatzfunktionen, die nur programmiert werden müssen denn die Hardware ist ja schon vollständig, mit Ausnahme Display und Erweiterungen)
- Leistungsermittlung und Aufzeichnung
- Anzeigen verschiedener Parameter auch ohne PC per LCD- Display
- Update ins Web?
- Sommer: mit Nachtluft kühlen/ Winterbetrieb: mit Solarertrag heizen
- Umluft oder Zusammenschaltung der Kollis
- evtl auch eine Funktionsüberwachung mit Fehlerspeicher, funktioniert alles in vorgegebenen Parametern? (Stromaufnahme, Aufzeichnung, Servo, Sensoren usw)
- Erweiterung der Steuerung/ Aufzeichnung auf 4 weitere FassadenKollis (Balkon & Erdgeschoss); Ports sind genug da! Abluftsteuerung auf der Nordseite.

Ich habe mal die Beispiele aus der Arduino- IDE einzeln ausprobiert (Server, Logger (txt. Datei und csv.Datei auf SD-Karte), Temperaturerfassung mit 1 Wire Bus und Servoansteuerung). Das lief super! 
Ich muss mir also nur die richtige Verschaltung der Elektronik und die Programmierung ausdenken bzw aus diesen Beispielen zusammen friemeln.


Update 24.03.16:
Bei mir dauerts noch (bin gerade mit Photovoltaik beschäftigt) aber hier wurde nun eine Steuerung und Logger mit Serveranbindung umgesetzt. Da werde ich mich bestimmt bedienen (warum das Rad noch mal erfinden?) *grins*
http://www.mahnecke.de/Black300-Forum/thread.php?board=28&thread=45&page=4#35
Schick ist auch die Möglichkeit, mal "life" die Temperaturverläufe mit anzusehen, Danke Highway.
Mal schauen, wie lange wir mit gucken dürfen....



Praxisumsetzung: 

wenn ich soweit bin...gehts weiter.....

ATtiny85
Einer der kleinen Brüder aus der Atmel- Familie.
5 Stück incl. Sockel habe ich mir für 11 € gegönnt. 

Der Vorteil ist die (eingeschränkte) Kompatibilität zum großen Bruder. Ich muss also nur eine Programmiersprache lernen. (Arduino IDE ->eingeschränktes C/ C++, Alternativ geht auch Basecom oder Assembler, aber warum sollte ich?). 

Und ich kann ihn über den Arduino flashen/ programmieren! Auch das habe ich ausprobiert. Mein "Blink-Dings" mit dem ATtyni85 hat geblinkt. Das ging ganz gut, nach einigen Versuchen und nachdem ich nochmals nachgelesen habe, die Fehlermeldungen in der Arduino-IDE beim flashen einfach zu ignorieren. Gute Anleitung gibt es hier:
http://www.frag-duino.de/index.php/maker-faq/37-atmel-attiny-85-mit-arduino-arduinoisp-flashen-und-programmieren


Der ATtiny ist für "einfache" Aufgaben gedacht auf Grund seiner beschränkten Ports und des kleinen Arbeitsspeichers. Es ist zwar ein nur eingeschränktes Repertoire der Arduino- Sketche/ Schlüsselwörter möglich, aber für Servomotor- Ansteuerung reicht es. Und für eine Temperaturdifferenzsteuerung mit Hysterese auch.

Da ich mit meiner analogen Temperaturdifferenzsteuerung (siehe oben) soweit zufrieden bin, soll erst einmal nur die Servoklappensteuerung ersetzt werden. Vieleicht werden auch Temperaturdifferenzsteuerung und Servoansteuerung im ATtiny vereint. Da werden die Ports am ATtiny85 aber knapp, mal sehen.
Ein Temperaturlogger ist durchaus auch möglich. http://forum.arduino.cc/index.php?topic=55513.0 
Für einen Temperaturlogger, wie ich ihn haben will, reicht es allerdings nicht!

Und der Attiny darf nur mit 5 Volt betrieben werden! Also ist ein Schaltreglermodul DC-DC Step-Down LM2596S für 2-3 € bei Betrieb mit 12 Volt Pflicht.

Das habe ich gefunden und sollte für die Servoansteuerung taugen, evtl noch anpassen.
http://elektronik.kaibareis.de/servo_ctrl/
http://elektronik.kaibareis.de/servo_ctrl/ATTINY13%20Servo%20CTRL.pdf
Das werde ich bei Gelegenheit mal "fliegend " aufbauen, den ATtiny programmieren und testen.......


Praxisumsetzung: 


wenn ich soweit bin...gehts weiter.....


Keine Kommentare:

Kommentar veröffentlichen