Python - declarar condición con sensor en python

 
Vista:
sin imagen de perfil

declarar condición con sensor en python

Publicado por barbs (1 intervención) el 23/02/2023 01:05:49
Buenas, estoy realizando un programa en python que mediante instrucciones mueve dos motores paso a paos. Todo bien hasta ahí, sin embargo quiero agregar una condición en que si detecta un sensor (SENSOR 1), uno de los motores cambie su dirección al contrario y cuando detecte el otro sensor (SENSOR 2) reinicie el bucle que estaba haciendo inicialmente.

Este es el extracto del código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
def Loop(self):
        try:
            a=0
            while True:
                self.serial.arduino.write(b'1')
 
                #MOTOR
                item = []
 
                rowCount = self.ui.tabla.rowCount()
                columnCount= self.ui.tabla.columnCount()
 
                for r in range(rowCount):
                    fila=[]
                    for c in range(columnCount):
                        fila.append(self.ui.tabla.item(r,c).text())
                    item.append(fila)
 
 
                MovWU=self.ui.tabla.item(r,4).text()
                wait_up=int(MovWU)
                MovWD=self.ui.tabla.item(r,5).text()
                wait_down=int(MovWD)
 
                MovX=self.ui.tabla.item(r,0).text()
                x=int(MovX)
                for mx in range (0, x):
                    self.serial.arduino.write(b'1')
                    print("MOTOR X: ",mx)
                    time.sleep(0.05)
                    yield
 
                MovDip=self.ui.tabla.item(r,3).text()
                dip=int(MovDip)
                for mdip in range (0,dip):
                    MovZD=self.ui.tabla.item(r,1).text()
                    z=int(MovZD)
                    for mzd in range (0,z):
                        self.serial.arduino.write(b'2')
                        print("MOTOR ZDOWN:", mzd)
                        time.sleep(0.1)
                        yield
 
                    time.sleep(wait_down)
 
                    MovZU=self.ui.tabla.item(r,2).text()
                    zu=int(MovZU)
                    for mzu in range(0,zu):
                        self.serial.arduino.write(b'3')
                        print("MOTOR ZUP:", mzu)
                        time.sleep(0.1)
                        yield
                    time.sleep(wait_up)
                yield
                a=+a
 
        except serial.serialutil.SerialException:
            QMessageBox.about (self,'Información', 'ARDUINO NO CONECTADO')
            return None

De momento estoy usando un sensor infrarrojo tipo seguidor de línea, pero luego lo cambiaré a uno de ranura.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder