Guten Abend, wir möchten nächstes Jahr in der Schule µC programmieren und da ich das Thema spannend finde, wollte ich schon ein bisschen früher anfangen... ...Also entschloss ich mich ein Rapitus SAMxS Board zu kaufen mit dem Mikrocontroller ATSAM4S4C. Als das Board ankam, legte ich gleich mit dem AtmelStudio 7 und dem AVR-GCC Tuturial los. Ich wollte am Anfang einfach nur eine LED zum blinken bringen, aber leider kann ich unter dem Prozessor(ATSAM4S4C) die Ausgänge mit dem Befehl DDRC = 255; nicht setzten, denn AtmelStudio unterstreicht den Befehl (DDRC= 255;), als würde AtmelStudio den Befehl nicht kennen. Die Bibliothek (#include <avr/io.h>) wurde davor natürlich eingebunden. Ich habe Spaßeshalber einen anderen Mikrocontroller (ATmega 8) ausgewählt und dort hat AtmelStudio nicht gemeckert. Gibt es für meinen Mikrocontroller irgendwelche anderen Befehle, oder muss ich bei dem Modell noch irgendetwas vor dem programmieren beachten, damit ich mein LEDchen zum laufen bekomme?:-P Desweiteren möchte ich im allgemeinen mal ganz lieb nach ein paar Tipps bitten (z.B. empfehlt ihr lieber ein anderes Board oder Tutorials... bzw. wie habt ihr Angefangen?). Vielen Dank in Voraus :-) Chris
Ich würde mal darauf tippen, dass ein atsam4s4c kein avr ist, sondern ein arm (cortex m4). Ein atmega8 ist ein avr und oh Wunder, schon geht es.
Die ATSAM-Controller hat ARM-, keine AVR-CPUs. Die Teile sind deutlich komplexer als die 8-Bit AVRs. Wenn das dein erster Kontakt mit Mikrocontrollern überhaupt ist, würde ich dir wirklich empfehlen, den Einstieg mit den kleineren AVRs zu machen - nen Arduino UNO oder NANO ist saubillig und dafür gibt's Beispiele, Dokus und Intros bis zum Abwinken.
Chris S. schrieb: > Die Bibliothek (#include <avr/io.h>) wurde davor natürlich eingebunden. Das sollte auf einem ARM aber einen dicken Fehler werfen.
Peter D. schrieb: > Das sollte auf einem ARM aber einen dicken Fehler werfen. sollte es nicht, weil Chris S. schrieb: > Ich habe Spaßeshalber einen anderen Mikrocontroller (ATmega 8) > ausgewählt und dort hat AtmelStudio nicht gemeckert. was zwar spaßig aber natürlich nicht richtig ist
Chris S. schrieb: > Mikrocontroller ATSAM4S4C. > > Als das Board ankam, legte ich gleich mit dem AtmelStudio 7 und dem > AVR-GCC Tuturial los. Wieso ein Tutorial für AVR? Das ist ein ARM mit völlig anderer Architektur. Wenn man sich die Doku durchliesst stellt man schnell fest das da nicht ein Register Namen überinstimmt.
> ...Also entschloss ich mich ein Rapitus SAMxS Board zu kaufen mit dem > Mikrocontroller ATSAM4S4C. Oha, gab es einen bestimmten Grund, dass Du Dir ausgerechnet so ein Teil ausgesucht hast? Man kann darauf natürlich auch programmieren und LEDs zum Blinken bringen, aber eine 32Bit ARM CPU ist wesentlich komplexer und es wird Dir damit auch wesentlich schwerer fallen, zu verstehen, was dort genau vor sich geht. Und Anfängertutorials aus dem Internet kannst Du auf diesen Mikrocontroller kaum anwenden. Daher kam vermutlich auch Dein "#include <avr/io.h>". Das ist eine ganz andere Architektur und hat mit AVR Controllern nix zu tun. Besser wäre, wenn Du ein AVR Entwicklungsboard kaufst.... z.B. das von Pollin: https://www.pollin.de/p/atmel-evaluations-board-v2-0-1-fertigmodul-810074 Und dazu einen oder besser zwei ATMEGA328P Controller im DIL Gehäuse. Dann passt Dein angefangener Code auch schon.
> Programm meckert
Wie meckert es denn?
Eher Mähähähähäh oder doch Mööööööh?
> ATMEGA328P
Oh hoppla - ich meinte den ATMEGA8.
Sorry, der 328 ist mit dem Board scheinbar nicht kompatibel...
Hi
>Sorry, der 328 ist mit dem Board scheinbar nicht kompatibel...
Begründung
MfG Spess
> Sorry, der 328 ist mit dem Board scheinbar nicht kompatibel... Doch ist er. Dieses Pollin Board und seine Doku sind bloss so alt, da gab es den Chip vermutlich noch nicht. Ganz am Ende meines Buches habe ich AVR Mikrocontroller im DIP Format mit ihrer Pinbelegung dargestellt. Da kann man sofort sehen, dass der ATmega328 passt: http://stefanfrings.de/mikrocontroller_buch/Einstieg%20in%20die%20Elektronik%20mit%20Mikrocontrollern%20-%20Band%201.pdf Ist aber auch nicht mehr aktuell, es gibt inzwischen weitere AVR Controller die da nicht drin stehen.
Guten Tag, ist ja der Hammer wie viele Antworten über die Nacht reinkamen, an dieser Stelle möchte ich mich bei euch bedanken. :-) Seppo schrieb: > Oha, gab es einen bestimmten Grund, dass Du Dir ausgerechnet so ein Teil > ausgesucht hast? Ja, habe mir das Board ausgesucht, weil man es per USB-Schnittstelle programmieren konnte und weil es im Angebot war :-P Seppo schrieb: > Besser wäre, wenn Du ein AVR Entwicklungsboard kaufst.... z.B. das von > Pollin: Meinst du wirklich? Weil da kann ich nur per ISP-Programmer programmieren und dies habe ich leider noch nicht ganz so kapiert, wie dies mit der Schnittstelle funktioniert. Gibt es da eine Brücke von ISP auf USB? Was hälst Du / Ihr vom ARDUINO UNO R3 DIL gegenüber den AVR Board? Denn da könnte ich nämlich per USB Programmieren. Desweiteren stellt sich die Frage, kann ich beim Arduino-Board auch meine Entwicklungsumgebung AtmelStudio 7 weiterhin benutzen?... Denn ein Kollege (auch blutiger Anfänger) meinte es wäre nicht möglich, weil es für die Arduinos eine vorgefertigte Software zum programmieren gibt. Man, man, man... viel zu viel Auswahl für einen Anfänger, da weiß man gar nicht wo man anfangen und aufhören soll... Beste Grüße Chris
> Gibt es da eine Brücke von ISP auf USB? Ja, nennt sich ISP Programmieradapter. Arduino Module kannst du direkt über den USB Port programmieren, weil deren µC mit einem Bootloader ausgestattet sind. Bei China Klone fehlt der Bootloader aber manchmal. Besorge Dir einfach einen ISP programmieradapter, den wirst du früher oder später ohnehin brauchen. Kriegt man schon für weniger als 5€. > kann ich beim Arduino-Board auch > meine Entwicklungsumgebung AtmelStudio 7 weiterhin benutzen? Ja, aber Atmel Studio unterstützt den Bootloader nicht. Zum Übertragen des Programms nimmst du dann avrdude oder du schmeisst den Bootloader weg und benutzt eine ISP Programmieradapter. Das Atmel Studio unterstützt viele billige Programmieradapter nicht, avrdude aber schon. Früher oder später wirst du ohnehin bei avrdude landen. > da weiß man gar nicht wo man anfangen und aufhören soll... Du solltest mit einer Anleitung beginnen, die auch den Umgang mit der Software und Hardware beschreibt. Nimm zunächst das, was die Anleitung empfiehlt. Auf andere Produkte kannst du immer noch später wechseln, wenn du weist, was du tust. Schau Dir das an: http://stefanfrings.de/mikrocontroller_buch/index.html
Stefanus F. schrieb: > Da kann man sofort sehen, dass der ATmega328 passt: > > http://stefanfrings.de/mikrocontroller_buch/Einstieg%20in%20die%20Elektronik%20mit%20Mikrocontrollern%20-%20Band%201.pdf Respekt!
Chris S. schrieb: > ...Also entschloss ich mich ein Rapitus SAMxS Board zu kaufen mit dem > Mikrocontroller ATSAM4S4C. Das ist ein ARM, Du mußt also ins ARM-Tutorial schauen: https://www.mikrocontroller.net/articles/ARM_Cortex_Mikrocontroller Die ARM sind einiges komplexer als die AVR. In der Regel wird beim ARM nicht direkt auf IO-Register zugegriffen, sondern ein HAL benutzt. Gebräuchlich sind hier auch eher die von ST und NXP, die von Microchip eher weniger. Bei den AVRs sind die Arduino direkt über USB programmierbar, aber ohne Debugger. Man kann als Anfänger aber auch viel im Simulator laufen lassen.
> Du solltest mit einer Anleitung beginnen, die auch den Umgang mit der > Software und Hardware beschreibt. Nimm zunächst das, was die Anleitung > empfiehlt. Auf andere Produkte kannst du immer noch später wechseln, > wenn du weist, was du tust. > > Schau Dir das an: http://stefanfrings.de/mikrocontroller_buch/index.html Hab jetzt mal das erste Script überflogen. Hammer ein großes Lob! Dass es Menschen gibt die sich so eine große Mühe machen um anderen zu helfen. Ich werde dann gleich heute Abend auf meinem anderen PC die Entwicklungsumgebung (AtmelStudio 7) installieren und die Bauteile von der Materialliste bestellen und dann doch erstmal die Finger von den Fertig-Boards lassen (da die Anleitung leider nur Boards zum selber bauen darlegt). Werde dann also das Script durcharbeiten :-). Vielen Dank für den Tipp. Chris
Du kannst auch ruhig ein fertiges Board benutzen. Ob der AVR auf einer Lochrasterplatine, einem Steckbrett oder einer industriell gefertigten Platine sitzt ist ihm egal. Du kannst die Anleitungen ganz sicher auch damit nachvollziehen. Wenn du gut genug englisch kannst darf es auch gerne ein anderes AVR Modell sein. Da ist dann halt die Pinbelegung etwas anders und die Register heißen teilweise etwas anders. Die Unterschiede findest du anhand des Datenblattes heraus. So schwer ist das nicht.
Stefanus F. schrieb: > Ob der AVR auf einer Lochrasterplatine, einem Steckbrett oder einer > industriell gefertigten Platine sitzt ist ihm egal. Ok, Danke Stefanus. Dann überlege ich mir ob ich dann wie oben das https://www.pollin.de/p/atmel-evaluations-board-v2-0-1-fertigmodul-810074 Und dazu einen oder besser zwei ATMEGA328P Controller im DIL Gehäuse kaufe oder doch lieber bisschen selber bastel. :-)
Schau dir auch das an, da ist der Programmer schon dabei. https://www.ehajo.de/bausaetze/bedrahtet/89/ateval-microchip-avr-evaluationsboard
> Und dazu einen oder besser zwei ATMEGA328P Controller im DIL Gehäuse
ja, und vielleicht noch ein paar kleine ATtiny13 oder ATtiny45. Wobei
die ATtiny45 den Vorteil hätten, auch zu Arduino kompatibel zu sein. Der
ATtiny13 hat für Arduino zu wenig Speicher.
Hi >Wobei die ATtiny45 den Vorteil hätten, auch zu Arduino kompatibel zu sein. Was macht einen AVR 'Arduinokompatibel'? MfG Spess
Beitrag #5514105 wurde von einem Moderator gelöscht.
> Was macht einen AVR 'Arduinokompatibel'? Die Frage ist eigentlich falsch herum formuliert. Es müsste heissen: Zu welchen AVR Modellen ist die Arduino IDE kompatibel? Wenn man so herum fragt schaut man bei Arduino nach und findet (hoffentlich) die Liste.
Guten Abend, vielen Dank nochmal für die Antworten. Ich werde jetzt eins von den beiden Boards bestellen und kräftig üben. Hat ein Board zu dem anderen bestimmte Vorteile? Board 1: https://www.pollin.de/p/atmel-evaluations-board-v2-0-1-fertigmodul-810074 Board 2: https://www.ehajo.de/bausaetze/bedrahtet/89/ateval-microchip-avr-evaluationsboard
Ist doch schon geschrieben worden. Das Ehajo Board enthält einen ISP Programmieradapter. Das Pollin Board setzt einen Computer mit echten seriellen Ports voruas (hat das noch wer?) oder du musst zusätzlich einen ISP Programmieradapter (mit 10 poligem Stecker) kaufen. Ich persönlich würde Dir zu einem Steckbrett und einem Arduno Nano Klon sowie einem ISP Programmieradapter (mit 6 poligem Stecker) raten. https://www.amazon.de/AZDelivery-102-Breadboard-Kit-Steckbr%C3%BCcken/dp/B01N4VCYUK/ref=sr_1_11?s=computers&ie=UTF8&qid=1533751035&sr=1-11&keywords=breadboard https://www.amazon.de/Philonext-ATmega328P-Controller-Entwicklungsboard-PIN-Header/dp/B07BQVKPLX/ref=sr_1_7?ie=UTF8&qid=1533750921&sr=8-7&keywords=arduino+nano+ch340 https://www.amazon.de/Diamex-7200-USB-ISP-Stick-AVR-Programmieradapter/dp/B0068K0D4O/ref=sr_1_1?s=computers&ie=UTF8&qid=1533750982&sr=1-1&keywords=isp+avr Diese Sachen bekommst du bei Aliexpress für etwa den halben Preis, musst dann aber Geduld haben. Lieferung dauert typischerweise 2 Monate. Wenn du Geld sparen musst, lass den Diamex Programmieradapter weg. Zur Not kannst du den sogenannten "ISP Sketch" au einen der Arduinos laden um ihn als ISP Programmieradapter zu verwenden.
Stefanus F. schrieb: > Ist doch schon geschrieben worden. Das Ehajo Board enthält einen ISP > Programmieradapter. > > Das Pollin Board setzt einen Computer mit echten seriellen Ports voruas > (hat das noch wer?) oder du musst zusätzlich einen ISP > Programmieradapter (mit 10 poligem Stecker) kaufen. > > Ich persönlich würde Dir zu einem Steckbrett und einem Arduno Nano Klon > sowie einem ISP Programmieradapter (mit 6 poligem Stecker) raten. > https://www.amazon.de/AZDelivery-102-Breadboard-Kit-Steckbr%C3%BCcken/dp/B01N4VCYUK/ref=sr_1_11?s=computers&ie=UTF8&qid=1533751035&sr=1-11&keywords=breadboard > https://www.amazon.de/Philonext-ATmega328P-Controller-Entwicklungsboard-PIN-Header/dp/B07BQVKPLX/ref=sr_1_7?ie=UTF8&qid=1533750921&sr=8-7&keywords=arduino+nano+ch340 > https://www.amazon.de/Diamex-7200-USB-ISP-Stick-AVR-Programmieradapter/dp/B0068K0D4O/ref=sr_1_1?s=computers&ie=UTF8&qid=1533750982&sr=1-1&keywords=isp+avr > > Diese Sachen bekommst du bei Aliexpress für etwa den halben Preis, musst > dann aber Geduld haben. Lieferung dauert typischerweise 2 Monate. > > Wenn du Geld sparen musst, lass den Diamex Programmieradapter weg. Zur > Not kannst du den sogenannten "ISP Sketch" au einen der Arduinos laden > um ihn als ISP Programmieradapter zu verwenden. Perfekt Stefan, Geld spielt für Weiterbildung keine Rolle. Hab jetzt alles bestellt und wenn es da ist, werde ich mit deinem Skript arbeiten. Vielen vielen DANK! :-) Chris
Dann bestelle noch ein paar ATtiny45 mit.
Vielen Dank Stefan. Wird gleich mit bestellt. Ich wünsche Dir noch einen angenehmen Abend. Chris :-)
Stefanus F. schrieb: > Da kann man sofort sehen, dass der > ATmega328 passt: > > http://stefanfrings.de/mikrocontroller_buch/Einstieg%20in%20die%20Elektronik%20mit%20Mikrocontrollern%20-%20Band%201.pdf bis dahin bin ich nicht gekommen weil ich schon auf Seite 9 ins Stolpern kam was soll diese Leitwerttabelle? Kupfer mit 44 liegt schon ohne Einheiten mindestens um 10 zu tief! heute steht in Wiki https://de.wikipedia.org/wiki/Elektrische_Leitf%C3%A4higkeit zwar 58 und ich habe noch 56 gelernt, aber wo hast du die 44 her?
> bis dahin bin ich nicht gekommen Warum schreibst du das? DIR hatte ich das Buch nicht empfohlen. > was soll diese Leitwerttabelle?... Danke für den Hinweis. Die Tabelle hatte ich vor 10 Jahren von Wikipedia abgeschrieben. Du bist der erste, der den Fehler bemerkt hat. Ich korrigiere das.
Stefanus F. schrieb: > Du bist der erste, der den Fehler bemerkt hat. komisch DAS höre ich öfter (nur oft fehlt mir der Glaube) dir glaube ich mal :)
:
Bearbeitet durch User
>> Du bist der erste, der den Fehler bemerkt hat. > komisch DAS höre ich überall Dann hast da ein besonderes Talent. Vielleicht solltest du Software-Tester werden.
Fehler hin oder her. Sich die Zeit zu nehmen so etwas zu schreiben und kostenlos anzubieten finde ich top:-)
Stefanus F. schrieb: > Vielleicht solltest du > Software-Tester werden. hatte ich mal gemacht, aber die besten SW Tester waren immer das Prüfpersonal unserer TelefonTestaustomaten, die fanden Tastenkombinationen die sich keiner ausdenken kann ;)
Hallo Leute, da ich jetzt den Daimex Programmieradapter habe (https://www.amazon.de/gp/product/B0068K0D4O/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1) und das Nano V3.0 ATmega328P Board (https://www.amazon.de/gp/product/B07BQVKPLX/ref=oh_aui_detailpage_o05_s00?ie=UTF8&psc=1) wollte ich das Board programmieren und mal alle Ausgänge bzw ein Ausgang mal auf High setzten und mal schauen ob am Ausgang eine Spannung anliegt, leider liegt keine Spannung an... Das Board ist per USB verbunden und bekommt von dort die Spannung. Der DAIMEX liefert keine Target Spannung ( Also DIP-Schalter auf off). Die Power LED leuchtet und die RX LED blinkt nach dem programmieren. Beim löschen des Prozessors geht die RX LED wieder aus. Also gehe ich davon aus, dass ich erfolgreich mein Programm daraufgespielt habe. Das Programm habe ich mit eins aus dem Internet verglichen und angepasst, dies müsste eig. auch funktionieren.... Könntet Ihr jedoch mal drüber schauen was ich hier falsch mache? Wäre Euch sehr Dankbar. Chris P.S. Habe ein Screenshot vom Programm gemacht.
Hast das Messgerät an GND und Port D2 angeschlossen? Das ist der einzige Ausgang, den das Programm auf High schaltet.
Ja stefan ich messe an den 2 Ports. Hab auch mal versucht alle Ausgänge zu schalten und zu messen... aber leider wird auch hier nichts angezeigt. Hab ich hier irgendetwas falsch eingestellt? Ansonsten löte ich mal noch eim Board zusammen. Vielleicht ist das Board ja kaputt...
>> Hast das Messgerät an GND und Port D2 angeschlossen? > Ja stefan ich messe an den 2 Ports. Ich habe nur von einem Port und GND geschrieben. Wo hast du das Messgerät angeschlossen? In welche Löcher hast die Leitungen am Messgerät eingesteckt? Wenn du es an die Pins 5V und GND anschließt, zeigt das Messgerät dann 5,000 Volt an? > aber leider wird auch hier nichts angezeigt. Sorry für die dämliche Frage, aber bist du sicher dass dein Messgerät eingeschaltet ist und funktioniert? Weil: "nichts anzeigen" ist genau wie 0,000V eigentlich unmöglich. Sei mal etwas präziser mit einen Angaben! Wenn Dir das schwer fällt, mache Fotos. > Die Power LED leuchtet und die RX LED blinkt nach dem programmieren. > Beim löschen des Prozessors geht die RX LED wieder aus. Warum blinkt die denn? Dein Programm steuert sie doch gar nicht an! > Hab ich hier irgendetwas falsch eingestellt? In deinen bisherigen Infos fällt mir nichts weiter auf. Hast du das Programm vor dem Hochladen compiliert? Oder lädst du gar nicht das Programm hoch, dass dein Screenshot zeigt? Wo sind denn die Logmeldungen von dem Programmiervorgang? Schalte mal Port B5 auf High: DDRB=(1<<PB5); PORTB=(1<<PB5); Dann sollte die mit "L" beschriftete LED leuchten. Tut sie das?
Stefanus F. schrieb: > Wenn du es an die Pins 5V und GND anschließt, > zeigt das Messgerät dann 5,000 Volt an? Sorry Stefan, dass ich so spät Antworte, bin erst jetzt wieder zuhause. Also ich bin ziemlich sicher, dass es nicht am messen liegt. Wenn ich am 5V Pin und am Ground messe habe ich meine 5V am Multimeter. Stefanus F. schrieb: > Warum blinkt die denn? Dein Programm steuert sie doch gar nicht an! Das weiß ich leider auch nicht, vor allem wenn ich den Prozessor leere, geht diese LED auch wieder aus. Stefanus F. schrieb: > Hast du das Programm vor dem Hochladen compiliert? Oder lädst du gar > nicht das Programm hoch, dass dein Screenshot zeigt? Bin wie im Script vorgegangen, habe das Programm geschrieben, abgespeichert und die HEX Datei ausgewählt und dann auf "Program" gedrückt, dass einzigste was dann aber passiert, ist das die LED RX anfängt zu blinken, ansonsten passiert nichts. Hab jetzt mal dein Code eingetippt (Siehe Screenshot) und es leuchtet leider keine LED. Desweiteren tut Atmelstudio 7 die Schreibweise der Bitmanipulation rot anstreichen, als ob er diese nicht kennen würde. Falls du irgendwelche Fotos oder Screenshots von bestimmten Einstellungen benötigst, sende ich Sie dir gerne. Danke nochmal, dass du dich hier so um mich bemühst, ich weis dass zu schätzen ! Chris
Da gibt es keine speziellen Einstellungen. Ich habe ganz stark das Gefühl, dass du ein ganz anderes Programm in den Chip geladen hast, als dein Texteditor anzeigt. So also ob die die falsche HEX Datei verwendest (kontrolliere mal deren Änderungsdatum) oder als ob dein Compiler gar keine neue Hex Datei erstellt hätte und du die ganze Zeit eine alte Datei von einem früheren Versuch verwenden würdest. Warum die IDE PB5 rot markiert müsste sie selbst erklären. Ich kanns mir aber denken: Es muss wohl "PORTB5" oder einfach "5" heißen, nicht "PB5". Deine Binärkonstanten wie 0b00000100 funktionieren nur, wenn bestimmte Versionen des C Standards ausgewählt wurden. Ich benutze immer die Compiler Option "-std=c99", damit geht es. Wo du das in deiner grässlichen IDE einstellen kannst, weiss ich nicht. Ich bevorzuge andere IDEs. Mich wundert, dass du das Ausgabefenster der Compilers geschlossen hast. Arbeitest du gerne im Blindflug?
Stefanus F. schrieb: > So also ob die die falsche HEX Datei verwendest Stefan du hattest recht. Irgendetwas mit AtmelStudio funktionierte nicht... Hab jetzt ein neues Projekt angelegt und es nochmal probiert. LED leuchtet und an den Ports liegen 5V an! Ich könnte dich dafür abknutschen lach. Am Freitag kommen meine Widerstände und LEDS, werde dann mal ne Ampelsteuerung usw probieren :-)
Trotzdem solltest du das Fenster mit den Compiler-Ausgaben öffnen und auch beachten, was dort erscheint.
Stefanus F. schrieb: > Trotzdem solltest du das Fenster mit den Compiler-Ausgaben öffnen > und > auch beachten, was dort erscheint. Habe ich nun gemacht, dank Dir für den Tipp :-)
Guten Abend, da ich fleißig nach dem Script vom Stefan arbeite und leider an einer Stelle nicht weiter komme, möchte ich euch um Rat bitten. Ich bin im Script: http://stefanfrings.de/mikrocontroller_buch/Einstieg%20in%20die%20Elektronik%20mit%20Mikrocontrollern%20-%20Band%201.pdf auf Seite 165 (6.8.1 Programmierung), hier geht es darum einem den ADC anhand eines Projekt zu erklären, nämlich mittels einen "Klatsch-Schalter". Bei dem Projekt wird der Piezo-Schallwandler als Mikrofon eingesetzt und der soll bei Geräusche eine LED zum aufleuchten bringen. Nun zu meinem Problem: Da ich das Arduino-Nano Board habe, musste ich meinen Code anpassen(unterschiedliche Hardware zum Script), ich habe also den Piezo-Schallwandler an die Analogen Inputs A0 und A1 angeschlossen. Meine LED + Widerstand sind am Digitalen Ausgang D4. Wenn ich die Pull-Up Widerstände von meinem ADC aktivieren möchte(Siehe Screenshot), meckert mein Programm, dass mein Register nicht deklariert sind...An was könnte das liegen...bzw kann ich überhaupt meine Analogen Eingänge wie die Digitalen Eingänge behandeln? Muss ich evtl. doch einen anderen Eingang nutzen? Datenblatt für den Arduino Nano: https://www.arduino.cc/en/uploads/Main/ArduinoNanoManual23.pdf Danke in Voraus. :-) Gruß Chris
DDRA gibt es doch nicht! nur weil das Analogeingänge sind heisst der Port nicht A nur weil das Digitaleingänge sind heisst der Port nicht D du musst schon ins Datenblatt schauen welche D oder A Eingänge auf welchen Port gehen B, C, D ? chris70469 schrieb: > und das Nano V3.0 ATmega328P Board da hilft immer folgendes Bild https://i2.wp.com/marcusjenkins.com/wp-content/uploads/2014/06/ARDUINO_V2.png die A0 bis A5 gehen auf C Ports die D0.... gehen auf B & D Ports
:
Bearbeitet durch User
Guten Morgen, Upsaaala haha, werde es gleich mal heute Abend probieren und bescheid geben ... Dank dir:-)
Joachim, du hast ihm das Bild für den Arduino Uno verlinkt. Er hat einen Arduino Nano. Hier ist das richtige Bild: https://i2.wp.com/christianto.tjahyadi.com/wp-content/uploads/2014/11/nano.jpg?zoom=2
Hi Stefan, vielen Dank mal wieder. Bin erst spät abends Zuhause, werde es dann gleich testen. Dein Script ist übrigens der Hammer! Super erklärt und tolle Versuche, bin wie ein kleines Kind... Kann gar nicht mehr aufhören zu lesen:-). Gruß Chris
ich kanns mir nicht verkneifen und muss schmunzeln: um wieviele Zentimeter ist stefanus f. in den letzten 3 Wochen gewachsen?
Mindestens einen halben Meter. Und die Brust ist deutlich sichtbar angeschwollen, ganz ohne Sport.
Noch immer nicht zuhause. Werd wohl erst morgen dazu kommen....@ Ralph , bisschen spaß muss doch immer sein :-)
Stefanus F. schrieb: > Joachim, du hast ihm das Bild für den Arduino Uno verlinkt. > Er hat einen Arduino Nano. Hier ist das richtige Bild: das ist Krümelei 328p für Nano und Uno nutzt die selben / pardon die gleichen A und D Ports und Bezeichnungen, OK der Nano hat ein paar weniger, aber darum ging es hier nicht.
> das ist Krümelei
Ja, und gerade diese Kleinigkeiten verwirren den typischen Anfänger.
Erst die Umbenennung der Pins, dann die 5V versus 3,3V Varianten (man
hätte von Anfang an auf 3,3V mit Baudratenquarz setzen sollen) und
neuerdings unterschiedliche Baudraten beim Bootloader. Die Arduino Leute
haben vieles richtig gemacht, aber auch einiges falsch.
Stefanus F. schrieb: > Ja, und gerade diese Kleinigkeiten verwirren den typischen Anfänger. OK akzeptiert, ich war ja bei dir auch mal verwirrt ohne Anfänge zu sein. Deswegen nutze ich lieber die Bilder die die Arduino Namen am puren Chip verwenden, aber da sind nicht alle Bilder gleich informativ was Port Namen und PCINT angeht, deswegen habe ich schnell schnell den UNO gewählt, es gibt zuviel veraltete Bilder die die PCINT nicht zeigen und sich auf den mega8 beziehen.
Guten Abend, sorry dass ich erst jetzt dazu gekommen bin euch zu schreiben, wollte eig. viel früher berichten. Ich habe jetzt mal mein C-Programm angepasst. Mein Compiler meckert nun nicht mehr, weil ich jetzt die richtigen Register benutze, an dieser Stelle möchte ich mich schon mal bei euch bedanken! Leider habe ich irgendwo immer noch einen Fehler, denn die LED leuchtet nicht auf. An den beiden ADC Eingängen (PC2 & PC3) messe ich eine Spannung von jeweils 4.6V gegen Ground. Am LED Ausgang (PD4) messe ich immer 0V gegen Ground, beim Klatschen und im ruhigen Zustand. Hab jetzt mal ein Bild von meiner Hardware und meinen jetzigen Programm gemacht, vielleicht kann mir jemand weiter helfen:-) Vielen Dank in Voraus. Chris
chris70469 schrieb: > Leider habe ich irgendwo immer noch einen Fehler, denn die LED leuchtet > nicht auf. Du schaltest die LED ja auch nie aus. Übrigens ist es sinnvoller, Programmcode entweder als editierbare Datei (".c", ".h") anzuhängen oder in die deinem Fall angebracht, in den C-Tags mit in den Beitrag zu kopieren.
Du hast die LED falsch angeschlossen. Sie hängt quasi direkt an Port D4, der Strom fließt durch das Steckbrett am Widerstand vorbei. Wenn du Pech hast, brennt Dir so der Port durch. Langfristig wird es auch der LED schaden. Durch ADMUX=2 stellt du den Multiplexer korrekt ein, schaltest den ADC jedoch auch auf eine externe Referenzspannung um. Richtig wäre: ADMUX=2+(1<<REFS1)+(1<<REFS0); An dieser Stelle unterscheiden sie ATtiny13 und ATmega328. Ich würde Dir empfehlen, bei jedem Versuch das Datenblatt zu Rate zu ziehen. >> die LED leuchtet nicht auf. > Du schaltest die LED ja auch nie aus. Sie soll zunächst nur EIN geschaltet werden.
> ADMUX=2+(1<<REFS1)+(1<<REFS0);
Sorry, das war falsch. So wird die interne 1,1V Referenz verwendet, was
mit den Ruhepegeln von 4,6V kollidiert. Setze nur RFS0, dann wird VCC
(5V) als Referenz verwendet, Also:
ADMUX=2+(1<<REFS0);
Alternativ kannst du das Programm auch unverändert lassen und den AREF
Eingang mit VCC (5V) verbinden.
@Chris70469 Du hast, denke ich, zwei Probleme 1. Auf Breadboards sind die "Löcher" ein einer bestimmten Weise von vorneherein (also, so wie es aus der Verpackung kommt) verbunden. Das ist sinnvoll, denn wenn keines der Löcher mit einem anderen verbunden wäre, könntest Du Bauteile nur verbinden, wenn Du zwei Anschlussdrähte von jeweils zwei Bauteilen in ein Loch steckst. Diese "Löcher" nennt man übrigens "Kontakte". Schau Dir einmal das Bild hier http://starthardware.org/wp-content/uploads/2014/10/4_2_breadboard1-1024x640.png an. Auf dem Bild sind die schon vorhandenen Verbindungen der Kontakte durch rote Linien gekennzeichnet. Umgekehrt sind Kontakte, die nicht durch rote Linien verbunden sind, auch nicht verbunden. Wenn Du Dir Deinen Aufbau anschaust, wirst Du sehen, dass Du den Widerstand in zwei Kontakte gesteckt hast, die im Breadboard selbst schon verbunden sind. Da diese Verbindung sehr geringen Widerstand hat (etwa im 0,1 Ohm Bereich) hat der Widerstand keine Wirkung. Da der Widerstand keine Wirkung hat, bekommt die LED die volle Ausgangsspannung vom AVR. Das wird vermutlich keinen Schaden angerichtet haben und würde alleine (siehe Punkt 2.) die LED auch nicht daran hindern zu leuchten. Aber die LED bzw. der AVR wird damit etwas überlastet. Du solltest das korrigieren. 2. Polung der LED Ich bin nicht hunderprozentig sicher, aber das Foto scheint mir darauf hinzudeuten, dass Du die LED verpolt hast. Eine LED ist, anders als ein Widerstand, ein "gepoltes" Bauelement. D.h. ihr Verhalten hängt davon ab, an welchen Anschlüssen der Plus-Pol und der Minus-Pol der Stromversorgung, der Batterie, des AVR angeschlossen sind. Damit man bei der LED erkennen kann, wie herum sie gepolt sein muss, damit sie leuchtet hat sie zwei Merkmale. a) Wenn diese Art von LED geliefert wird, hat sie zwei verschieden lange Anschlüsse. Der längere ist der Plus-Pol. b) Das Gehäuse der LED, also das Plastikteil, aus dem die Anschlüsse herausragen ist an einer Seite abgeflacht. Der dieser Abflachung näher liegende Anschluss ist der Minus-Pol. Auf dem Foto ist die LED zum Betrachter hin geneigt, was ich so deute, das der längere Anschluss oben auf dem Foto ist und damit an GND (also Minus) angeschlossen ist. Das musst Du korrigieren.
Guten Morgen, Danke für die schnellen Antworten. Stefanus F. schrieb: > Du hast die LED falsch angeschlossen. Ohjaaa hahaha, ist mir garnicht aufgefallen, es war dann gestern Abend doch zu spät für mich. grins Stefanus F. schrieb: > An dieser Stelle unterscheiden sie ATtiny13 und ATmega328 Werde deinen Tipp zu Herzen nehmen und nächstes mal beide Datenblätter genauer anschauen. Sorry dafür. Werde heute Abend es nochmal probieren und Dir dann Berichten. Vielen Dank für deine Mühe :-)
Theor schrieb: > Polung der LED Hi Theor, die Polung der Led ist richtig, ich mach die Polung immer an der Fahne im Gehäuse fest. Das mit dem Steckbrett war mir auch bewusst, nur ich war gestern einfach unachtsam :p Dank dir trotzdem für deine Bemühung. Gruß Chris
> ch mach die Polung immer an der Fahne im Gehäuse fest.
Leider kann man sich nicht 100% darauf verlassen.
Stefanus F. schrieb: > Leider kann man sich nicht 100% darauf verlassen Ok, auch gut zu wissen. Aber bei der LED bin ich mir sicher, benutze sie schon von Anfang an. Aber werde sie trotzdem nacher mal ans Netzteil anschließen, weil ich ja gestern falsch gesteckt habe..
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.