Forum: Mikrocontroller und Digitale Elektronik Fragen zu Mikrocontroller


von Philipp (philipp0211)


Lesenswert?

Mahlzeit zusammen !

Das hier ist mein erster Beitrag!

Für unser Abschlussprojekt im Techniker brauchen wir einen 
Mikrocontroller... leider haben wir das nicht ausführlich genug gemacht. 
Eventuell bekomme ich hier ja Antworten.

Wir bauen eine Wasser Filterungsanlage mit Diversen Sensoren, Füllstände 
, Temperatur etc. zudem wollen wir über den Mikrocontroller die Pumpe 
steuern und als optionales Ziel die Daten noch an eine App übergeben.

Ich habe keine Ahnung welcher dafür in frage kommt. In der Schule haben 
wir imemr mit einem ATmega 16 gearbeitet.

LG

Philipp

von DerEgon (Gast)


Lesenswert?

Philipp schrieb:
> Ich habe keine Ahnung welcher dafür in frage kommt. In der Schule haben
> wir imemr mit einem ATmega 16 gearbeitet.

Dann nimm den doch.

von Eine Frage (Gast)


Lesenswert?

Erste Rückfrage - zur Zeit laufen unter Mikrocontroller 4 verschiedene 
Konzepte.

-Bitfummelei auf 8Bit MCs ohne Debugger

-Arduino Programmierung, eingeschränkt aber einfach zu lernen

-Low Level Programmierung auf 8Bit MCs mit Libraries und 
In-Circuit-Debugger

-32Bit MCs mit diversen Arten von RTOS. Unterscheidet sich eigentlich 
nicht von PC Programmierung.

Was wollt ihr machen?

von dummschwaetzer (Gast)


Lesenswert?

>optionales Ziel die Daten noch an eine App übergeben
wie? Das ist wahrscheinlich das Aufwändigste an deine ganzen 
Mikrocontroller

von Interessierter (Gast)


Lesenswert?

Philipp schrieb:
> Wir bauen eine Wasser Filterungsanlage mit Diversen Sensoren, Füllstände
> , Temperatur etc. zudem wollen wir über den Mikrocontroller die Pumpe
> steuern und als optionales Ziel die Daten noch an eine App übergeben.
Ich würde damit anfangen, als Vorauswahl die notwendigen Pinne und 
Peripherien (ADCs, Timer, PWMs, UARTS, I2Cs,...) auszuzählen und grob 
skizzieren, was an CPU-Ressourcenfressern (RAM, Flash und 
Zeitkritisches) zu erwarten sind.
Wenn Dein ATMega dann dazu reicht, ist es doch gut.


Wenn "App" eine App auf dem Android-Handy meint, ist z.B. ein an die 
UART angeschlossenes HC-06 BT-Modul eine recht einfache Möglichkeit. Für 
Apple würd ich allerdings wahrscheinlich eher einen 
ESP-ich-bin-der-Hotspot-und-Du-darfst-Dich-nur-mit-meiner-HTML-Seite-ver 
binden  anflanschen.

von Steve van de Grens (roehrmond)


Lesenswert?

Was für Sensoren sollen ausgewertet werden und welche Schnittstellen 
haben sie? Wenn da eine Kamera bei ist, hat das einen erheblichen 
Einfluss auf die Wahl des Mikrocontrollers.

Wegen der App und der schwierigen Liefersituation würde ich dir 
empfehlen dir den ESP32 (als Modul) anzuschauen.

: Bearbeitet durch User
von Cyblord -. (cyblord)


Lesenswert?

Eine Frage schrieb:
> -32Bit MCs mit diversen Arten von RTOS. Unterscheidet sich eigentlich
> nicht von PC Programmierung.

Ich halte diese Klassifizierung für Humbug. 32 Bit bedeutet nicht 
automatisch RTOS und PC-like Programmierung.
Es liegen Welten zwischen kleinen und großen 32 Bittern. Und kleine 32 
Bittern werden wie 8 Bitter programmiert. Ebenfalls oft Bare Metal und 
mit oder ohne Debugger.

von Cyblord -. (cyblord)


Lesenswert?

Philipp schrieb:
> Wir bauen eine Wasser Filterungsanlage mit Diversen Sensoren, Füllstände
> , Temperatur etc. zudem wollen wir über den Mikrocontroller die Pumpe
> steuern und als optionales Ziel die Daten noch an eine App übergeben.

3 Nummern zu groß für euch. Selbst jemand mit guter Erfahrung in 
Elektronik und µC würde da einiges an Zeit brauchen. Dann noch mit 
App...
Aber ohne viel Vorwissen und Erfahrung mit ähnliches Projekten: Vergiss 
es. Mach kleiner. Viel Kleiner.
Oder denk größer und nimm ne fertige Steuerung für den Kram, so wie das 
jeder normale Mensch für diese Anwendung tun würde. Siemens Logo oder 
Eaton Easy z.B.

von Pete K. (pete77)


Lesenswert?

Make or buy.
Für die Aufgabenstellung würde ich einen ESP8266 mit Tasmota-sensors 
flashen (ggfs. die Sensoren einkompilieren) und dann an die 
HomeAssistant App übergeben.

von Cyblord -. (cyblord)


Lesenswert?

Pete K. schrieb:
> Make or buy.
> Für die Aufgabenstellung würde ich einen ESP8266 mit Tasmota-sensors
> flashen (ggfs. die Sensoren einkompilieren) und dann an die
> HomeAssistant App übergeben.

Warum dann überhaupt den Aufwand und nicht gleich diverse Shellys als 
Sensoren und per openHAB oder IOBroker oder NodeRED visualisieren?
Nur sehe ich in der Aufgabenstellung des TE eher eine 
Industrieautomatisierung als SmartHome.

: Bearbeitet durch User
von dave (Gast)


Lesenswert?

Wenn es nicht konkret um Softwareentwicklung auf MCs geht würde ich 
dafür einen Esp32 oder Wemos d1 mini mit EspEasy als "OS" nehmen.
Da hast du die Sensorintegration und MQTT gleich inklusive.

von Adam P. (adamap)


Lesenswert?

Philipp schrieb:
> Wir bauen eine Wasser Filterungsanlage mit Diversen Sensoren, Füllstände
> , Temperatur etc. zudem wollen wir über den Mikrocontroller die Pumpe
> steuern und als optionales Ziel die Daten noch an eine App übergeben.
>
> Ich habe keine Ahnung welcher dafür in frage kommt.

Nimm dir ein Blatt und zeichne dir alles drum herum auf und in der Mitte 
eine Blackbox.

- Was für Sensoren: benötigen diese AD Wandler, I²C, SPI...?
Und wieviele davon.
- Benötigst du I/O Pins?
- Arbeiten die Sensoren mit 3,3 oder 5V? -> daraus ergibt sich evtl. 
dein Controller, falls nicht extra Pegelwandler verwendet werden sollen.
- usw. einfach alles was du ansteuern/auslesen magst.

Das dürfte schonmal eine grobe Auswahl ergeben.

Flash ist "meistens" nicht so das Problem wie der vorhandene RAM.
(Je nach Anwendungsfall)

Aber mal so eine Frage:
Wer kam auf so eine umfangreiche Aufgabe?

: Bearbeitet durch User
von Max G. (l0wside) Benutzerseite


Lesenswert?

Philipp schrieb:
> Wir bauen eine Wasser Filterungsanlage mit Diversen Sensoren, Füllstände
> , Temperatur etc. zudem wollen wir über den Mikrocontroller die Pumpe
> steuern und als optionales Ziel die Daten noch an eine App übergeben.

Mit einem Arduino Due solltet ihr, wenn es nicht allzu viel Sensoren 
werden, gut zurechtkommen. Denkt daran, dass ihr die Sensoreingänge 
(ADC-Ports) passend schützen müsst, aber das habt ihr entweder gelernt, 
oder ihr fragt euren Betreuer. Und Arduino-Programmierung ist 
hinreichend einfach, dass ihr innerhalb der Zeit auch zu einem Ergebnis 
kommen könnt.

Je nachdem, wie viele ihr seid, könnt ihr folgende Aufgabenpakete mehr 
oder weniger parallel abarbeiten:
* Liste der anzuschließenden Sensoren und Aktoren (Pumpe) aufschreiben
* Für jeden überlegen, wo und wie ihr ihn anschließen und auslesen wollt
* Regelalgorithmus (wann läuft die Pumpe wie) auf Papier aufschreiben
* Hardware beschaffen und zusammenbauen
* Einlesen der Sensorwerte und Ansteuern der Pumpe auf dem Arduino 
umsetzen
* Regelalgorithmus auf dem Arduino umsetzen
* Daten auf einer seriellen Schnittstelle rausgeben
* Auf einem ESP32 o.ä. das oben schon vorgeschlagene Web-Frontend 
aufbauen. Hat mit dem Rest der Aufgabe inhaltlich kaum was zu tun, ist 
aber natürlich schick.

Ihr könnt natürlich auch eine SPS nehmen...

von W.S. (Gast)


Lesenswert?

Cyblord -. schrieb:
> Ich halte diese Klassifizierung für Humbug.

Es IST Humbug, und zwar alle 4 Varianten, die der Unbekannte da 
geschrieben hat.

Es heißt zwar (wimre in der Bibel), man solle dem Esel, der da drischt 
nicht das Maul verbinden - aber ich erlaube mir hinzuzufügen: ...es sei 
denn, er drischt Phrasen. Schließlich lesen hier ja auch andere Leute 
mit und da könnte einer sowas ernst nehmen.

W.S.

von W.S. (Gast)


Lesenswert?

Philipp schrieb:
> Wir bauen eine Wasser Filterungsanlage mit Diversen Sensoren,...

Bevor du irgend einen Chip suchst, mache lieber einen Plan, was du da so 
alles verbauen willst und was du für Strippen an den Controller dafür 
brauchst und ob und welche Interfaces im Controller du dafür tatsächlich 
benötigst.

Zum einen ist es so, daß man oftmals besser fährt, wenn man separate 
ADC's verwendet anstelle des im Controller eingebauten - gerade wenn es 
um relativ langsame und dafür eher genaue Messungen geht.

Zum anderen ist es manchmal besser machbar, für manche Interfaces wie 
I2C oder SPI nicht die im Chip vorhandenen Peripherie-Cores zu nehmen, 
sondern das Ganze per Software zu machen.

Gerade für I2C habe ich mehr schlecht benutzbare Cores als gut gemachte 
Cores bislang gesehen. Also flexibel bei dem Entwurf bleiben. Wenn der 
schlußendlich gewählte Chip kein benutzbares Interface für irgend einen 
Sensor etc. hat (weil die Portpins grad von was anderem belegt sind), 
dann ist das zumeist kein Beinbruch.

Überdenke auch, was du eventuell mit den anfallenden Daten im Controller 
machen willst und ob du dafür größere Mengen an RAM im Controller 
benötigst oder nicht. Und ob du auch Daten per EEPROM merken willst, 
damit die nicht bei einem Stromausfall alle weg sind.

Ebenso überlege gut, ob und was für eine eventuelle Anzeige du an deiner 
Wasserfilteranlage haben willst. Ich geb dir mal ne Grobregel: An einem 
8 Bitter ein Textdisplay, an einem 32 Bitter auch ein Grafikdisplay. 
Wohlgemerkt, das ist nicht in Stein gemeißelt, sondern nur eine 
Faustregel.

Also plane erstmal die für das Gerät nötige Peripherie und erst dann den 
Controller.

W.S.

von Steve van de Grens (roehrmond)


Lesenswert?

W.S. schrieb:
> Zum anderen ist es manchmal besser machbar, für manche Interfaces wie
> I2C ... nicht die im Chip vorhandenen Peripherie-Cores zu nehmen,
> sondern das Ganze per Software zu machen.

Manchmal ja. Dabei aber bitte bedenken, dass die meistens I²C Cores 
interne Filterschaltungen haben von denen du bei "das Ganze per Software 
zu machen" nicht profitierst.

von W.S. (Gast)


Lesenswert?

Steve van de Grens schrieb:
> Manchmal ja. Dabei aber bitte bedenken,...

Man kann gar vieles bedenken. Weitaus wichtiger als irgendwelche 
Filterschaltungen wären Abfragen zum Bus requirieren, zum 
Clock-Verlängern usw. Aber die Alternative bei schlecht gestaltetem 
I2C-Core wären zum einen solche, die für jeden Zustandswechsel einen 
Interupt erzeugen (etwa so: "es hat was gewackelt, also Programmierer 
bring das mal in Ordnung") oder andere, die alles selbst machen wollen, 
dabei aber ein unmögliches Interface bieten. Also sowas wie die Anzahl 
zu übertragender Bytes vorher wissen wollen, was ein geordnetes 
Treiberinterface zum aufrufenden Programm unmöglich macht. Der Treiber 
müßte ja vorher wissen, was der aufrufende Algorithmus beabsichtigt.

Also: Es gibt eine Menge an Haken und Unpäßlichkeiten, je nach Chip. 
Aber als Programmierer einer Firmware für ein konkretes Projekt muß man 
da durch, notfalls durch Ausprobieren (wenn man langsam genug ist, dann 
braucht es auch kein Clock-Stretching...)

W.S.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Uaaah, Loide...
Es ist eine Abschlussarbeit an einer Technikerschule, kein Projekt "aus 
dem Leben". Und der TO hat in der Schule schon mit dem atmega16 
gearbeitet.
Welcher µC soll da wohl verwendet werden? Mannmannmann...

scnr,
WK

von Cyblord -. (cyblord)


Lesenswert?

Dergute W. schrieb:
> Es ist eine Abschlussarbeit an einer Technikerschule

Da fängt es ja schon an: Das Projekt ist, so wie beschrieben, völlig 
ungeeignet für diesen Zweck und den Ausbildungsstand des TE.
Egal ob er dafür nun seinen Mega16 nimmt oder nicht.

von Roland F. (rhf)


Lesenswert?

Hallo,
Cyblord -. schrieb:
> Da fängt es ja schon an: Das Projekt ist, so wie beschrieben, völlig
> ungeeignet für diesen Zweck und den Ausbildungsstand des TE.

Genau.
Lass dir doch mal von Philipp die E-Mail-Adresse seines Betreuers geben 
und schreib ihm was das er doch in Zukunft gefälligst geeignetere 
Projekte auswählen soll. Wenn du das dann noch dem Betreuer in deiner 
bekannt verbindlichen Art und Weise aufzeigst, wird das bestimmt zum 
Erfolg führen.

Leute gibts...

rhf

von Cyblord -. (cyblord)


Lesenswert?

Roland F. schrieb:
> Lass dir doch mal von Philipp die E-Mail-Adresse seines Betreuers geben
> und schreib ihm was das er doch in Zukunft gefälligst geeignetere
> Projekte auswählen soll. Wenn du das dann noch dem Betreuer in deiner
> bekannt verbindlichen Art und Weise aufzeigst, wird das bestimmt zum
> Erfolg führen.

Was spielt das für eine Rolle? Es ändert nichts an den Fakten. Und 
meistens suchen sich die Leute solche Projekte selbst aus und bekommen 
das so nicht vorgelegt.

von kenny (Gast)


Lesenswert?

Cyblord -. schrieb:
> Was spielt das für eine Rolle? Es ändert nichts an den Fakten. Und
> meistens suchen sich die Leute solche Projekte selbst aus und bekommen
> das so nicht vorgelegt.

Das stimmt so nicht.
40% meiner Technikerklasse hat Projekte vom AG vorgesetzt bekommen 
(Materialien wurden bezahlt).
Der Rest hat sich eigene Projekte ausgesucht und musste diese selbst 
finanzieren.

von W.S. (Gast)


Lesenswert?

Dergute W. schrieb:
> Uaaah, Loide...
> Es ist eine Abschlussarbeit an einer Technikerschule,...

Ach nee, nix mit Uaaah... und so. Das Projekt ist zumindest keine 
nichtssagende Pillepalle-Arbeit, sondern eines, wo man sich einen 
praktischen Nutzen davon vorstellen kann, wenn es realisiert wird. Und 
es gibt den Leuten einen allerersten Eindruck von dem, was vermutlich 
deren beruflichen Lebensweg begleiten wird. Nämlich von den 
Notwendigkeiten der Realität und von der zuvor erforderlichen 
Entwicklungs- und Planungs-Arbeit.

Selbst wenn das Projekt von der ersten Generation von Absolventen noch 
nicht aufgebaut oder sogar in Betrieb genommen wird, ist es doch für 
selbige nützlich, nämlich für den Inhalt ihrer Köpfe.

W.S.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

W.S. schrieb:
> wo man sich einen
> praktischen Nutzen davon vorstellen kann,

Der praktische Hauptnutzen von so einem Projekt ist der, dass man danach 
sein "Ich-bin-Techniker"-Bapperl auf die Stirn geklebt bekommt. Das 
sollte man sich, so man noch kein solches Bapperl hat und eines bekommen 
moechte, immer vergegenwaertigen.
Wenn man jetzt gleich anfaengt, wie man mit sowas die Welt verbessern 
kann, wird man mit hoher Wahrscheinlichkeit erstmal an seiner 
Technikerausbildung scheitern.
Isso.

Gruss
WK

von Thomas (kosmos)


Lesenswert?

hier steht eigentlich alles für einen Anfänger
https://www.mikrocontroller.net/articles/AVR_Tutorial

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

Also ich weiß nicht. Ich kenne es eigentlich nur, dass man das Projekt 
selbst wählen kann. Nur wenn man keines hat, es zu wenig war oder als 
nichtrealisierbar galt, hat man eines von der Schule bekommen. Ich hatte 
mit
drei weiteren ein eigenes ausgesucht. Ebenfalls mit Mikrocontroller. 
Dabei war ich der einzige, der Erfahrungen hatte. Der Rest kannte es nur 
von ein paar Wochen Grundlagen. Dennoch haben wir das Projekt mehr als 
rechtzeitig fertig bekommen und auch ein paar Sachen mehr gemacht, wie 
wir vorhatten.

Die Devise ist eigentlich, sich bei dem Projekt mit unbekannten Sachen, 
Stress und so weiter auseinander zu setzen. Der Lernfaktor ist hoch. 
Anscheinend wird es aber wohl von Schule zu Schule anders gemacht. Wir 
hatten eine bestimmte Reihenfolge: Pflichtenheft erstellen. 
Zwischenpräsentation. Dann das Projekt selbst realisieren mit kompletter 
Dokumentation samt Abschlusspräsentation.

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
Noch kein Account? Hier anmelden.