Ir para conteúdo
Fórum Script Brasil
  • 0

Código python com erro


Diógenes Vargas de Bittencourt

Pergunta

Boa tarde pessoal, estou tentando fazer um código para controlar o enchimento de 2 panelas que tenho com um controlador de fluxo. Mas alguns erros ainda estão ocorrendo, podem me ajudar?
Eu quero fazer assim então: pergunto quantos litros quero na panela x e depois o código controla enquanto não chegar a quantidade informada na pergunta a solenoide fica ligada, senão ela desliga.

 

GPIO.setmode(GPIO.BCM)
GPIO.setup(FLOW_SENSOR, GPIO.IN, pull_up_down = GPIO.PUD_UP)
global count
count = 0

qtde_lavagem = int(raw_input("Qual quantidade de agua para LAVAGEM? "))
print "Foi inserido: ", qtde_lavagem

def countPulse(channel):
        global count
        count = count+1
        flow = (count * 2.69541779) / 1000
        time.sleep(0)

GPIO.add_event_detect(FLOW_SENSOR, GPIO.FALLING, callback=countPulse)

while int(flow) <= qtde_lavagem:
        print "Solenoide ligada ", flow
else:
        print "Solenoide desliga"

#       except KeyboardInterrupt:
#               print '\nPrograma interrompido! Tchau!'
#       GPIO.cleanup()
#       sys.exit()
 

 

Resultado do código:
Qual quantidade de agua para LAVAGEM? 1
Foi inserido:  1
Traceback (most recent call last):
  File "sensor_fluxo_qtde.py", line 24, in <module>
    while int(flow) <= qtde_lavagem:
NameError: name 'flow' is not defined

 

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

raspberry?

tenho uma mas ainda não fiz nada de mais com ela, então não sei como funciona o ambiente

o que posso falar se remete a python

flow esta no escopo local da função countPulse, o flow que esta no while diz respeito ao escopo global, e flow global não existe como acusa o erro:

NameError: name 'flow' is not defined

 

resumindo você deve criar a variavel flow no escopo global, e identificar ela como global na função assim como você fez com a variavel count

Link para o comentário
Compartilhar em outros sites

  • 0
19 horas atrás, ArteEN disse:

Bom dia ArteEN, pois é, eu também fiz isso antes e mesmo assim ocorre o erro pedindo para eu setar a variável, e quando seto ela com algum valor, ele não pega lá da função, e daí não funciona direito.

 

 

raspberry?

tenho uma mas ainda não fiz nada de mais com ela, então não sei como funciona o ambiente

o que posso falar se remete a python

flow esta no escopo local da função countPulse, o flow que esta no while diz respeito ao escopo global, e flow global não existe como acusa o erro:

NameError: name 'flow' is not defined

 

resumindo você deve criar a variavel flow no escopo global, e identificar ela como global na função assim como você fez com a variavel count

 

Link para o comentário
Compartilhar em outros sites

  • 0

intendo, então você pode usar alternativas

usar uma lista como ponteiro ou criar um objeto que funciona como ponteiro

# usando lista
>>> def il(lista): #lista com um valor numerico na primeira posição
	lista[0] += 1

>>> l = [0, ]
>>> l[0]
0
>>> il(l)
>>> l[0]
1
>>> il(l)
>>> l[0]
2
#usando classe
>>> class Ponteiro:
	flow = True

	
>>> p = Ponteiro()
>>> p.flow
True
>>> p.flow = False
>>> p.flow
False
>>> def trocar(pont):
	if pont.flow:
		pont.flow = False
	else:
		pont.flow = True

		
>>> trocar(p)
>>> p.flow
True
>>> trocar(p)
>>> p.flow
False
>>> t = lambda : trocar(p)
>>> t()
>>> p.flow
True
>>> t()
>>> p.flow
False

então você pode iniciar o objeto ou lista fora da função e passar como argumento

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...