[Linux-Biella] arduino..

Leonardo Buffa leonardo.buffa a bilug.linux.it
Mar 26 Giu 2012 12:25:41 CEST


ciao
sto sucando con una cosa che davvero non capisco come mai
devo stare in ascolto sulla sua seriale, aspettare un valore di tre 
cifre e con questo fare altre cose
a parte il fatto che leggere un valore di tre cifre devo fare tre 
Serial.read, metterli in una stringa per poi trasformarla in integer con 
atoi, mi si incasina il tutto quando gli inserisco una riga tipo:

while(Serial.available() == 0) { }

che dovrebbe dirgli: se non ti arriva niente sulla seriale non fare nulla...

inserita questa, i tre byte che leggo diventano uno per riga invece che 
una stringa unica.
io ho bisogno che faccia questo:

aspetta che l'asino ti scriva qualcosa sulla seriale
appena lo scrive trasformalo in int e poi comanda un servo

non va :/

allego codice se qualche anima pia ha voglia di aiutarmi

#include <Servo.h>
#include <stdio.h>
#include <stdlib.h>


Servo servoMain;
String inData;

void setup()
{
   Serial.begin(9600);
   servoMain.attach(10);
}
void loop()
{
   inData="";
   while(Serial.available() == 0) { }
     int h=Serial.available();
     for (int i=0;i<h;i++)
     {
       inData += (char)Serial.read();
     }

   int POS = atoi(&inData[0]);
   if (POS >= 0 && POS <= 180)
   {

     Serial.println(POS);
     servoMain.write(POS);
   }
}
-- 
花は桜木、人は武士


Maggiori informazioni sulla lista Linux