Pages: [1]   Go Down
Author Topic: Aiuto tesina con arduino non funziona  (Read 891 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il programma funziona ma la velocità del ciclo del programma è molto lento.

Code:
#include <Servo.h>
#include <Narcoleptic.h>
/*
Libreria che permette di mandare in standby il microcontrollore
nei momenti di inattività  (delay), risparmiando parecchia energia.
Si può eventualmente anche non utilizzare (in tal caso va sostituita
l'ultima istruzione Narcoleptic.delay(15) con delay(15).
*/
 
Servo myservo;
int Value;
int Center=90;
/*
La variabile Center rappresenta il valore di centratatura
del servo a rotazione continua. Nel mio caso è 105, di solito è 90.
Con questo valore il servo deve restare fermo.
*/

void setup() {
  Serial.begin();
  myservo.attach(9); // Collega il servo al PIN 9
}

void loop() {
  int sensorValue = analogRead(A0);  // Legge il valore del sensore LDR di sinistra
  int sensorValue2 = analogRead(A1); // Legge il valore del sensore LDR di destra
  
  Value=(sensorValue-sensorValue2)/10;  
  /*
  Calcola la differenza tra i due sensori e li divide per 10,
  in questo modo una differenza di 10 equivale a 1, una differenza
  di 53 equivale a 5 e cosi via
  */
  
  if (Value==0) myservo.detach(); else myservo.attach(9);
  /*
  Se la differenza è uguale a 0 scollega il servo altrimenti lo
  collega (serve per risparmiare energia)
  */
  
  if (Value>10) Value=100;
  if (Value<-10) Value=-100 ;
  /*
  Limita la differenza massima tra -10 e + 10
  (per evitare una velocità  eccessiva)
  */
  
  Serial.println(Value); // Debug - Visualizza il valore sulla seriale
  myservo.write(Center+Value);
  /*
  Se il valore di Value è positivo, sposta il Servo a DX, se è negativo a SX.
  La velocità  Ã¨ direttamente proporzionale al valore assoluto di Value
  */
  
   delay(15);
  /*
  Invece che usare un semplice delay, usiamo questo, così risparmiamo energia.
  Si può eventualmente sostituire con delay(15).
  */
}
« Last Edit: April 20, 2013, 12:30:15 am by leo72 » Logged

Offline Offline
Full Member
***
Karma: 2
Posts: 223
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

un pò di parentesi graffe agli if non fanno male
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3391
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Il programma funziona ma la velocità del ciclo del programma è molto lento.

Senza un ciao, senza un buon Natale, senza mettere il codice negli appositi tag.... non so una descrizione di cosa vuoi fare, a cosa serve, niente ..... il programma va lento mettetemelo a posto!! manco grazie

... "DICAAAAAAA ...un attimo e sono sciubito da leiii!!!"  smiley-grin smiley-grin


un pò di parentesi graffe agli if non fanno male
se usa una sola istruzione dopo l'if o dopo l'else può essere omesso l'uso delle graffe
« Last Edit: April 19, 2013, 03:54:42 pm by pablos » Logged

no comment

Offline Offline
Full Member
***
Karma: 2
Posts: 223
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ahahaha @pablos
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 329
Posts: 22782
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@Mera94:
ti chiedo di rispettare il regolamento del forum
Logged


Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
Serial.begin();
forse dovresti mettere
Code:
Serial.begin(9600);
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

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

Si lo so di metter un valore nel Serial.begin(9600); ma non funziona uguale
Scusate se non ho rispettato le regole del forum ma non ho molto tempo e ho postato tutto un po alla svelta  smiley
Logged

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

é un inseguitore di luce il circuito è questo
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 329
Posts: 22782
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

la velocità del ciclo del programma è molto lento.
E' questo il problema?
Che cosa intendi per "molto lento"?
Logged


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

il servo va a scatti
Logged

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

Nessuno allora mi può dire il perché ?
 smiley-lol 
Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 86
Posts: 4951
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Prova a NON alimentare il servo da Arduino ma a dargli una alimentazione esterna. Di solito i servo rispondono meglio se gli dai 6Volt (verifica che il tuo servo li accetti, di solito accettano fino a 7,4volt)
Bastano 4 batterie AA da 1,5 (non di più).   Ricorda di collegare insieme GDN del servo e del circuito.


Logged

my name is IGOR, not AIGOR

Pages: [1]   Go Up
Jump to: