PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Noob will in Microcontrollerprogrammierung + Roboterbau einsteigen - Anfängerfragen



derSpinner
15.04.2014, 14:17
Hallo zusammen,

die Überschrift sagt es ja schon grob aus. ;-)
Auf dem Gebiet Micrcontroller-Programmierung bin ich völlig neu. Habe in der Schule und im Studium aber schon etwas Erfahrung mit Informatik/Programmieren machen dürfen (Borland Delphi, C#, u.A.). Jedoch ist da mein Wissen im Laufe der Zeit überwiegend verflogen, so dass ich fast bei Null anfange (ich weiß noch, wie Schleifen und Bedingungen aussehen und kenne grob die wichtigsten Datentypen wie Integer, Float, Double, String, Bool). Aber von jetzt auf gleich ein einfaches, kleines Programm schreiben könnte ich mit meinem aktuellen Wissen wohl nicht mehr ohne weiteres.

Jedenfalls möchte ich nun gerne Microcontroller programmieren können und in dem Zusammenhang im Laufe der Zeit evtl. auch verschiedene Programmiersprachen erlernen und nutzen. Langfristig würde ich eben gerne nicht nur LEDs blinken, Lichtschranken und Tongeber ansteuern können, sondern auch Sensoren, die etwas bewegen, z.B. Roboter, die sich mit Ultraschall orientieren und Hindernissen ausweichen, oder welche die Dinge auf dem Boden vor sich erkennen und aufsammeln etc. - mein kleiner Traum wäre, (irgendwann einmal) einen Autopilot für ein RC-Modellflugzeug zu bauen (ist allerdings fraglich, inwiefern und in welcher Zeit das möglich ist...).
Es soll ein langfristiges Hobby werden (das mir evtl. auch im Beruf nützlich sein könnte), daher möchte ich nichts vorgekauertes haben wie Bausätze, die ich nach Anleitung zusammenlöte ohne zu wissen, welche Aufgabe was für ein Bauteil oder eine bestimmte Schleife des Schaltkreises übernimmt. Vor allem möchte ich es jetzt von Grund auf, bis ins Detail lernen, also nachhaltig. Zudem möchte ich nach Möglichkeit ausschließlich frei verfügbare (lizenzfreie) Software nutzen.

Frage ist nun: WAS BRAUCHE ICH WIRKLICH FÜR DEN ANFANG? (allgemein)
Meine Antwort, basierend auf dem, was ich bisher gefunden habe:

- Hardware:
Controllerboard + weitere Bauelemente für den gewünschten Schaltkres (ggf. Kompaktbausatz), des Weiteren Verbindungskabel (PC-Schaltkreis) (ISP oder USB, je nach Schaltkreis und Bausatz) Meine Frage: Was ist der Unterschied, ob ich jetzt ISP oder USB nehme? Hat eines von beiden irgendwelche Vorteile? Oder kommt es einfach darauf an, was in dem jeweiligen Bausatz ist, bzw. welchen Anschluss ich auf die Platine setze? Ist das "Controllerboard" bei den Bausätzen schon zusammengesetzt? eigtl doch auch nciht, oder?

- Software:
Betriebssystem: Habe aktuell Windows 7, werde aber zum einen fürs Programmieren und zum anderen auch aus eigenem Interesse eine weitere Partition mit Linux einrichten. Frage: Welche Distribution? Meine Favoriten für die engere Auswahl sind bisher: Slackware, Ubuntu oder Debian.
Programmiersoftware: nach Möglichkeit eine lizenzfreie, vollwertige frei verfügbare Software, z.B. Visual C++ 2010 Express, Python, Assembler, LunaAVR etc.
Compiler: Wenn ich es richtig verstanden habe, eine PC-Software, die den erstellten Quelltext in Maschinensprache übersetzt.
Nach meinen Recherchen wird der aber nicht immer benötigt, manche Programmiersprachen kommen wohl ohne Compiler-Software aus, richtig oder falsch verstanden?

Mein Plan, wie ich anfange: Controllerboard und ISP-Kabel nach dem RN-Tutorial zusammenbasteln und programmieren:
http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht#Wir_starten_mit_einem_ATMe ga32
http://www.rn-wissen.de/index.php/AVR-ISP_Programmierkabel
Was meint ihr? Gut für den Einstieg oder andere Ideen?
Die Frage ist ob das sinvoll ist, wenn man ein ähnliches Controllerboard auch in einem Baukasten selbst zusammenbasteln muss (ist doch so oder?). Dann hat man ja mehr davon und kann direkt weiter den Roboter drumherum bauen und ist länger beschäftigt... ?

danach überlege ich, wie es weitergehen könnte, wenn ich den Tutorial durch hab:
- Nibobee von Nicai zusammenbauen und programmieren (allerdings: kommerzielle Software erforderlich von Nicai und stumpfes zusammenbasteln der Steuerung ohne hinterfragen zu können, was welches Bauteil für eine Aufgabe erfüllt...)
- das hier: http://halvar.at/elektronik/mikrocontroller_wie_anfangen/
ist allerdings auch wieder nur ein Bausatz, bei dem sich nix bewegt und keine Aktoren oder Stellmotoren angesteuert werden (ich möchte auch Action sehen, wenn ich etwas erfolgreich programmiert hab - deswegen bin ich ja in diesem Forum und nicht in irgendeinem Elektronikforum^^)
- weitere Ideen/Empfehlungen?

So das war nun ausführlich genug über mich und meine Hoffnungen/Erwartungen an mein neues Hobby. ;-) jetzt freue ich mich auf ein freundschaftliches Miteinander hier im Forum und auf Tipps, Hilfestellungen, Berichtigungen (wenn ich etwas falsch verstanden und dargestellt habe) eurerseits. :-)
Sry für die vielen, für erfahrene Bastler vielleicht "dummen" Fragen, aber ich weiß halt wirklich nicht, wie ich sinnvoll und effizient (d.h. mit starkem Lerneffekt) anfangen soll und hätte gern etwas Bestätigung, bevor ich Geld für etwas rausschmeiße, was ich nach nem Tag durchgearbeitet hab und dann nutzlos, d.h. nicht mehr interessant ist, weil es daran nichts neues mehr zu entdecken/lernen gibt.

HannoHupmann
16.04.2014, 10:38
Für die Programmierung gibt es Tutorials und jeder fängt mit einer blinkenden LED an. Das ist der klassische Einstieg und jeder der hier Roboter programmiert hat klein angefangen ohne Sensoren, Tongeber, Motoren und Co. Daher ist der beste Tipp für den Anfang: Kleine Brote backen!

ISP ist die Schnittstelle am Controller, USB die am PC. Dazwischen kommt ein Programmieradapter den es in verschiedenen Ausführungen gibt. Siehe auch unsere RN-Wiki

Betriebssystem hat damit gar nix zu tun, wer noch nie mit Linux gearbeitet hat, kann sie da sehr lange mit beschäftigen bis irgendwas läuft. Grundsätzlich kann man Controller über Windows oder Linux programmieren, was einem besser liegt.

AVR bietet für die hauseigenen µC eine eigene Entwicklungsumgebung an, die ist kostenlos und kann in C programmieren. Ansonsten hilft auch hier wieder RN-Wiki

FALSCH: Jede Programmiersprache braucht einen Compiler für die Umsetzung des Codes für den µC. Doch bei vielen Entwicklungsumgebungen ist dieser Compiler bereits integriert, so dass man sich nicht darum kümmern muss.

Mega32 ist ein guter Einstiegskontroller das Kabel ist eher ungeeignet, da es keine USB Schnittstelle auf der Rechnerseite hat. Es gibt besseres. Abgesehen davon empfehle ich Einsteigern nur an einem Ende zu basteln, ansonsten kann man schlecht herausfinden wo der Fehler liegt. D.h. ein gekaufter Programmieradapter funktioniert wenigstens und wenn der µC nicht reagiert, dann liegt's am Aufbau dort.

Der Anfänger kauft ein fertiges Board und baut seinen Roboter drum herum (RN-Shop), der Profi kauft die Teile, entwickelt sein eigenes Board angepasst an den Roboter drum herum.

Asuro ist der klassische Anfängerroboter, Nibobee tuts sicher auch. Abgesehen davon kann man auch bei Asuro und Nibobee nicht einfach nur zusammen bauen, sondern sich überlegen wozu welches Bauteil dient und was das für Schaltungen sind. Dazu sucht man sich die Datenblätter der Chips und versucht das ganze zu "verstehen"!

Die Fragen sind natürlich klassische Anfängerfragen und ich kann dir daher nur empfehlen viel zu lesen. Gerade in diesem Hobby bekommt man nur sehr wenig "vorgekaut" (auch wenn die Anzahl der Tutorials unendlich ist) verstehen muss man es selbst. Hier im Forum sind fast alle Roboter von Usern gebaut worden, die so wie du: keine Ahnung hatten. Ich fange regelmäßig Projekte an wo ich Dinge mache, die ich noch nie gemacht habe, von denen ich keine Ahnung habe und keinen Schimmer wie das gehen könnte :-D. Das macht den Reiz aus. Dazu gehört dann, dass man sich ggf. stundenlang(!) in ein i2c Protokoll vertieft, nur um ein paar LEDs farbig leuchten zu lassen oder einen Kompass-Sensor auszulesen. Dieses Hobby erfordert (wie alle Hobbys) einen großes Maß an Eigenarbeit, die nicht immer Spass macht - ich komme regelmässig an den Punkt wo ich frustriert alles aufgeben will.

Ansonsten gilt: Einfach machen! Am Ende hat bisher alles irgendwie funktioniert ;-)

fredred
16.04.2014, 13:01
Hallo HannoHpmann,

dein Kommentar ist einfach Klasse geschrieben. Wollte auch schon ein verfassen, ist nun überflüssig.
Hänge mal ein Bild in Anhang, wie ich angefangen habe, um mich auf eine bestimmte Variante festzulegen. Wollte ja völlig unabhängig von Controller fertige Hardware sowie Software sein. Einfach erst mal Erfahrungen für Einstieg sammeln.
Bord nutze ich heute noch für Entwicklungen. Ist ja alles steckbar. Meine Projekte baue ich alle selber(Lochstreifenplatine) ist ja kaum Außenbeschaltung nötig. Natürlich ist alles größer wie mit SMD.
Hat aber den Vorteil alle IC sind gesockelt. Habe mich für AVR und BASCOM entschieden.
Wie du richtig geschrieben hast, führen viele Wege nach ROM. Somit kann keine Aussage getroffen werden, was besser ist.

Mit freundlichen Grüßen
fredred

HeXPloreR
16.04.2014, 14:47
Hallo derSpinner,

und herzlich Willkommen hier im Forum.

Ja, der HannoHupmann hat es schon sehr gut getroffen. Zum Anfang würde ich immer empfehlen eine fertigen Programmier Adapter (z.B mySmartUSB oder AVRISImkII) zu nehmen, das minimiert die Fehlerquellen - und glaub mir davon gibt es schon bei drei Baueilen mehr als genug ;), einen ATmega8 oder (etwas kleiner) ATtiny13 (je 2x Stück) in DIP-Version , ein mittleres Steckbrett (Breadboard), paar Steckbrücken (auch gerne selbergemacht), einige verschiedene 1/4 Watt Widerstände und paar normale rot und grüne LED's.
Damit fängst Du an, ob das überhaupt erstmal was für Dich ist, eine Led blinken zu lassen. Das kostest grob alles zusammen vielleicht 20€. Diese Schaltungen kannst Du dann auch auf Platinen auflöten, mit der Zeit kannst Du Dir so ein eigenes Board aufbauen mit den Dingen Du Du benötigst. Motortreiber kann man immer noch dazu holen, oder Servos, auch umgebaute oder oder...

Ein guter und zu empfehlender Shop für Elektronik ist momentan Reichelt. Bei Modellbau steht HobbyKIng und Staufenbiehl wohl recht weit oben.
Ich selbst benutze die Vollversion von Bascom Basic mit mySmartUSBmkII. Damit habe ich u.a. meine bisherigen Erfahrungen gemacht.

Ab jetzt könne wir immer sagen "der Spinner war's" ;)

Viele Erfolge und Grüße
Jörg

derSpinner
16.04.2014, 16:30
Okay, danke für die Hinweise.
Dann lass ich das mit dem Selbstbau des ISP-Dongle doch lieber, ihr habt Recht, USB-Anschluss auf PC-Seite ist praktischer.
Nun ist dann meine Frage, wie ich dann am besten anfange, also womit am besten?
Welche ist für einen Anfänger die sinnvollste Alternative:
- RN-Control: zunächst für erste Experimente und Programme, später dann eben auch erste Testaufbauten mit Schrittmotoren, Sensoren etc. bis hin zu meinem ersten Robo.
- Bausatz Nibobee
- einen Bausatz wie myAVR light, myAVRlight Plus oder myAVR Board MK2, bei dem Einsteiger direkt die notwendige Software mitgeliefert bekommen und Programmierbeispiele (Anleitungen) dabei sind.
- oder einfach einzelne Teile (Steckboard, LEDs, die nötigsten Elemente einer Grundschaltung) bei reichelt.de bestellen

Ich tendiere nun doch eher zum RN-Control, weil:
- gute Dokumentation, viele User für Hilfe hier im Board
- langfristig sinnvoller, da ich nach den ersten "Laufversuchen" in dieser Materie wsl. eh früher oder später zum RN-Control greifen würde
- auch Anleitung etc. für erste Programme beiliegen, wie ich es verstanden hab
- USB-programmierbar (kein ISP-Stecker notwendig, da USB-ISP Bridge integriert, wenn ich es richtig verstanden hab)

Auch sinnvoll scheint mir der Nibobee, da ich dort direkt nach Anleitung einen Roboter zusammenstellen und programmieren kann ohne große Umwege - das wäre dann eher Learning by doing, ohne vorher erst mit LEDs experimentiert zu haben. Frage ist: wie sinnvoll ist es, als Neuling direkt einen Roboterbausatz zusammen zu bauen und zu programmieren? Angeblich soll Nibobee ja für Anfänger geeignet sein, also einsteigerfreundlich.
Also, RN-Control oder Nibobee? Oder doch Grundschaltung auf Steckbrettt mit den nötigen Teilen von Reichelt? Später werd ich ja wsl eh oft mal nen steckbrett brauchen, um neue Schaltkreise zu testen und zu entwickeln schätze ich, oder wie ist das bei euch? Andererseits denke ich mir, wenn ich dann noch ne USB-ISP-Bridge wie mySmartUSB light kaufen muss, was direkt schon 15€ sind, kann ich mir auch einen Bausatz bzw. das RN-Control holen, die eine solche Bridge schon integriert haben und mit USB-Port ausgestattet sind - ich denke da hab ich dann mehr von.

fredred
16.04.2014, 16:54
Hallo Jörg,

auch dein Kommentar ist OK aber mit „ z.B mySmartUSB oder AVRISImkII)“ ist ein Einsteiger schon wieder abhängig. Meine persönliche Meinung ist, ISP frei verfügbar zu lassen. Wenn PC noch einen parallel Anschluss hat benötigt man keine zusätzliche Hardware zum flashen. Anschlussplan kann ich wenn gewünscht hier einstellen. Programmieren mit BASCOM STR200/300 ist dann auch für Einsteiger, sehr übersichtlich. Bascom-AVR legt sehr großen Wert, Fehler schon vor den flashen zu vermeiden.

Mit freundlichen Grüßen
fredred

derSpinner
16.04.2014, 21:24
Denke, ich werde mir früher oder später ein RN-Control Board selber zusammenbasteln. Warenkorb ist bei reichelt.de zusammensgestellt und gespeichert.
Habe mir da auch direkt ein Steckbrett beigelegt, weil ich es ohnehin iwann brauchen werde für eigene Tests/Neukreationen.
Habe allerdings eine Frage zu einem Bauteil: Die 3polige Stiftleiste LU 2,5 MS 3 (Im Schaltplan Bauteil RS232) gibt nicht - es gibt die Variationen LU 2,5 MSf 3 (Stiftleiste gerade) und LU 2,5 MSFW 3 (Stiftleiste gewinkelt). Welche davon brauche ich?
Außerdem bestelle ich mir als µC den ATMEGA 644PA-PU (wenn, dann direkt was mit Potential für später^^) - der müsste doch auch auf das Board passen oder?

Ich überleg nur, ob ich dies vielleicht eher als größeres Projekt ansehen soll, evtl auch erst für später wenn ich etwas Erfahrung habe und doch erst mit dem myAVR light Plus beginnen soll => hier ein Link: http://shop.myavr.de/Baus%C3%A4tze%20und%20Platinen/myAVR%20Board%20light%20PLUS,%20Bausatz.htm?sp=art icle.sp.php&artID=200085
Ich denke das ist nen gutes Preis-Leistungsverhältnis für den Einstieg - damit kann ich an LEDs proggen lernen und rumspielen und schonmal nen LCD Display programmieren. Denke damit wäre ich fürs erste auch schon beschäftigt. ;-)

Einzelteile kaufen und eigene Grundschaltung bauen denk ich, macht sich vom Preis-Leistungsverhältnis nicht bezahlt, da ein ISP-Dongle oder eine andere Bridge notwendig wäre, die allein auch schon mind. 15€ kostet - für das Geld krieg ich auch schon nen kleinen, einfachen Bausatz mit mehr Bauteilen, der direkt über USB programmierbar ist.

Was könnt ihr mir davon denn jetzt am ehesten für den Einstieg empfehlen? Würde das dann nämlich heute oder morgen bestellen. :-)

HeXPloreR
16.04.2014, 21:46
Also Grundsätzlich gibt es die Möglichkeit über ISP zu flaschen, also das Programm in den Mikrocontroller zu übertragen. Dann gibt es noch die Möglichkeit über RS232 zu flaschen, dazu benötigt man einen passenden Bootloader der schon auf dem Mikrocontroller draufgeflascht sein muss und einem zusätzlichen IC der die Pegel anpasst (z.B. MAX232). Das wird mit einem ISP Programmer erledigt. Danach kann man also auch über RS232 programmieren wenn man möchte und die Möglichkeit hat.

Ich habe bisher keinen Sinn darin gesehen über den Bootloader zu gehen wenn ich sowieso einen ISP Programmer benötige um den Bootloader zu installieren. Der würde dann nur noch zm Einsatz kommen wenn ich einen neuen µC bootloadern wollte und sonst in der Ecke liegen...zusätzlich würde wieder ein Kabel mehr auf dem Tisch liegen. Es mag andere Vorteile geben, aber ich selbst habe meinen Roboter immer auf dem Tisch neu programmiert und das Programm/Roboter dort auch durch getestet. Wenn man nicht gerade empfindliche Bauteile an die ISP Leitungen hängt oder gar Motortreiber Steuersignale dann kann man sehr gut mit dem ISP-Anschluss normal arbeiten. Also mit einfachen LED's parallel habe ich keine Problem festgestellt - die blinken bischen lustig während des flaschen mit und das wars auch schon.

Wichtig wäre nur das man sich einen ISP Programmer besorgt der eventuell auch mit AVR Studio und/oder Bascom (oder auch anderen Programmierumgebungen) leicht zur zusammenarbeit zu überreden ist. Der mySmartUSB kann dazu auch noch als Uart arbeiten, dann wäre der ISP-Anschluss auch wieder frei, wenn man den Stecker abzieht. Nur GND muss man verbunden anderweitig lassen sonst geht die Übertragung daneben.

Das Rn-Control wäre meiner Meinung nach dann eher für Dich geeignet, weil es eben nur das Board und dazu sehr praktisch ist. U.a. ein kleiner Motortreiber und ein Speaker schon mal mit drauf ist. Ausserdem kommt es von Haus aus mit Gleichspannungen ab 7 bis 35V (glaube ich) zurecht. Ich würde die aufgebaute Version dann vorziehen. Wieder um nicht von vornherein fehlerbehaftet einzusteigen. Es muss ja nicht gleich beim Einstieg frusten.

Aber auch ein Arduino-Board inkl. IDE wäre nicht verkehrt. Wenn man eher mit C ähnlichem Dialekt arbeiten will.

EDIT: Du willst das Rn-Control mit Bauteilen von Reichelt nachbauen? ---ohne RN-Board-Platine - oder haben die die auch? .... hmm, naja ich sag mal aus dem Bauch raus: das wird nichts ;)
Ob der µC passend ist sagt Dir das Datenblatt- Vorsichtig sein, hier kommt es nicht nur darauf an, ob die Pinanzahl gleich. Hier geht es eher um Pinkompatiblität, haben einige Pins andere funktionen als der ander Chip, wirst Du vermutlich Probleme bekommen. Und ein einfacher zweiter Atmega32 16Mhz DIP tut es denke ich auch. Diese Dinge bekommt man recht shcnell kaputt wenn man nicht aufpasst. Manch Motortreiber übrigens auch ;)

Wenn es Dir jetzt immer noch ums Erfahrung sammel geht, dann nimm einen ISP-Programmer und die Einzelteile um die Schaltungen im RN-Wissen nach zu bauen. Das kommt immer noch am günstigsten und man kann immer noch was dazu kaufen wenn man dann mehr vorhat.

Das RN-Board ist nicht einfach an USB ansteckbar! Es wird ein Adapter benötigt! Oder eben einen alter COM Port - die meisten aktuellen PC/Books haben diesen nicht mehr.

Korrektur: 7 bis 18V

malthy
16.04.2014, 23:10
Nur eine kleine Randbemerkung zum ISP: wenn Du 3 Wochen Zeit hast um auf die Lieferung zu warten, ist ein USBASP aus China (Aliexpress) idR eine gute Wahl. Zwei Stück bekommst Du dort für $3.81 incl Versand (http://www.aliexpress.com/item/FREE-SHIPPING-1LOT-New-USBASP-USBISP-AVR-Programmer-USB-ATMEGA8-ATMEGA128-Support-Win7-64K/817846333.html). Wenn Du lieber etwas mehr bezahlen möchtest, kannst Du ihn auch bei ebay für €3.80 (http://www.ebay.de/itm/Neu-USB-ISP-USBASP-Programmiergerat-Programmierer-fur-Atmel-AVR-ATMega-51-ATTiny-/261100135914)/Stück kaufen. Der USBASP läuft auch direkt aus BASCOM. Das sehe ich nämlich wie Fredred, zum Einstieg ist es angenehm, wenn die Toolchain übersichtlich ist. Just my two cents :-). Gruß, Malte

derSpinner
17.04.2014, 00:05
Ich hab mir jetzt doch erstmal das myAVR light Plus geholt - ich denke da bekomme ich zum ähnlichen Preis doch merklich mehr Bauteile und Möglichkeiten als wenn ich mir Einzelteile bestelle und die Grundschaltung aus RN-Wissen nachbaue.. Danke für die Links zum ISP-Dongle, hab ich direkt bestellt. Mich verwirrt es nur, dass sämtliche ISP-Programmer von Roboterhardware.de 15€ und mehr kosten, bis hin zu 46€? was ist denn dabei, was man so unbedingt braucht im vergleich zu diesem 3,80€-Kabel?
Was meinst du mit einem "Adapter", Hexplorer? ist das jetzt quasi dieses USBISP-Kabel, also der Programmer?

Die Rohplatine fürs RN-Control gibts bei roboterhardware.de, aber leider die Einzelteile oder einen gesamten Bausatz dafür nicht (obwohl es an mancher Stelle steht, dass es das angeblich gäbe... :-P).

derSpinner
17.04.2014, 02:31
Bin auf noch eine Frage gestoßen:
Was genau ist jetzt das benötigte RS232-Kabel? Pc-Seite 9polig und Boardseite 3polig? Hab nix wirklich eindeutiges gefunden, da tauchen oft überall zwischendrin auch 25polige Stecker auf. Weiteres Problem wäre, dass mein PC eine solche Schnittstelle nicht hat - für die Nutzung eines RS232-USB-Kabels brauche ich laut RN-Wissen einen Programmer namens STK500, aber finde da in Shops unter dem Begriff nur ein komplettes Board. Und was meinst du genau mit "einen zusätzlichen IC, der die Pegel anpasst", hexplorer? Wofür steht IC? Sry, aber da sind eben doch diese paar Dinge recht verwirrend und für mich nicht eindeutig, was ich da nun brauche.

HeXPloreR
17.04.2014, 07:47
Hallo 'Spinner,

okay, nur mal soviel zum Anfang: Ein extra RS232 Kabel bnötigst Du PC seitig nicht, denn wenn der eh keinen Anschluss dafür hat kannst Du auch nichst anschliessen. Manche Programmier-Adapter unterstützen allerdings den RS232 Datenmodus (oder auch Uart / RXTX genannt) -ob das jeder kann weiß ich jetzt so auch nicht, es gibt ja schon so einige. Der mySmartUSB mkII z.B kann es, ich kann es nur von dem sicher sagen weil ich den auf benutze. An dem müssen dann zwei einfache (selbsgemachte) Kabel (immer mit GND) von dem Board extra angeschlossen werden. Es gibt andere günstigere -wie Du sicher schon bemerkt hast - man muss nur irgendwie sicherstellen das der dann auch mit der gewählten Programmierumgebung funktionieren kann, oder man es hinbekommt das einzustellen falls es mal etwas schwierig wird.

Ein STK500 Board benötigst Du nicht zwingend, der einfache Programmer inkl RS232 Modus kann es auch. Ob der dann auch den Bootloader ansprechen kann weiß ich so auch nicht - wie gesagt ich benutze schon lange keinen Bootloader mehr. Und habe damit auch weiter keine Erfahrung.

IC bedeutet "integrated Curcuit" oder auch "integrierter Schaltkreis" - alle Mikrocontroller sind es, sehr komplex fast wie ein PC. Dazu kommen noch spezielle IC's wie der MAX232 in seinen verschiedenn Ausführungen; Motortreiber und Spannungswandler die für gewisse Aufgaben ausgelegt sind usw usw. Ein Mikrocontroller ist also ein IC der im großen Umfang verschieden Möglichkeiten der Nutzung bietet die man ihm selbst geben kann, daher ist der heute so interessant für uns ;)

Ich kann Dir nur empfehlen dir vielleicht vorerst mal das Buch von Ulli Sommer "Roboter selbst bauen" zu besorgen, es ist gut zu lesen auch wenn die eine oder andere Schwäche hat, die man irgednwie selbst erkennen muss. Es hat über 300 Seiten, bis 180 ungefähr vermittelt es gute und brauchbare Informationen (mit kleinen Fehlerchen), ab da muss man selbst gucken was man da gebrauchen kann.

Viele Grüße
Jörg

i_make_it
17.04.2014, 08:09
1234567890

derSpinner
17.04.2014, 08:49
Okay, vielen Dank für die ganzen Infos. Wie gesagt, habe ich mir jetzt erstmal myAVR light Plus bestellt (http://shop.myavr.de/Baus%C3%A4tze%20und%20Platinen/myAVR%20Board%20light%20PLUS,%20Bausatz.htm?sp=art icle.sp.php&artID=200085) und ein USBIsp-Kabel.
Werde mit dem Bausatz mal anfangen und nach der Anleitung ein paar Beispiele programmieren (LEDs und LC-Display).
Danach besorg ich mir dann die Bauteile fürs RN-Control (bin ich insgesamt bei ca. 35-40€ mit Versand) sowie ein Steckboard für weitere Lern- und Testprojekte sowie noch weitere Bauteile (Dioden, Quarz, Elkos etc.) für die Lernprojekte. Mein Plan ist dann, die Schaltungen aus dem RN-Wissen (AVR Einstieg leicht gemacht: http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht#Wir_starten_mit_einem_ATMe ga32) nachzubauen und zu programmieren. Auch dieses Tutorial für Anfänger habe ich gefunden: http://staff.ltam.lu/feljc/electronics/bascom/BASCOM_Tutorial_1.pdf

Anfangen werde ich wohl mit der Demoversion von Bascom - Alle drei Lernprojekte (Bausatz myAVR Light Plus, AVR-Einstieg aus RN-Wissen und Bascom-Tutorial) werden hauptsächlich bzw. unter anderem anhand von der Programmierung mit Bascom erklärt. - Dieses Prog soll auch für den einstieg leichter benutzbar sein.
Langsam habe ich konkrete Vorstellungen, wie ich loslegen kann. :-)
Das Buch Roboter selber bauen werde ich dann auch bald darauf bestellen, wenn die ersten Schaltungen funktionieren und ich mir mehr zutraue als nur LEDs und LCDs zu proggen. ;-)
Allerdings bleibt mein Problem mit dem RS232: Ich wollte nämlich auch eine Datenübertragung von dem µC zum PC programmieren (Bascom-Tutorial), außerdem empfielt das Thema "AVR-Einstieg leicht gemacht" aus RN-Wissen ausdrücklich die Anschaffung eines RS232-Kabels, da es (nach meinem jetzigen Wissensstand) die einzige Möglichkeit darstellt, Daten vom µC zum PC zu übertragen. Gibt es da für mich eine kostengünstige Möglichkeit? (Erinnerung: ich habe am PC keine RS232-Schnittstelle)

Mein Vorhaben hat natürlich auch einen Nutzen für alle, die nach mir einen Einstieg in ähnlicher Weise haben, oder ein RN-Control selber bauen wollen:
Für das RN-Control und für die Grundschaltung aus RN-Wissen (AVR-Einstieg leicht gemacht) habe ich eine Bestell-Stückliste angefertigt und gespeichert.
Für die Grundschaltung benötigt man knapp 5€ für Bauteile plus Steckbrett gewünschter Größe (nochmal 6-20€).
Wenn ich es getestet habe und alle Bauteile auch richtig gewählt sind, also die Schaltung funktioniert, stelle ich der Com meine Listen zur Verfügung. ;-)

Würde am liebsten sofort loslegen!! :-) Leider bin ich ab morgen erst im Urlaub und muss eine Woche warten. :-P
So, jetz muss ich aber auch fix zur Vorlesung an der Uni^^
Hoffe, für das RS232-Problem hat jemand noch eine gute Idee, bzw. kann mir sagen, was ich überhaupt brauche, um RS232-Port über USB zu betreiben (am besten möglichst günstig) - evtl auch Eigenbau möglich?

i_make_it
17.04.2014, 09:03
1234567890

fredred
17.04.2014, 12:56
Hallo derSpinner,

mein letzter Beitrag zu diesem Thema(Einstieg)
der ATMEGA 644PA-PU ist schon eine gute Wahl. Wirst schon einige Zeit benötigen um diesen an seine Leistungsgrenze zu bringen.
So nun werde ich mal versuchen meinen ersten Aufbau und programmier Erfolg zu beschreiben(sind einige Jahre vergangen) aber mal sehen.
1. Bascom-Demo installiert..... auf alten Dellrechner mit USB-COM- und Parallelanschluss.
2. Material gekauft. 1x Lochstreifenplatine(100x160) 1x 40poligen IC-Sockel 1x Buchsenleiste, 64-polig,einreihig,RM2,54 1x Parallelstecker mit Lötanschluss 1x 5poligen Platinenstecklverbinder(für ISP) 1x ATMega16 1x USB Steckernetzteil (1000mA) und eine USB- Einbaubuchse Serie A für Printmontage (Spannungsversorgung).
Kosten waren ca. 15 Euro.
Das war es. 2x 220 Ohm Widerstände und ein 100n Kondensator sowie ein Taster und 10Kohm Widerstand für Reset hatte ich noch.
Zum Aufbau ein Lötkolben und ein 3,5mm Bohrer. Der Bohrer macht sich gut die Streifen der Platine per Hand zu trennen.
Die Buchsenleiste habe ich auf 20 getrennt und neben den IC-Sockel eingelötet, den Rest auf 2x12 getrennt und auf die VCC und GND- Schiene gelötet. Somit brauchte ich bei meine ersten Versuchen nicht immer den Kolben anzuschmeißen. Konnte ja nun alles stöpseln.
Mehr Aufwand ist erst mal nicht nötig um die ersten Erfahrungen zu sammeln. Ein ISP-Dongle benötigts du nicht BASCOM hat die STK200/300 Schnittstelle integriert. Auch ein ext. Takt (Quraz) kann später noch angeschaltet werden.
Später wirst du noch ein USB für Prog einbinden. Willst ja mit der Zeit auch aktuell sein. (ich benötige bis heute kein USB oder was auch immer fürs programmieren) Wichtig wird es sein eine COM-Verbindung zu deinem PC-Terminalprogramm aufzubauen.
Somit kannst du an fast jeder X beliebigen Stelle im Programm mit „PRINT“ ein Ergebnis anzeigen lassen. Dies ist für mich unverzichtbar geworden. Denn wenn du auch mal ein Programm schreibst mit ca. 5000 Zeilen, mit vielen Sub’s , Schleifen, Berechnungen usw. Bin ich mich sicher, es treten erst mal Denkfehler auf.
So nun aber Schluss mit dem Geschwätz.
Im Anhang noch mein ISP- Anschluss LPT.

Mit freundlichen Grüßen
fredlich

derSpinner
17.04.2014, 23:32
Vielen Dank für die weiteren Tipps. :-)
Aber ich muss doch irgendwie das Programm vom PC auf den µC übertragen - wie geht das denn ohne ein ISP-Kabel? man braucht doch auf jeden Fall eine Verkabelung in irgendeiner Form zur Programmierung des µCs. Bis auf die Sache mit dem RS232 sind auch meine Fragen erstmal alle geklärt. Die meisten werden sich wohl eh erst ergeben, wenn ich mit der Praxis anfange und auf Probleme stoße. Die Vorfreude ist groß und ich kanns kaum erwarten, das Paket zu öffnen und mich auf die Bastelei zu stürzen :-)

fredred
19.04.2014, 16:48
Hallo derSpinner,
wollte zu diesem Thema zwar kein Kommentar mehr einstelle, aber nach wie vor kann ich nur sagen, für mich persönlich ist ein „alter“ PC mit LPT und COM für Programmierung, schon das Optimum.
Schaust du dich mal mein Bild(PC-LPT zu ISP-Controller) an wirst du sehen, man benötigt nicht viel zum flashen. Wichtig ist der Hardware Reset mit LPT. Ist BASCOM gestartet und Verbindung hergestellt, wird sofort, ein „knallhartes“ Reset am Controller ausgeführt. Ist ja auch das A&O fürs sauberes flashen.
Natürlich habe ich auch „moderne PC’s“ die nur noch USB usw. haben.
Aber mein alter Rechner(für ein Päckchen Kaffee erworben) ist Ideal für meine vielen Projekte. Ein Selbstbau RS232 Adapter für Anzeige auf PC mit COM ist auch kein Problem(ca. 2,00 Euro).
Nun werden einige Experten sagen “all dies ist doch nicht mehr Modern man kann doch mit einige zwischen geschalteten Modulen viel bessere Erfolge erzielen“ Mag sein, aber ich bleib bei der Historie der Entwickler für Controller.
Mit freundlichen Grüßen
fredred

derSpinner
24.04.2014, 18:53
So, jetzt habe ich mit Bascom ein paar LEDS blinken lassen, auch mal auf Tasteraktivierung, und den Speaker/Summer ticken lassen.
Habe aber schon wieder ein paar Fragen:
- Warum "tickt" der Summer nur (wie eine laute Analoguhr an der Wand) und spielt keinen Dauerton, wenn der entsprechende Port durchgängig auf "1" steht? das ist mir nicht klar. Beim mitgelieferten Testprogramm (was bereits in Maschinencode/hex vorhanden war) hat der Summer bei Druck auf einen Taster einen Dauerton abgespielt. In Bascom kann ich nur den Port auf "0" oder "1" setzen, oder auf "Sound" - Hier frag ich mich: Was ist der Unterschied zwischen "1" und "Sound"?

Übrigens: dieses Board kann man allein mit einem Mini-USB-Kabel programmieren, da der µC einen Bootloader hat und vom Hersteller sämtliche notwendige Software zur Verfügung gestellt wird (Compiler, USB-Treiber).

Allerdings möchte ich jetzt auf LunaAVR umsteigen, da man bei Bascom ja doch die 4kb-Grenze schnell erreicht hat, die die Demo hergibt. Bei einem von mir selbstgeschriebenem Programm reichten ein paar einfache Befehle (wie Led an) und zwei "If"-Schleifen... hab mich erst gefragt warum mir immer ein Synthaxfehler angezeigt wurde, bis ich gesehen hab, dass die erzeugte Datei schon 4KB groß war und mir klar wurde, dass Bascom den Code nur bis zum Erreichen der 4KB geprüft hatte und ihm deswegen erwartete Befehle fehlten. :-P :-D Wenigstens eine Meldung vom Programm, dass der Quelltext die Kapazität der Demoversion überschreitet hätte ich als Hinweis wünschenswert gefunden...

Aber nun mein Hauptproblem:
wie bekomme ich LunaAVR so konfiguriert, dass ich dieses Board flashen kann?
Habe Luna installiert, WinAVR, AVRdude und in Luna unter Einstellungen als Compiler avrdude.exe eingestellt, als Schnittstelle "com3" gewählt. Weiß nur nicht was ich in "Programmer" angeben soll. so etwas wie "myAVR USB to UART" ist dort in der Liste nicht aufgeführt. Könnte mir da jemand helfen? Versuche das schon seit gestern abend. o.O
Wenn ich beim proggen heute nicht weiterkomme, kann ich ja immerhin das LCD-Modul noch zusammenlöten^^

Mein Fazit zu dem Board (my AVR Board light):
Ich muss sagen, von dem Board bin ich hellauf begeistert und ich kann es nur jedem für die ersten "Gehversuche" empfehlen! das Board allein kostet 15€ (Bausatz), das Set (Board und LCD-Modul) 30€. Software CD mit Beispielprogs, Bauanleitung, Schaltplan, Anleitung für Durchführung des Hardwaretests, Kurze PDFs für den Einstieg mit ausführlichen Beispielen ist alles dabei. Lediglich das Mini-USB Kabel muss man sich selbst besorgen, aber davon hat man heutzutage meistens eh ein paar in der Ecke liegen von alten Handys o.Ä. Zudem ist ein Teil der Platine mit Stecklöchern zum schnellen, Aufbau eigener Schaltungen ausgestattet. Ich glaube das reicht mir sogar erstmal, damit kann man wirklich viel machen und lernen - Ampelschaltungen bauen, Melodien abspielen lassen, Text auf LCD anzeigen lassen usw. Da werd ich das RN-Control erstmal so schnell nicht brauchen, sondern eher erst, wenn ich wirklich sage, ich bin jetzt soweit, dass ich auch wirklich Servos und Schrittmotoren ansteuern will und Roboter entwerfen möchte.

malthy
24.04.2014, 19:09
Warum "tickt" der Summer nur (wie eine laute Analoguhr an der Wand) und spielt keinen Dauerton, wenn der entsprechende Port durchgängig auf "1" steht?

Möglicherweise handelt es sich nicht um einen "Summer" im landläufigen Sinne, sondern einfach nur um ein Piezo-Schallwandler. Wenn Du damit die Luft zum schwingen bringen willst, musst Du ihn zum Schwingen bringen ;-). Also einfach mal ein Rechteckpuls auf dem entsprechenden Port erzeugen - also zB 1 ms Port an, 1 ms Port aus, und das in einem Loop.

Dass Du so schnell die 4 kB Grenze von BASCOM erreichst, wundert mich etwas. Ob sich die 89 € für BASCOM lohnen musst Du irgendwie selbst entscheiden. Ich finde schon. Du bekommst immerhin lifelong Updates/ -grades. Aber die Diskussion lohnt eigentlich nicht, da wird's erfahrungsgemäß schnell weltanschaulich :-).

Mit LunaAVR kenne ich mich nicht aus, da müsste jemand anderes helfen.

Gruß
Malte

derSpinner
25.04.2014, 00:19
Hey, du hattest Recht! - ich hatte wohl gestern einfach iwelche Programmfehler eingebaut und kam dann (fälschlicherweise) zu dem Schluss, dass es an der Demoversion und der 4KB Begrenzung lag. Unter "Eigenschaften" der erzeugten .bas-Dateien steht "Größe: ..." und "Größe auf Datenträger: ...", bei Größe auf Datenträger waren es nämlich immer deutlich mehr KB und auch mal zufällig ziemlich genau 4 KB. Für LunaAVR brauche ich scheinbar doch einen richtigen Programmer laut meiner Recherchen.
Aber da ich nun mit der Bascom-Demo doch deutlich mehr machen kann genügt mir das auch vorerst völlig. :-)

Mit dem Piezo-Speaker ist es so: "PortX.Y = 1" sorgt für ein kurzes "tick", wenn man einen Ton erzeugen will ist die Synthax: " Sound PortX.Y, [Dauer], [Frequenz]"
Solange ich Anfänger bin und jeden Tag einiges neues dazulerne muss ich das wohl noch genießen.^^

habe heute eine Fußgängerampel programmiert, die standardmäßig rot ist und nur nach kurzem Tasterdruck nach einigen Sekunden grün wird. Dabei wird bei Grün ein "tick, tick, tick, tick...."-Signalton ausgegeben bis die Ampel wieder auf Gelb und dann auf Rot schaltet. Beim Umschalten auf rot ertönt noch ein etwas tieferer Signalton dreimal kurz hintereinander (quasi analog eines "S" als Morsezeichen).
Eine Ampel, die automatisch von Rot über Gelb nach Grün schaltet und zurück hab ich bereits in einem Tutorial als Quelltext gehabt, nun hab ich diese mit eigenen Ideen selbstständig weiterentwickelt und nun kommt sie der Funktion einer realen Fußgängerampel doch recht nahe. :-)
Macht echt Spaß, wenn die ersten Projekte fertig sind und funktionieren, die man selbstständig entwickelt hat. :-)
Mal sehen was mir morgen in den Sinn kommt. xD Denke ich werde mal die Photozelle nutzen und auch mal die Potentiometer.

malthy
25.04.2014, 08:23
Mit dem Piezo-Speaker ist es so: "PortX.Y = 1" sorgt für ein kurzes "tick", wenn man einen Ton erzeugen will ist die Synthax: " Sound PortX.Y, [Dauer], [Frequenz]"

Dann ist es so wie ich oben vermutet habe, Du musst dem Schallwandler selbst eine veränderliche Spannung (zB ein Rechteck durch einfaches ein- und ausschalten des Ports) zur Verfügung stellen, damit er einen kontinuierlichen Ton von sich gibt. Der high-level-Befehl "Sound" in BASCOM macht genau das für Dich. Viel Spass weiterhin!

Gruß
Malte

derSpinner
25.04.2014, 12:10
Hey, heute hab ich mich mal an dem LCD versucht.
Im Löten mache ich auch Fortschritte - sieht alles viel feiner und sauberer aus als bei den ersten Widerständen auf der Platine und ging dazu auch noch flotter. :-)

Testprogramm vom Hersteller wurde auch erfolgreich auf dem LCD angezeigt (einfache Textausgabe, Programm ist als .hex vorhanden).

Jedoch bekomme ich es einfach nicht hin, eigenständig einen Text mit Bascom zu programmieren. Könnt ihr mir helfen?
Hier die Pinbelegung des LCD:
28060

Hier mein Versuch eines Programms (das sogar im Datenblatt zu diesem LCD als Beispiel aufgeführt war)

$regfile = "m8def.dat"
$crystal = 3686400
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2
Config Portd = Output

Do
Waitms 1000
Cls
Lcd "myAVR mit LCD"
Loop
END

Ich verzweifle grad ein wenig und hab keine Idee, was ich falsch gemacht hab o.O. Kompilieren klappt, auf µC brennen geht auch. Aber dann tut sich nix.
Trotz des Befehls "Cls" (Display löschen) in der Schleife bleibt der Text des vorherigen Testprogramms auf dem LCD.

In der Beschreibung steht noch folgendes:

Das myAVR LCD Add-On ist für den 4Bit Modus über Port D konfiguriert.
The myAVR LCD Add-On is configured for the 4 Bit mode across port D.

Warte mindestens 50 ms nach Power-ON.
Wait as many as 50 ms according to Power-ON

Das Display wird durch das dreimalige senden von 0b0011xxxx (Soft-
Reset) in den Initialisierungsmodus versetzt, dabei muss RS = 0 sein.
Muss ich da irgendetwas manuell einstellen/konfigurieren? Wenn ja, wo kann ich das tun?

fredred
25.04.2014, 16:57
Hallo,

wollte mich schon melden. Hat sich wohl erledigt.
Zitat:
„Aber da ich nun mit der Bascom (http://www.rn-wissen.de/index.php/Bascom)-Demo doch deutlich mehr machen kann genügt mir das auch vorerst völlig.“
Ich:
Mit 4K Flash(Demo BASCOM) habe ich auch schon mal eine Funkbrücke aufgebaut.
2 Temperaturwerte / 4 universal Analog und 3 Digitalwerte wurden ausgewertet(gesendet).
Flash-Rom Speicher mit ca. 3,2 kByte belegt. Aber für sehr große Anwendungen wie mit Grafikdisplay mit Touch- Bedienfeld usw. habe ich mich doch die Vollversion gegönnt. Bin begeistert von den vielen Update. Machen mich einfach das Programmieren leichter.

Mit freundlichen Grüßen
fredred

derSpinner
27.04.2014, 12:41
Das LCD kann ich nun erfolgreich programmieren. Hab ein paar kleine Fehler gefunden (im Quelltext nach "cls" noch "wait..." eingefügt, dann mit dem myAVRprogtool nicht die .bas-datei sondern die .hex-Datei geöffnet und auf den µC gebrannt; und ich vermute, dass Bascom ein Problem damit hatte, ein völlig neues, anderes Programm für den µC unter gleichem Namen wie eine vorherige Datei zu überschreiben beim Abspeichern).

Nun mein nächstes Problem: Wie benutze ich das Poti (Potentiometer) richtig?
Ich habe zwei einfach Testbeispiele erfolglos ausprobiert:
- LEDs Rot, Gelb, Grün laufen durch, wobei die Pause (alle LEDs aus) durch das Poti geregelt werden sollen.
- Summer gibt einen Ton über ein paar Sekunden aus, wobei das Poti die Tonhöhe (Frequenz) bestimmt
Mein Problem: durch Betätigung des Potis ändern sich die Werte nicht. LEDs leuchten immer in gleicher Geschwindigket, Summer gibt immer den gleichen Ton aus.

1.)Wie schließe ich das Poti an? In einem Beispielprogramm wurde ein Port als Input definiert (zb. "Config Portb.2 = Input") und dort der Abgriff des Schleifkontakts mit einem Patchkabel an diesem Port angeschlossen. Ich frage mich dabei: woher weiß der µC, dass er bei "Getadc" das Potential an diesem Port abgreifen soll? In dem Beispielprogramm wurde nichts weiter definiert für diesen Port. Außerdem habe ich mitten auf dem Board einen Anschluss namens "AREF" - kann es sein dass ich immer hier das Poti anschließen muss und das gar nicht über andere Ports geht?
2.) Zur Synthax: Was bedeutet "Getadc(0)" und "Getadc(1)"? Wo ist der Unterschied?
Was bedeuten die Variablen hinter "Config ADC" (Single, Prescaler, Reference)
3.) kann es sein, dass mein Problem daran liegt, dass ich das Board per USB-Kabel betreibe (über USB to UART)? Habe gelesen, dass eine Versorgungsquelle von ca. 9V mit etwa 10 - 50 mA empfohlen wird. USB Kabel haben im Normalfall 100 mA Strom. Reicht der Widerstand des Potis evtl. nicht aus?

Hoffe auf Antworten und Hilfe.

fredred
28.04.2014, 15:22
Hallo Spinner,

als erstes möchte ich dich Bitte, bring erst mal ein kleines Projekt zum Erfolg z.B.(LCD-Anzeige), dann fang das nächste an. Nicht wie ich vermute erste klappt nicht nun mache ich was anderes.
Dies ist nach meiner Meinung der aller größte Fehler für „Einsteiger“.
1. musst du dich mal für eine Programmiersprache entscheiten(ist aber oft von fertiger Hardware abhängig) Ich Empfehle: BASCOM (ist ja sehr gut lesbar) Später kann man immer noch umsteigen, ich bin und bleibe bei BASCOM. Den Compiler kann man nicht mit dem alten BASIC-Compiler für DOS auf eine Stufe stellen. Die erzeugte Hex-Datei zum schreiben auf einem Controller ist schon sehr „schmal“ Aber Bitte beachten dies ist meine Meinung und soll auf keinen Fall eine andere Programmiersprache abwerten. Denn hier geht es um den Einstig in dieser Materie und nicht was ist besser oder schlechter.
2. Einfach eine Hex-Datei die als Beispiel geliefert wird zu „laden“ und diese nicht lesen kann(ich kann es noch mit einigen Aufwand) ist doch nichts für „Einsteiger“. Da solle man sich schon auf die Entwickler verlassen. Wie ich es auch mache.
3.
So nun zu der direkten Anfrage.
Die bas-datei ist dein Programm, um es aber in Maschinencode(Hex) zu wandeln musst du in BASCOM erst mal das Butten [Comile] oder F7 drücken. Nur dann wird die Hex erzeugt. Erst danach auf [Program chip] oder F4.
All dies, hat den Vorteil du musst nicht wie in C oder GCC erst mal eine Datei #include <avr/io.h> oder MCU usw. erstellen. All dies macht BASCOM mit der „Kopfeinstellung“

Z.B wie ich es aus deinem Versuch mit LCD erkennen kann.
$regfile = "m8def.dat" 'ist ein ATMega8

‚diese Einstellungen kann ich später beschreiben wenn gewünscht.
$hwstack = 40
$swstack = 40
$framesize = 40
‚Hier ist Vorsicht angesagt, ist immer abhängig von der Fuse Einstellung.
‚Ist dein µC mit ext. Quarz beschaltet muss die Frequenz hier eingestellen.
$crystal = 8000000 'Interner Takt (8MHz)
‚Erst mal später einfügen wenn COM- Terminal verwendet wird
$baud = 19200 Register für COM-Ausgabe reservierten

‚Möchtest du die Pins für Analogeingang einstellen kommt als nächste Zeile.

Config Adc = Single , Prescaler = Auto , Reference = Avcc 'Referenzspannung auf 5 Volt

Der int. Wandler benötigt eine Spannungsversorgung also AVCC mit 5Volt verbinden.
AREF ist ein Referenzspannungsausgang, erstmal offen lassen


Bedeutet dein Poti ist auf eine Seite auf 5V die andere auf GND. Der Schleifer geht auf einem Analogeingang des µC. Angenommen auf Pin AD0. Die Abfrage wäre somit Getadc(0)
Da der µC nur ein ADC DC Wandler hat und alle Eingänge abgefragt werden können, muss Multiplexer gestartet werden. Dies macht der Befehl:

Start Adc

'So nur noch Analog – Eingang dimensionieren
Dim A0 As Word
‚nun wird in die Variable A0 das Ergebnis geschrieben.
A0 = Getadc(0)
‚Nun kannst du Entscheidungen treffen z.B ist A0 = 1023 (Schleifer auf 5Volt)

IF A0 > 1020 Then ‘“mach was”
‘Else ‘mach was anderes”
End If

PS. Hast du eine kleine Hardware aufgebaut und beschreibst diese mit verwendeten Controller (wichtig Controllertaktung) und Pinbelegung, schreibe ich dich nach Anforderung eine Bas. Sende dann diese auch in Hex-Code, damit du Erfahrungen sammeln kannst.
Kann nur dann Helfen, indem ich Hardware nachbaue und Software testen kann.

Mit freundlichen Grüßen
fredred

derSpinner
28.04.2014, 17:57
@fredred: Deine Vermutung ist allerdings falsch. Ich habe NICHT etwas anderes versucht, nur weil das eine nicht funktioniert hat.
In einer früheren Antwort hatte ich auch bereits erwähnt, dass ich mich nun für Bascom als Sprache entschieden habe (zumindest für den Einstieg). Evtl werde ich später irgendwann mal ein wenig C++ oder Luna ausprobieren - aber erstmal arbeite ich nun mit Bascom.
Ich habe es bereits geschafft, das LCD zu programmieren und mehrere Programme damit schon geschrieben (z.B. bei Taster1 zeigt LCD etwas bestimmtes an, bei Taster2 etwas anderes)
Ich war bei meinem Lernfortschritt auch etwas kreativ und habe ein Programm bis jetzt immer weiterentwickelt und Neuerlerntes immer mit eingebaut.
Zuerst leuchtete eine LED, dann wurde es zur Ampel, die immer hin und herschaltet, dann wurde die Ampel per Taster geschaltet, nun ist zu der Ampelschaltung noch eine LCD-Anzeige gekommen ("Rot", "Bitte warten...", "umschalten...", "Gruen" und "Stopp" werden dabei je nach Aktion angezeigt).
Das Potentiometer funktioniert nun auch. Ich wusste lediglich nicht, an welchen Port ich es anschließen musste - wo ich es jetzt weiß ist es mir völlig klar, da es im Datenblatt steht, dass beim Atmega8A die Ports C0 bis C0 die ADC0 bis ADC5-Abgriffe sind.