Go Down

Topic: analog Eingänge als Digital beim MEGA (Read 1 time) previous topic - next topic

Kalli

Hallo,
hab da schon gesucht und nichts gefunden.
Kann man die analog Eingänge 0...7 beim MEGA 2560 auch als digitale Eingänge bzw. Ausgänge benutzen ?
Beim UNO geht es ja. Gleich zur Frage warum, sind doch 54 digitale Ports vorhanden...
Ich möchte auch protoShields vom UNO benutzen.
Ist es möglich, per Programm abzufragen, um welchen Arduino es sich handelt, ob UNO oder MEGA ?

Gruss Kalli

Voralpenkreuz

Beim Mega1280 kann ich Analog 0 mit 54 ansprechen. Analog1 mit 55 usw. Auch Pullups funktionieren.

Code: [Select]

pinMode(55, INPUT);
digitalWrite(55, HIGH);


Kalli

Hallo,

Danke für die schnelle Antwort. Muss ich wohl bein Ausprobieren was falsch gemacht haben. Jetzt funktioniert es.

Nun bin ich gespannt auf die Antwort zur zweiten Frage.

Gruss Kalli

uwefed

#3
Jan 30, 2012, 12:32 pm Last Edit: Jan 30, 2012, 12:47 pm by uwefed Reason: 1

Ist es möglich, per Programm abzufragen, um welchen Arduino es sich handelt, ob UNO oder MEGA ?
Gruss Kalli

Du kompilierst die Programme speziell für den Uno oder den Mega. Wieso brauchst Du dann eine Abfrage welcher Arduino Du hast?

Ich weiß nicht ob Du per #if den Sketch so schreiben kannst, daß Du nur den Arduino als Board im IDE aussuchen mußt und der Kompiler für den richtigen Controller kompiliert.

Grüße Uwe

mkl0815

Folgendes sollte im Sketch funktionieren:
Code: [Select]

#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
#define MY_AVR_TYPE 1
#else
#define MY_AVR_TYPE 0
#endif

...

if(MY_AVR_TYPE) {
    Serial.println("I'm a MEGA Board");
} else {
    Serial.println("I'm a UNO Board");

}

Zumindest verwenden auch die Base-Libs ein ähnliches Konstrukt z.B. um die Zahl der externen Interrupt-Pins zu definieren.

Kalli

Hallo Uwe,

wenn ich ein Programm fertig geschrieben habe und es je nachdem welcher Arduino gerade frei ist verwende,
dann müsste ich ja jedesmal beachten, welche Ports im Programm benutzt werden. Wenn ich Port 54 als DIGITAL benutze,
dann merkt der Compiler keinen Fehler, wenn ich UNO eingestellt habe.

Werde mal die Version vom mkl0815 ausprobieren.

Danke Euch recht herzlich !

Gruss Kalli

uwefed


Hallo Uwe,
wenn ich ein Programm fertig geschrieben habe und es je nachdem welcher Arduino gerade frei ist verwende, ..

Dann hatte ich Deine Frage nicht so verstanden. Ich verstand daß das Programm auf dem Arduino wissen sollte, auf welchem Arduino es läuft und nicht der IDE/Compiler.

Die Version vom mkl0815 müßte Lösung Deines Vorhabens sein.

Grüße Uwe

Go Up