Bonjour,
Je travail sur un projet :
une carte émet en RF --> pas de problème
une carte reçoit et émet en RF. Elle enregistre ce qu'elle reçoit sur une carte SD et met à jour un mini site :
Les bouts de code individuels (gestion du site / réception émission en RF / écriture sur la carte) fonctionnent. Le problème vient de la fusion de tous ces codes.
Par exemple, le code suivant (initialisation des différents éléments) pose problème
#include <SPI.h>
#include <Ethernet.h>
#include <VirtualWire.h>
#include <OneWire.h>
#include <SD.h>
int pinEmeteur = 3 ;
int pinRecepteur = 6 ;
const int idSD=4 ;
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x7C, 0x48 }; // MAC adresse de mon arduino ethernet
IPAddress ip(192,168,1, 55);
EthernetServer server(80);
void etatSD()
{
Sd2Card card;
SdVolume volume;
SdFile root;
Serial.print("\nCarte SD :");
if (!card.init(SPI_HALF_SPEED, idSD)) {
Serial.println("Initialisation incorrecte. vérifiez :");
Serial.println("* qu'une carte est insérée ?");
Serial.println("* Is your wiring correct ?");
Serial.println("* le numéro du pin est correct ?");
return;
} else {
Serial.println("La carte est paramétrée et une SD est présente.");
}
Serial.print("\nType de SD : ");
switch(card.type()) {
case SD_CARD_TYPE_SD1:
Serial.println("SD1");
break;
case SD_CARD_TYPE_SD2:
Serial.println("SD2");
break;
case SD_CARD_TYPE_SDHC:
Serial.println("SDHC");
break;
default:
Serial.println("Inconnue");
}
if (!volume.init(card)) {
Serial.println("Partition FAT16/FAT32 introuvable.\nVérifiez que la SD est formatée.");
return;
}
uint32_t volumesize;
Serial.print("\nVolume de type FAT");
Serial.println(volume.fatType(), DEC);
Serial.println();
volumesize = volume.blocksPerCluster(); // clusters are collections of blocks
volumesize *= volume.clusterCount(); // we'll have a lot of clusters
volumesize *= 512; // SD card blocks are always 512 bytes
Serial.print("Taille de la carte SD (bytes): ");
Serial.println(volumesize);
Serial.print("Taille de la carte SD (Kbytes): ");
volumesize /= 1024;
Serial.println(volumesize);
Serial.print("Taille de la carte SD (Mbytes): ");
volumesize /= 1024;
Serial.println(volumesize);
Serial.print("Taille de la carte SD (Gbytes): ");
volumesize /= 1024;
Serial.println(volumesize);
Serial.println("\nFichiers sur la SD (nom, date et taille en bytes): ");
root.openRoot(volume);
// list all files in the card with date and size
root.ls(LS_R | LS_DATE | LS_SIZE);
}
void setup()
{
Serial.begin(9600);
Serial.println("Init...");
// ER
// Setup Emeteur
Serial.println(" emeteur");
vw_set_tx_pin(pinEmeteur);
vw_setup(2000);
// Setup Recepteur
Serial.println(" recepteur");
vw_set_rx_pin(pinRecepteur);
vw_rx_start();
// /ER
// SERVEUR
Serial.println(" serveur");
Ethernet.begin(mac, ip);
pinMode(10, OUTPUT);
etatSD() ;
Serial.print(" SD");
if (!SD.begin(idSD))
{
Serial.println(" ...pbl");
return;
}
Serial.println(" ...OK");
delay(10000) ;
}
void loop()
{
}
Lors du lancement, il affiche les éléments de l'initialisation mais plusieurs fois de façon anarchique
voici un résultat :
Init...
emeteur
recepteur
serveur
Carte SD :La carte est paramétrée et une SD est présente.
Type de SD : SDHC
Volume de type FAT32
Taille de la carte SD (bytes): 3665821696
Taille de la carte SD (Kbytes): 3579904
Taille de la carte SD (Mbytes): 3496
Taille de la carte SD (Gbytes): 3
Fich´R+?¹..
emeteur
recepteur
serveur
Carte SD :La carte est paramétrée et une SD est présente.
Type de SD : SDHC
Volume de type FAT32
Taille de la carte SD (bytes): 3665821696
Taille de la carte SD (Kbytes): 3579904
Taille de la carte SD (Mbytes): 3496
Taille de la carte SD (Gbytes): 3
Fic??%¹¥Ñ¹..
emeteur
recepteur
serveur
Carte SD :La carte est paramétrée et une SD est présente.
Type de SD : SDHC
Volume de type FAT32
Taille de la carte SD (bytes): 3665821696
Taille de la carte SD (Kbytes): 3579904
Taille de la carte SD (Mbytes): 3496
Taille de la carte SD (Gbytes):Init...
emeteur
recepteur
serveur
Carte SD :La carte est paramétrée et une SD est présente.
Type de SD : SDHC
Volume de type FAT32
Taille de la carte SD (bytes): 3665821696
Taille de la carte SD (Kbytes): 3579904
Taille de la carte SD (Mbytes): 3496
Taille de la carte SD (Gbytes):Init...
emeteur
recepteur
serveur
Carte SD :La carte est paramétrée et une SD est présente.
Type de SD : SDHC
Volume de type FAT32
Taille de la carte SD (bytes): 3665821696
Taille de la carte SD (Kbytes): 3579904
Taille de la carte SD (Mbytes): 3496
Taille de la carte SD (Gbytes): 3
FichiInit...
emeteur
recepteur
serveur
Carte SD :La carte est paramétrée et une SD est présente.
Type de SD : SDHC
Volume de type FAT32
Taille de la carte SD (bytes): 3665821696
Taille de la carte SD (Kbytes): 3579904
Taille de la carte SD (Mbytes): 3496
Taille de la carte SD (Gbytes): 3
Fichi?0ð
Si je commente les 2 lignes du serveur tout se passe bien :
/*
// SERVEUR
Serial.println(" serveur");
Ethernet.begin(mac, ip);
*/
Si quelqu'un a une idée... je suis preneur (ça fait 2 semaines que je bataille sur ce problème).
Merci