Hallo, ich arbeite zur Zeit an einer Diplomarbeit und muss dafür einen µC programmieren. Ich habe ein STK500 bekommen um damit mal ein bisschen "herumzuspielen" Bis jetzt habe ich mit dem Atmega8515 gearbeitet der beim STK500 dabei war. Bei meinem Projekt wird ein Motor abhängig von der Durchflussgeschwindigkeit eines Mediums, die mit einem Sensor gemessen wird, gesteuert. Das Verhältnis soll auch in irgendeiner Form einstellbar sein. Evtl. wird noch ein Drehzahlsensor am Motor installiert um einen Rückgabewert zu erhalten wie schnell der Motor tatsächlich läuft. Der Atmega8515 hat leider keinen A/D-Converter (für das einlesen der Sensorwerte). Darum die Frage welcher µC ist sinnvoll zu verwenden? Ich bin leider noch totaler Anfänger was die µCs angeht und bin auf eure Hilfe angewiesen. mfg OmasterO
Sry das hab ich noch vergessen: Ist es evlt. sinvoll mit dem Atmega 8515 weiterzuarbeiten und einen externen A/D-Converter zu verwenden bzw. selber einen zu basteln?
Hallo OmasterO, in der Elektor 7-8/2008 wird ein Kraftstoffmesser für ein UL auf Basis eines ATmega8 beschrieben. Das könnte Dir die Frage "Wie messe ich die Durchflussgeschwindigkeit eines Mediums" beantworten. Als Durchflussmesser wird ein Digimesa Flowmeter verwendet. Der dort eingesetzte ATmega8 kann auf dem STK500 programmiert werden. Für die Motorregelung solltest Du mal ein paar mehr Informationen geben. Klingt aber machbar. CU yg39dmja
Zunächst einmal sollte in einer Diplom-Arbeit nicht GEBASTELT sonder zumindest Ansatzweise zielorientiert und wissenschaftlich gearbeitet werden. Immerhin willst du Diplom-Ingenieur und nicht Bastler werden ;) Also, was genau ist nun dein Problem? Werde dir zunächst erstmal darüber klar WELCHE Größen (Drehzahl, Durchfluss, ...) du in welcher Form (analoge Spannung von Vmin..Vmax, digitales Signal 0/1, Pulsweiten-Moduliertes Signal, per Bus SPI/I2C, ...) auswerten musst und wie sich daraus die Stellgrößen ergeben. Je nachdem was für Signale kommen, könnte auch der in manchen AVRs verbaute ADC zu langsam/ungenau sein. Daraus ergeben sich für dich wichtige Informationen darüber, wieviele Pins dein Controller brauchen wird, wie schnell er auf Ereignisse reagieren können muss und wie kompliziert die Software werden wird. Das sind alles Sachen die du zunächst von deinem Betreuer in Erfahrung bringen musst, damit es nachher nicht heisst du hast das Thema komplett verfehlt oder in den Sand gesetzt ;) Und jetzt kommts: Danach kannst du dann einen Controller auswählen. Der Atmega8 ist sicher als Ausgangs-Basis schonmal nicht schlecht um ein wenig mit den AVRs warm zu werden. Allerdings könnte er sich allerdings auch als zu klein heraustellen. Um das herauszufinden muss man die Anforderungen schon etwas genauer kennen. Den archaischen Mega8515 würde ich allerdings im Museum lassen und etwas zeitgemässeres wie z.b. den Atmega16A oder ähnliches einsetzen. Die sollten auch im STK500 laufen.
Du solltest einen moderneren AVR benutzen, z.B. den ATmega644P. Die alten ATmega16/32 sollte man nicht mehr für Neuentwicklungen nehmen. Peter
Nun.., ja .., ich bin ziemlich sprachlos! Ronny hat ja schon das Meiste geschrieben. >Der Atmega8515 hat leider keinen A/D-Converter (für das einlesen >der Sensorwerte). Und auch hier: Wer sagt denn, daß Du einen ADC brauchst? Es gibt soooo viele Sensoren mit digitaler Schnittstelle heutzutage ... Wie Ronny schon schrieb: Arbeite vernünftig/logisch! Das ist der Sinn der Diplomarbeit. Und das heißt u.a., daß man einen Schritt nach dem anderen macht und nicht z.B. mit der Dankesformulierung anfängt. Wenn Du jetzt fragst "Warum das denn nicht, die kommt doch aber am Anfang der gedruckten Diplomarbeit?", dann suche bitte blitzartig und aufrichtig Hilfe bei Deinem betreuenden Prof., um zu retten, was noch zu retten ist. Wenn Du nicht fragst, hast Du es wohl doch verstanden. Es muß doch erstmal eine konkrete Aufgabenstellung geben. Dann trägt man die "Variablen" zusammen. Es wird eine Strategie entwickelt. das wird dann im Detail ausgearbeitet. etc., etc., etc. Und der Betreuer wird immer aktiv informiert (um Rat fragen ist damit nicht gemeint!), um u.a. einzugreifen. Das ist ja auch eine seiner Aufgaben! Tip: Ordne/strukturiere Deinen ganzen "Krempel" mal noch einmal; trete ein paar Schritte zurück, wie man so schön sagt, und verschaffe Dir eine Gesamtüberblick.
@Peter: Der Atmega16 ist bei Atmel schon garnicht mehr in der Produktübersicht. http://atmel.com/dyn/products/devices.asp?family_id=607 Ich bezog mich auf einen der unzähligen Nachfolger, nämlich die Variante Atmega16_A_. Neuerdings gibt es sogar neben den paar AT90USBxx noch einige mehr AVRs mit USB :) Hat jemand mit denen schonmal etwas gemacht?
Hallo, zunächst vielen Dank für die Antworten. Eines muss vielleicht noch klarstellen: Ich besuche eine HTL (höhere technische Lehranstalt) und keine Universität. Das heißt ich mache gleichzeitig meine Matura (Abitur) und somit ist die Diplomarbeit vermutlich auch nicht auf dem Niveau wie eine die bei einer Universität erstellt werden muss. also die genauen Anforderungen: Durchflusssensor (analoge Spannung ca. 0-10V)=> ADC evtl. Drehzahlsensor (vermutlich Taktsignal, weiß ich aber nicht sicher) => Counter 1-2 LEDs => 2 digitale Ausgänge DC Motor mit ca. 1W => PWM wie das Einstellen des Mischverhältnis realisiert wird weiß ich noch nicht sicher. Aber ich brauche dafür entweder 3-4 digitale Eingänge, einen Analaogkomperator, oder nochmals einen ADC Ich hoffe ihr könnt mir jetzt vielleicht genauer sagen welche µC sinvoll ist oder braucht ihr noch weitere Angaben? mfg OmasterO
>> Hallo, >> zunächst vielen Dank für die Antworten. >> Eines muss vielleicht noch klarstellen: Ich besuche eine HTL (höhere >> technische Lehranstalt) und keine Universität. Das heißt ich mache >> gleichzeitig meine Matura (Abitur) und somit ist die Diplomarbeit >> vermutlich auch nicht auf dem Niveau wie eine die bei einer Universität >> erstellt werden muss. Quatsch. Der Stoff mag an einer Uni oder Hochschule vielleicht etwas theoretischer sein, das Ziel ist aber ähnlich: Du sollst in die Lage versetzt werden, selbstständig eine Aufgabe (wie auch immer geartet ;) ) zulösen. Mach es ordentlich, systematische Herangehensweise ist das wichtigste Überhaupt in der Entwicklung. Schneller Pfusch wird dir wen du Pech hast später im Beruf noch oft genug aufgezwungen. >> also die genauen Anforderungen: >> Durchflusssensor (analoge Spannung ca. 0-10V)=> ADC Na, das ist doch schonmal ein Anfang. Schau dir mal an, welchem Durchfluss 10V, 5V und 0V entsprechen und mit welcher Auflösung du das Auswerten können musst. Danach kannst du dann einen passenden AD-Wandler (Bitbreite) aussuchen. Vermutlich sollen es nicht allzuviele Messungen pro Sekunde werden, oder? Dann könnte der interne ADC in vielen AVRs ausreichen. >> evtl. Drehzahlsensor (vermutlich Taktsignal, weiß ich aber nicht sicher) >> => Counter Frag deinen Betreuer, welcher Sensor eingesetzt werden soll oder welcher Sensor-Typ bereits bei anderen Projekten eingesetzt wurde. Die Schnittstelle zu den zu steuernden Geräten sollte erstmal geklärt werden. Das Gerät an welches dein System später angeschlossen werden soll, ist doch sicher irgendwo beschrieben, oder? -> Betreuer fragen! >> 1-2 LEDs => 2 digitale Ausgänge Jup, das passt. Ich würde noch ein oder zwei weitere Ausgänge zum Debuggen vorsehen. (z.B. Timer-Initialisierung per Oszi prüfen, Interrupt-Reaktionszeiten messen, etc) >> DC Motor mit ca. 1W => PWM Kommt auf den Motor an. Das Datenblatt zum Motor verrät mehr. >> wie das Einstellen des Mischverhältnis realisiert wird weiß ich noch >> nicht sicher. Aber ich brauche dafür entweder 3-4 digitale Eingänge, >> einen Analaogkomperator, oder nochmals einen ADC Ähm, Mischverhältnis? Bisher ging es nur um eine Durchfluss-Regelung. Und was meinst du mit "Einstellen"? Eine Benutzer-Schnittstelle oder einen Regelungs-Algorithmus? >> Ich hoffe ihr könnt mir jetzt vielleicht genauer sagen welche µC sinvoll >> ist oder braucht ihr noch weitere Angaben? Nö, wir können dir nur vorschlagen, welche Controller DU dir mal anschauen kannst. Letztenendes musst DU einen Controller auswählen und anhand der gegebenen Anforderungen begründen können, wieso dieser Controller geeignet ist. Das musst du dann mit deinem BETREUER besprechen und der kann dir dann sagen ob du damit komplett gegen die Wand fährst oder es passen könnte.
Genau da liegt dass Problem. Ich habe im Prinzip keine Ahnung von µC: Ich abreite in einem Team von 3 Personen und wir bauen ein Gerät, dass zu einem Medium je nach Durchflussgeschwindigkeit und einem vom Benutzer einstellbaren Mischverhältnis einen Motor antreibt, der zu diesem Medium über eine Mechanik eine 2. Komponente beimischt. Viele genauer ist unsere Aufgabenstellung leider auch nicht ;) Aber es gehört auch zu unserer Aufgabe den Motor mit Drehzahlsensor, die Mechanik (von der wir als ELEKTROTECHNIKER fast keine Ahnung haben),... auszuwählen und aufzubauen. Unser Betreuer ist Lehrer für elektrische Anlagen und Energietechnik und hat von µC keine Ahnung. Wir haben dieser Jahr erstmals angefangen mit der µC-Programmierung und haben nur mit einem Infineon CR167 und mit µVision von Keil gearbeitet. Jetzt hab ich einen Atmega und arbeite mit AVR Studio und muss mich selber hineinarbeiten. Wir sind ja eigentlich Elektrotechniker und keine Elektroniker und ich habe mich zur µC-Programmierung gemeldet, da mir sowas durchaus Spaß macht. >> Na, das ist doch schonmal ein Anfang. Schau dir mal an, welchem >> Durchfluss 10V, 5V und 0V entsprechen und mit welcher Auflösung du das >> Auswerten können musst. Danach kannst du dann einen passenden AD-Wandler >> (Bitbreite) aussuchen. Vermutlich sollen es nicht allzuviele Messungen >> pro Sekunde werden, oder? Dann könnte der interne ADC in vielen AVRs >> ausreichen. Messungen mit dem Sensor vornehmen ist unser nächster Schritt den wir demnächst starten werden. Aber die internen ADC reichen meiner Meinung nach definitiv >> Frag deinen Betreuer, welcher Sensor eingesetzt werden soll oder welcher >> Sensor-Typ bereits bei anderen Projekten eingesetzt wurde. Die >> Schnittstelle zu den zu steuernden Geräten sollte erstmal geklärt >> werden. Das Gerät an welches dein System später angeschlossen werden >> soll, ist doch sicher irgendwo beschrieben, oder? Ich bin mir ziemliche sicher dass der Sensor ein Taktsignal liefert (1Takt/Umdrehung) und ich denke das müsste mit einem Counter umsetzbar sein. Der Katalog mit den Motoren/Drehzahlsensoren liegt zur Zeit leider in der Schule :( >> 1-2 LEDs => 2 digitale Ausgänge >> Jup, das passt. Ich würde noch ein oder zwei weitere Ausgänge zum >> Debuggen vorsehen. (z.B. Timer-Initialisierung per Oszi prüfen, >> Interrupt-Reaktionszeiten messen, etc) Ok dann zur Sicherheit mindestens 4 digitale Ausgänge >> DC Motor mit ca. 1W => PWM >> Kommt auf den Motor an. Das Datenblatt zum Motor verrät mehr. Wir haben uns leider noch nicht mit Sicherheit für einen Motor entschieden. Aber mit einer Glättung und evtl. Verstärkerschaltung kann ich mit dem PWM-Signal sicher was anfangen. >> wie das Einstellen des Mischverhältnis realisiert wird weiß ich noch >> nicht sicher. Aber ich brauche dafür entweder 3-4 digitale Eingänge, >> einen Analaogkomperator, oder nochmals einen ADC >> Ähm, Mischverhältnis? Bisher ging es nur um eine Durchfluss-Regelung. >> Und was meinst du mit "Einstellen"? Eine Benutzer-Schnittstelle oder >> einen Regelungs-Algorithmus? Also der Benutzer muss in irgendeiner Form das Verhältnis von Durchfluss zu Motordrehzahl einstellen können. Ich weiß jetzt leider nicht in welchen Schritten und muss mich noch erkundigen. Aber entweder wird das mit einem Potentiometer (ADC / oder Analalogkomperator) oder mit Schaltern(max. 4 (mehr als 16 Stufen sind mit Sicherheit nicht notwendig) realisiert => max. 4 digitale Eingänge >> Ich hoffe ihr könnt mir jetzt vielleicht genauer sagen welche µC sinvoll >> ist oder braucht ihr noch weitere Angaben? >> Nö, wir können dir nur vorschlagen, welche Controller DU dir mal >> anschauen kannst. Letztenendes musst DU einen Controller auswählen und >> anhand der gegebenen Anforderungen begründen können, wieso dieser >> Controller geeignet ist. Das musst du dann mit deinem BETREUER >> besprechen und der kann dir dann sagen ob du damit komplett gegen die >> Wand fährst oder es passen könnte. Also wär ein Atmega8 in Ordnung? Der hat genügen Digitale I/O, einen Counter, ADC und PWM oder hab ich was übersehen/vergessen? mfg OmasterO
>Also wär ein Atmega8 in Ordnung? Nach dem Lesen des Anforderungsprofils oben würde ich sagen ja. Ca. 20 I/O-Leitungen mit davon maximal 6 ADC-Eingängen sollte reichen. Der ATmega8 hat auch noch einen Vorteil: Er ist in diesem Forum sehr beliebt und es gibt ne Menge Leute, die sich mit den AVRs im allgemeinen aber auch besonders ihm gut auskennen :-)
Nimm statt des Atmega8 den pinkompatiblen Atmega88 diesen kannst du im laufenden Projekt bei Flash-Knappheit auf 16k (Atmega168) bzw. 32k (Atmega328) austauschen. Oder starte direkt mit dem 32k-Typ (kostet ca. 1.50 Euro mehr als der 8k Typ)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.