Bitte um Empfehlung uC

Vielleicht können mir die Profis hier eine Bauteileempfehlung geben: Auch wenn ich Basic, Clipper und Assembler programmieren kann hatte ich noch keine Zeit, mich in die Programmierung von uC einzuarbeiten; bislang ließen konnte ich Eigenentwicklungen recht gut mit nicht-uC-Hardware erledigen. Jetzt muß ich ein kleines Problem lösen, für das ein kleiner uC wohl, wie ich einsehen muß, wirklich besser geeignet ist. Leider habe ich immer noch keine Zeit, uC-Programmierung von Grund auf zu lernen; daher brauche ich eine günstige, einfach zu realisierende und kein weiteres Equipment erfordende Lösungsbasis.

Die zu realisierende Funktion ist wie folgt: Nach dem Anlegen der Spannungsversorgung (ca. 12,5V) soll für ca. 3 min nichts geschehen. Dann soll Ausgang 1 aktiv werden. Nach einer zufälligen Zeit zwischen ca. 2 und 5 sec. (Bereich unkritisch) soll der Ausgang ausgeschaltet werden. Nach ca. 100ms Pause geht wird Ausgang 2 für 10ms aktiv. Diese Sequenz (100ms Pause, 10ms Puls) wiederholt sich einmal oder zweimal (einstellbar über z.B. den Pegel an einen Eingangspin). Dann geht Ausgang 2 endgütig aus und nach 100ms wird Ausgang 1 aktiv. Nun vergeht wieder eine zufällige Zeit von ca. 2 bis 5 sec. und das Spiel beginnt erneut. Die Peripheriebeschaltung ist nicht Gegenstand meiner Frage; es geht um Lichter/LEDs: Ein Dauerlicht soll in zufälligen Abständen/Intervallen durch einen Dreifachblitz unterbrochen werden.

In nicht-uC-Hardware wäre das recht aufwendig und wenig flexibel, in Basic dagegen schnell programmiert. Meine Frage ist nun: Mit welchem uC kann ich dies möglichst einfach und geringsten Aufwand realisieren (und ohne mich zeitaufwendig) in uC-Programmierung einarbeiten zu müssen)?

Reply to
M.Dinsch
Loading thread data ...

Am 13.08.2013 13:12, schrieb M.Dinsch:

Atmel AVR(Tiny) mit BASCOM.

Gruß Dieter

Reply to
Dieter Wiedmann

M.Dinsch schrieb:

Heutzutage ist das auch gar nicht mehr nötig. Ich würde

formatting link
empfehlen - komplette C++-Entwicklungsumgebung
formatting link
für ein Board, das auf Atmel-AVR basiert und so um die 21 ? kostet. Damti meine ich das Arduino Uno, es gibt allerdings noch einige andere Arduino-Boards, die für Dich vielleicht besser passen.

Reply to
Edzard Egberts

Am 13.08.2013 13:12, schrieb M.Dinsch:

Basic-Briefmarke? Ansonsten geht das mit quasi jedem µC, z.B. einem einfachen PIC oder AVR. Den AVR kann man auch bequem in C programmieren, wenn man nicht Assembler möchte. Das kleinste Arduino-Board z.B. wenn man ein fertiges System haben möchte.

formatting link
eBay Artikel 321181606933

Bernd

--
Meine Glaskugel ist mir leider unvorhersehbarerweise vom Balkon gefallen. 
P.Liedermann in defa
Reply to
Bernd Laengerich

M.Dinsch schrieb:

[Ablaufsteuerung]

Ich gehe mal davon aus, dass du da keine Großserie von bauen willst, sondern nur einzelne Exemplare; somit spielen die Kosten des Microcontroller-Chips für die Auswahl eine untergeordnete Rolle, viel wichtiger ist die Verfügbarkeit von funktionierenden Tools und einfach erhältlichen preisgünstigen Boards.

Es gibt Lösungen, um Microcontroller in Basic zu programmieren, allerdings würde ich dir davon abraten. Nutze die Chance des Einstiegs in das Thema, direkt richtig einzusteigen, und beschäftige dich mit 'C'. Als Assemblerprogrammierer wirst du dich damit direkt wohlfühlen.

Tja, welche Controllerfamilie könntest du nehmen? Für den Einstieg gutmütig und einigermaßen übersichtlich ist die Atmel ATMEGA Familie (8-Bitter), es gibt sehr viele Programmierbeispiele, freie 'C'-Entwicklungsumgebungen (WinAVR, Atmel Studio), preisgünstige Downloadkabel, preisgünstige Controllerboards (u.A. Arduino).

Falls es doch Basic sein muss: es existiert wohl ein (kostenpflichtiger) Basic-Compiler (BASCOM-AVR) für die ATMEGAs. Die Unterstützung in der "Community" bei Programmierung in 'C' ist aber deutlich besser.

Viel Erfolg beim Einstieg, womit auch immer! P.

Reply to
Peter Schneider

Am 13.08.2013 13:31, schrieb Peter Schneider:

Der ist für Kleinkram kostenlos.

Gruß Dieter

Reply to
Dieter Wiedmann

M.Dinsch schrieb:

Hallo,

ich wüsste jetzt nur keinen µC der direkt für den Betrieb mit 12,5 V geeignet ist, da müsste erst mal ein Spannungsregler auf 5 V oder sogar

3,3 V davor.

Bye

Reply to
Uwe Hercksen

Dieter Wiedmann schrieb:

[BASCOM]

Ah, gut zu wissen.

Als Hauptnachteil der Verwendung eines proprietären Basic-Dialekts sehe ich aber, dass die selbstentwickelte Software dadurch an die einmal gewählte Plattform gefesselt bleibt - die Software mal grade auf eine andere Platform portieren wird damit ungleich schwieriger, so dass man bei Wachsen der Aufgaben länger als nötig an einer eigentlich hoffnungslos unterdimensionierten Umgebung festhält.

P.

Reply to
Peter Schneider

Am 13.08.2013 13:47, schrieb Uwe Hercksen:

Es gibt welche mit eingebautem Regler.

Gruß Dieter

Reply to
Dieter Wiedmann

Am 13.08.2013 14:07, schrieb Peter Schneider:

Das ist zweifellos richtig, aber für den OP im Moment wohl egal.

Gruß Dieter

Reply to
Dieter Wiedmann

Am 13.08.2013 13:23, schrieb Edzard Egberts:

Dieser Empfehlung schließe ich mich an.

Gruß

Gregor

Reply to
Gregor Szaktilla

Danke für die Antworten. Aber

  1. Ich habe wirklich keine freie Zeit, mich in die uC-Programmierung einzuarbeiten. Das muß ich auf später, in Rente, verschieben. Ich brauche eine Lösung, mit der ich im wesentlichen mit dem, was ich schon kann, auskomme. Und das ist nunmal faktisch Basic (C kann ich nicht und ich habe auch keine freie Zeit, das zu lernen). Zu dem "zu aufwendig" zählt auch, das zu lernen, was für die Programmierung in Assembler gewußt werden muß, das ganze drum herum. Das geht ja über die bloße Beherrschung der Assembler-Befehle hinaus; maschinennahe uC-Programmierung ist ja deutlich verschieden von der PC-Assembler-Programmierung, soviel habe ich schon mitbekommen, das ist recht trickreich und eigen, da muß man sich Schritt für Schritt und Projekt für Projekt einarbeiten. Die Zeit habe ich nicht. Ein passendes Basic-"Programm" ist dagegen eine Sache von nur wenigen zehn Minuten.
  2. Ich weiß, daß es keine uC für 12,5V gibt - das war nur eine Randinfo. Ich weiß auch, daß der uC eine Spannungsversorgung braucht. Das zähle ich zur Hardware-Peripherie, das ist kein Problem.
  3. Das ist ein singuläres Bastelprojekt, das Ergebnis brauche ich nur ein einziges Mal.
Reply to
M.Dinsch

M.Dinsch schrieb:

Hallo,

aber auch mit Basic wirst Du Dich in die Interna des benutzten µC einarbeiten müssen um zu verstehen wie Du die benötigen Zeitbedingungen realisieren kannst und wie man die Ausgänge verändert. Man kann sich zwar auch ein Delay Unterprogramm mit geschachtelten Laufschleifen schreiben, aber dann muss man erstmal messen und probieren welche Werte man für die gewünschten Verzögerungen benötigt.

Bye

Reply to
Uwe Hercksen

Am 13.08.2013 17:42, schrieb Uwe Hercksen:

Ist bei BASCOM alles dabei, fix&fertig.

Gruß Dieter

Reply to
Dieter Wiedmann

Nein, eigentlich garnicht, mal abgesehen von den natürlich unterschiedlichen Assemblersprachen ist das eigentlich ganz genau dasselbe. Und zumindest die Assemblersprache des AVR ist im Vergleich zu dem Moloch, den moderne x86er anbieten, wirklich sehr geradlinig, überschaubar klein und schnell zu lernen.

Du meinst die Ansteuerung der eingebauten Peripherie? Tja, das relativ komplex, aber das ist es beim PC ja in noch viel größerem Maße. Z.B.: Beim AVR die eingebaute UART vernünftig interruptgesteuert zu benutzen, geht auf jeden Fall sehr viel leichter und schneller, als ein

16550A-kompatibles Stück Hardware im PC auf die gleiche Weise zu benutzen...

Aber anders als beim PC mußt du dich i.d.R. nicht um Hardware kümmern, die du für deine Anwendung nicht benötigst. Wenn du nur ein paar Pins zu bestimmten Zeiten wackeln lassen willst, brauchst du bloß zu lernen, wie man einen Pin auf Ausgang schaltet und seinen Pegel setzt. Wenn's richtig gut werden soll, kannst du noch lernen, wie man einen Timer benutzt. Das war's schon.

Wer WIRKLICH Vorkenntnisse in Assembler und Hardwareprogrammierung vom PC hat, der bekommt das maximal in zwei Nachmittagen auf die Reihe.

Das glaubst du. Auch da muß man sich in die Eigenschaften und Möglichkeiten der Hardware einarbeiten. Und zusätzlich in den Basic-Dialekt, über den du sie benutzen willst. Und der ist längst nicht so komfortabel wie z.B. ein neuzeitliches Basic á la VB.net, sondern mehr so auf der Stufe der in die Heimcomputer der 70er und frühen 80er eingebauten Basics.

Reply to
Heiko Nocon

Eben. Libraries mit häufig gebrauchten routinen gibt es. Der Zufallszahlengenerator wird vermutlich keine echten Zufallszahlen generieren können sondern nur immer die gleiche Pseudozufallszahlenkette, es sei denn, man spendiert extra Hardware dafür.

M, fang' am besten mit einem Blinkprogramm an (das "Hallo Welt" für Microcontroller), da hast Du das drumrum, das Du brauchst, auch schon dabei. Ausserdem testet es Deine Entwicklungsumgebung. Für Dein Problem ist die Programmierung nicht so anders wie auf einem PC, ansich keine wilde Sache also. Wenn es komplexer wird (Interrupts, µC-Hardware) dann macht sich der Unterschied immer bemerkbarer.

Wenn Du keine Zeit hast kaufe Dir etwas, das die Programmierung des µCs schon übernimmt. In der eigenen Schaltung zu programmieren kostet Zeit und Lernkurve. Letztlich nicht schlimm aber wenn Du die Zeit nicht investieren willst, kaufe es. Schau vielleicht mal das an:

formatting link
Ich habe die Platine nicht, sie sieht aber für Dich geeignet aus. Im Manu al wird auch auf Basic eingegangen.

Gruß

Clemens

Reply to
Clemens Waechter

Wie schon von anderen geschrieben, wäre da wohl ein Arduino am besten geeignet, da du dich weder in eine komplizierte Entwicklungsumgebung einarbeiten, noch in irgendwelchen Datenblättern suchen musst, wie man Timer oder Register programmiert. Da du für deine Anwendung kein weiteres "Shield" brauchst, reicht so eine Version:

formatting link

nebst einem TTL UART USB Kabel zum Programmieren, die du bei eBay nachgeworfen bekommst:

formatting link

(oder auch einfach selbst einen MAX232 aufbauen, wenn dein PC noch einen richtigen seriellen Port hat)

Wenn du planst in Zukunft einiges an weiteren Projekten mit Microcontrollern zu bauen und vielleicht auch mal größere Stückzahlen brauchst, dann kann ich PIC empfehlen. Speziell für deine Aufgabe wären kleine 6-Pin Chips geeignet, den man schon für 0,42 Euro bekommt:

formatting link

Hat zwei AD-Eingänge (die auch als digitale Ein-/Ausgänge konfiguriert werden können) und einen internen 8 MHz Oszillator, der auf +/-2% genau ist bei 3,3V Betriebsspannung. Wenn du es also nicht allzu genau brauchst, besteht damit deine ganze Schaltung aus genau diesem einen Microcontroller, einem Poti und vielleicht noch einen 100 nF Abblockkondensator (und noch einen Spannungsregler, um die 12 V auf 3,3 V zu regeln).

Gibt eine ziemlich große Auswahl an Microcontrollern von Microchip. Auch im DIP-Gehäuse, falls du das lieber magst.

Zum Programmieren brauchst du einmalig einen PICKit, für den es auch preiswerte aber gut funktionierende Nachbauten auf eBay gibt. Die Programmierung kann allerdings manchmal etwas haarig sein, da man sich das Datenblatt durchlesen muß, um die Register richtig zu programmieren. Kann man in C oder auch in Assembler programmieren.

Assemblerbeispiel (Quelltext Link unten auf der Seite), was schon fast das macht was du haben willst:

formatting link

In C ist das einfacher zu programmieren finde ich, wobei du das LED Blinklicht unten auf der Seite auch wieder als Ausgangspunkt für dein Projekt nehmen könntest, was schon fast so einfach wie ein Arduino-Programm aussieht:

formatting link

Die Microcontroller von AVR gehen auch, aber ich habe schlechte Erfahrungen mit Atmel gemacht (allerdings mit den größeren Microcontrollern, nicht mit AVR), sodaß ich das nicht mehr empfehle.

Ansonsten gibt es noch die "großen" ARM Microcontroller, z.B. die LPC-Serie von NXP, oder die STM32-Serie von ST. Die kosten dann z.B. satte 3 Euro das Stück und brauchen meist einen externen Quarz und weiter Beschaltung, aber bieten die meiste Leistung pro Euro und haben teilweise USB-Anbindung, Ethernet, externes RAM, Flash usw.

--
Frank Buss, http://www.frank-buss.de 
electronics and more: http://www.youtube.com/user/frankbuss
Reply to
Frank Buss

Wenn du schon Basic und Clipper programmieren kannst, ist C wirklich nicht so verschieden. Schau dir mal den Beispielcode an, um einen analogen Eingang abzufragen und über den seriellen Port auszugeben:

formatting link

und dieses Beispiel, für die Zeitverzögerung:

formatting link

sowie dieses hier, für die Zufallszahlgenerierung:

formatting link

und beurteile selbst, ob das zuviel Einarbeitung und trickreiche Programmierung erfordert, oder ob du das nicht recht einfach für deinen Anwendungszweck in ein paar Minuten zusammenführen kannst. Bei Arduino hast du es (meist) nicht mit den höheren Weihen von C zu tun, wie Pointer-Arithmetik usw.

Bascom soll aber auch gut sein, wenn man die AVR-Chips mag.

--
Frank Buss, http://www.frank-buss.de 
electronics and more: http://www.youtube.com/user/frankbuss
Reply to
Frank Buss

Am 13.08.2013 18:09, schrieb Clemens Waechter:

Braucht man aber nicht wirklich. So man noch eine klassische Druckerschnittstelle am Rechner hat reichen drei Widerstände als "Programmiergerät". Schaltplan ist bei BASCOM in der Hilfe drin.

Gruß Dieter

Reply to
Dieter Wiedmann

Ja, so man hat. Ich habe keinen Parallelport und einen seriellen nur auf dem Mainboard, müsste man rausführen. Wenn das mit den drei Widerständen aus unerfindlichen Gründen nicht funktioniert gestaltet sich die Fehlersuche frustrierend für Einsteiger. Bei einer seriellen Programmierschaltung gilt das gleiche, ist auch einfach zu bauen, schwer zu debuggen.

Wenn man also mehr Geld als Zeit hat empfiehlt sich imho der Kauf, zumal es um ein paar Euro geht.

Gruß Clemens

Reply to
Clemens Waechter

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.