Я делаю приложения, которые writes in
и reads from
Arduino (Uno).Я хочу, чтобы Arduino работал только тогда, когда доступны данные (например, слушатель), и записывает каждый раз (периодически используя delay
).Но я не знаю, как настроить слушателя (или есть ли способ сделать это), потому что я не хочу, чтобы delay
влиял на reading
.
unsigned long timeDelay = 100; //Some configurations
String comand;
char received;
const int LED = 12;
void setup() {
//start serial connection
Serial.begin(9600);
pinMode(LED, OUTPUT); //LED is only a way that I know the Arduino is
digitalWrite(LED,LOW); //reading correctly
}
void loop() {
//How to separate this part--------------Reading from Serieal--------
comand = "";
while(Serial.available() > 0){
received = Serial.read();
comand += received;
if(comand == "DELAY"){ //Processing the command
timeDelay = Serial.parseInt();
}
}
if(comand == "Desliga"){ //Processing the command
digitalWrite(LED,LOW); //'Desliga' means 'turn on' in portuguese
}
else if(comand == "Liga"){ //Processing the command
digitalWrite(LED,HIGH); //'Liga' means 'turn off' in portuguese
}
//-------------------------------------------------------------------
//From this other part-----------------Writing on Serial-------------
int sensorValue = analogRead(A0);
// print out the value you read:
Serial.println(sensorValue);
Serial.flush();
delay(timeDelay); // delay in between reads for stability
//-------------------------------------------------------------------
}
OBS: Iя делаю соединение через приложение Java.Так что я могу установить timeDelay
там.Если я поставлю timeDelay
, как 1000
(мс), то одна написанная мной команда (для включения / выключения LED
) будет обрабатываться в течение 1 секунды.Ребята, вы поняли?
У кого-нибудь есть решение?