Go Down

Topic: duemilanove edoppia seriale (Read 978 times) previous topic - next topic

dadebo1

i pin e 1 del duemila 2 sono una doppia porta serialse come nel mega?

kokiua

No, sono la porta seriale del micro, e se provi a collegarci dei led (con opportuna resistenza di limitazione) noterai che quando la seriale è attiva (via USB) i segnali sono gli stessi...

I due pin sono stati resi disponibili perchè è sempre possibile utilizzarti come qualcos'altro (altrimenti avresti due in/out in meno).

dadebo1

ok .. se uso alimentazione esterna ... posso usarli per scambiare dati?

kokiua

Ma anche se usi la porta USB  :)
Devi solo tenere presente che quando comunichi tramite seriale quei pin vengono forzati per poter comunicare via seriale.
Io di solito li uso per accendere dei led o come ingressi di segnali (ad esempio tasti), ma mai per pilotare oggetti che potrebbero anche guastarsi a causa di un inatteso treno di impulsi o con parti di elettronica che possano impedire la comunicazione via seriale.

dadebo1

#4
Jun 08, 2010, 04:40 pm Last Edit: Jun 08, 2010, 04:42 pm by dadebo1 Reason: 1
sto leggendo dei tutorial .. il mio problema è vmusic .. nn c'è l'ho ancora in mano ma fino ad ora avevo ragionato con il mega con 2 porte... (giusto)?
arduino nn sarà collegato al pc.. quindi .. farà partire un brano alla chisura (hight) di un pin e fermerà tutto al riilascio)
una cosa del tipo
Code: [Select]
#define VMUSIC_CTS 5  //to VMUSIC CTS pin 6 (or ground!)
#define VMUSIC_RX 2  //to VMUSIC TXD pin 5
#define VMUSIC_TX 3  //to VMUSIC RXD pin 4
#define ledPin 13
#define BottonPin 12
void setup() {
 // define pin modes for tx, rx, led pins:
pinMode(VMUSIC_CTS, OUTPUT);
pinMode(VMUSIC_RX, INPUT);
pinMode(VMUSIC_TX, OUTPUT);
pinMode(ledPin, OUTPUT);  // declare LED as output
pinMode(BottonPin, INPUT);  // declare LED as output


digitalWrite(ledPin, LOW);

// set the data rate for the SoftwareSerial port:
mySerial.begin(9600);

//This will allow softwareSerial to process incoming automatically:
attachInterrupt(0, readSoftwareSerial, LOW);

//Tells VMUSIC that hardware is connected:
digitalWrite(VMUSIC_CTS, LOW);    
}
void loop() {
 if (bottonled ){
        mySerial.print("VPF 1.mp3");  // player  1.mp3 file
        delay 10 ;// whait 10 mms
  else {
          mySerial.print("VST");  // Stops playback
         delay 100; // whait 100 mms
       }
}
}





/* VMUSIC COMMANDS:

VPF?file       Plays a single file eg: "VPF 1.mp3"

VRF?file       Repeatedly plays a single file

VST            Stops playback

V3A            Plays all MP3 files

VRA            Repeatedly plays all MP3 files

VRR            Repeatedly plays random MP3 files

VSF            Skip forward one track

VSB            Skip back one track

VSD            Skip forward one whole directory

VP             Pause playback

VF             Fast forward 5 seconds

VB             Rewind 5 seconds

VRD?byte       Reads command register

VWR?byte+word  Writes command register

VSV?byte       Sets playback volume

*/

 nn so se devo includere
#include <avr/interrupt.h>
#include <SoftwareSerial.h>

kokiua

#5
Jun 08, 2010, 04:52 pm Last Edit: Jun 08, 2010, 04:56 pm by kokiua Reason: 1
forse hai sintetizzato troppo... (e non ho compreso bene quel che vuoi fare)
diciamo comunque che quando non trasmetti informazioni dal computer via usb ad Arduino puoi utilizzare la porta seriale per un altro collegamento senza alcuna difficoltà (tramite i pin 0 e 1).

aggiungo:
scusa ho letto solo adesso quello che c'era dopo il code

Non dovrebbe essere necessario includere le librerie che indichi perchè entrambe sono già automaticamente attivate di default perchè fanno parte integrante di molte funzioni di Arduino (come quelle della gestione dei tempi e appunto della seriale)

dadebo1

grazie ancora sei attivissimo sul forum e competente....
ti ricordi il post di laura lorusso su la "scatola musicale senza suono"
abbiamo optato per un 2009 con vmusic.
ma avevo un dubbio sulla seriale.

appena arrivano (mi pasterebbe vmusic) faccio un po di prove e posteremo i risultati (ovviamente) ...
ciao e grazie

kokiua

di nulla! magari un domani ho io una domanda alla quale tu puoi dare risposta, giusto?
Allora buon lavoro  ;)

dadebo1


BrainBooster

non dimenticate http://www.arduino.cc/en/Reference/SoftwareSerial (magari solo durante le prove)

Federico

Io in un paio di progetto uso questa con successo

http://arduiniana.org/libraries/newsoftserial/

F
Federico - Sideralis
Arduino &C: http://www.sideralis.org
Foto: http://blackman.amicofigo.com

dadebo1

ok questo fa quello che voglio .. (provato su il mega)
aspetto vmusic per verificare .. grazie
Code: [Select]
#define ledPin 12
#define BottonPin 13
void setup() {
 // define pin modes for tx, rx, led pins:

pinMode(ledPin, OUTPUT);  // declare LED as output
pinMode(BottonPin, INPUT);  // declare LED as output


digitalWrite(ledPin, LOW);

// set the data rate for the SoftwareSerial port:
Serial.begin(9600);

//This will allow softwareSerial to process incoming automatically:


//Tells VMUSIC that hardware is connected:
 
}
void loop() {
 if (digitalRead(BottonPin)){
     digitalWrite(ledPin, HIGH);
        Serial.print("VPF 1.mp3");  // player  1.mp3 file
        delay (1000);// whait 1000 mms
  }
  else {
 digitalWrite(ledPin, LOW);    
    Serial.print("VST");  // Stops playback
         delay (1000); // whait 1000 mms
       }

}

Go Up