Hallo in die Runde und ich wünsche ein sonnigen Feiertag. Hab hier einen Arduino Mega 2560 aufm Tisch liegen und an PIN 21 einen Taster angeschlossen, der eine LED PIN 34 zum leuchten bringen soll. Laut Datenblatt und meiner Info hat der Chip interne PULLups, welche aktiviert werden "können". 1. Am Eingang 21 (Taster) hab ich einen 27 K Pulldown dran und wenn der Pullup nicht aktiviert (pinMode(interruptPin, INPUT) ist hat der PIN 3,561 V und gedrückt natürlich 5 V 2. Wenn ich den Pullup intern aktiviere (pinMode(interruptPin, INPUT_PULLUP), hat der Eingang 3,772 V und gedrückt 5V. Hat jemand eine Idee, wo mein Fehler liegt bei Fall 1 ? Sollten ja 0 V sein mit dem Pulldown und nicht aktivierten Pullup. Danke. // Setze den Pin für die LED auf 13 const byte ledPin = 34; // Setze den Interruptpin auf 2 const byte interruptPin = 21; // Definiere eine globale volatile Variable für den Status der LED volatile byte state = LOW; void setup() { // Lege den Pin für die LED als Outputpin fest pinMode(ledPin, OUTPUT); // Lege den Interruptpin als Inputpin mit Pullupwiderstand fest pinMode(interruptPin, INPUT_PULLUP); // Lege die ISR 'blink' auf den Interruptpin mit Modus 'CHANGE': // "Bei wechselnder Flanke auf dem Interruptpin" --> "Führe die ISR aus" attachInterrupt(digitalPinToInterrupt(interruptPin), blink, FALLING); } void loop() { // Schreibe den Status der LED auf den LED-Pin zurück: // "Schalte die LED an oder aus" digitalWrite(ledPin, state); } void blink() { // Invertiere den Status: "Lass die LED blinken von HIGH auf LOW/ an auf aus" state = !state; }
Daniel E. schrieb: > Hat jemand eine Idee, wo mein Fehler liegt bei Fall 1 ? Pin 20 und 21 sind der I²C Bus. Beim I²C Bus sind die Leitungen SCL und SDA mit einem 10kΩ Pull-Up Widerstand ausgestattet. Siehe Schaltplan vom Board.
Hallo und danke fürs Feedback. Sieht nach meinen Recherchen irgendwie anders aus … oder meinst du die sind intern fix dran ? https://www.arduino.cc/en/uploads/Main/arduino-mega2560-schematic.pdf Danke
Daniel E. schrieb: > Sieht nach meinen Recherchen irgendwie anders aus … weiter rechts oben Der Schaltplan ist ein zerstückeltes Suchbild. Aber verglichen mit dem, was hier des öfteren präsentiert wird, sieht der noch sehr gut aus.
Stefan F. schrieb: > Daniel E. schrieb: >> Sieht nach meinen Recherchen irgendwie anders aus … > > weiter rechts oben > > Der Schaltplan ist ein zerstückeltes Suchbild. Aber verglichen mit dem, > was hier des öfteren präsentiert wird, sieht der noch sehr gut aus. Blöd gelaufen…. Vielen vielen Dank 👍 für die geistige Erleuchtung und einen schönen Feiertag noch und bis zum nächsten Problem 🫣
Daniel E. schrieb: > und bis zum nächsten Problem Du bist seit 9 Jahren hier angemeldet und schaffst es nicht deinen Code so zu posten dass man ihn gut lesen kann? Siehe Hinweise zum Posten von Code. Entweder so
1 | // Setze den Pin für die LED auf 13
|
2 | const byte ledPin = 34; |
3 | ....
|
oder gleich als Anhang im Beitrag posten.
Daniel E. schrieb: > Hab hier einen Arduino Mega 2560 aufm Tisch liegen und an PIN 21 einen > Taster angeschlossen, der eine LED PIN 34 zum leuchten bringen soll. > > Laut Datenblatt und meiner Info hat der Chip interne PULLups, welche > aktiviert werden "können". > > 1. Am Eingang 21 (Taster) hab ich einen 27 K Pulldown dran und wenn der > Pullup nicht aktiviert (pinMode(interruptPin, INPUT) ist hat der PIN > 3,561 V und gedrückt natürlich 5 V Zusätzlicher Hinweis: Taster benutzt man i.A. in "negativer Logik", d.h. Pull-up am Eingang und Taster zieht nach 0V. https://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen#Pullup-Widerstand Solange man die Platine nicht groß verlässt, und der Taster für den geringen Strom ausgelegt ist, reicht meist der interne Pull-up (ATtiny161x: typ. 35k, 20...50k). Zitat zum dort veröffentlichen Beispielcode: "Werden auf diese Art und Weise die AVR-internen Pullup-Widerstände aktiviert, so sind keine externen Widerstände mehr notwendig und die Beschaltung vereinfacht sich zu einem Taster, der einfach nur den µC-Pin mit GND verbindet."
:
Bearbeitet durch User
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.