Microcontroller-Programmierung

Präsentation und Organisation von eigenen Projekten
Hallou
Beiträge: 25
Registriert: Mi Jan 09, 2013 3:20 pm

Microcontroller-Programmierung

Beitrag von Hallou » Fr Jan 03, 2014 11:57 pm

Abend proggen.org!
Nach knapp einem Jahr melde ich mich hier auch mal wieder zu Wort.
Mein damaliges Verschwinden lässt sich damit begründen, dass ich 1. wieder mehr mit meiner Ausbildung (Elektroniker für Betriebstechnik) beschäftigt war 2. mein ursprüngliches Ziel, die Grundlagen, das wie und warum beim Programmieren zu verstehen, erreicht hatte.

Aufgegeben hab ich das Programmieren zwar nicht ganz, habe mich aber ausbildungsbedingt auf Systeme wie LogoSoft und S7 konzentriert. Es lässt sich zwar keinesfalls mit C vergleichen, trotzem macht es Spaß, Aufgaben damit umzusetzen. Unabhängig, ob zur reinen Übung, oder um kleiner Aufträge im Betrieb zu erledigen.
Allerdings ist mir klar, das es sich bei diesen Systemen um Industriestandards handelt und man z.B. in einem Digitalwecker nicht unbedingt eine SPS verbaut.

Genau dies stellt das Ziel dar, welches ich mir fürs nächste Jahr vorgenommen habe:
Ich möchte Hardware mit einer nicht-grafischen Sprache programmieren, um einfache Steuerungen damit aufbauen zu können.
Angefangen vll. mit einer Blinkerschaltung, weiter zur Stoppuhrfunktion, bis hin zum einstellbaren Digitalwecker, oder einem Taschenrechner der ein paar Grundfunktionen beherrscht.

Wäre für dieses Vorhaben C weiterhin eine geeignete Sprache?

Könnt ihr mir irgendwelche Mikrocontroller (oder was auch immer man dafür verwendet) empfehlen, welche man recht einfach mit einem Display, einzelnen LEDs und Tastern verbinden kann? Von Vorteil wäre auch, wenn das Aufspielen der Programme recht einfach direkt über den PC funktionieren würde.
Gibt es irgendwas in dieser Richtung auf dem Markt?
Viel Geld möchte ich auch nicht unbedingt gerne für etwas ausgeben, von dem ich keine Ahnung habe, ob ich damit zurecht komme und ob es micht überhaupt dauerhaft begeistern kann. Maximal 60€ wäre es mir es mir zumindest für den Anfang wert.

Danke schonmal für die Antworten!
Gruß
Marco

PS: ich habe das Thema mal im Vorstellungsbereich erstellt, da mir nach einem Jahr Abwesenheit eine Neuvorstellung vll. nicht ganz verkehrt vorkommt und sich mein Vorhaben nicht zwingend auf C versteifen muss ;)

Edit by Xin: Titel geändert, ursprünglich "Melde mich auch mal wieder"

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Melde mich auch mal wieder

Beitrag von cloidnerux » Sa Jan 04, 2014 12:00 am

Wäre für dieses Vorhaben C weiterhin eine geeignete Sprache?
Definitiv :D
Könnt ihr mir irgendwelche Mikrocontroller (oder was auch immer man dafür verwendet) empfehlen, welche man recht einfach mit einem Display, einzelnen LEDs und Tastern verbinden kann? Von Vorteil wäre auch, wenn das Aufspielen der Programme recht einfach direkt über den PC funktionieren würde.
Ich bin da wrsl der richtige Ansprechpartner :D
Du solltest dir mal Arduino anschauen, das ist das was du suchst :)
Aufgegeben hab ich das Programmieren zwar nicht ganz, habe mich aber ausbildungsbedingt auf Systeme wie LogoSoft und S7 konzentriert. Es lässt sich zwar keinesfalls mit C vergleichen, trotzem macht es Spaß, Aufgaben damit umzusetzen. Unabhängig, ob zur reinen Übung, oder um kleiner Aufträge im Betrieb zu erledigen.
SPS kommt sehr bald auf mich zu, ich fand aber bisher immer µC besser. Vlt kann man sich da mal austauschen.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Melde mich auch mal wieder

Beitrag von Xin » Sa Jan 04, 2014 12:07 am

Hallou hat geschrieben:Aufgegeben hab ich das Programmieren zwar nicht ganz, habe mich aber ausbildungsbedingt auf Systeme wie LogoSoft und S7 konzentriert.
Was genau ist das?
Hallou hat geschrieben:Allerdings ist mir klar, das es sich bei diesen Systemen um Industriestandards handelt und man z.B. in einem Digitalwecker nicht unbedingt eine SPS verbaut.
Also SPS-Programmierung... auch ein interessantes Thema.
Hallou hat geschrieben:Gibt es irgendwas in dieser Richtung auf dem Markt?
Viel Geld möchte ich auch nicht unbedingt gerne für etwas ausgeben, von dem ich keine Ahnung habe, ob ich damit zurecht komme und ob es micht überhaupt dauerhaft begeistern kann. Maximal 60€ wäre es mir es mir zumindest für den Anfang wert.
Die kleinen Microcontrollers sind soweit ich weiß nicht sonderlich teuer. Sie werden auch mit C programmiert.
cloidnerux kann Dir da eventuell weiterhelfen. (PS: Zu spät ^^)
Hallou hat geschrieben:PS: ich habe das Thema mal im Vorstellungsbereich erstellt, da mir nach einem Jahr Abwesenheit eine Neuvorstellung vll. nicht ganz verkehrt vorkommt und sich mein Vorhaben nicht zwingend auf C versteifen muss ;)
Ich habe es mal in Richtung Projekte verschoben, da es ja doch vorrangig eine klare Projektfrage enthält
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Hallou
Beiträge: 25
Registriert: Mi Jan 09, 2013 3:20 pm

Re: Microcontroller-Programmierung

Beitrag von Hallou » Sa Jan 04, 2014 12:47 pm

Danke fürs Verschieben Xin :D
SPS kommt sehr bald auf mich zu, ich fand aber bisher immer µC besser. Vlt kann man sich da mal austauschen.
Sofern ich dir dabei helfen kann, können wir uns ruhig mal darüber austauschen. Es gibt zwar verschiedene Wege, diese Teile zu programmieren, aber zmd. in unserem Bereich verwendet man LogoSoft für Logo Module (kann man als eine abgespeckten Sorte von SPS verstehen) und S7 für die normalen SPS.
LogoSoft kannst du dir als recht nützliche Demo direkt downloaden und als S7-Alternative könntest du dir WinPLC7v5 von Vipa, ebenfalls als Demo holen, wenn du dich damit im Vorfeld schonmal etwas auseinander setzen möchtest.
Haben beide ihre Vor- und Nachteile, im Endeffekt erinntert mich das ganze aber ein bisschen ans Spielen mit Lego:
Du hast deine fertigen Bausteine und fügst sie beliebig zusammen, um was größeres daraus zu machen :D
Mit klassischem Programmieren hat es also eigentlich nicht sonderlich viel gemeinsam...
Du solltest dir mal Arduino anschauen, das ist das was du suchst :)
So, habe mal nach Arduino gesucht und es scheint wirklich das zu sein, was ich suche. Allerdings ist die Vielfalt an Produkten recht unübersichtlich. Empfiehlst du unbedingt den Kauf eines originalen, oder machen es die billigeren Clone genauso gut? Ebenfalls wurde mir von diversen Seiten auch das Rasperry Pi vorgeschlagen. Handelt es dabei noch um das Gleiche, oder lässt es sich eher als fertiger Mini-PC verstehen?
Gefunden hätte ich zmd. mal diese Sets:
http://www.amazon.de/Kompatibel-Tutoria ... bel+UNO+R3
http://www.amazon.de/Arduino-Ultimate-S ... ds=Arduino
Bei der billigeren Kopie wäre halt für weniger Geld deutlich mehr enthalten, fragwürdig ist nur, ob das Teil zu etwas zu gebrauchen ist.

Noch eine Ecke günstiger gäbe es welche, die sich nur auf ein paar Bauteile, ein Steckbrett und dem R3 selbst beschränken. Wo bekäme ich in dem Fall allerdings die Software und Anleitungen her?
http://www.amazon.de/gp/product/B0051QH ... =computers

Was wäre für mich zu empfehlen?

Zudem bin ich auch noch etwas verwirrt, was die Programmiersprache angeht. Scheinbar benutzt man für diese Dinger eine stark vereinfachte Art von C?
(hoffe mal, die Links sind kein Problem, ansonsten nehme ich sie wieder raus)

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Microcontroller-Programmierung

Beitrag von cloidnerux » Sa Jan 04, 2014 1:23 pm

Sofern ich dir dabei helfen kann, können wir uns ruhig mal darüber austauschen. Es gibt zwar verschiedene Wege, diese Teile zu programmieren, aber zmd. in unserem Bereich verwendet man LogoSoft für Logo Module (kann man als eine abgespeckten Sorte von SPS verstehen) und S7 für die normalen SPS.
LogoSoft kannst du dir als recht nützliche Demo direkt downloaden und als S7-Alternative könntest du dir WinPLC7v5 von Vipa, ebenfalls als Demo holen, wenn du dich damit im Vorfeld schonmal etwas auseinander setzen möchtest.
Ich habe eine S7-1200 1212C und das TIA-Portal in der Aktuellsten Version.
Du hast deine fertigen Bausteine und fügst sie beliebig zusammen, um was größeres daraus zu machen :D
Mit klassischem Programmieren hat es also eigentlich nicht sonderlich viel gemeinsam..
Das habe ich schon gesehen :D
So, habe mal nach Arduino gesucht und es scheint wirklich das zu sein, was ich suche. Allerdings ist die Vielfalt an Produkten recht unübersichtlich. Empfiehlst du unbedingt den Kauf eines originalen, oder machen es die billigeren Clone genauso gut?
Die Klone tuen es genau so, als Prozessor sitzt da überall das gleiche Drauf. In Sachen Verarbeitung unterscheiden die sich aber schon mal.
Ebenfalls wurde mir von diversen Seiten auch das Rasperry Pi vorgeschlagen. Handelt es dabei noch um das Gleiche, oder lässt es sich eher als fertiger Mini-PC verstehen?
Der RPi ist ein Mini-PC. Du hast deinen (ARM)-Prozessor, speicher, Grafikchip, USB, Ethernet, Audio und eben halt ein wenig GPIO. Es läuft darauf ein Linux, es gibt Treiber und all das Gedöns.
Wo bekäme ich in dem Fall allerdings die Software und Anleitungen her?
http://arduino.cc/
Die Software ist Gratis und Open Source. Arduino ist das Bastelboard, es gibt gefühlt eine Billionen Anleitungen, Tutorials und Informationen dazu ;)
Zudem bin ich auch noch etwas verwirrt, was die Programmiersprache angeht. Scheinbar benutzt man für diese Dinger eine stark vereinfachte Art von C?
Nein, man benutzt C++. Was die Arduino-Software macht ist eine Abstraktionsschicht anzubieten. Statt das du dich mit den einzelnen Bits und Bytes rumschlagen musst gibt es Funktionen die das für dich regeln. Und du musst keine eigene main-Funktion schreiben, weil das im Hintergrund gemacht wird.
Kompiliert wird aber mit einem AVR-gcc, du kannst also ganz "normal" in C/C++ deine Programme schreiben.

Ich kann dir nur schlecht sagen, welches Kit du dir kaufen solltest, weil es bisher immer so war, dass man sich erst eingearbeitet hat und dann immer mehr Möglichkeiten sieht, irgendwas cooles zu bauen.
Wenn du bestimmte Bauteile suchst solltest du mal bei den speziallisierteren Shops schauen:
http://www.proggen.org/doku.php?id=electronics:shops
Redundanz macht wiederholen unnötig.
quod erat expectandum

Hallou
Beiträge: 25
Registriert: Mi Jan 09, 2013 3:20 pm

Re: Microcontroller-Programmierung

Beitrag von Hallou » Mo Jan 06, 2014 4:19 pm

Ich habe eine S7-1200 1212C und das TIA-Portal in der Aktuellsten Version.
Inklusive Hardware war es dir die Investition scheinbar wert :D
Auf TIA soll bei uns auch in nächster Zeit umgestellt werden, mal schauen, wie es wird.
Das Programmieren ist zwar das Selbe, aber die Oberfläche ist halt schon wieder eine leicht andere...

So, habe mich mal etwas umgeschaut und werde mir höchstwahrscheinlich dieses Kit bestellen:
http://www.amazon.de/Kompatibel-1602LCD ... uctDetails

Dabei scheint es sich um einen Nachbau von Sainsmart zu handeln. Der preistreibende Unterschied dürfte sein, dass ein ATmega328-AU, statt dem normalen ATmega328 verwendet wird.
Macht sich bei normalen Versuchen aber hoffentlich nicht bemerkbar?

Der Preis ist gut, mit dem Geld das ich spare könnte ich mir als Ersatz das selbe Modell nochmal kaufen.

Ich hoffe mal, dass das System überhaupt meinem PC laufen wird, habe in irgendeinem Forum gelesen, dass es Probleme mit Windows 8 gab. Wie alt das Thema allerdings war, ob der Fehler behoben wurde und wie es mit Windows 8.1 steht, kann ich allerdings nichtmehr sagen :?

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Microcontroller-Programmierung

Beitrag von cloidnerux » Mo Jan 06, 2014 4:57 pm

Der preistreibende Unterschied dürfte sein, dass ein ATmega328-AU, statt dem normalen ATmega328 verwendet wird.
Das AU bezeichnet nur die Gehäuse Form, vom Chip her macht es keinen Unterschied.
Inklusive Hardware war es dir die Investition scheinbar wert :D
Das ganze ist kein Privatvergnügen, das wird ne Steuerung die dann auch verkauft wird.
Ich hoffe mal, dass das System überhaupt meinem PC laufen wird, habe in irgendeinem Forum gelesen, dass es Probleme mit Windows 8 gab
Wenn das Probleme hat, dann wrsl alle anderen Arduinos auch.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Hallou
Beiträge: 25
Registriert: Mi Jan 09, 2013 3:20 pm

Re: Microcontroller-Programmierung

Beitrag von Hallou » Fr Jan 10, 2014 9:00 pm

So, habe das Arduino heute bekommen und es inzwischen auch unter Windows 8 bzw. 8.1 zum laufen bekommen.
Es hat ist eigentlich kein Kompatibilitätsproblem, sondern es liegt einfach daran, das der Treiber für Win8 unsigniert ist. Nach ändern, Funktioniert das Ganze ohne weitere Schwierigkeiten.

Danke nochmal an cloidnerux für die Empfehlung, nach genau so etwas habe ich gesucht ;)

Hallou
Beiträge: 25
Registriert: Mi Jan 09, 2013 3:20 pm

Re: Microcontroller-Programmierung

Beitrag von Hallou » Sa Jan 11, 2014 10:28 pm

So, habe schon das erste Problem, welches sich einfach nicht lösen lässt :oops:
Ich wollte einstellen, dass beim betätigen von Taster 4 die LED 12 leuchtet und bei Taster 2 die LED 13 das Selbige tut.

Das hier wäre soweit mit Quellcode:

Code: Alles auswählen

int buttonPin4 = 4;
int buttonPin2 = 2;
int ledPin12 = 12;
int ledPin13 = 13;
int buttonState4 = LOW;
int buttonState2 = LOW;

void setup() {
  pinMode(buttonPin4, INPUT);
  pinMode(buttonPin2, INPUT);
  pinMode(ledPin12, OUTPUT);
  pinMode(ledPin13, OUTPUT);
}
void loop() {
  buttonState4 = digitalRead(buttonPin4);
  buttonState2 = digitalRead(buttonPin2);
  if(buttonState4 == HIGH) {
  digitalWrite(ledPin12, HIGH);
  }
  else {
    digitalWrite(ledPin12, LOW);
  }
  if(buttonState4 == HIGH) {
    digitalWrite(ledPin13, HIGH);
  }
  else {
    digitalWrite(ledPin12, LOW);
  }
}
    
Angeschlossen habe ich es, ähnlich wie hier: http://www.arduino-tutorial.de/wp-conte ... Button.jpg
nur eben mit 2 Tastern und den LEDs auf dem Board ( MINUS läuft zusammen und dann auf GND).

Habe das Ganze schon mehrmals gesteckt und geschrieben, immer mit ernüchterndem Ergebnissen:
-Einer der Taster bleibt immer komplett ohne Funktion
-Beim anderen Taster leuchtet manchmal eine wie geplant, manchmal geht aber auch die andere LED mit an
-manchmal leuchtet min. eine LED auch dann noch weiter, wenn ich den Taster schon längst los gelassen habe
-manchmal flackert auch eine LED unwillkürlich auf
-bei den ersten Steckversuchen hat die Schaltung scheinbar auf meine alleinige Anwesenheit reagiert: Finger zwischen zwei Kabel gehalten = LED an, Finger wieder raus = LED wieder aus - verwirrenderweiße funktionierte das Selbe auch mit meinem Schatten aus 1m Entfernung....

Um zu testen, ob es an den LEDs liegt, habe ich zwischendurch eingestellt, dass ein Taster beide ansteuert, das ging dann wiederrum ohne Probleme.
Schlussfolgernd müsste der Fehler am 2. Eingang liegen. Hardwaretechnisch düfte es kein Fehler sein, habe schon mehrfach neu gesteckt und auch mal den Taster ausgetauscht. Unterschiedliche Ein- und Ausgänge habe ich auch schon vesucht...

mfro
Beiträge: 346
Registriert: Mi Jan 16, 2013 4:58 pm

Re: Microcontroller-Programmierung

Beitrag von mfro » So Jan 12, 2014 12:15 am

Taster an Microcontroller brauchen eine Entprellung, um vernünftig zu funktionieren.

Lies mal das (Softwareentprellung). Damit sollte es eigentlich tun.
It's as simple as that. And remember, Beethoven wrote his first symphony in C.

Antworten