Pages: [1]   Go Down
Author Topic: VirtualWire e ATmega8, cattivi amici  (Read 755 times)
0 Members and 1 Guest are viewing this topic.
Marche
Offline Offline
Edison Member
*
Karma: 32
Posts: 2261
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti, dopo molte ore trascorse a provare e a nominare invano il nome di tutte le divinità esistenti ho scoperto che la libreria virtualWire non funziona sugli ATmega8.
Sto giocando con dei moduli radio 433 MHz, di fatto con gli ATmega8 non ne vogliono proprio sapere di comunicare.
Ho provato anche diverse frequenze 16, 8, 1 MHz per il micro ma il risultato non cambia.
L'IDE compila senza problemi gli sketch.

Ho testato infine gli stessi sketch con un ATmega328 a 1MHz e tutto funziona bene.

Questo post non è la solita richiesta di aiuto, metto gli ATmega328 e via... ho il sangue abbastanza avvelenato stasera smiley
Spero che queste informazioni possono evitare qualche incazzatura a qualcuno in futuro... se sapete perchè non va comunque fa sempre piacere smiley-sweat
« Last Edit: February 09, 2013, 05:40:50 pm by Pelletta » Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21624
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hai un link alla citata lib? Magari dandogli un'occhiata si riesce a capire se l'adattamento al'Atmega8 è fattibile oppure no.
Logged


Marche
Offline Offline
Edison Member
*
Karma: 32
Posts: 2261
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

L'ho presa qui

Dice anche che è compatibile con gli ATmega8 ma non riesco proprio a ottenere un minimo di comunicazione con quei micro.

Ho dimenticato di dire che nelle prove stavo usando l'IDE 022, se può servire posso anche fare un ultimissimo tentativo con l' 1.01
Logged

0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5608
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

pelletta in base alla tua esperienza confermi le distanze raggiungibili ?
nella pagina che hai lincato dice che gia' a 6 metri (in un ufficio), nonostante l'uso di un antenna da 13cm, la comunicazione e' corrotta

e senza antenna ?
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Marche
Offline Offline
Edison Member
*
Karma: 32
Posts: 2261
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non mi risultano dati corrotti.
Con uno spezzone di filo di 15 cm per antenna su entrambi i moduli (ricevente e trasmittente) ho passato tranquillamente 4 piani.
Senza antenna devo ancora vedere quanto coprono
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21624
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

La lib pare settare correttamente i registri per Atmega8, per lo meno da una rapida occhiata.
Sicuramente è scritta per supportare l'IDE 002x dato che carica il file wiring.h e non Arduino.h, quindi la prova con l'IDE 1.0 non dovrebbe neanche compilare lo sketch.

Tornando alla lib, vedo che comunque qualcuno l'ha usata con gli Atmega8 con successo:
http://www.robertoinzerillo.com/wordpress/?p=74

Lì hanno un Atmega8A, ma non dovrebbe cambiare nulla rispetto all'Atmega8 se non i consumi leggermente minori.
Logged


Marche
Offline Offline
Edison Member
*
Karma: 32
Posts: 2261
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non so che dire... a me non funzionano.
Ho visto il codice che usa per trasmettere ed è lo stesso che ho io.
Appena ho un ritaglio di basetta faccio una schedina per l'ATmega8A, ce l'ho solo in package qfn e non posso testarlo su breadboard al momento
Logged

0
Online Online
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non hai qualcosa per verificare i valori che escono dal pin? forse addirittura con un arduino usando gli interrupt on change e bufferizzando i tempi di cambio... ovviamente anche le richieste dal mini dovreanno essere intervallate il più possibile.

ecco il codice (non testato, ma compila)

Code:
/*
Logical state analizer by Lesto @ www.arduino.cc/forum
*/
const byte arraySize = 128;//must be power of 2
const byte indexJump = 256/arraySize; //we will use this index as increment to play with overflow!

volatile uint32_t buffer[arraySize];
volatile uint8_t index = 0;
volatile uint8_t toPrint = 0;

uint8_t print_index = 0;

void setup(){
  Serial.begin(115200);
  Serial.println("Remeber first result is invalid and max precision is 4microsec, 250kHz");
  attachInterrupt(0, countTime, CHANGE);//0 is pin 2 on arduino uno, ethernet, mega; 3 on Leonardo; 0 on due
}

void loop(){
  while(print_index != index){
    if (toPrint > arraySize){
      Serial.println("There is too much data for buffer size, some data is lost forever");
    }
    Serial.println(buffer[print_index]-buffer[print_index-indexJump]); //first result is invalid
    Serial.flush();
    print_index+=indexJump;
    toPrint--;

  }
}

void countTime(){
  buffer[index]=micros();
  index += indexJump;
  toPrint++;
}

poichè il 1wire lavora in millisecondi la precisione e la velocità seriale non dovrebbero essere un rosso problema. http://en.wikipedia.org/wiki/1-Wire

ovviamente poi devi confrontare i valori misurati con il vero arduino
« Last Edit: February 12, 2013, 02:21:40 pm by lesto » Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 7
Posts: 2961
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Lesto che centra 1wire? smiley-roll-blue
Logged

0
Online Online
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ehm ho confuso virtualWire e 1Wire.. BTW quei moduli funzionano normalmente a 9600baud, il che non dovrebbe essere un grosso problema SE le comunicazioni sono inframezzate
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Pages: [1]   Go Up
Jump to: