Pages: [1]   Go Down
Author Topic: analog Eingänge als Digital beim MEGA  (Read 1103 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Full Member
***
Karma: 8
Posts: 153
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Jr. Member
**
Karma: 11
Posts: 58
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code:
pinMode(55, INPUT);
digitalWrite(55, HIGH);
Logged

0
Offline Offline
Full Member
***
Karma: 8
Posts: 153
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21887
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: January 30, 2012, 06:47:23 am by uwefed » Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Folgendes sollte im Sketch funktionieren:
Code:
#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.
Logged

0
Offline Offline
Full Member
***
Karma: 8
Posts: 153
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21887
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Pages: [1]   Go Up
Jump to: