Seite 1 von 1

Zwei Schleifen

Verfasst: Samstag 14. März 2020, 20:30
von Domieos
Guten Abend zusammen, kann mir jemand helfen?
Leider geht dieses Programm nicht vollständig.
Die Steuerung der Lichter über die GPIO´s geht einwandfrei.
Doch das Speichern der Spannung in einem .txt Dokument klappt nicht

Code: Alles auswählen

#!/usr/bin/env python3
import time
from datetime import datetime as DateTime

import gpiozero
from RPi import GPIO

VOLTAGE_LOG_FILENAME = "/media/pi/dm/log_spannung"
INPUT_PIN_A = 35
INPUT_PIN_B = 29
OUTPUT_PIN_A = 36
OUTPUT_PIN_B = 32


def main():
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup([INPUT_PIN_A, INPUT_PIN_B], GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
    GPIO.setup([OUTPUT_PIN_A, OUTPUT_PIN_B], GPIO.OUT)

    while True:
        GPIO.output(OUTPUT_PIN_A, GPIO.input(INPUT_PIN_A))
        GPIO.output(OUTPUT_PIN_B, GPIO.input(INPUT_PIN_B))

    adc = gpiozero.MCP3008()
    while True:
        now = DateTime.now()
        voltage = adc.voltage * 4.848
        line = (
            f"{voltage:.2f} Volt   Datum: {now:%d.%m.%Y}"
            f"         Uhrzeit: {now:%H:%M:%S}\n"
        )
        # print(line, end="")
        with open(VOLTAGE_LOG_FILENAME, "a", encoding="ascii") as file:
            file.write(line)

        time.sleep(30 * 60)


if __name__ == "__main__":
    main()

Re: Zwei Schleifen

Verfasst: Samstag 14. März 2020, 20:36
von sparrow
Wann genau denkst du denn, wird diese Schleife verlassen?

Code: Alles auswählen

    while True:
        GPIO.output(OUTPUT_PIN_A, GPIO.input(INPUT_PIN_A))
        GPIO.output(OUTPUT_PIN_B, GPIO.input(INPUT_PIN_B)

Re: Zwei Schleifen

Verfasst: Samstag 14. März 2020, 20:38
von __deets__
Eine while True Schleife laeuft endlos. Ergo kann man dieser zwei in seinem Code nicht sinnvoll haben - nur eine kommt dran. Du musst also den Inhalt von Schleife eins in Schleife zwei stecken. Allerdings ist hier die Frage, wozu die erste Schleife beziehungsweise ihre Anweisungen ueberhaupt gut sind. Wenn du einfach nur einen GPIO Zustand als Eingang auf einen anderen als Ausgang legen willst - dann mach doch einfach eine Drahtbruecke.

Re: Zwei Schleifen

Verfasst: Samstag 14. März 2020, 20:52
von sparrow
Und das grundlegende Problem mit der Verständnis für Schleifen hattest du hier schon.
Was dort an Antworten im Bezug auf Schleifen stand, gilt natürlich auch hier.