Mit einer int-Variablen mit Serial.print() in der Arduino
- CODE
void setup() {
Serial.begin(9600);
int r = 0;
Serial.print("How long\n");
int lng = Serial.read();
while (Serial.available() == 0) {
//Empty
}
char string[] = {'0'};
while (r < 62) {
if(r == 10) {
string[0] += 7;
}
if(r ==36) {
string[0] += 6;
}
Serial.println(string);
r ++;
string[0] ++;
}
Serial.print(lng, DEC);
}
void loop() {
}
Okay, so das erste problem ist die Linie, die Serial.print(lng, DEC);
. Es gibt einen -1 auf den serial monitor. Wenn ich Eingang a 3 während int lng = Serial.read()
, wie ich es bekommen kann, um die Rückkehr der Eingang?
Zweiten, wie würde ich die Länge der Kette zu lng-Anlagen und stellen sicher, dass jeder Raum beginnt mit einem 0
statt leer zu sein?
Der endgültige code:
void setup() {
Serial.begin(9600);
int r = 0;
Serial.print("How long\n");
int lng;
while (1)
if (Serial.available() > 0)
{
lng = Serial.read();
break;
}
int l = (lng - 48);
char string[l];
for (int i = 0; i < l; i++)
string[i] = '0';
while (r < 62) {
if (r == 10) {
string[0] += 7;
}
if (r == 36) {
string[0] += 6;
}
Serial.println(string);
r++;
string[0]++;
}
char eof = '/';
Serial.println(eof);
}
void loop() {
}
Den char eof = '/' ist, weil ich habe ein Python-Skript, das Gespräch mit dem Arduino. Der Druck der eof
ist ein flag, das zu lassen, Python wissen, dass es getan wird, drucken und schließen Sie die serielle Verbindung.
Der zweite Teil der Frage ist mehrdeutig. Bitte erläutern Sie mehr darüber, was Sie zu tun versuchen.
InformationsquelleAutor AlchemyDragon | 2013-05-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das Programm tritt in busy waiting, nachdem es versucht zu Lesen. Also es wird nicht alles Lesen.
Ändern Sie diesen Teil:
in:
Bezug auf das zweite problem:
Sie sind willkommen, AlchemyDragon. Ich bearbeitet die Antwort und versucht, die Antwort auf Ihre zweite problem. 🙂
Das hat geholfen. Ich hatte zum hinzufügen einer weiteren Zeile vor die for-Anweisung.
int l = (lng - 48);
ist, was ich zu tun hatte, weil der arduino sieht ein 51 wenn ich Eingang a 3. Dang diese ascii-Tabellen. Ich werde posten, der endgültige code, der funktioniert. Vielen Dank für all Ihre Hilfe.InformationsquelleAutor red_eyes