Moin,
ich habe ein Programm geschrieben, das verschiedene LEDs bei einem Solarregler überwacht und den Zustand auf einem Display ausgibt. Perspektivisch möchte ich das über eine kleine Website darstellen.
Das Programm funktioniert wie gewollt, aber wenn ich eine WLAN -Verbindung aufbaue und dann die ADCs auslesen will, bekomme ich eine Fehlermeldung:
ValueError: invalid atten
Zum Testen habe ich es etwas vereinfacht:
# Vorbereitung Wlan Verbindung und Test ADC
try:
import usocket as socket
except:
import socket
from time import sleep
import network
import esp
esp.osdebug(None)
import gc
gc.collect()
from machine import ADC, Pin
ssid = 'xxx'
password = 'yyy'
station = network.WLAN(network.STA_IF)
station.active(False)
station.active(True)
station.connect(ssid, password)
while station.isconnected() == False:
pass
print('Connection successful')
print(station.ifconfig())
FloatL = ADC(Pin(13)) in dieser Zeile entsteht der Fehler: ValueError: invalid atten
dabei ist es egal, welchen ADC-Pin ich auswähle
a = FloatL
Ohne die Zeilen zum Wlan funktioniert alles.
Deaktivieren die Zeilen zum Wlan-Aufbau die ADC-Pins?
Hans-Jürgen
Micropython: ESP32 ADC auslesen bei bestehender Netzwerkverbindung
Hallo,
kannst du bitte immer die vollständige Fehlermeldung im Code-Tag mit kopieren?
Mit `atten` kann man die Referenzspannung angeben. Eventuell die mal mit angeben, es gibt folgende Möglichkeiten:
https://docs.micropython.org/en/latest/ ... f.html#ADC
Grüße
Dennis
kannst du bitte immer die vollständige Fehlermeldung im Code-Tag mit kopieren?
Mit `atten` kann man die Referenzspannung angeben. Eventuell die mal mit angeben, es gibt folgende Möglichkeiten:
https://docs.micropython.org/en/latest/ ... f.html#ADC
Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Moin Dennis
das war die vollständige Fehlermeldung. Ich war auch etwas überrascht, weil sie unvollständig aussieht.
[code]
Traceback (most recent call last):
File "<stdin>", line 35, in <module>
ValueError: invalid atten
>>>
[/code]
Dein Link war aber trotzdem sehr hilfreich. Es hatte zwar nichts mit einer Spannungsangabe zu tun, aber weiter oben im Text stand, dass die ADC -Pins zu Blöcken zusammengefasst sind. "Meine" Pins gehören zu Block 2. Und dieser Block wird bei eingeschaltetem WiFi von WiFi mit benutzt, führt also beim Versuch einen aus der Gruppe als ADC zu verwenden zu einem Fehler. In meinem TestProgramm habe ich jetzt einen aus Block1 genommen und bekomme keinen Fehler.
Ich ändere in meinem Programm die Pinzuordnungen und dann läuft es.
Vielen Dank.
Hans-Jürgen
das war die vollständige Fehlermeldung. Ich war auch etwas überrascht, weil sie unvollständig aussieht.
[code]
Traceback (most recent call last):
File "<stdin>", line 35, in <module>
ValueError: invalid atten
>>>
[/code]
Dein Link war aber trotzdem sehr hilfreich. Es hatte zwar nichts mit einer Spannungsangabe zu tun, aber weiter oben im Text stand, dass die ADC -Pins zu Blöcken zusammengefasst sind. "Meine" Pins gehören zu Block 2. Und dieser Block wird bei eingeschaltetem WiFi von WiFi mit benutzt, führt also beim Versuch einen aus der Gruppe als ADC zu verwenden zu einem Fehler. In meinem TestProgramm habe ich jetzt einen aus Block1 genommen und bekomme keinen Fehler.
Ich ändere in meinem Programm die Pinzuordnungen und dann läuft es.
Vielen Dank.
Hans-Jürgen
- DeaD_EyE
- User
- Beiträge: 1224
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Genau das gleiche Problem hatte ich auch einmal. Dummerweise ist das erst aufgefallen, nachdem das PCB angefertigt worden ist.
Bei Mikrocontrollern sollte man immer genau darauf achten, welche Pins was können und in welchen Situationen diese Pins nicht mit Funktion XY genutzt werden können.
Bei ESP32 ist z.B. auch der erste SPI-Bus belegt. Dort müsste sich der externe SPIFLASH befinden. Falls man noch SPIRAM hat, fällt noch ein SPI-Bus weg, den man nicht nutzen kann oder sollte/kann.
Dann kann man bestimmte Pins nicht im deepsleep/lightsleep zum Aufwecken nutzen.
Bei Mikrocontrollern sollte man immer genau darauf achten, welche Pins was können und in welchen Situationen diese Pins nicht mit Funktion XY genutzt werden können.
Bei ESP32 ist z.B. auch der erste SPI-Bus belegt. Dort müsste sich der externe SPIFLASH befinden. Falls man noch SPIRAM hat, fällt noch ein SPI-Bus weg, den man nicht nutzen kann oder sollte/kann.
Dann kann man bestimmte Pins nicht im deepsleep/lightsleep zum Aufwecken nutzen.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server