Python — последовательный интерфейс Arduino с Raspberry Pi для передачи двухзначных данных

/*
String to Integer conversion

Reads a serial input string until it sees a newline, then converts
the string to a number if the characters are digits.

The circuit:
No external components needed.

created 29 Nov 2010
by Tom Igoe

This example code is in the public domain.
*/
#include <LiquidCrystal.h>
LiquidCrystal lcd(23, 22,13,12,11,10);
String inString = "";    // string to hold input

void setup() {
// Open serial communications and wait for port to open:
Serial.begin(19200);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
lcd.begin(20, 4);

// send an intro:
//println("\n\nString toInt():");
//Serial.println();
}

void loop() {
// Read serial input:
while (Serial.available() > 0) {
lcd.setCursor(0,0);
lcd.print("welcome");
int inChar = Serial.read();
if (isDigit(inChar)) {
// convert the incoming byte to a char
// and add it to the string:
inString += (char)inChar;
}
// if you get a newline, print the string,
// then the string's value:
if (inChar == '\n') {
int data = inString.toInt() ;
lcd.setCursor(0,1);
lcd.print("speed: ");
lcd.println(data);
if(data > 50){
lcd.setCursor(0,2);
lcd.print("Over speed");
}
else{
lcd.setCursor(0,2);
lcd.print("Under speed limit ");
}

// Serial.print("Value:");
//Serial.println(inString.toInt());
//Serial.print("String: ");
//Serial.println(inString);
// clear the string for new input:
inString = "";
}
}
}

Python-код для последовательного интерфейса

Этот код работает при использовании последовательного монитора с Arduino, но при запуске интерфейса Arduino с Raspberry Pi на ЖК-дисплее появляется только «приветственное» сообщение, а не данные (двухзначное число), которые я передал через Raspberry Pi, возможно, это связано с тем, что программа Python на Raspberry Pi или любая другая причина.

-1

Решение

Вы проверяете «\ n», но никогда не отправляете. так что вы никогда не сработаете

if (inChar == ‘\ n’)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]