Hallo,
ich habe mal wieder etwas herumgebastelt und Folgendes Programm zusammengestellt:
from machine import ADC,Pin
from utime import sleep
SOUND_SENSOR = ADC(1)
LED = machine.Pin(16,machine.Pin.OUT)
STAT = machine.Pin(25,machine.Pin.OUT)
file = open("status.txt", "w")
while True:
average = 0
STAT.value(1)
sleep(5)
STAT.value(0)
for i in range (1000):
noise = SOUND_SENSOR.read_u16()/256
average += noise
noise = average/1000
print(noise)
if noise > 20.000000:
LED.value(1)
file.write("ein" +"\n")
else:
LED.value(0)
file.write("aus" +"\n")
sleep(30)
Mit dem Programm möchte ich so eine Art Akustikschalter umsetzen, der gleichzeitig in die Datei "Status.txt" den Zustand der "Geräuscherkennung" aufzeichnet. Pin 25 dient nur als Überwachung ob das Programm überhaupt läuft.
Nun meine eigentliche Frage. Wenn ich das Programm am PC über den Pico laufen lasse, funktioniert alles einwandfrei. sobald ich aber den Pico an eine Powerbank anschliesse, sehe ich zwar, das Programm läuft aber die Daten EIN/AUS werden in der Status.TXT nicht aufgezeichnet.
Das Programm wurde natürlich vorher in main.Py umbenannt.
Bitte keine Kommentare zu dem schrottigen Programm oder Sinn und Unsinn von dem Programm.
Was mach ich hier falsch?
Programm läuft auf PC aber nicht auf Pico selbst.
Wenn das Schrottige am Programm aber Schuld daran ist, dass das Programm nicht funktioniert?
Code: Alles auswählen
from machine import ADC, Pin
from utime import sleep
SOUND_SENSOR = ADC(1)
LED = machine.Pin(16,machine.Pin.OUT)
STAT = machine.Pin(25,machine.Pin.OUT)
while True:
STAT.value(1)
sleep(5)
STAT.value(0)
average = sum(
SOUND_SENSOR.read_u16()
for i in range(1000)
) / 256000
print(average)
on = noise > 20
LED.value(on)
with open("status.txt", "a") as file:
file.write("ein\n" if on else "aus\n")
sleep(30)
-
- User
- Beiträge: 62
- Registriert: Freitag 18. Februar 2022, 10:13
.....wenn das schrottige Programm das Problem ist nehme ich die Kritik natürlich gerne an. Habe in der Zwischenzeit selbst nochmal etwas herumgebastelt und habe das Programm so hinbekommen das es mir die Zustände ein/aus auch auf dem Pico speichert.
Vielen Dank.
Code: Alles auswählen
from machine import ADC,Pin
from utime import sleep
SOUND_SENSOR = ADC(1)
LED = machine.Pin(16,machine.Pin.OUT)
STAT = machine.Pin(25,machine.Pin.OUT)
while True:
average = 0
STAT.value(1)
sleep(3)
STAT.value(0)
for i in range (1000):
noise = SOUND_SENSOR.read_u16()/256
average += noise
noise = average/1000
print(noise)
if noise > 20.000000:
file = open("status.txt", "a")
LED.value(1)
file.write("ein" +"\n")
file.close()
else:
file = open("status.txt", "a")
LED.value(0)
file.write("aus" +"\n")
file.close()
sleep(60)
Hallo,
gut dass die Datei jetzt geschlossen wird. Wenn du dazu aber das 'with'-Statemant benutzt (siehe Sirius3 Code), dann wird die Datei "automatisch" geschlossen, auch wenn das Programm abbricht.
Es bietet sich auch immer an absolute Pfade zu verwenden. 'pathlib' wäre hier eine passende Bibliothek.
Grüße
Dennis
gut dass die Datei jetzt geschlossen wird. Wenn du dazu aber das 'with'-Statemant benutzt (siehe Sirius3 Code), dann wird die Datei "automatisch" geschlossen, auch wenn das Programm abbricht.
Es bietet sich auch immer an absolute Pfade zu verwenden. 'pathlib' wäre hier eine passende Bibliothek.
Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Das with statement und die Probleme, die man sich ohne es einfängt, wurden Schlangenmensch schon in der Vergangenheit nahegelegt. Hätte man sich also alles sparen können, aber offensichtlich sind solche Hinweise Perlen vor die Säue, weil nur “Kommentare”, die man sich verbittet
-
- User
- Beiträge: 62
- Registriert: Freitag 18. Februar 2022, 10:13
Es tut mir leid, wenn es für manche User so rüberkommt, daß Kommentare auf meine Fragen "Perlen vor die Säue" sind. Ich habe offensichtlich manche Codes nicht richtig gelesen, bzw. dachte der Code wurde einfach kopiert um mir das schlechte Programm unter die Nase zu reiben.
Des Weiteren musste ich zuerst einmal verstehen, wofür das with Statement steht.
Ich bitte Euch nicht all zu streng mit mir zu sein. Es sind bei mir die ersten Schritte in der Programmierung und bin auf jede Hilfe angewiesen. Ich arbeite auch schon diverse Tutourials durch aber manchmal komme ich da auch nicht weiter, weshalb ich mich dann an Euch wende.
Des Weiteren musste ich zuerst einmal verstehen, wofür das with Statement steht.
Ich bitte Euch nicht all zu streng mit mir zu sein. Es sind bei mir die ersten Schritte in der Programmierung und bin auf jede Hilfe angewiesen. Ich arbeite auch schon diverse Tutourials durch aber manchmal komme ich da auch nicht weiter, weshalb ich mich dann an Euch wende.
Das Problem ist nicht, auf Hilfe angewiesen zu sein. Das Problem ist, dass du - bar jeder Ahnung - meinst besser zu wissen, was hier Hilfestellung ist, und was nur genoele an deinem Skript. Und uns irgendwelche niederen Motive unterstellst.
- DeaD_EyE
- User
- Beiträge: 1021
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Das ist unlogisch und schließt sich gegenseitig aus.Bitte keine Kommentare zu dem schrottigen Programm oder Sinn und Unsinn von dem Programm.
Was mach ich hier falsch?
Es gibt destruktive und konstruktive Kritik.
Konstruktive Kritik wird hier ausgeübt. Damit muss man umgehen können.
Bisher habe ich nur konstruktive Kritik mit Vorschlägen zur Verbesserung des Codes gesehen.
With-Statement: https://realpython.com/python-with-statement/
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
-
- User
- Beiträge: 62
- Registriert: Freitag 18. Februar 2022, 10:13
Aslo Leute, ich möchte hiermit das Thema beenden und mich für die Kritik bedanken. Leider sind hier einige Zeilen nicht so herübergekommen wie sie von mir gedacht waren, bzw. ich habe wohl unüberlegt in die Tatsen gehauen. Hierfür möchte ich mich nochmals entschuldigen.