Pages: [1]   Go Down
Author Topic: App Inventor - arduino uno  (Read 664 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve a tutti, attraverso questo modulo bluetooth http://www.plexishop.it/it/modulo-bluetooth-hc-06.html
collego Arduino Uno con Sensore di misura a ultrasuoni SRF05 http://www.plexishop.it/it/arduino/sensori-per-arduino/sensore-di-misura-a-ultrasuoni-srf05.html ad un'applicazione sviluppata in App Inventor per leggere i dati.
All'inizio tutto va bene, il sincronismo è perfetto, sia il delay dello sketch sia l'evento clock sono settati a un secondo (1000), ma dopo il primo minuto le variazioni di misurazione subiscono un rallentamento costante nella visualizzazione, arrivando a 8 minuti di funzionamento ad avere 8 secondi di ritardo nella visualizzazione dei dati, premettendo che con il monitor serial questo non avviene, cosa potrei fare per non avere questo ritardo?

grazie
Logged

0
Offline Offline
Sr. Member
****
Karma: 3
Posts: 459
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non metti codice per cui la prima ipotesi che mi viene in mente è che il problema potrebbe stare nell'applicazione con App Inventor per cui questo potrebbe essere il posto sbagliato per chiedere.

Puoi provare a replicare il programma su Arduino con uno su PC che manda dati inventati giusto per essere sicuri che il problema risieda lato Android.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

scusami zoomx, questo è il codice, dove è anche inserita una fotoresistenza,
se non ci sono errori provo a vedere se è App Inventor. Aspetto un vostro suggerimento. Grazie

#define trigPin 13
#define echoPin 12


int FotoPin = 1;
int FotoValue;

void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);

}

void loop() {

  FotoValue = analogRead(FotoPin);
  long duration, distance;
  digitalWrite(trigPin, LOW);  // Added this line
  delayMicroseconds(2); // Added this line

  digitalWrite(trigPin, HIGH);

  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
if (distance >= 200 || distance <= 0){
   
   Serial.println(" nesun ostacolo ");
  }
  else {
   
    Serial.print(" ostacolo a  ");
    Serial.print(distance);
    Serial.println(" centimetri ");
  }
if (FotoValue< 50) {
Serial.print("  buio ");
} else if (FotoValue< 100) {
Serial.print("  ombre ");
} else if (FotoValue< 300) {
Serial.print("  luce scarsa ");
} else {
Serial.println("   luce ");
}



 
  delay(2000);
}
Logged

0
Offline Offline
Sr. Member
****
Karma: 3
Posts: 459
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

A naso direi che il problema sta sul lato Android. Vedo che sia con il bluetooth che con la seriale usi esattamente lo stesso codice. La seriale dell'Arduino non è del tipo con controllo di flusso per cui il ricevente potrebbe chiedere di aspettare per cui non ci sono problemi di controllo di flusso.

C'è anche la possibilità che il problema risieda nella trasmissione bluetooth. Per cui io farei questo: scaricherei una app Android che sia un terminale bluetooth come Bterminal o BlueTerm e poi proverei a ricevere i dati dall'Arduino.
Poi proverei anche a ricevere i dati con un PC, basta avere il bluetooth e un programma terminale.
Se in entrambi i casi non hai ritardi allora il problema è in App Inventor.

Buona fortuna!
Logged

Pages: [1]   Go Up
Jump to: