2017-05-11 5 views
-1
/* 
    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 code for serial interfacingSerien Interfacing von Arduino mit Raspberry Pi-2-Daten digit

Dieser Code funktioniert zu übertragen, während mit Arduino mit seriellem Monitor, aber als Schnittstelle Arduino mit Raspberry Pi lief, nur "Willkommen" Meldung kam auf LCD nicht Daten (2-stellige Nummer), die ich über Raspberry Pi übertragen habe, möglicherweise liegt es an Python-Programm auf Raspberry Pi oder einem anderen Grund.

+0

Hast du ernsthaft nur ein Foto von einem Bildschirm nahm, anstatt nur einfach kopieren Sie den Code einfügen? Warum? –

+0

Weil ich nicht paste python code von R pi auf meinen Laptop kopieren kann = D;) – Saddaqat

Antwort

1

Sie suchen nach "\ n", senden aber keines. so werden Sie nie

auslösen

if (inchar == ‚\ n‘)

+0

Danke. Ich habe gerade dieses Problem gelöst, nachdem ich hier eine Frage gestellt habe, wie Sie sagen, dass das Problem war. – Saddaqat

+0

Brauchen Sie Hilfe, ich werde Ihnen dankbar sein 'speed = "70 \ r \ n" arduino.write (Geschwindigkeit)' Dieser Code funktioniert gut und gibt aus auf LCD auf arduino setzen wie "speed = 70 über Geschwindigkeit" Aber wenn ich diese Aussage 'speed = 70 arduino.write ("speed \ r \ n")' Es wird "speed = 0 Unterdrehzahl Limit" auf LCD.why? Ich tue dies für Geschwindigkeitsbegrenzer-Überwachungssystem, wenn dieser Code finden Sie Geschwindigkeit speichert es in "lastlimit" arduino.write ("lastlimit \ r \ n") gibt über Problem .. Ich bin nicht viel vertraut mit Python, versuchte ich aber keine Lösung finden – Saddaqat

+0

arduino.write ("speed \ r \ n") 'wird die Literal-Zeichenfolge "speed \ r \ n" schreiben, nicht "70 \ r \ n" müssen Sie schreiben (speed + "\ r \ n "). Oder wahrscheinlicher (str (Geschwindigkeit) + "\ r \ n") als Geschwindigkeit ist ein Int. Hilft das? Wenn nicht, bitte posten Sie eine neue Frage und lassen Sie es mich wissen – JeffUK

Verwandte Themen