2017-07-03 61 views
-3

第84行有什麼問題?我有這個錯誤:「time.sleep(length)」有什麼問題?

SyntaxError: time.sleep(length)

我的代碼有什麼問題?

import time 
    import RPi.GPIO as GPIO 
    GPIO.setmode(GPIO.BCM) 

    buzzer_pin = 17 
    sensor_pin = 18 

    GPIO.setup(sensor_pin, GPIO.IN) 
    GPIO.setup(buzzer_pin, GPIO.IN) 
    GPIO.setup(buzzer_pin, GPIO.OUT) 

    notes = { 
    'B0' : 31, 
    'C1' : 33, 'CS1' : 35, 
    'D1' : 37, 'DS1' : 39, 
    'EB1' : 39, 
    'E1' : 41, 
    'F1' : 44, 'FS1' : 46, 
    'G1' : 49, 'GS1' : 52, 
    'A1' : 55, 'AS1' : 58, 
    'BB1' : 58, 
    'B1' : 62, 
    'C2' : 65, 'CS2' : 69, 
    'D2' : 73, 'DS2' : 78, 
    'EB2' : 78, 
    'E2' : 82, 
    'F2' : 87, 'FS2' : 93, 
    'G2' : 98, 'GS2' : 104, 
    'A2' : 110, 'AS2' : 117, 
    'BB2' : 123, 
    'B2' : 123, 
    'C3' : 131, 'CS3' : 139, 
    'D3' : 147, 'DS3' : 156, 
    'EB3' : 156, 
    'E3' : 165, 
    'F3' : 175, 'FS3' : 185, 
    'G3' : 196, 'GS3' : 208, 
    'A3' : 220, 'AS3' : 233, 
    'BB3' : 233, 
    'B3' : 247, 
    'C4' : 262, 'CS4' : 277, 
    'D4' : 294, 'DS4' : 311, 
    'EB4' : 311, 
    'E4' : 330, 
    'F4' : 349, 'FS4' : 370, 
    'G4' : 392, 'GS4' : 415, 
    'A4' : 440, 'AS4' : 466, 
    'BB4' : 466, 
    'B4' : 494, 
    'C5' : 523, 'CS5' : 554, 
    'D5' : 587, 'DS5' : 622, 
    'EB5' : 622, 
    'E5' : 659, 
    'F5' : 698, 'FS5' : 740, 
    'G5' : 784, 'GS5' : 831, 
    'A5' : 880, 'AS5' : 932, 
    'BB5' : 932, 
    'B5' : 988, 
    'C6' : 1047, 'CS6' : 1109, 
    'D6' : 1175, 'DS6' : 1245, 
    'EB6' : 1245, 
    'E6' : 1319, 
    'F6' : 1397, 'FS6' : 1480, 
    'G6' : 1568, 'GS6' : 1661, 
    'A6' : 1760, 'AS6' : 1865, 
    'BB6' : 1865, 
    'B6' : 1976, 
    'C7' : 2093, 'CS7' : 2217, 
    'D7' : 2349, 'DS7' : 2489, 
    'EB7' : 2489, 
    'E7' : 2637, 
    'F7' : 2794, 'FS7' : 2960, 
    'G7' : 3136, 'GS7' : 3322, 
    'A7' : 3520, 'AS7' : 3729, 

    'BB7' : 3729, 
    'B7' : 3951, 
    'C8' : 4186, 'CS8' : 4435, 
    'D8' : 4699, 'DS8' : 4978 
    } 

    def buzz(frequency, length): 

    if(frequency==0): 
    time.sleep(length) 
    return 
    period = 1.0/frequency 
    delayValue = period/2 
    numCycles = int(length * frequency) 

    for i in range(numCycles): 
    GPIO.output(buzzer_pin, True) 
    time.sleep(delayValue) 
    GPIO.output(buzzer_pin, False) 
    time.sleep(delayValue) 

    def play(): 
    buzz(notes['A3'], 0.5) 
    buzz(notes['A3'], 0.5) 
    buzz(notes['A3'], 0.5) 
    buzz(notes['F3'], 0.35) 
    buzz(notes['C4'], 0.15) 
    buzz(notes['A3'], 0.5) 
    buzz(notes['F3'], 0.35) 
    buzz(notes['C4'], 0.15) 
    buzz(notes['A3'], 1.0) 

    while True: 
    if GPIO.input(sensor_pin): 
    print("Ses Alarmi!") 
    play() 
    time.sleep(0.5) 
+0

後縮進塊能否請你更具體?這不是提問的方式。我只是把你的問題提到一個清晰可辨的地步。發佈一個完整的追溯,包括預期的行爲是什麼,以及哪些不適合你。簡單地說「SyntaxError」並沒有給我們任何東西繼續。 –

+5

首先,您有縮進錯誤。請修正您的縮進併發布可能運行的內容。 –

回答

2

你的意思是?

if(frequency==0): 
time.sleep(length) 

您需要if

if(frequency==0): 
    time.sleep(length)