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


von dost0011 (Gast)


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)


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)


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)


Lesenswert?

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

von Tzu K. (tzukasa)


Lesenswert?

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

von dost0011 (Gast)


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)


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)


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
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
Noch kein Account? Hier anmelden.