-         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 23

Thema: Arduino Leonardo/Micro Frage

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    31.03.2014
    Beiträge
    37

    Arduino Leonardo/Micro Frage

    Anzeige

    Hallo,
    bisher habe ich einige wenige Sachen mit dem Arduino Uno gemacht. Der hat 14 Digital PIN. Ich habe etwas vor, wo diese 14 PIN zu wenig sind. Mit Shift-Register-PIN-Erweiterung ist es ungünstig aus verschiedenen Gründen. Da bin ich auf den Leonardo bzw. Micro aufmerksam geworden. Beide haben 20 Digital-PIN.
    Habe hierzu paar kleine Fragen. Würde mich sehr über eine Antwort freuen.

    Kann ich den Leonardo bzw. den Micro über dieselbe Software programmieren, die ich bereits beim Uno verwende?

    Sind Leonardo und Micro (abgesehen von der Baugröße) ansonsten identisch?

    Beim Uno habe ich das Uno-Board nur zum Programmieren genommen und dann den ATmega328 (RM 2,54) auf eigenen Schaltungen/Platinen verbaut. Könnte ich dasselbe mit dem ATmega 32u4 auch machen? Abgesehen von der frickligen Lötarbeit mit SMD... Die Frage bezieht sich hier nur auf den Vorgang. Ist das dieselbe Handhabung, wie beim 328?

    Wenn ich einen 32u4 einzeln kaufe, ist da der Bootloader schon drauf? Falls "nein": kann der Bootloader auch hier wieder wie beim 328 z.B. mit dem AVRISPmkII aufgespielt werden?

    Sind die Sketches zwischen Uno, Leonardo/Micro und sogar Mega kompatibel? Sofern ich nicht die Anzahl und Adressierung der I/O überziehe? Könnte ich z.B. einen Sketch, der 20 Digital-I/O benutzt und für den Mega geschrieben ist, "einfach" in den Leonardo/Micro laden (der ja 20 I/O zur Verfügung stellt) und der läuft dort sofort?

    Andi
    Geändert von Andi#87 (09.01.2019 um 00:13 Uhr)

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    657
    Hallo,

    ich versuche mal einen Teil zu beantworten:

    Ja, Leonardo und Micro sind von der Software her identisch, ich habe schon mehrmals in der Arduino IDE das falsche Board eingestellt, geht trotzdem, der erzeugte Code dürfte aufs Byte identisch sein. Das dürfte auch schon die Frage nach der Programmiersoftware beantworten, soweit es sich um Arduino IDE, Visual Micro, Platformio oder ähnliches handelt.

    Es gibt einen wichtigen Unterschied zwischen den 32U4 und 328 basierten Arduinos. Während bei Uno und Co ein zusätzlicher Controller oder ein USB-UART Wandler für die PC-Verbindung sorgt, macht der 32U4 die USB-Verbindung selber. Der Bootlader darauf dürfte also deutlich komplexer sein. Die USB-Verbindung verbraucht übrigens auch gleich wieder den RAM, den der 32U4 gegenüber dem 328 mehr hat.

    Dadurch, dass der der Controller die USB-Verbindung selber händelt, kann er auch zusätzlich als andere USB-Geräte arbeiten (ich glaube maximal 4), z.B. Tastatur, Maus oder Joystick. Nicht so schön finde ich das Verhalten der seriellen Schnittstelle beim Programmieren. Anders als Arduinos mit Schnittstellen IC verschwindet der 32U4 nach der Programmierung kurz vom USB-Bus und taucht dann wieder auf. Meist als andere serielle Schnittstelle, meist springt er beim Arbeiten zwischen zwei oder drei Schnittstellennamen. Man muss also in der Arduino IDE dauernd umstellen. Das geht bei anderen Boards, wie dem Teensy deutlich besser. Auch kann man den Leonardo/Micro durch Programmieren dazu bringen, dass er nicht mehr am USB erscheint. Ihn dann wieder zum Leben zu erwecken ist ziemlich umständlich (Reset Taste genau im richtigen Moment loslassen), das ist beim Teensy deutlich besser gelöst (der Bootlader ist auf einem externen IC, den kann man am Controller nicht kaputtprogrammieren).

    Im Prinzip sollten Sketches übertragbar sein, der 32U4 weicht aber bei den Timern und diversen IO-Registern vom 328 ab. Je nachdem wie systemnah die Sketches sind, können da Änderungen nötig sein.

    Ich hoffe da hilft schon mal etwas

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    31.03.2014
    Beiträge
    37
    Vielen Dank Mxt. Klingt bissl nach "könnte leicht Problemchen bereiten"...(?) mit dem 32u4, bei denen ich dann möglicherweise als grosses Fragezeichen vorm Rechner sitze
    Und der MEGA? Sind Uno-Sketches 1:1 auf den MEGA übertragbar und umgekehrt (sofern 14 Digital PIN nicht überschritten werden)? Vielleicht gehe ich gleich den Schritt zum MEGA. Dann muss eben in jede Applikation ein komplettes MEGA-Board eingebaut werden und ich muss mich verabschieden von meiner bisherigen Handhabung, den ATmega separat zu verlöten, nachdem er programmiert wurde...

    Andi

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    657
    Also zum Mega kann ich relativ wenig spezifisches beitragen. Es gibt den 2560 auf jeden Fall in diversen Gehäusen, ich habe kürzlich ein als Arduino Mega zu programmierendes Board gesehen, was doch deutlich kleiner war, als ein typisches Arduino Board.

    Unterschiede zum 328 wird es bei Timern, Pins und Ports auf dem Mega auch geben, das ist aber sicher lösbar. Ich arbeite fast nur noch mit den Teensy 3.x, die sind als NXP Kinetis Controller sehr unterschiedlich zu den AVR, man kriegt aber die meisten Sketche relativ einfach angepasst. Die Teensy Boards sind ja auch recht klein, ich bin da noch nie auf den Gedanken gekommen, für ein kleines Privatprojekt den Controller einzeln zu verbauen (erst recht nicht die im BGA-Gehäuse).

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    50
    Beiträge
    1.387
    Nimm doch einfach nen Portexpander.
    Dann kannst du hunderte Digitalpins haben....
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    31.03.2014
    Beiträge
    37
    Bei Verwendung eines Portexpander kann ich immer nur eine Taste simultan verwenden. Drücke ich mehrere Tasten gleichzeitig, wird dies durch die Logik des Portexpander dennoch als eine (völlig andere) Taste interpretiert. Gehen die Tasten jedoch direkt einzeln in einen eigenen Digital-In, so wird jede Taste entsprechend interpretiert, auch bei gleichzeitigem drücken mehrerer Tasten.

    Andi



    Ich hab mir das mal mit den Teensy angeschaut. Klingt recht gut. Ausreichend DigitalPIN, geringe Baugröße (die kann man gut direkt auf einer anderen Platine mit auflöten). Und das Anpassen der Arduino-Sketches scheint nicht so kompliziert zu sein. Habe da noch nicht weiter gegoogelt, aber ich denke, auch für die Anpassung der Sketches werde ich fündig werden.

    Andi
    Geändert von Andi#87 (13.01.2019 um 12:02 Uhr)

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    50
    Beiträge
    1.387
    Dann verschalt die Tasten als Matrix.
    Guck mal, das geht mit nem Uno schon: https://www.youtube.com/watch?v=lXX8v-ZW6Tk
    Hast du so viele Tasten?

    Ich lese ein 61-Tasten-Keyboard _ohne_ Portexpander mit nem Mega 2560 ganz problemlos ein- und ja: auch mehrere Tasten simultan.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    31.03.2014
    Beiträge
    37
    Ich verstehe nicht, wie das funktionieren soll. Ein Portexpander-IC macht letztlich nichts weiter, als eine typische Binär-Matrix zu erstellen bzw. abzufragen. Also, z.B.: 0-0-0, 0-0-1, 0-1-0, 0-1-1, 1-0-0-, 1-0-1 usw. Wenn ich nun 2 Tasten gleichzeitig drücke, entsteht doch dort ein völlig anderes "Gebilde". Oder hab ich hier einen Denkfehler?

    Andi

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    4.293
    Zitat Zitat von Andi#87 Beitrag anzeigen
    Ich verstehe nicht, wie das funktionieren soll. Ein Portexpander-IC macht letztlich nichts weiter, als eine typische Binär-Matrix zu erstellen bzw. abzufragen. Also, z.B.: 0-0-0, 0-0-1, 0-1-0, 0-1-1, 1-0-0-, 1-0-1 usw. Wenn ich nun 2 Tasten gleichzeitig drücke, entsteht doch dort ein völlig anderes "Gebilde". Oder hab ich hier einen Denkfehler?

    Andi
    hängt sicher vom Portexpander ab, aber (IIRC) z.B. beim PCF8574 kannst du alle Werte als Byte-Mask für pins 0-7 gemeinsam abrufen. Sind z.B. Pins 0, 3 und 4 gedrückt und der Rest nicht, ist das Bitmuster 00011001.
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    31.03.2014
    Beiträge
    37
    Aha. Ok, vielen Dank.
    In welchem Zeitintervall werden dann diese DigitalPIN vom Prozessor abgefragt? Ist das im unteren Millisekundenbereich?

    Andi

Seite 1 von 3 123 LetzteLetzte

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 29.08.2015, 07:34
  2. Mikrocontroller Beetle / Arduino Leonardo wird nicht erkannt
    Von recke im Forum Arduino -Plattform
    Antworten: 1
    Letzter Beitrag: 12.01.2015, 09:13
  3. Bitte um Unterstützung bei MC33926 Dual Motor Controller an Arduino Micro
    Von pemiso im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 6
    Letzter Beitrag: 28.10.2014, 13:35
  4. Arduino IDE = C ? => Frage zu Pin0 und Pin1 MEGA32U4 / Leonardo
    Von PsiQ im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 12.07.2013, 11:51
  5. Antworten: 0
    Letzter Beitrag: 29.01.2013, 19:33

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •