Comunicazione seriale tra Arduino Uno e SmartDevice WinCE

Salve a tutti, volevo chiedere se capita solo a me o c'è qualche procedura da fare per comunicare tramite wince via seriale con arduino uno. Quando mando ad esempio il carattere "1" mi restituisce Arduino 103 cioè ascii "g" invece che darmi 49. qualcuno può darmi una mano? Grazie in anticipo.

Qualcuno mi risponda, vi prego..... :~

Sei un po impaziente. Vuoi una risposta dopo 1 ora. Non siamo qua ad aspettarti per poterti rispondere.

I parametri della seriale sono settati giusti? Lo sketch sul Arduino funziona? Mandando un carattere dal terminale del IDE arriva giusto? Se arriva giusto é un problema Win CE; se arriva male del Tuo Sketch. in entrambi i casi non posso aiutarti perché non sono veggente o cartomane.

Ciao Uwe

Che tradotto vuol dire: abbiamo bisogno dello schema dell'interfaccia di collegamento che stai usando e dello sketch che hai usato per il colloquio, poi forse si può dire qualcosa.

Scusate l'insistenza, XD Allora vi posso dire che utilizzando la seriale della picoitx su hyperterminal i caratteri arrivano esatti, se vado a scollegare i pin 0 e 1 utilizzando il terminale dell ide 1.0 mi ritornano i codici ascii esatti, solo se collego i pin 0 e 1 non ricevo bene, ad esempio invece di ricevere ascii 49 ("1") mi ritorna 103 ("g").

Qualche suggerimento???

elix77cs: Allora vi posso dire che utilizzando la seriale della picoitx su hyperterminal i caratteri arrivano esatti, se vado a scollegare i pin 0 e 1 utilizzando il terminale dell ide 1.0 mi ritornano i codici ascii esatti, solo se collego i pin 0 e 1 non ricevo bene, ad esempio invece di ricevere ascii 49 ("1") mi ritorna 103 ("g").

Se stai cercando di usare in simultanea la seriale USB e l'UART di Arduino per ricevere dati dall'esterno è normale che ti arriva spazzatura, le due cose non possono coesistere assieme.

io non ho capito bene cosa vuoi fare, cioe' tu tieni attaccato contemporaneamente sia Arduino via usb al tuo pc che i pin 0 e 1 di arduino alla pico ?

se e' cosi' Astro ti ha gia' risposto, il 328 ha una sola seriale hw, per usarne una seconda devi emularla via sw su arduino su altri due pin

Fai un loopback fra tx e rx e poi vedi se ciò che mandi , arriva correttamente tramite il serial monitor dell'ide.

allora per avere un riscontro a terminale dovrei aggiungere una seriale con il softwareserial tipo pin 2 e 3??? e poi lanciare sul terminale la seriale 2 tipo con Seriale2.print(bla bla bla)???

effettivamente se lancio un loopback i dati mi arrivano corretti byte x byte. Quindi adesso per catturare a video quello che mando devo solo usare il softwareserial??? uso l'esempio che ho nell'ide e lo modifico per avere su terminale i dati, oppure mi postate qualche esempio grezzo grezzo.... Grazie cmq dell'aiuto ragazzi.

posso anche capire che io non ponga bene le domande, ma tu sei un cane nelle risposte :)

spiegala questa situazione, alla mia domanda la risposta e' SI o NO ?

se e' si vai di newsoftserial

Ciao, ho usato il SoftwareSerial ma ancora brancolo nel buio, in pratica se invio da pico su hyperterminal mi arrivano dati ok tipo “1234”, se invece dalla pico su arduino tramite il softwareserial pin 2 e 3 mi arrivano sul serial monitor tipo “@’-F”.
Qualce idea?? vi posto il codice.

#include <SoftwareSerial.h>
SoftwareSerial Seriale(2,3);
/*
Programma Arduino comunicazione seriale picoitx
*/

int Pin04 = 4;
int Pin05 = 5; //PWM
int Pin06 = 6; //PWM
int Pin07 = 7;
int Pin08 = 8;
int Pin09 = 9; //PWM
int Pin10 = 10; //PWM
int Pin11 = 11; //PWM
int Pin12 = 12;
int Pin13 = 13;

int lun =4;

void setup ()
{
Seriale.begin (19200);
delay (1000);
Serial.begin(9600);
pinMode (Pin13, OUTPUT);

Serial.println (“pronto per comunicare!”);

}

void loop ()
{
char prova[100]={0};

if (Seriale.available() > 0)
{
delay (250);
for (int h=0; h < lun; ++h)

prova=Seriale.read();

Serial.print ("Per ora ricevo ");
Serial.println (prova);

if (prova[0] == ‘O’ && prova[1] == ‘N’ && prova[2] == ‘1’ && prova[3] == ‘3’)
{
digitalWrite (Pin13, HIGH);
}
if (prova[0] == ‘O’ && prova[1] == ‘F’ && prova[2] == ‘1’ && prova[3] == ‘3’)
{
digitalWrite (Pin13, LOW);
}
}
}

qualche idea???

Una domanda veloce: le velocità delle seriali sono ok? Nel senso, uguali per SW Serial e pico?

si sono settate uguali. con hyperterminal di xp riesco a ricevere caratteri puliti da pico mentre su arduino ricevo caratteri sporcati. Se poi provo da terminale di arduino allora riceve le stringhe in modo esatto. Quindi solo se invio da pico su arduino ho il problema che non riceve bene. Cosa posso provare a fare?