ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Comunicación serial Python y Arduino para velocidades de motores


Enviado por   •  26 de Mayo de 2023  •  Prácticas o problemas  •  423 Palabras (2 Páginas)  •  103 Visitas

Página 1 de 2

Al realizar la simulación, al tener en 1 el pir, funciona bien, los motores van a la velocidad.

Pero al tener en 0 el pir, solo avanza un motor con las especificaciones de L y R.

Primero va con la velociad de L por un tiempo, y despues va a la velocidad de R por otro tiempo.

No se porque haga eso no le puse ningun delay para que hiciera eso.

Por comentar, creo que este no es un examen para una horaxD.

Codigo Arduino:

int m11 = 11;

int m12 = 10;

int m21 = 9;

int m22 = 6;

int pir = 2;

void setup() {

// put your setup code here, to run once:

pinMode(m11, OUTPUT);

pinMode(m12, OUTPUT);

pinMode(m21, OUTPUT);

pinMode(m22, OUTPUT);

pinMode(pir, INPUT);

Serial.begin(9600);

}

void loop() {

// put your main code here, to run repeatedly:

int valuePIR=digitalRead(pir);

if(valuePIR==HIGH)

{

Serial.println("ENEMIGO DETECTADO");

Serial.println("L100,R33");

delay(1000);

m(100, 33);

}

if(valuePIR==LOW)

{

Serial.println("NO HAY ENEMIGOS");

delay(1000);

if(Serial.available()>0);

{

String message=Serial.readString();//el message es la lectura serial de entrada.

int leftIndex = message.indexOf('L');

int rightIndex = message.indexOf('R');

String left=message.substring(leftIndex+1,message.length());

String right=message.substring(rightIndex+1,message.length());

int leftValue = left.toInt()*255/100;

int rightValue = right.toInt()*255/100;

analogWrite(m11, leftValue);

digitalWrite(m12, LOW);

analogWrite(m11, rightValue);

digitalWrite(m12, LOW);

}

}

}

Codigo Python:

"""

Created on Thu May 25 00:53:02 2023

@author: kitzi

"""

import serial

import time

ser = serial.Serial('COM1', 9600)

while True:

if ser.in_waiting > 0:

mensaje = ser.readline().decode().strip() # Lee el mensaje desde el puerto serial y lo decodifica

print("Mensaje recibido:", mensaje)

if mensaje == "NO HAY ENEMIGOS":

valor = input()

message = 'valor = %s\n' %valor # Lee un mensaje desde la consola

ser.write(message.encode()) # Envía el mensaje al puerto serial

...

Descargar como (para miembros actualizados) txt (2 Kb) pdf (44 Kb) docx (8 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com