Sehr geehrte uC-Programmierer :D
Habe gerade eine Regelung für mein Aquarium entworfen.
Dafür messe ich diverse analoge Werte und habe zum anpassen der Werte
einen Zweipunktregler gebaut. Spreche ca. 8 Relais dafür an :)
Da mir die SPS auf ~1000 € gekommen ist und das absolut
unverhältnismässig teuer ist, wollte ich gerne diese Regelung mit einem
Mikrocontroller nachbauen.
Da meine Kenntnisse dahingehend allerdings gleich 0 sind, da ich das
damals in der Schule gelernte leider wieder vergessen habe, wollte ich
euch fragen wie ich das am besten angehe...also welcher da passen würde,
was ich brauche usw. Habt ihr da Tipps für mich? Wäre mega dankbar.
Lg Dominik und noch einen schönen Tag :)
> Dafür messe ich diverse analoge Werte und habe zum anpassen> der Werte einen Zweipunktregler gebaut.
... der wahrscheinlich ein Ventil schaltet, durch welche 'Gegenmittel'
zugeführt werden. Richtig?
D.h. du hast das Problem, das du zumischt und dann eine zeitlang warten
musst, bis die Durchmischung im Aquarium soweit fortgeschritten ist,
dass du wieder einen realistischen Messwert hast.
Ganz genau so ist es :))
Aber als Problem hätte ich das jetzt nicht bezeichnet. Funktioniert mit
der SPS eigentlich ganz gut :)
Nur in Sachen Mikrocontroller hab ich da keine Erfahrung nur mit SPS,
wäre aber für meine Zwecke viel besser, da günstiger :)
Lg Dominik
Dominik schrieb:> Ganz genau so ist es :))> Aber als Problem hätte ich das jetzt nicht bezeichnet.
Na ja.
Problem nicht gerade.
Ich würds so machen.
Aus der Abweichung errechne ich eine Korrekturmenge (die zb
experimentell bestimmt wurde) und die so bemessen ist, dass ich nicht
übers Ziel hinausschiesse. Man kannt ja seine Pappenheimer und weiß
ungefähr, wieviel zur pH Korrektur bei welcher Abweichung zuzusetzen
ist.
Und das mach ich halt alle paar Minuten wieder mal.
Messwert aufnehmen - Korrekturmenge ermitteln - zusetzen
Bei der Temperatur ist das sowieso eher unkritisch. Temperatur zu
niedrig - Heizung ein, Temperatur zu hoch - Heizung aus. Bei den
Zeitkonstanten im Aquarium ist das alles ziemlich unkritisch.
> Nur in Sachen Mikrocontroller hab ich da keine Erfahrung
So wild ist das auch wieder nicht. Ich würd da erst mal etwas C lernen
und dann ist das ein Standardaufsatz: Timer erzeugt einen Basistakt, in
der ISR wird die Zeit runtergeteilt, Jobflag gesetzt dass es wieder an
der Zeit ist einen Korrekturzyklus einzulegen, der dann auch
durchgeführt wird.
Ansonsten
Etwas generelles Wissen, wie man so mit AVR arbeitet
*** AVR-Tutorial ***
Erste Schritte in C am besten auf dem PC mit einem guten Buch
( zb Kernighan&Ritchie Programmieren in C )
und danach den µC-spezifischen C Teil drüberstreuen.
*** AVR-GCC-Tutorial ***
Adam schrieb:> Hallo,>> und schon habt ihr wieder einen Anfänger verscheucht! Gratuliere!>> Adam
Warum hast du es nicht besser gemacht?
Im Gegensatz zu Karl Heinz Buchegger findet man dich hier ja mindestens
20 mal pro Tag jemandem helfen, während Karl Heinz eigentlich nur
Anfänger verscheucht...
was machst genau mit der sps?
kleine sachen kannst mit der µsps erledigen.
ist so ähnlich wie ne logo.
als controller dient n atmega32 + die firmware 0.88.
programmiert wird mit eagle + der µsps erweiterung v0.88.
programmieren muß man nicht können aber es ist günstig wenn man mit und
, oder , nicht umgehen kann.
mfg
Das Problem wird sein, wenn man kein Interesse an uC, will man nur
schnellstmöglich das Problem lösen und nicht lange rumsaften mit
Büchern. Dazu kommt die Einarbeitungszeit.
Gegenvorschlag, gegen Bezahlung mache ich ne Platine incl. Programm.
Lieferzeit ca. 4 Wochen.
Ingo
Ingo schrieb:> Das Problem wird sein, wenn man kein Interesse an uC, will man nur> schnellstmöglich das Problem lösen und nicht lange rumsaften mit> Büchern. Dazu kommt die Einarbeitungszeit.
stimmt !
bin mit analogkram gut ausgelastet.
m-s-r kram mach ich daher mit der logo oder mit der µsps .
hab weder zeit noch lust mich auch noch mit controllern zu beschäftigen.
hab die atmega auch nur für die sps im schrank.
mfg
Nönö, ihr habt mich doch ned verscheucht :)
Also großen Dank an alle die hier mitmischen...kam grade erst wieder an
einen PC.
@ Ingo:
Danke für das Angebot, aber ich hab großes Interesse an der Sache und
hab auch kein Problem mich da zu informieren, mich einzuarbeiten.
Bin da auf was interessantes bei Conrad gestoßen, wäre das ok um mich
einzuarbeiten, oder verschwendetes Geld, da schon sehr teuer:
http://www.conrad.at/ce/de/product/191026/MYAVR-EINSTEIGERSET-MK2-USB-PLUS/0213028&ref=list
uSPS klingt sehr interessant :D Was kann ich mir da drunter vorstellen?
Mit AND, OR, NOT hab i kein Problem, aber bräuchte da auch noch
Vergleicher zB <= oder >= um mir die Schalthysterese zu basteln.
Danke für eure Hilfe, echt SPITZE von euch :))
Lg Dominik und GUTE NACHT :)
Karl Heinz Buchegger schrieb:> Und das mach ich halt alle paar Minuten wieder mal.> Messwert aufnehmen - Korrekturmenge ermitteln - zusetzen
Da würde ich noch mal über die Zeitkonstanten nachdenken. Um in ein
"paar Minuten" alles halbwegs homogen zu verteilen, müssen die Fische
schon ganz schön strampeln bzw. von einer kräftigen Pumpe unterstützt
werden.
Besser ist, sich nach der Zugabe einer Dosis den Zeitverlauf der
Messwerte aufzuzeichnen. Dann hat man sowohl die Zeitkonstante als auch
die erforderliche Dosis für eine bestimme Parameteränderung und kann die
Dosierpumpe entsprechend steuern.
Dominik schrieb:> uSPS klingt sehr interessant :D Was kann ich mir da drunter vorstellen?> Mit AND, OR, NOT hab i kein Problem, aber bräuchte da auch noch> Vergleicher zB <= oder >= um mir die Schalthysterese zu basteln.
moin !!
eingänge analog :5 ( 0 ...5 oder 0 ...10v )
eingänge digital :8
ausgänge digital :7
ausgang pwm :1
4*20 lcd / 44780er controller
batt. gepufferte uhr mit ds1307
ext. 8kb eeprom
i2c anschluß für erweiterungen
isp
rs232
4 systemtasten
erweiterung 8* dig. eingang , 4*dig. ausgang
gib mal ne mailadresse dann kann ich dir ne pdf schicken (handbuch).
da werden alle blöcke u.s.w. beschrieben.
mfg
so eine uSPS klingt ja ganz interessant, aber ist für mich vermutlich
nicht das richtige...
die Messumformer welche ich im Einsatz habe, liefern mir 4-20mA Signale
und im großen und ganzen komme ich mit dir Anzahl der IOs nicht ganz
zurecht. :/
@Ingo:
Muss ich dir recht geben, da dieses Projekt auch nicht weiss Gott welche
Eile hat, lieber will ich es richtig angehen und am Ende ein Produkt
haben auf welches ich stolz sein kann :)
@Werner:
Das mit der Zeitkonstante ist nicht das Problem, verwende zum
Durchmischen eine Luftpumpe auf Ausströmersteine und da geht das ganze
in unter einer Minute :)
Lg Dominik
Ehe du anfängst dir Hardware zu kaufen solltest du klären ob und wie
aufwändig deine Sensoren da dran passen, und ob dir Programmierung mit
Assembler oder C dein Ding ist.
Das kann man auch erst man mit Simulatorprogrammen bwz C auf dem PC
ausprobieren.
Viel Spass und viel Erfolg
Ja, mit den Arduinos kannst du so loslegen.
Du brauchst im Endeffekt erstmal nur die Basisplatine. Kann per USB
programmiert werden, und die IDE gibts auf der Homepage zum downloaden.
Wenn du sonst keinerlei Ausrüstung hast, dann macht so ein Starterkit
mit Steckbrett usw schon Sinn
Dominik schrieb:> Zum Arduino:> http://www.physicalcomputing.at/shop/article_A-1111000/Einsteiger-Kit-mit-Arduino-Uno-R3.html?shop_param=cid%3D5%26aid%3DA-1111000%26> Wäre das etwas geeignetes? Sieht vernünftig aus und der Preis ist> absolut ok, für ein Kit :) Kann ich dann quasi schon loslegen mit> Programmieren ?
Leg doch erst mal deine Anforderungen fest.
* Welche Sensoren hast du? Welche Anschlüsse (Analog/Digital)
brauchst du für jeden Sensor?
* Wie siehts mit Tasten aus? Wenn ja, wieviele?
* Brauchst du ein LCD?
* Wie siehts mit einer Uhrzeit aus? Soll der µC zb auch die Licht-
steuerung in deinem Aquarium übernehmen? Dann wirst du eine Uhr
brauchen. Da gibts wieder 2 Möglichkeiten: entweder eine Uhr, die
bei jedem Stromausfall neu gestellt werden muss oder einen IC,
der (wie beim PC) die Uhrzeit laufend mitführt. Auch ein DCF77-
Empfänger wäre eine Möglichkeit, wie man an die aktuelle Uhrzeit
kommen kann.
* Was fällt dir sonst noch ein, was du mit dem µC verbinden willst?
Damit hast du dann dein 'Mengengerüst' für die notwendigen Anschlüsse.
Und dann kannst du einen Kit suchen, der diese Anzahl an Anschlüssen
mitbringt.
Also, ich habe 5 analoge Eingänge 4-20mA und 5 digitale :)
Ausgänge habe ich 15 digitale :)
Tasten brauche icheigentliche keine und ein LCD ist auch nicht zwingend
erforderlich.
Eine remanente Uhr is auch notwendig wie du schon richtig sagst fürs
Licht :D
Lg
Dominik schrieb:> Also, ich habe 5 analoge Eingänge 4-20mA und 5 digitale :)> Ausgänge habe ich 15 digitale :)> Tasten brauche icheigentliche keine und ein LCD ist auch nicht zwingend> erforderlich.> Eine remanente Uhr is auch notwendig wie du schon richtig sagst fürs> Licht :D
Und wie stellst du die Uhr, bzw. die Lichtzeiten ein? :-)
Und ich wette, die Messwerte werden dich auch interessieren.
(Also brauchst du Tasten und mindestens ein LCD)
Edit: von der Erleichterung, die dir ein LCD bei der Programmentwicklung
bringt, gar nicht erst zu reden. Das Schlimmste, gerade für jemanden mit
wenig Erfahrung, ist Programmentwicklung nach der Methode "Stochern im
Nebel".
Hallo Dominik,
du brauchst also schon mal einen AVR mit mindestens 30 oder mehr freien
Pins ( 5+5+15+LCD ). Mit dem Mega 8 wie beim myAVR MK2 Board kommst da
nicht so einfach um die Runden. Aber denkbar ist folgendes Konfiguration
wenn du bei dem übrsichtlichen M8 bleiben möchtest:
* m8-Board dort nutzt du die Analogen Kanäle und hängst das LCD dran
* USB To UART Bridge für Konfiguration
* TWI Echtzeituhr
* zwei TWI Portexpander
der Zweipunktregler ist nicht schwierig den baust dann ungefähr so:
1
...
2
// weiter oben im Deklarationsteil
3
#define SENSOR1_MIN 100
4
#define SENSOR1_MAX 200
5
...
6
7
...
8
// Zweipunktreglung
9
if(sensor1.getValue()<SENSOR1_MIN)
10
aktor1.on();
11
if(sensor1.getValue()>SENSOR1_MAX)
12
aktor1.off();
13
...
Für die Konfiguration baust dir nen kompfotables PC-Programm mit GUI...
die Konfig-Daten sendest dann per USART an den Kontroller ;-)
Aber mit einem Hat Karl heinz recht ... erst mal lernen lernen nochmals
lernen :-D
Gruß J.
@ Karl Heinz:
Da hast du recht, in diesem Sinne macht das LCD selbstverständlich
Sinn...
ich dachte ich kann wie bei einer SPS online gehen und meine Werte
beobachten, bzw. so die Uhr einstellen, aber wenn dann gleich ordentlich
mit Display und Anzeige der Werte :)
@ Jahat:
Danke für diese tolle Zusammenstellung.
Gebe dir und allen anderen natürlich Recht das jetzt mal Lernen angesagt
ist.
Ich wollte euch nur bitten mir eine Hardwareempfehlung zu geben, was ich
denn alles brauche, würd gerne Learning by Doing machen, kann mir dann
darunter besser etwas vorstellen als so ganz ohne irgendetwas :)
Lg Dominik
Dominik schrieb:> @ Karl Heinz:> Da hast du recht, in diesem Sinne macht das LCD selbstverständlich> Sinn...> ich dachte ich kann wie bei einer SPS online gehen und meine Werte> beobachten, bzw. so die Uhr einstellen, aber wenn dann gleich ordentlich> mit Display und Anzeige der Werte :)
Kannst du natürlich auch machen.
Aber willst du wirklich jedesmal deinen PC hochfahren, nur weil du die
Temperatur ablesen willst?
> Ich wollte euch nur bitten mir eine Hardwareempfehlung zu geben, was ich> denn alles brauche, würd gerne Learning by Doing machen, kann mir dann> darunter besser etwas vorstellen als so ganz ohne irgendetwas :)
Arduino wurde ja schon genannt. Auch wenn die Meinungen auseinander
gehen: Ich halte das nicht für schlecht. DIe Arduino IDE muss man ja
nicht nehmen (bringt aber in dem Fall auch keine Nachteile wenn man es
tut). Der bestechende Vorteil der Arduinos ist meiner Meinung nach: Der
ganze Themenkreis "Programmer" bzw. Kontaktaufnahme vom PC zum µC ist
mit einem Arduino schon erledigt. Und sowas kann sich schon zu einer
ersten ernsten Hürde ausarten.
Und preislich halten sich die Arduinos auch im Rahmen.
Hast du natürlich vollkommen recht !! :D
So ein Display is eigentlich dann schon sehr praktisch, ja fast schon
notwendig in der Praxis :)
Werde in Punkto Arduino nochmal genauer nachforschen was für mich da in
Frage kommen würde und dann vermutlich wieder mit Fragen auftauchen :DD
Vielen Dank für eure Unterstützung!!
Lg und GUTE NACHT
Dominik schrieb:
Hui. Das ist ja ein ordentlicher Bolide :-) Soviel Flash Speicher
brauchst du nie und nimmer. (mit 32K wärst du mehr als üppig bedient).
Aber wenn er die Anschlusszahlen hat, die du brauchst, passt das.
50 Euros schrecken mich da jetzt nicht besonders.
> Und ausser einem USB Kabel sollte ich auch schon nichts mehr brauchen um> das alles zum Laufen zu bringen oder was meint ihr ?
Stromversorgung.
Aber eine 9V Wandwarze (Steckernetzteil :-)) hat man meistens noch im
Haushalt von bereits ausrangierten Geräten übrig.
Uhrenmodul (RTC) würde ich mir noch überlegen.
Hahahaaa, ja die Handwarze war klar :D
Dann nehme ich noch ein RTC mit dazu :)
Mir fällt gerade auf ich brauche im weiteren ja noch 15 5V Relais
richtig? Wie sind solche Komponenten, Relais, RTC..denn anzuschliessen?
Lg
Nur mal so als kleiner Input meinerseits.
Ihr ratet ihm hier zu Displays und RTC (die wahrscheinlich per IIC
ausgelesen werden müssen) und der Threadersteller hat noch keine Zeile
programmiert? Wie stellt ihr euch das bitteschön vor?
An den Threadersteller: Ich würde das Etappenweise angehen. Bis du nur
schon mal den A/D Wandler so wie du willst zum Laufen kriegst und ab
einem gewissen Messwert dann auch noch was bestimmtes machst wird dich
schon einen Haufen Zeit kosten, da du, wie du sagst, keine Ahnung hast
von C resp. µC's.
Das Display ist sicher eine super Erweiterung und der RTC sowieso aber
gerade eine Uhr ist etwas, wobei ein C Anfänger sehr viel lernen kann!
Ich würde deshalb auf jeden Fall probieren das mit der Uhr selbst
hinzukriegen (sobald du das mit dem A/D Wandler geregelt hast).
Und was ich dir auch noch raten könnte: Nichts überstürzen :) C braucht
Zeit.
Gruss
Gordon
Ah ja und ein Relais schliesst man über einen FET oder einen anderen
Transistor einfach an einen Pin des µC's. Und nur so aus Interesse, wie
gross sind deine Kenntnisse bezüglich Elektrotechnik resp. Elektronik?
Gruss
Gordon
gordon51freeman schrieb:> Nur mal so als kleiner Input meinerseits.> Ihr ratet ihm hier zu Displays und RTC (die wahrscheinlich per IIC> ausgelesen werden müssen) und der Threadersteller hat noch keine Zeile> programmiert? Wie stellt ihr euch das bitteschön vor?
Genauso wie bei allen anderen.
Tutorium durcharbeiten, C lernen, die Dinge in Betrieb nehmen.
Das das alles nicht von heute auf morgen geht, ist klar. Das ist auch
ihm klar.