connessione remota tra attiny85 e arduino

Salve, mi serviva sapere qualche informazione aggiuntiva o qualche consiglio su come poter trasmettere con un attiny85 a 1Mhz di clock interno per risparmiare sui consumi. Poichè non riesco a trasmettere ad un arduino uno che fa da ricevitore, utilizzo la libreria VirtualWire.h perchè ha dei comandi specifici per il mio progetto, cosa posso fare? avete qualchè microcontrollore che funzioni a 1Mhz o meno da consigliarmi?

Che tipo di informazione devi trasmettere? Come hai fatto il collegamento adesso? Che codice stai utilizzando?

Tx con attiny85:

 #include <VirtualWire.h>
    const int TX_DIO_Pin = 0;
    
    void setup() {
      pinMode(1, OUTPUT);
      initialize_transmitter();
    }
    
    /* Main program */
    void loop() {
      int counter;
      for(counter=0; counter<100; counter++) {
        digitalWrite(1, HIGH);  
        transmit_integer(counter);
        digitalWrite(1, LOW); 
        delay(200);
      }
    }
    
    
    void initialize_transmitter() {
      /* Initialises the DIO pin used to send data to the Tx module */
      vw_set_tx_pin(TX_DIO_Pin);
      /* Set the transmit logic level (LOW = transmit for this version of module)*/ 
      vw_set_ptt_inverted(true); 
      
      /* Transmit at 2000 bits per second */
      vw_setup(2000);    // Bits per sec
    }
    
    void transmit_integer(unsigned int Data) {
      /* The transmit buffer that will hold the data to be 
         transmitted. */
      byte TxBuffer[2];
      /* ...and store it as high and low bytes in the transmit 
         buffer */
      TxBuffer[0] = Data >> 8;
      TxBuffer[1] = Data;
      
      /* Send the data (2 bytes) */
      vw_send((byte *)TxBuffer, 2);
      /* Wait until the data has been sent */
      vw_wait_tx();
    }

Rx con arduino:

include <VirtualWire.h>
const int RX_DIO_Pin = 2;
int received;
int led=7;
int mot=8;
void setup() {
  pinMode(led, OUTPUT);
  pinMode(mot, OUTPUT);
    Serial.begin(9600);
    initialize_receiver();
}
void loop() {
  received = receive_integer();
  if(received != -1) Serial.println(received);
  else{digitalWrite(led, HIGH);
  digitalWrite(mot, HIGH);
  delay(360);
  digitalWrite(mot,LOW);}
}
void initialize_receiver() {
  vw_set_rx_pin(RX_DIO_Pin);  
  vw_setup(2000);
  vw_rx_start();  
}
int receive_integer() {
 uint8_t Buffer_Size = 2;
  unsigned int Data;
  uint8_t RxBuffer[Buffer_Size];
if (vw_wait_rx_max(7000))
  if (vw_get_message(RxBuffer, &Buffer_Size))
  {
    digitalWrite(led,LOW);
Data = RxBuffer[0] << 8 | RxBuffer[1];
 digitalWrite(led,LOW);
 return Data;
 }
  else {
    return Data;
    }
      return -1;
     }

questo è il codice che sto utilizzando

pero' non hai risposto alle altre domande:
che HW a radiofrequenza?
che collegamenti?
alle quali aggiungo:
a che distanza?
hai provato separatamente trasmettitore e ricevitore, per essere sicuro che vadano?
perchè usi una libreria obsoleta e sconsiglata?
perchè non indenti in una maniera omogenea il codice?
Sei sicuro sicuro del codice? perchè hai due "return Data;" una restituisce il dato ricevuto in caso di ricezione OKl l'altra restituisce spazzatura in caso di mancata ricezione, mi sembra strano.....

Come HW uso i modulini cinesi da un euro a paio, che sono più che sufficienti per il mio progetto, dato che non devo trasmettere dei dati significativi ma un qualsiasi segnale che indichi al ricevitore la presenza del trasmettitore. Come collegamenti ho l'arduino uno collegato al ricevitore tramite il pin 2 e l'attiny al trasmettitore tramite il pin 0 le prove di tx\rx le ho fatte a pochi centimetri ma comunque non ho alcuna risposta dal ricevitore. Uso la libreria virtualwire perché conosco "bene" solo quella e ha il comando "se non ricevi il dato entro un tempo limite" che si addice perfettamente allo scopo del mio progetto. Riguardo il doppio return in effetti ho sbagliato, però non mi dà problemi il codice perché quando imposto l'attiny a 8Mhz il tutto funziona come dovrebbe ma se imposto il clock interno a 1Mhz non funziona più.

OK, grazie, adesso è piu' chiaro