последовательная связь между python и arduino - PullRequest
0 голосов
/ 03 мая 2018

отправляю значения arduino в python. Это часть моего кода.

#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>
#include "Timer.h"



int IR_sensor = A0;
int value;

void setup(void)
{
  Serial.begin(9600);
  pinMode(IR_sensor, INPUT);
}

void loop() {

  long IR_value = analogRead(IR_sensor);
  long IR_range = gp2y0a21yk(IR_value);

  //Serial.println(IR_value);
  //Serial.print(IR_range);
  //Serial.println("cm");
  //Serial.println();
  if (IR_range < 50)
  {
    value = 1;
    Serial.println(value);
  }

  else {
    value = 0;
    Serial.println(value);
  }
  delay(1000);

      if (value == 1)
      {
        Serial.println("1234"); 

      }

    }

long gp2y0a21yk(long IR_value)
{
  if (IR_value < 10)
  {
    IR_value = 10;
  }

  return ((67870.0 / (IR_value - 3.0)) - 40.0) / 10;
}

ТАК В ЭТОМ КОДЕ есть два варианта. Первое значение = 0 или значение = 1, а затем 1234

Это мой код Python

import serial
import time
import MySQLdb
from datetime import datetime
import cv2
import boto3


port ="COM15"
brate = 9600
arduino =serial.Serial(port, baudrate = brate, timeout=None)


while True:

    data= arduino.readline()str = data[:-2].decode()
    print(str)


    if str=="0":
        print("nobody")

Что мне интересно, так это эта часть. data = arduino.readline () этот код читает значения 0 или 1 и 1234. Что я хочу сделать, это сохранить это значение в data1 и data2, и я хочу использовать это значение! Например, если python получает значение = 0, я хочу сохранить это значение в a a = 0, а затем использовать условие if, а если python получает значение = 1 и 1234, я хочу сохранить это a = 1 и b = 1234 и использовать его. если пункт. Есть ли у вас какие-либо идеи? Я очень ценю это!

1 Ответ

0 голосов
/ 03 мая 2018

Поскольку ваш arduino будет выводить только 0 или 1 и 1234, просто добавьте else после вашего оператора if.

a = int(str)
if str=="0":
    print("nobody")
else:
    b = int(arduino.readline()[:-2].decode())
...