Problemi Seriale aTtiny85

Salve a tutti
Il mio problema si capisce dal titolo… Sto tentando di realizzare un collegamento seriale tra un mio Arduino 2009 e un ATtiny85 utilizzando la SoftwareSerial. Il programma a mio avviso è ben scritto, semplicemente l’Arduino scrive sulla seriale uno zero o un uno a intervalli di mezzo secondo e il Tiny dovrebbe leggere e quando legge uno accende un led, e quando zero lo spegne… un semplice led lampeggiante. Ma il tutto non funziona… Qualcuno saprebbe dirmi perchè? =(
Allego i relativi Sketch…

Arduino:

int val = 0;

void setup(){
  Serial.begin(9600);
}
 
void loop(){

  Serial.write(1);
  delay (500);
  Serial.write(0);
  delay (500);
}

ATtiny85:

#include <SoftwareSerial.h>

int LED = 3;
int val = 0;

SoftwareSerial mySerial(0, 2); // RX, TX
 
void setup(){
  pinMode(LED, OUTPUT);
  mySerial.begin(9600);
}
 
void loop(){
  if (mySerial.available() > 0)
    val = mySerial.read();
    
  if(val == 1) digitalWrite(LED, HIGH);
  else digitalWrite(LED, LOW);
}

Ovviamente sono stato molto attento a collegare a modo gli RX e i TX…

Gentilmente dovresti rieditare il tuo precedente post (tasto modify) e includere il codice col tag CODE; vedi punto 7 --> [REGOLAMENTO] Come usare questa sezione del forum - Italiano - Arduino Forum

Serve sapere coma hai collegato i pin. Potresti aver fatto un errore di collegamento e perciò essere hardware il problema e non software.

Prima di caricare il tuo sketch sul Tiny, ha caricato un blink per vedere se il led si accende?

Scusa se insisto ... su QUALI pin di Arduino 2009 ti sei connesso ?

Guglielmo

SoftwareSerial mySerial(0, 2); // RX, TX

0 e 2 sono i pin dell' aTtiny85? dal data sheet http://www.atmel.com/images/atmel-2586-avr-8-bit-microcontroller-attiny25-attiny45-attiny85_datasheet.pdf non mi sembra che esista un pin 0, quindi magari è solo un errore di definizione dei pin. fai anche una ricerca su internet perchè perquanto ho trovato io in una rapida ricerca Communication with Tiny's sembra che i pin rx e tx debbano essere settati come input ed output, ma non conosco aTtyny85 e non ne ho uno per provarlo.

alexio:
0 e 2 sono i pin dell' aTtiny85?

Si alexio, sono giusti ... pin 0 (PB0) corrisponde al pin fisico 5 e pin 2 (PB2) corrisponde al pin fisico 7. Inoltre ti assicuro che la SoftwareSerial funziona correttamente su ATtiny85 senza dover settare nessun pin ... :wink:

Guglielmo

ok. grazie per l'info Guglielmo.

… mi serve sapere i pin che hai usato sulla 2009 (ma immagino, vedendo il codice 0 e 1) e se, mentre fai le prove, la USB del computer è attaccata all’ Arduino 2009.

Non conosco Arduino 2009, ma ti dico subito che con Arduino UNO … se la USB è collegata al computer … non sempre si riesce a parlare con i pin 0 e 1 (… da verifiche effettuate con un modulo Bluetooth).

Per fare queste prove io, di solito, lascio la vera seriale per il debug e uso una SoftwareSerial per la comunicazione seriale con altri oggetti. Eventualmente prova …

Guglielmo

Edit : Non riesci, in qualche modo, a farti rimandare indietro dal Tiny85 il carattere ricevuto ? Così verifichi ciò che gli è veramente arrivato (… se arrivato) :wink:

Gabibbo, come hai settato il Tiny? A che freq lavora?

leo72:
Gabibbo, come hai settato il Tiny? A che freq lavora?

GIUSTO !!! Importantissimo ...

Se non ha cambiato i fuse, l'ATTiny85 esce di fabbrica con il divisore per 8 del clock attivo e quindi gira ad 1 MHz ... e allora ovvio che non ce la fa con la SoftwareSerial a 9600 !!! :wink:

Guglielmo

Il ground non deve essere in comune?

nid69ita:
Il ground non deve essere in comune?

Se ci fidiamo della risposta che ti ha dato alcuni post fa ...

Gabibbo1994:
I Pin sono tutti collegati a modo...

... dovrebbe ]:smiley:

Guglielmo