Pages: [1]   Go Down
Author Topic: Help avvio arduino senza usb  (Read 1219 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 1
Posts: 37
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve a tutti ragazzi, mi è sorto un "problema", ho realizzato il codice per il mio progetto, è funzionante al 100% ma... con il cavo usb collegato.
Scollegando il cavo e connettendo un alimentatore da 5,2 V 2000ma non mi funziona più nulla. E da cosa lo deduco? Dal tx che non lampeggia più, a differenza del power che è acceso. Probabilmente c'è qualcosa di troppo nel mio codice? Ve lo riporto:
Code:
#include <Servo.h>
Servo s1;
Servo s2;
Servo s3;
Servo s4;
Servo s5;
long tempo;
int modalita=0;
int i=1;
int led=8;

int triggerPort = 9;
int echoPort = 8;

void setup() {
  s1.attach(7);
  s2.attach(6);
  s3.attach(5);
  s4.attach(4);
  s5.attach(3);
  pinMode(led, OUTPUT);
  pinMode( triggerPort, OUTPUT );
  pinMode( echoPort, INPUT );
  Serial.begin( 9600 );
  }

void loop() {
 
  //porta bassa l'uscita del trigger
  digitalWrite( triggerPort, LOW );
 
  //invia un impulso di 10microsec su trigger
  digitalWrite( triggerPort, HIGH );
  delayMicroseconds( 10 );
  digitalWrite( triggerPort, LOW );
 
  long duration = pulseIn( echoPort, HIGH );
  long r = 0.034 * duration / 2;
 
  Serial.print( tempo );
  Serial.print( " durata: " );
  Serial.print( duration );
  Serial.print( " , " );
  Serial.print( "distanza: " );
 
  //dopo 38ms è fuori dalla portata del sensore
  if( duration > 38000 ) Serial.println( "fuori portata");
  else {
    Serial.print( r ); Serial.println( "cm" );
   
    if (r<=3) { tempo=tempo+500;
      for (i=1;i<=8;i++) {
        if (tempo==i*1000){
       digitalWrite((led+i), HIGH);}
        }
      if (tempo>12000) { modalita=0; }
      if (tempo>8000 && tempo<12000) { modalita=1;}
      if (tempo>4000 && tempo<8000) { modalita=2;}
      Serial.print( " modalita: " );
      Serial.println( modalita );
    }   
    if (r>3) {
      tempo=0;
      digitalWrite(12, LOW);
      digitalWrite(13, LOW);
      digitalWrite(14, LOW);
      digitalWrite(15, LOW);
      digitalWrite(16, LOW);
      digitalWrite(17, LOW);
      digitalWrite(18, LOW);
      digitalWrite(19, LOW);
    }
   
   switch (modalita) {
     case 0:
       s1.write(90);
       s2.write(90);
       s3.write(90);
       s4.write(90);
       s5.write(90);
       break;
     
     case 1:
       if (r>3  && r<15) {
       s1.write(180);
       s2.write(180);
       s3.write(0);
       s4.write(0);
       s5.write(180);
       }
       if (r>15 && r<30) {
       s1.write(90);
       s2.write(90);
       s3.write(90);
       s4.write(90);
       s5.write(90);
       }
       if (r>30) {
       s1.write(0);
       s2.write(0);
       s3.write(180);
       s4.write(180);
       s5.write(0);
       }
       break;
     
     case 2:
       if (r>3  && r<15) {
       s1.write(0);
       s2.write(0);
       s3.write(180);
       s4.write(180);
       s5.write(0);
       }
       if (r>15 && r<30) {
       s1.write(180);
       s2.write(180);
       s3.write(0);
       s4.write(0);
       s5.write(180);
       }
       if (r>30) {
       s1.write(90);
       s2.write(90);
       s3.write(90);
       s4.write(90);
       s5.write(90);
       }
       break;
   }
   delay(500);
  }
}
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12643
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

la questione è semplice, al jack di Arduino NON puoi collegare una tensione inferiore a 7V, visto che a valle hai un diodo ed un regolatore; di conseguenza probabilmente stai alimentando Arduino a 3,5-4V, tutto qui.
Logged


0
Offline Offline
Full Member
***
Karma: 2
Posts: 243
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma 5,2 Volt li hai misurati dall'alimentatore senza carico, oppure è la tensione riportata sull'alimentatore?
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12643
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

è la stessa cosa liso; se anche fosse una di quelle ciofeche cinesi che dichiarano 5V e poi a vuoto ne misuri 8, comunque con un minimo di carico scendono a 5V o peggio. Comunque 5,2V non è un valore standard "da etichetta", almeno io non ne ho visti mai, quindi credo li abbia misurati
Logged


0
Offline Offline
Full Member
***
Karma: 2
Posts: 243
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Appunto questo mi ha insospettito, se era tipo un 12V e poi ne misurava 5,2 c'era qualche problema...
smiley-wink, se invece è un buon alimentatore stabilizzato a 5, e non ha niente di meglio potrebbe usarlo per alimentare arduino
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12643
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Appunto questo mi ha insospettito, se era tipo un 12V e poi ne misurava 5,2 c'era qualche problema...
smiley-wink, se invece è un buon alimentatore stabilizzato a 5, e non ha niente di meglio potrebbe usarlo per alimentare arduino
Non può usarlo per alimentare Arduino, per le ragioni che ho spiegato, se è BEN stabilizzato potrebbe collegarlo direttamente al pin +5V ma non è una buona pratica.
Logged


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

Ok, intanto ho capito che non dipende dal codice, il tester indica 5,35 V collegandolo soltanto all'alimentatore, collegando anche i servo, mantengo quel voltaggio. Come posso risolvere?
« Last Edit: November 14, 2012, 02:21:10 pm by Andrewa80 » Logged

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

ALT!!!!  smiley-red Non avevo collegato un gnd di controllo al negativo... Funziona perfettamente anche con i 5,3V. Scusatemi....
Ma a questo punto vi chiedo:
- Arduino
- 5 servo
- 8 strisce da 5 led (con resistenza da 470 ohm ognuno) connessi a transistor da 120ma

L'alimentatore da 5,35V di 2000ma ce la farà?
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12643
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

devi avere le specifiche di tutta quella roba, sommarle e vedere a che corrente arrivi, altrimenti serve la Uwebox per scoprirlo.
Ripeto, se stai applicando alla presa jack japan 5,3V NON puoi avere 5V su Arduino, se ne vuoi la conferma di basta misurare la tensione sui pin 5V e GND di Arduino; il fatto che funzioni non significa niente, è comunque sottoalimentato, a meno che tu non abbia collegato contemporaneamente l'USB, nel qual caso il comparatore credo stia facendo lavorare quest'ultima.
NON ti conviene alimentare tutta quella roba tramite Arduino, devi invece usare quei 5V per alimentarli direttamente, lasciando ad Arduino una propria alimentazikone e solo le funzionalità di controllo (pwm, pilotaggio transistor, ecc.)
Logged


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

I servo hanno questa caratteristica:
Operating voltage: 3.0V~7.2V,
per i led la resistenza è relativa ai 5V,
il sensore di prossimità assorbe 5V
 volevo evitare di mettere un alimentatore da 12V per non complicarmi la vita.
In ogni caso tutta quella roba è alimentata direttamente dalla fonte, effettivamente ora arduino, effettua solo funzioni di controllo,
ma cosa mi consigli per dargli una sua alimentazione? Una batteria? O un altro alimentatore? (anche se sarebbe scomodo e quasi superfluo)
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12643
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

non so, questo devi vederlo tu, in base alle tue esigenze ed in base a dove deve lavorare questa roba; per le prove lascia arduino collegato all'USB e metti in comune solo il negativo dell'alimentatore esterno col GND di Arduino. Quando sarai pronto per una installazione definitiva magari ti crei un circuito stand-alone, da alimentare assieme a tutto il resto e ti risparmi l'Arduino
Logged


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

Il mio prodotto finale sarà appeso a parete ed ha un interruttore on/off e scenderà il filo alla corrente.
Siccome non sono molto addentrato nella materia puoi spiegarmi meglio la tua ultima frase? Esempio mettere un condensatore che mi aumenti il voltaggio?
Grazie mille.

« Last Edit: November 14, 2012, 05:36:41 pm by Andrewa80 » Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12643
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Il mio prodotto finale sarà appeso a parete ed ha un interruttore on/off e scenderà il filo alla corrente. Siccome non sono molto addentrato nella materia puoi spiegarmi meglio la tua ultima frase. Grazie mille.
Arduino è una piattaforma di sviluppo e prototipazione; nel momento in cui il tuo progetto sarà perfettamente funzionante potrai sostituire la scheda Arduino con una schedina tua con a bordo un semplice microcontrollore e qualche componente esterno, che interfaccerai alla tua componentistica esterna; in tal modo Arduino non ti serve più e sarà pronto per un altro prototipo.
Per capire cosa sto dicendo dai un'occhiata alla mia Guida, in firma ai miei post.
Comunque non ti preoccupare, tu pensa a far funzionare tutto che quando sarà il momento ti aiuteremo a realizzare il tuo stand-alone smiley-wink
Logged


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

aaah e io che pensavo di aver finito  smiley-mr-green
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12643
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

diciamo che sei al 2% smiley-grin non male smiley-cool
Logged


Pages: [1]   Go Up
Jump to: