Forum: Mikrocontroller und Digitale Elektronik WEMOS D1 Mini - mir gehen die Pins aus


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von dost0011 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich setze ein kleines Projekt um, bei dem ich am Anfang der Meinung war, 
dass der WEMOS D1 Mini genau der richtige uC ist und dicke reicht:

- I2C für ADS1115 (hier nutze ich 3 Kanäle)
- Software Serial für Bluetooth HC06
- 2 ext. Interrupt
- 1 PWM out

Also 7 Pins - der WEMOS D1 Mini hat D0-D8 (also 9) und noch einen 
Analogen (den ich nicht brauche).

Nach dem Aufbau habe ich aber bemerkt, dass ich ständig Probleme mit dem 
Flashen oder dem späteren Ausführen habe.

Dann bin ich auf folgendes Dokument gestossen:
https://github.com/esp8266/Arduino/blob/master/doc/boards.md#minimal-hardware-setup-for-bootloading-and-usage

Danach ist mir klar geworden, dass ich Pins genutzt habe, die ich hätte 
nicht nutzen dürfen: D3, D4, D8.
Dann kommt erschwerend hinzu, dass D0 keinen Interrupt unterstützt.

Jetzt stehe ich da und hoffe, irgendeinen Weg zu finden, wie ich das 
ganze doch noch hinkriege, ohne auf den größeren NodeMCU umsteigen zu 
müssen (was ein beträchtlicher Aufwand wäre...)

Meine Überlegung geht in folgende Richtung:

Die verbotenen PINS dürfen nicht als Eingänge fungieren, sondern als 
Ausgänge.

- I2C D1 und D2
- Bluetooth D7 und D8 (D8 Blutooth RX mit einem Pulldown Widerstand)
- externe Interrupts D5 und D6

Jetzt bleibt noch die PWM übrig. Hier würde ich gerne einen verbotenen 
PIN nutzen (vielleicht D4). Der müsste halt einen externen 
Pullup-Widerstand bekommen. Denkt ihr, das könnte klappen?

von (prx) A. K. (prx)


Bewertung
0 lesenswert
nicht lesenswert
Bei PWM ist mir aufgefallen, dass verschiedene Programmierumgebungen 
verschiedene Pins unterstützen. In der Doku zur Arduino-Variante stehen 
ein paar wenige Pins drin, während in der LUA Umgebung keine 
Einschränkung aufgeführt ist.

: Bearbeitet durch User
von Andreas B. (bitverdreher)


Bewertung
0 lesenswert
nicht lesenswert
Hi,
also D3, D4, D8 kann man durchaus nutzen (Du meinst wohl GPIO 0, 2 und 
15).
Du mußt diese Pins nur beim booten auf den Level halten.
Am besten also GPIO0 und GPIO2  über 10k an + und GPIO 15 über 10k and 
GND

Gruß
Andreas

von THOR (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Wenn du ja I2C hast und nutzt, kannst du da einen Portexpander 
dranhängen. Oder mehrere.

von Tzu K. (tzukasa)


Bewertung
0 lesenswert
nicht lesenswert
Ich würd über I squared c zu nem passenden Mikrocontroller gehen und 
gut.

von dost0011 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Andreas B. schrieb:
> Hi,
> also D3, D4, D8 kann man durchaus nutzen (Du meinst wohl GPIO 0, 2 und
> 15).
> Du mußt diese Pins nur beim booten auf den Level halten.
> Am besten also GPIO0 und GPIO2  über 10k an + und GPIO 15 über 10k and
> GND
>
> Gruß
> Andreas

Ja genau das ist auch mein Ansatz. Ich habe nicht mehr Platz im Gehäuse 
für 2. uC oder Portexpander oder NodeMCU...

Bisher hatte ich versehentlich D3 (GPIO 0), D4 (GPIO 2) für die externen 
Interrupts vorgesehen - und prompt liefs mal und mal nicht, weil die 
Interrupts mal kamen beim Reboot und mal nicht...

Das kann ich nicht beeinflussen, deshalb lege ich diese Interrupts nun 
z.B. auf D5 und D6...
Serielle Softwareschnittstelle mit D8 scheint auch zu funktionieren.
Dann brauche ich nur noch die PWM mit D4 umsetzen.

Dazu verwende ich dann eine Pullupwiderstand und ein RC Glied. Dann 
müsste es ja funktionieren...

Beitrag #4934452 wurde vom Autor gelöscht.
von (prx) A. K. (prx)


Bewertung
0 lesenswert
nicht lesenswert
dost0011 schrieb:
> Dann brauche ich nur noch die PWM mit D4 umsetzen.
>
> Dazu verwende ich dann eine Pullupwiderstand und ein RC Glied. Dann
> müsste es ja funktionieren...

Wozu den Pullup?

von Andreas B. (bitverdreher)


Bewertung
0 lesenswert
nicht lesenswert
dost0011 schrieb:

> Bisher hatte ich versehentlich D3 (GPIO 0), D4 (GPIO 2) für die externen
> Interrupts vorgesehen - und prompt liefs mal und mal nicht, weil die
> Interrupts mal kamen beim Reboot und mal nicht...
>
Welche Interrupts beim Reboot??
Wie schon erwähnt, müssen GPIO0, GPIO2 und GPIO15 beim booten 
definierte Pegel haben.

Gruß
Andreas

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.