Brauche eure Hilfe! Arduino Levitationsapparat

Hallo liebe Arduino Gemeinde,
ich brauch dringend euer Schwarmwissen da ich nicht mehr weiter komme und zwar:

Ich habe mir kürzlich einen Arduino Nano Every zugelegt diesen möchte ich als erstes Projekt zu einem Levitationsapparat umprogrammieren, dieses Projekt wird auch sehr gut auf hier beschrieben (https://www.ochis.science/akustische-levitation-levitator-selber-bauen/) nur leider kann ich den Code nicht über Arduino IDE auf meinen Nano kompilieren ich bekomm das folgende Fehlermeldungen: Compilation error: DDRC´ was not declared in This scope und das gleiche mit 'TCCR1A', TCCR1B' und vielen anderen, ich versteh nicht wieso es bei mir nicht funktioniert und bei anderen schon?

ich hoffe ihr könnt mir weiterhelfen.

liebe Grüßen


Hier ein Bild von der Fehlermeldung und den Code

Auf dem Nano Every ist ein anderer μC als auf dem Nano Mega328P V3.0

Die Register auf dem Every sind anders als auf dem Mega328P

1 Like

Der Code ist für einen Arduino Nano geschrieben. Nicht für einen. Arduino Nano „Every“. Ersterer besteht aus einem ATMega328P μController, letzterer aus einem ATMega4809. Diese haben unterschiedliche Register.

Darum musst Du entweder den Code auf den Every anpassen oder einen „einfachen“ Nano (Clone) kaufen.

1 Like

danke das hab ich mir schon gedacht das da der Fehler liegen muss, nur leider bin ich so unerfahren um zu wissen wie ich den code umschreiben kann/soll/muss.
Ich habe sogar noch einen Klon vom `normalen´ Nano zuhause der hat einen 340 Chip und mit meinem Pc (Mac) läuft der Treiber dafür leider nicht.

Möglicherweise läuft der Treiber doch. Bei Nano Clones muss oft vor dem Hochladen des Programmes die Bootloader Einstellung angepasst werden:

Es muss der Eintrag mit der Ergänzung (Old Bootloader) ausgewählt werden. Das wird gerne vergessen oder der Kniff ist nicht bekannt.

Der Treiber:
https://www.makershop.de/ch340-341-usb-installieren/

dann bekomme ich komischerweise diese Fehlermeldung:

Der Sketch verwendet 574 Bytes (1%) des Programmspeicherplatzes. Das Maximum sind 30720 Bytes.
Globale Variablen verwenden 11 Bytes (0%) des dynamischen Speichers, 2037 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
Fehlgeschlagenes Hochladen: Hochladefehler: exit status 1

Das liegt auch öfters an dem USB-Kabel. Du brauchst eines mit Datenleitungen und nicht ein reines „Ladekabel“. Auch kann das Label beschädigt sein.

Probiere mal ein anderes Kabel, was auch sicher die Datenleitungen enthält.

Hast du auch den richtigen Com-Sport in der IDE gewählt?

Das kann ich defenetiv ausschließen, da ich das mitgelieferte Kabel nutze.

Es funktioniert mit beiden Bootloader Auswahlen nicht? Der richtige Com Port ist ausgewählt?

Das kann nicht defekt sein?

Gruß Tommy

1 Like

Manchmal ist genau der kaputt.

Daß er jetzt keine Fehler beim kompilieren , nur beim hochladen gibt sagt daß Du einen Schritt weiter bist.

Also nochmel zusammenfassend:

Treiber für den CH340 installieren
Richtige Schnittstelle (Bei windows wäre das eine COMx Schnittstelle) auswählen. Wenn man den Arduino ansteckt kommt eine weitere USB Schnittstelle dazu; das ist die richtige.
Arduino NANO als Board auswählen
Alle 3 Möglichkeiten ( ATmgea 168; ATmega 326 old bootloader und ATmega 328 New Bootloder) ausprobieren.
Mal alles mit einem anderen USB Kabel versuchen.

Grüße Uwe

Annahmen machen statt wirklich zu überprüfen sind die am "schwersten" aufzufindenden Fehler

Versuche damit ist für angebissene Äpfel.

Ich habe es auch tatsächlich gleich noch getestet, da es ja jetzt nicht wirklich einen Aufwand darstellt ein anderes Kabel zu nehmen. Erzielte aber damit das gleiche Ergebnis wie mit den "originalen" Kabel.

genau den Treiber habe ich bereits installiert und Arduino IDE erkennt ihn auch nur wie gesagt bekomme ich die Fehlermeldung wenn ich den (ATmega238P Old Bootloader) wähle, wenn ich ATmega328P schein zwar der kompilieren zu funktionieren aber der Aufbau tut das nicht was er soll. Bin grad echt etwas ratlos.
Hat jemand vielleicht das Knowhow den Code auf den "Every" umzuschreiben bzw. könnte mir da helfen?

Die anderen sind auch ratlos: Weil du da schwer zu verstehende Satzstummel geschrieben hast.
Jetzt mach mal des Gegenteil von Apple-Purismus und schreibe ganze und vollständige Sätze die alle Details benennen.

Ich habe genau den (ja welchen Treiber???) genau benennen!

Und die Arduino IDE erkennt ihn auch (erkennt wen??? den Treiber? deinen Arduino? welchen Arduino? den every? oder den nano?)

wenn ich den (ATmega328P old bootloader wähle (dann passiert was??)

wenn ich ATmega328P scheint zwar der (der wer?? every? oder nano? ) zu kompilieren aber der Aufbau tut nicht was er soll.

Vom kompilieren alleine macht KEIN Microcontroller irgendetwas. Er macht immer erst dann etwas wenn das Hochladen des compilierten Quellcodes erfolgreich war.

Und dazu sagst du ja das das Hochladen nicht funktioniert.
Wenn das Hochladen funktionieren würde, dann würdest du keine Meldungen

bekommen.

Wenn es besonders schnell gehen soll dann geht es in Wirklichkeit besonders laaaaangssaaaaammmm.

Also: mach mal folgende Schritte:
Originalcode-version für den Arduino Nano. (Der Nano ohne den Zusatz "every")
In der Arduino-IDE öffnen.
Als Board Arduino-Nano einstellen
Dann von dieser Anzeige in der man die Boardeinstellung sehen kann einen Screenshot machen und posten

Den Arduino-Nano per USB-Kabel mit dem Computer verbinden.
Spielt ein Mac eigentlich beim Einstecken eines USB-Gerätes auch einen charakteristischen Klang ab?
Dann in der IDE nachschauen ob ein COM-Port neu dazugekommen ist.
Diesen COM-Port auswählen.

Dann auf den Button "compilieren und hochladen" klicken.
Den Compiler-Log als code-section posten.

So und als Antwort möchte ich jetzt

NICHT

lesen
"ja ich habe das gemacht"

sondern ein Protokoll in dem

ALLE

Details mit den richtigen Namen benannt sind.

nicht
"ich habe den" mit dem Computer verbunden"
sondern
"ich hab den Arduino Nano mit dem mitgelieferten USB-Kabel mit meinem MacBook pro verbunden"
Der Klang "USB Gerät wurde abgespielt"
usw. usw.

vgs

1 Like

Grüße Uwe

Hallo StefanL38,
ich muss mich tatsächlich entschuldigen, für mich war die Reihenfolge bzw. die "Satzstummel" zwar gut verständlich aber für jemand externen schwer zu nachzuvollziehen. Danke das du dich mir annimmst um mir Hilfestellung zur geben!
Fangen wir nochmal von vorne an:
Ich habe mir einen Arduino Nano Every gekauft, da ich totaler Anfänger bin hätte ich das im Nachhinein nicht gemacht. Diesen Arduino Nano Every wollte ich im Rahmen eines Projektes zu einem "Levitationsappart" programieren wie nach der Beschreibung auf diesem Link: (https://www.ochis.science/akustische-levitation-levitator-selber-bauen/).
Nun habe ich die Anleitung Schritt für Schritt abgearbeitet und bin bei dem Hochladen des Codes über Arduino IDE hängen geblieben da ich mehrere Fehlermeldungen bekommen habe z.B. Compilation error: `DDRC´ was not declared in This scope.
Nach dieser Fehlermeldung habe mich hier in diesem Forum angemeldet und das Thema eröffnet, daraufhin hat mich "Pumps" und "Kai-R" darüber unterrichtet das der Nano (ATNega328p) einen anderen μController hat als der Nano Every (ATMega4809) und der Code sei nicht mit dem Every kompitabel.
Hier hat mir "Kai-R" empfholen einen Nano Klon zu kaufen und es damit zu versuchen, zufälligerweise hatte ich noch genau so einen Nano Klon Funduino Nano R3 mit dem 340G Chip zuhause liegen.
Ich habe mich auch schon ausführlich über den Treiber des Nano Klons mit einem 340G Chip informiert und habe strikt nach Anleitung diesen (https://www.wch.cn/download/CH341SER_MAC_ZIP.html) Treiber installiert natürlich für Mac, der Arduino Nano Klon wird auch korrekt unter "Port:" angezeigt nämlich "dev/cu.wchusbserial1410". Wenn ich beim Prozessor "ATmega328P (Old Bootloader)" wähle so wie es mir "Kai-R" empfohlen hat als "Kniff" bekomme ich die Fehlermeldung wie in "post#7".
Anschließend wurde ich von "Plumps" darauf hingewisen das es oft am Kabel liegen würde, daraufhin habe ich natürlich neben dem originalen Kabel auch weitere USB Kabel ausprobiert mit dem selben Ergebnis, also kann ich denke ich besten willens das fehlerhafte Usb Kabel anschließen.
Nun kommen wir zum nächsten Versuch, da "uwefed" mich darauf aufmerksam gemacht hat auch die anderen Möglichkeiten des Prozessors zu testen (ATMega168, ATMega328P) zu den ATMega168 mit diesem Prozessor bekomme ich dich gleiche Fehlermeldung wie mit "ATMega328P Old Bootloader".
Und zum Thema "Hochladen und kompilieren" da habe ich mich wiedermals falsch ausgedrückt, ich klicke immer erst auf "überprüfen" (Haken) und dann auf Hochladen ( Pfeil nach Rechts).
-Der Mac macht übrigens kein Geräusch.
-Wenn ich den Nano anschließe erscheint: "/dev/cu.wchusbserial1410" und "/dev/cu.usbserial1410" welcher ist nun der richtige?

Wenn ich vom Mac rede meine ich übrigens damit den iMac mitEnde 2015.

Ich hoffe ich konnte jetzt so gut wie möglich das Vorgehen und die Details beschreiben.